Linux 6.1.68
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.1.68 kernel.
All users of the 6.1 kernel series must upgrade.
The updated 6.1.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/ABI/testing/sysfs-bus-optee-devices | 9 Documentation/devicetree/bindings/interrupt-controller/qcom,mpm.yaml | 4 Makefile | 2 arch/arm/boot/dts/imx28-xea.dts | 1 arch/arm/boot/dts/imx6ul-pico.dtsi | 2 arch/arm/boot/dts/imx7s.dtsi | 8 arch/arm/mach-imx/mmdc.c | 7 arch/arm64/boot/dts/freescale/imx8mp.dtsi | 2 arch/arm64/boot/dts/freescale/imx8mq.dtsi | 4 arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 2 arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 2 arch/arm64/boot/dts/mediatek/mt8173-evb.dts | 4 arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 52 +- arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi | 8 arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 96 +-- arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts | 12 arch/arm64/boot/dts/mediatek/mt8183.dtsi | 242 +++++----- arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi | 2 arch/arm64/boot/dts/mediatek/mt8195.dtsi | 6 arch/arm64/boot/dts/rockchip/rk3328.dtsi | 2 arch/arm64/boot/dts/rockchip/rk3399.dtsi | 6 arch/loongarch/net/bpf_jit.c | 12 arch/mips/Kconfig | 2 arch/mips/include/asm/mach-loongson64/boot_param.h | 9 arch/mips/kernel/process.c | 25 - arch/mips/loongson64/env.c | 10 arch/mips/loongson64/init.c | 47 + arch/parisc/Kconfig | 7 arch/parisc/include/asm/bug.h | 36 - arch/riscv/Kconfig.socs | 1 arch/riscv/kernel/traps_misaligned.c | 6 arch/s390/mm/pgtable.c | 2 arch/x86/coco/tdx/tdx.c | 1 arch/x86/entry/common.c | 97 +++- arch/x86/entry/entry_64_compat.S | 77 --- arch/x86/include/asm/ia32.h | 23 arch/x86/include/asm/idtentry.h | 4 arch/x86/include/asm/proto.h | 4 arch/x86/kernel/cpu/amd.c | 3 arch/x86/kernel/idt.c | 2 arch/x86/kernel/sev.c | 11 arch/x86/kvm/svm/svm.c | 8 arch/x86/mm/mem_encrypt_amd.c | 11 arch/x86/xen/enlighten_pv.c | 2 arch/x86/xen/xen-asm.S | 2 drivers/acpi/scan.c | 7 drivers/android/binder.c | 1 drivers/base/devcoredump.c | 3 drivers/base/regmap/regcache.c | 3 drivers/gpio/gpiolib-sysfs.c | 15 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 49 +- drivers/gpu/drm/amd/amdgpu/amdgpu_eeprom.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c | 119 ++-- drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 2 drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 4 drivers/gpu/drm/bridge/Kconfig | 1 drivers/gpu/drm/i915/display/icl_dsi.c | 7 drivers/gpu/drm/i915/display/intel_crt.c | 5 drivers/gpu/drm/i915/display/intel_display.c | 10 drivers/gpu/drm/i915/display/intel_display.h | 3 drivers/gpu/drm/i915/display/intel_dp.c | 5 drivers/gpu/drm/i915/display/intel_dp_mst.c | 4 drivers/gpu/drm/i915/display/intel_dvo.c | 6 drivers/gpu/drm/i915/display/intel_hdmi.c | 5 drivers/gpu/drm/i915/display/intel_lvds.c | 9 drivers/gpu/drm/i915/display/intel_sdvo.c | 22 drivers/gpu/drm/i915/display/intel_tv.c | 8 drivers/gpu/drm/i915/display/vlv_dsi.c | 18 drivers/gpu/drm/i915/i915_reg.h | 46 - drivers/hwmon/acpi_power_meter.c | 4 drivers/hwmon/nzxt-kraken2.c | 4 drivers/hwtracing/coresight/coresight-etm4x-core.c | 12 drivers/hwtracing/ptt/hisi_ptt.c | 5 drivers/i2c/busses/i2c-designware-common.c | 16 drivers/infiniband/core/umem.c | 6 drivers/infiniband/hw/bnxt_re/main.c | 2 drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 13 drivers/infiniband/hw/irdma/hw.c | 49 +- drivers/infiniband/hw/irdma/main.c | 2 drivers/infiniband/hw/irdma/main.h | 2 drivers/infiniband/hw/irdma/verbs.c | 28 - drivers/infiniband/hw/irdma/verbs.h | 1 drivers/infiniband/ulp/rtrs/rtrs-clt.c | 7 drivers/infiniband/ulp/rtrs/rtrs-srv.c | 37 + drivers/iommu/iommu.c | 19 drivers/iommu/of_iommu.c | 12 drivers/md/md.c | 174 +++---- drivers/md/raid5.c | 4 drivers/misc/mei/client.c | 4 drivers/net/arcnet/arcdevice.h | 2 drivers/net/arcnet/com20020-pci.c | 89 +-- drivers/net/ethernet/aquantia/atlantic/aq_ptp.c | 10 drivers/net/ethernet/aquantia/atlantic/aq_ptp.h | 4 drivers/net/ethernet/aquantia/atlantic/aq_ring.c | 18 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 1 drivers/net/ethernet/broadcom/tg3.c | 42 + drivers/net/ethernet/broadcom/tg3.h | 4 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 29 + drivers/net/ethernet/hisilicon/hns/hns_enet.c | 53 +- drivers/net/ethernet/hisilicon/hns/hns_enet.h | 3 drivers/net/ethernet/intel/i40e/i40e_main.c | 2 drivers/net/ethernet/intel/iavf/iavf_ethtool.c | 12 drivers/net/ethernet/intel/iavf/iavf_txrx.h | 1 drivers/net/ethernet/marvell/octeontx2/af/mbox.h | 2 drivers/net/ethernet/marvell/octeontx2/af/mcs.c | 18 drivers/net/ethernet/marvell/octeontx2/af/mcs.h | 2 drivers/net/ethernet/marvell/octeontx2/af/mcs_reg.h | 31 + drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 3 drivers/net/ethernet/marvell/octeontx2/af/rvu.h | 1 drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c | 5 drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c | 8 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c | 8 drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.c | 4 drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.h | 1 drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 6 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 9 drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c | 20 drivers/net/ethernet/pensando/ionic/ionic_dev.h | 2 drivers/net/ethernet/pensando/ionic/ionic_lif.c | 16 drivers/net/ethernet/realtek/r8169_main.c | 7 drivers/net/ethernet/stmicro/stmmac/dwmac5.c | 45 - drivers/net/ethernet/stmicro/stmmac/dwmac5.h | 4 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c | 3 drivers/net/ethernet/stmicro/stmmac/hwif.h | 4 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 1 drivers/net/hyperv/Kconfig | 1 drivers/net/usb/r8152.c | 110 ++-- drivers/nvme/host/nvme.h | 5 drivers/nvme/host/pci.c | 16 drivers/of/dynamic.c | 5 drivers/parport/parport_pc.c | 21 drivers/platform/mellanox/mlxbf-bootctl.c | 39 + drivers/platform/mellanox/mlxbf-pmc.c | 14 drivers/platform/surface/aggregator/core.c | 5 drivers/platform/x86/Kconfig | 2 drivers/platform/x86/asus-nb-wmi.c | 11 drivers/platform/x86/asus-wmi.c | 8 drivers/platform/x86/wmi.c | 5 drivers/powercap/dtpm_cpu.c | 17 drivers/scsi/be2iscsi/be_main.c | 1 drivers/tee/optee/device.c | 17 drivers/tty/serial/8250/8250_dw.c | 1 drivers/tty/serial/8250/8250_early.c | 1 drivers/tty/serial/8250/8250_omap.c | 14 drivers/tty/serial/amba-pl011.c | 112 ++-- drivers/tty/serial/sc16is7xx.c | 12 drivers/usb/gadget/function/f_hid.c | 7 drivers/usb/gadget/udc/core.c | 4 drivers/usb/host/xhci-pci.c | 2 drivers/usb/typec/class.c | 5 drivers/vdpa/mlx5/net/mlx5_vnet.c | 7 fs/nilfs2/sufile.c | 42 + fs/nilfs2/the_nilfs.c | 6 fs/smb/client/cifsfs.c | 174 ++++++- fs/smb/client/smb2ops.c | 2 include/linux/cpuhotplug.h | 1 include/linux/hrtimer.h | 4 include/linux/hugetlb.h | 5 include/linux/iommu.h | 1 include/linux/kprobes.h | 13 include/linux/rethook.h | 7 include/linux/stmmac.h | 1 include/net/genetlink.h | 2 include/net/tcp.h | 9 include/rdma/ib_umem.h | 9 include/rdma/ib_verbs.h | 1 include/uapi/linux/netfilter/nf_tables.h | 2 io_uring/io_uring.c | 9 io_uring/rsrc.h | 7 kernel/cgroup/legacy_freezer.c | 8 kernel/cpu.c | 8 kernel/events/core.c | 61 +- kernel/kprobes.c | 4 kernel/time/hrtimer.c | 33 - kernel/trace/rethook.c | 23 kernel/trace/ring_buffer.c | 23 kernel/trace/trace.c | 177 ++----- lib/zstd/common/fse_decompress.c | 2 mm/damon/sysfs.c | 2 mm/filemap.c | 2 mm/hugetlb.c | 7 net/core/drop_monitor.c | 4 net/core/filter.c | 19 net/core/scm.c | 6 net/ipv4/ip_gre.c | 11 net/ipv4/tcp.c | 22 net/ipv4/tcp_input.c | 6 net/ipv6/ip6_fib.c | 6 net/netfilter/ipset/ip_set_core.c | 14 net/netfilter/nf_tables_api.c | 5 net/netfilter/nft_dynset.c | 13 net/netfilter/nft_exthdr.c | 108 ++++ net/netfilter/nft_fib.c | 8 net/netfilter/nft_set_pipapo.c | 3 net/netfilter/xt_owner.c | 16 net/netlink/genetlink.c | 3 net/packet/af_packet.c | 16 net/packet/internal.h | 2 net/psample/psample.c | 3 net/xdp/xsk.c | 5 scripts/checkstack.pl | 8 scripts/dtc/dt-extract-compatibles | 31 - scripts/kconfig/symbol.c | 14 sound/core/pcm.c | 1 sound/pci/hda/patch_realtek.c | 3 sound/soc/amd/yc/acp6x-mach.c | 7 sound/soc/codecs/lpass-tx-macro.c | 5 sound/soc/codecs/wm_adsp.c | 8 sound/soc/fsl/fsl_sai.c | 21 sound/usb/mixer_quirks.c | 30 + 213 files changed, 2292 insertions(+), 1307 deletions(-)
Alex Bee (1):
arm64: dts: rockchip: Expand reg size of vdec node for RK3399
Alex Deucher (1):
drm/amdgpu: simplify amdgpu_ras_eeprom.c
Alex Pakhunov (2):
tg3: Move the [rt]x_dropped counters to tg3_napi
tg3: Increment tx_dropped in tg3_tso_bug()
Andy Shevchenko (1):
serial: 8250_dw: Add ACPI ID for Granite Rapids-D UART
AngeloGioacchino Del Regno (6):
arm64: dts: mediatek: cherry: Fix interrupt cells for MT6360 on I2C7
arm64: dts: mediatek: mt8173-evb: Fix regulator-fixed node names
arm64: dts: mediatek: mt8195: Fix PM suspend/resume with venc clocks
arm64: dts: mediatek: mt8183: Fix unit address for scp reserved memory
arm64: dts: mediatek: mt8183: Move thermal-zones to the root node
arm64: dts: mediatek: mt8183-evb: Fix unit_address_vs_reg warning on ntc
Ankit Nautiyal (1):
drm/i915/display: Drop check for doublescan mode in modevalid
Armin Wolf (2):
platform/x86: wmi: Skip blocks with zero instances
hwmon: (acpi_power_meter) Fix 4.29 MW bug
Arnd Bergmann (2):
drm/bridge: tc358768: select CONFIG_VIDEOMODE_HELPERS
ARM: PL011: Fix DMA support
Ashwin Dayanand Kamat (1):
x86/sev: Fix kernel crash due to late update to read-only ghcb_version
Bin Li (1):
ALSA: hda/realtek: Enable headset on Lenovo M90 Gen5
Boerge Struempfel (1):
gpiolib: sysfs: Fix error handling on failed export
Borislav Petkov (AMD) (1):
x86/CPU/AMD: Check vendor in the AMD microcode callback
Brett Creeley (1):
ionic: Fix dim work handling in split interrupt mode
Cameron Williams (1):
parport: Add support for Brainboxes IX/UC/PX parallel cards
Candice Li (4):
drm/amdgpu: Update ras eeprom support for smu v13_0_0 and v13_0_10 drm/amdgpu: Add EEPROM I2C address support for ip discovery drm/amdgpu: Add I2C EEPROM support on smu v13_0_6 drm/amdgpu: Update EEPROM I2C address for smu v13_0_0
Carlos Llamas (1):
binder: fix memory leaks of spam and pending work
Christophe JAILLET (1):
hwmon: (nzxt-kraken2) Fix error handling path in kraken2_probe()
ChunHao Lin (1):
r8169: fix rtl8125b PAUSE frames blasting when suspended
Claudio Imbrenda (1):
KVM: s390/mm: Properly reset no-dat
Clément Léger (1):
riscv: fix misaligned access handling of C.SWSP and C.SDSP
Dan Carpenter (1):
mm/damon/sysfs: eliminate potential uninitialized variable warning
Daniel Borkmann (1):
packet: Move reference count in packet_sock to atomic_long_t
Daniel Mack (1):
serial: sc16is7xx: address RX timeout interrupt errata
Daniil Maximov (1):
net: atlantic: Fix NULL dereference of skb pointer in
David Howells (3):
cifs: Fix non-availability of dedup breaking generic/304
cifs: Fix flushing, invalidation and file size with copy_file_range()
cifs: Fix flushing, invalidation and file size with FICLONE
David Jeffery (1):
md/raid6: use valid sector values to determine if an I/O should wait on the reshape
David Thompson (1):
mlxbf-bootctl: correctly identify secure boot with development keys
Dinghao Liu (3):
net: bnxt: fix a potential use-after-free in bnxt_init_tc
ASoC: wm_adsp: fix memleak in wm_adsp_buffer_populate
scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle()
Douglas Anderson (5):
r8152: Rename RTL8152_UNPLUG to RTL8152_INACCESSIBLE
r8152: Add RTL8152_INACCESSIBLE checks to more loops
r8152: Add RTL8152_INACCESSIBLE to r8156b_wait_loading_flash()
r8152: Add RTL8152_INACCESSIBLE to r8153_pre_firmware_1()
r8152: Add RTL8152_INACCESSIBLE to r8153_aldps_en()Eric Dumazet (2):
ipv6: fix potential NULL deref in fib6_add()
tcp: do not accept ACK of bytes we never sent
Eugen Hristev (2):
arm64: dts: mediatek: mt7622: fix memory node warning check
arm64: dts: mediatek: mt8183-kukui-jacuzzi: fix dsi unnecessary cells properties
Fabio Estevam (2):
ARM: dts: imx6ul-pico: Describe the Ethernet PHY clock
ARM: dts: imx28-xea: Pass the 'model' property
Florian Westphal (2):
netfilter: nf_tables: fix 'exist' matching on bigendian arches
netfilter: nft_set_pipapo: skip inactive elements during set walk
Francesco Dolcini (1):
platform/surface: aggregator: fix recv_buf() return value
Geetha sowjanya (3):
octeontx2-af: Fix mcs sa cam entries size
octeontx2-af: Fix mcs stats register address
octeontx2-af: Add missing mcs flr handler call
Georg Gottleuber (1):
nvme-pci: Add sleep quirk for Kingston drives
Greg Kroah-Hartman (1):
Linux 6.1.68
Hans de Goede (1):
platform/x86: asus-wmi: Move i8042 filter install to shared asus-wmi code
Heiko Carstens (1):
checkstack: fix printed address
Helge Deller (2):
parisc: Reduce size of the bug_table on 64-bit kernel by half
parisc: Fix asm operand number out of range build error in bug table
Hengqi Chen (2):
LoongArch: BPF: Don't sign extend memory load operand
LoongArch: BPF: Don't sign extend function return value
Hsin-Yi Wang (1):
arm64: dts: mt8183: kukui: Fix underscores in node names
Hugh Dickins (1):
mm: fix oops when filemap_map_pmd() without prealloc_pte
Ido Schimmel (2):
psample: Require 'CAP_NET_ADMIN' when joining "packets" group
drop_monitor: Require 'CAP_SYS_ADMIN' when joining "events" group
Ivan Vecera (1):
i40e: Fix unexpected MFS warning message
JP Kobryn (1):
kprobes: consistent rcu api usage for kretprobe holder
Jack Wang (4):
RDMA/rtrs-srv: Do not unconditionally enable irq RDMA/rtrs-clt: Start hb after path_up RDMA/rtrs-clt: Fix the max_send_wr setting RDMA/rtrs-clt: Remove the warnings for req in_use check
Jacob Keller (1):
iavf: validate tx_coalesce_usecs even if rx_coalesce_usecs is zero
Jan Bottorff (1):
i2c: designware: Fix corrupted memory seen in the ISR
Jani Nikula (1):
drm/i915/sdvo: stop caching has_hdmi_monitor in struct intel_sdvo
Jason Zhang (1):
ALSA: pcm: fix out-of-bounds in snd_pcm_state_names
Jeremy Sowden (1):
netfilter: nft_exthdr: add boolean DCCP option matching
Jia Jie Ho (1):
riscv: Kconfig: Add select ARM_AMBA to SOC_STARFIVE
Jianheng Zhang (1):
net: stmmac: fix FPE events losing
Jiaxun Yang (3):
MIPS: Loongson64: Reserve vgabios memory on boot
MIPS: Loongson64: Handle more memory types passed from firmware
MIPS: Loongson64: Enable DMA noncoherent support
John Fastabend (1):
bpf: sockmap, updating the sg structure should also update curr
Jonas Karlman (1):
arm64: dts: rockchip: Expand reg size of vdec node for RK3328
Jozsef Kadlecsik (1):
netfilter: ipset: fix race condition between swap/destroy and kernel side add/del/test
Junhao He (1):
hwtracing: hisi_ptt: Add dummy callback pmu::read()
Junxian Huang (1):
RDMA/hns: Fix unnecessary err return when using invalid congest control algorithm
Kalesh AP (1):
RDMA/bnxt_re: Correct module description string
Kirill A. Shutemov (2):
x86/coco: Disable 32-bit emulation by default on TDX and SEV x86/tdx: Allow 32-bit emulation by default
Konrad Dybcio (1):
dt-bindings: interrupt-controller: Allow #power-domain-cells
Konstantin Aladyshev (1):
usb: gadget: f_hid: fix report descriptor allocation
Krzysztof Kozlowski (1):
arm64: dts: mediatek: add missing space before {Kunwu Chan (3):
platform/mellanox: Add null pointer checks for devm_kasprintf() platform/mellanox: Check devm_hwmon_device_register_with_groups() return value
ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init
Luben Tuikov (5):
drm/amdgpu: Remove redundant I2C EEPROM address drm/amdgpu: Decouple RAS EEPROM addresses from chips drm/amdgpu: Add support for RAS table at 0x40000 drm/amdgpu: Remove second moot switch to set EEPROM I2C address drm/amdgpu: Return from switch early for EEPROM I2C address
Luca Ceresoli (1):
of: dynamic: Fix of_reconfig_get_state_change() return value documentation
Lukasz Luba (1):
powercap: DTPM: Fix missing cpufreq_cpu_put() calls
Malcolm Hart (1):
ASoC: amd: yc: Fix non-functional mic on ASUS E1504FA
Mario Limonciello (1):
ALSA: hda/realtek: Add Framework laptop 16 to quirks
Masahiro Yamada (1):
kconfig: fix memory leak from range properties
Masami Hiramatsu (Google) (1):
rethook: Use __rcu pointer for rethook::handler
Mathias Nyman (1):
Revert "xhci: Loosen RPM as default policy to cover for AMD xHC 1.1"
Matthias Reichl (1):
regmap: fix bogus error on regcache_sync success
Md Haris Iqbal (3):
RDMA/rtrs-srv: Check return values while processing info request RDMA/rtrs-srv: Free srv_mr iu only when always_invalidate is true RDMA/rtrs-srv: Destroy path files after making sure no IOs in-flight
Mike Kravetz (1):
hugetlb: fix null-ptr-deref in hugetlb_vma_lock_write
Mike Marciniszyn (1):
RDMA/core: Fix umem iterator when PAGE_SIZE is greater then HCA pgsz
Mukesh Ojha (1):
devcoredump: Send uevent once devcd is ready
Mustafa Ismail (2):
RDMA/irdma: Do not modify to SQD on error
RDMA/irdma: Add wait for suspend on SQD
Nathan Rossi (1):
arm64: dts: imx8mp: imx8mq: Add parkmode-disable-ss-quirk on DWC3
Naveen Mamindlapalli (1):
octeontx2-pf: consider both Rx and Tx packet stats for adaptive interrupt coalescing
Neil Armstrong (1):
ASoC: codecs: lpass-tx-macro: set active_decimator correct default value
Nick Terrell (1):
zstd: Fix array-index-out-of-bounds UBSAN warning
Nikolay Borisov (1):
x86: Introduce ia32_enabled()
Nithin Dabilpuram (1):
octeontx2-af: Adjust Tx credits when MCS external bypass is disabled
Nícolas F. R. A. Prado (2):
dt: dt-extract-compatibles: Handle cfile arguments in generator function
dt: dt-extract-compatibles: Don't follow symlinks when walking tree
Pablo Neira Ayuso (2):
netfilter: nf_tables: bail out on mismatching dynset and set expressions
netfilter: nf_tables: validate family when identifying table via handle
Paolo Abeni (1):
tcp: fix mid stream window clamp.
Paulo Alcantara (1):
smb: client: fix potential NULL deref in parse_dfs_referrals()
Pavel Begunkov (2):
io_uring/af_unix: disable sending io_uring over sockets
io_uring: fix mutex_unlock with unreferenced ctx
Peng Fan (1):
arm64: dts: imx8mq: drop usb3-resume-missing-cas from usb
Peter Zijlstra (1):
perf: Fix perf_event_validate_size()
Petr Pavlu (3):
tracing: Fix a warning when allocating buffered events fails
tracing: Fix incomplete locking when disabling buffered events
tracing: Fix a possible race when disabling buffered events
Phil Sutter (1):
netfilter: xt_owner: Fix for unsafe access of sk->sk_socket
Philipp Zabel (1):
ARM: dts: imx7: Declare timers compatible with fsl,imx6dl-gpt
Prike Liang (1):
drm/amdgpu: correct the amdgpu runtime dereference usage count
RD Babiera (1):
usb: typec: class: fix typec_altmode_put_partner to put plugs
Rahul Bhansali (1):
octeontx2-af: Update Tx link register range
Randy Dunlap (1):
hv_netvsc: rndis_filter needs to select NLS
Robin Murphy (1):
iommu: Avoid more races around device probe
Ronald Wahl (3):
serial: 8250: 8250_omap: Clear UART_HAS_RHR_IT_DIS bit
serial: 8250: 8250_omap: Do not start RX DMA on THRI interrupt
serial: 8250_omap: Add earlycon support for the AM654 UART controller
Roy Luo (1):
USB: gadget: core: adjust uevent timing on gadget unbind
Ryusuke Konishi (2):
nilfs2: fix missing error check for sb_set_blocksize call
nilfs2: prevent WARNING in nilfs_sufile_set_segment_usage()
Sarah Grant (1):
ALSA: usb-audio: Add Pioneer DJM-450 mixer controls
Sean Christopherson (1):
KVM: SVM: Update EFER software model on CR0 trap for SEV-ES
Shannon Nelson (1):
ionic: fix snprintf format length warning
Shengjiu Wang (1):
ASoC: fsl_sai: Fix no frame sync clock issue on i.MX8MP
Shifeng Li (2):
RDMA/irdma: Fix UAF in irdma_sc_ccq_get_cqe_info() RDMA/irdma: Avoid free the non-cqp_request scratch
Shigeru Yoshida (1):
ipv4: ip_gre: Avoid skb_pull() failure in ipgre_xmit()
Sindhu Devale (1):
RDMA/irdma: Refactor error handling in create CQP
Srinivasan Shanmugam (1):
drm/amd/amdgpu: Fix warnings in amdgpu/amdgpu_display.c
Steve Sistare (1):
vdpa/mlx5: preserve CVQ vringh index
Steven Rostedt (Google) (5):
ring-buffer: Test last update in 32bit version of __rb_time_read()
tracing: Always update snapshot buffer size
tracing: Disable snapshot buffer when stopping instance tracers
ring-buffer: Force absolute timestamp on discard of event
tracing: Stop current tracer when resizing buffer
Su Hui (2):
misc: mei: client.c: return negative error code in mei_cl_write
misc: mei: client.c: fix problem of return '-EOVERFLOW' in mei_cl_write
Subbaraya Sundeep (2):
octeontx2-pf: Add missing mutex lock in otx2_get_pauseparam
octeontx2-af: Check return value of nix_get_nixlf before using nixlf
Sumit Garg (1):
tee: optee: Fix supplicant based device enumeration
Thomas Bogendoerfer (1):
MIPS: kernel: Clear FPU states when setting up kernel threads
Thomas Gleixner (3):
hrtimers: Push pending hrtimers away from outgoing CPU earlier
x86/entry: Convert INT 0x80 emulation to IDTENTRY
x86/entry: Do not allow external 0x80 interruptsThomas Reichinger (1):
arcnet: restoring support for multiple Sohard Arcnet cards
Tim Bosse (1):
ALSA: hda/realtek: add new Framework laptop to quirks
Tim Huang (1):
drm/amdgpu: fix memory overflow in the IB test
Tim Van Patten (1):
cgroup_freezer: cgroup_freezing: Check if not frozen
Uwe Kleine-König (2):
coresight: etm4x: Make etm4_remove_dev() return void
coresight: etm4x: Remove bogous __exit annotation for some functions
Ville Syrjälä (2):
drm/i915/lvds: Use REG_BIT() & co.
drm/i915: Skip some timing checks on BXT/GLK DSI transcoders
Ye Bin (1):
md: introduce md_ro_state
Yewon Choi (1):
xsk: Skip polling event check for unbound socket
Yonglong Liu (2):
net: hns: fix wrong head when modify the tx feature when sending packets
net: hns: fix fake link up on xge port
Yu Kuai (1):
md: don't leave 'MD_RECOVERY_FROZEN' in error path of md_set_readonly()
YuanShang (1):
drm/amdgpu: correct chunk_ptr to a pointer to chunk.
Zheng Yejian (1):
tracing: Set actual size after ring buffer resize
Zhipeng Lu (1):
octeontx2-af: fix a use-after-free in rvu_npa_register_reporters
Greg Kroah-Hartman
maintainerDocumentation/ABI/testing/sysfs-bus-optee-devices +9 -0
@@ -6,3 +6,12 @@ Description: OP-TEE bus provides reference to registered drivers under this directory. The <uuid> matches Trusted Application (TA) driver and corresponding TA in secure OS. Drivers are free to create needed API under optee-ta-<uuid> directory. + +What: /sys/bus/tee/devices/optee-ta-<uuid>/need_supplicant +Date: November 2023 +KernelVersion: 6.7 +Contact: [email protected] +Description: + Allows to distinguish whether an OP-TEE based TA/device requires user-space + tee-supplicant to function properly or not. This attribute will be present for + devices which depend on tee-supplicant to be running.
Documentation/devicetree/bindings/interrupt-controller/qcom,mpm.yaml +4 -0
@@ -62,6 +62,9 @@ properties: - description: MPM pin number - description: GIC SPI number for the MPM pin + '#power-domain-cells': + const: 0 + required: - compatible - reg
@@ -93,4 +96,5 @@ examples: <86 183>, <90 260>, <91 260>; + #power-domain-cells = <0>; };
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 1 -SUBLEVEL = 67 +SUBLEVEL = 68 EXTRAVERSION = NAME = Curry Ramen
arch/arm/boot/dts/imx28-xea.dts +1 -0
@@ -8,6 +8,7 @@ #include "imx28-lwe.dtsi" / { + model = "Liebherr XEA board"; compatible = "lwn,imx28-xea", "fsl,imx28"; };
arch/arm/boot/dts/imx6ul-pico.dtsi +2 -0
@@ -121,6 +121,8 @@ ethphy1: ethernet-phy@1 { max-speed = <100>; interrupt-parent = <&gpio5>; interrupts = <6 IRQ_TYPE_LEVEL_LOW>; + clocks = <&clks IMX6UL_CLK_ENET_REF>; + clock-names = "rmii-ref"; }; }; };
arch/arm/boot/dts/imx7s.dtsi +4 -4
@@ -454,7 +454,7 @@ iomuxc_lpsr: pinctrl@302c0000 { }; gpt1: timer@302d0000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x302d0000 0x10000>; interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX7D_GPT1_ROOT_CLK>,
@@ -463,7 +463,7 @@ gpt1: timer@302d0000 { }; gpt2: timer@302e0000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x302e0000 0x10000>; interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX7D_GPT2_ROOT_CLK>,
@@ -473,7 +473,7 @@ gpt2: timer@302e0000 { }; gpt3: timer@302f0000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x302f0000 0x10000>; interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX7D_GPT3_ROOT_CLK>,
@@ -483,7 +483,7 @@ gpt3: timer@302f0000 { }; gpt4: timer@30300000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x30300000 0x10000>; interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX7D_GPT4_ROOT_CLK>,
arch/arm/mach-imx/mmdc.c +6 -1
@@ -502,6 +502,10 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b name =devm_kasprintf (&pdev->dev,GFP_KERNEL ,"mmdc%d" , ret); +if (!name) { + ret = -ENOMEM ; + goto pmu_release_id; + } pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk; pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data;
@@ -524,9 +528,10 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b pmu_register_err:pr_warn ("MMDC Perf PMU failed (%d), disabled\n" , ret); -ida_simple_remove (&mmdc_ida, pmu_mmdc->id);cpuhp_state_remove_instance_nocalls (cpuhp_mmdc_state, &pmu_mmdc->node);hrtimer_cancel (&pmu_mmdc->hrtimer); +pmu_release_id: +ida_simple_remove (&mmdc_ida, pmu_mmdc->id); pmu_free:kfree (pmu_mmdc);return ret;
arch/arm64/boot/dts/freescale/imx8mp.dtsi +2 -0
@@ -1301,6 +1301,7 @@ usb_dwc3_0: usb@38100000 { phys = <&usb3_phy0>, <&usb3_phy0>; phy-names = "usb2-phy", "usb3-phy"; snps,gfladj-refclk-lpm-sel-quirk; + snps,parkmode-disable-ss-quirk; }; };
@@ -1343,6 +1344,7 @@ usb_dwc3_1: usb@38200000 { phys = <&usb3_phy1>, <&usb3_phy1>; phy-names = "usb2-phy", "usb3-phy"; snps,gfladj-refclk-lpm-sel-quirk; + snps,parkmode-disable-ss-quirk; }; };
arch/arm64/boot/dts/freescale/imx8mq.dtsi +2 -2
@@ -1431,7 +1431,7 @@ usb_dwc3_0: usb@38100000 { phys = <&usb3_phy0>, <&usb3_phy0>; phy-names = "usb2-phy", "usb3-phy"; power-domains = <&pgc_otg1>; - usb3-resume-missing-cas; + snps,parkmode-disable-ss-quirk; status = "disabled"; };
@@ -1463,7 +1463,7 @@ usb_dwc3_1: usb@38200000 { phys = <&usb3_phy1>, <&usb3_phy1>; phy-names = "usb2-phy", "usb3-phy"; power-domains = <&pgc_otg2>; - usb3-resume-missing-cas; + snps,parkmode-disable-ss-quirk; status = "disabled"; };
arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +1 -1
@@ -72,7 +72,7 @@ led-1 { }; }; - memory { + memory@40000000 { reg = <0 0x40000000 0 0x40000000>; };
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +1 -1
@@ -54,7 +54,7 @@ key-wps { }; }; - memory { + memory@40000000 { reg = <0 0x40000000 0 0x20000000>; };
arch/arm64/boot/dts/mediatek/mt8173-evb.dts +2 -2
@@ -43,7 +43,7 @@ extcon_usb: extcon_iddig { id-gpio = <&pio 16 GPIO_ACTIVE_HIGH>; }; - usb_p1_vbus: regulator@0 { + usb_p1_vbus: regulator-usb-p1 { compatible = "regulator-fixed"; regulator-name = "usb_vbus"; regulator-min-microvolt = <5000000>;
@@ -52,7 +52,7 @@ usb_p1_vbus: regulator@0 { enable-active-high; }; - usb_p0_vbus: regulator@1 { + usb_p0_vbus: regulator-usb-p0 { compatible = "regulator-fixed"; regulator-name = "vbus"; regulator-min-microvolt = <5000000>;
arch/arm64/boot/dts/mediatek/mt8183-evb.dts +26 -26
136 lines not on this page · raw message
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi +5 -3
@@ -101,6 +101,8 @@ cros_ec_pwm: pwm { &dsi0 { status = "okay"; + /delete-property/#size-cells; + /delete-property/#address-cells; /delete-node/panel@0; ports { port {
@@ -437,20 +439,20 @@ pins2 { }; touchscreen_pins: touchscreen-pins { - touch_int_odl { + touch-int-odl { pinmux = <PINMUX_GPIO155__FUNC_GPIO155>; input-enable; bias-pull-up; }; - touch_rst_l { + touch-rst-l { pinmux = <PINMUX_GPIO156__FUNC_GPIO156>; output-high; }; }; trackpad_pins: trackpad-pins { - trackpad_int { + trackpad-int { pinmux = <PINMUX_GPIO7__FUNC_GPIO7>; input-enable; bias-disable; /* pulled externally */
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi +48 -48
352 lines not on this page · raw message
arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts +6 -6
@@ -178,7 +178,7 @@ &mmc1 { &pio { i2c_pins_0: i2c0 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO82__FUNC_SDA0>, <PINMUX_GPIO83__FUNC_SCL0>; mediatek,pull-up-adv = <3>;
@@ -187,7 +187,7 @@ pins_i2c{ }; i2c_pins_1: i2c1 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO81__FUNC_SDA1>, <PINMUX_GPIO84__FUNC_SCL1>; mediatek,pull-up-adv = <3>;
@@ -196,7 +196,7 @@ pins_i2c{ }; i2c_pins_2: i2c2 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO103__FUNC_SCL2>, <PINMUX_GPIO104__FUNC_SDA2>; mediatek,pull-up-adv = <3>;
@@ -205,7 +205,7 @@ pins_i2c{ }; i2c_pins_3: i2c3 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO50__FUNC_SCL3>, <PINMUX_GPIO51__FUNC_SDA3>; mediatek,pull-up-adv = <3>;
@@ -214,7 +214,7 @@ pins_i2c{ }; i2c_pins_4: i2c4 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO105__FUNC_SCL4>, <PINMUX_GPIO106__FUNC_SDA4>; mediatek,pull-up-adv = <3>;
@@ -223,7 +223,7 @@ pins_i2c{ }; i2c_pins_5: i2c5 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO48__FUNC_SCL5>, <PINMUX_GPIO49__FUNC_SDA5>; mediatek,pull-up-adv = <3>;
arch/arm64/boot/dts/mediatek/mt8183.dtsi +121 -121
252 lines not on this page · raw message
arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi +1 -1
@@ -207,7 +207,7 @@ &i2c7 { pinctrl-0 = <&i2c7_pins>; pmic@34 { - #interrupt-cells = <1>; + #interrupt-cells = <2>; compatible = "mediatek,mt6360"; reg = <0x34>; interrupt-controller;
arch/arm64/boot/dts/mediatek/mt8195.dtsi +5 -1
@@ -471,6 +471,8 @@ power-domain@MT8195_POWER_DOMAIN_VDEC1 { power-domain@MT8195_POWER_DOMAIN_VENC_CORE1 { reg = <MT8195_POWER_DOMAIN_VENC_CORE1>; + clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>; + clock-names = "venc1-larb"; mediatek,infracfg = <&infracfg_ao>; #power-domain-cells = <0>; };
@@ -533,6 +535,8 @@ power-domain@MT8195_POWER_DOMAIN_VDEC2 { power-domain@MT8195_POWER_DOMAIN_VENC { reg = <MT8195_POWER_DOMAIN_VENC>; + clocks = <&vencsys CLK_VENC_LARB>; + clock-names = "venc0-larb"; mediatek,infracfg = <&infracfg_ao>; #power-domain-cells = <0>; };
@@ -1985,7 +1989,7 @@ larb20: larb@1b010000 { reg = <0 0x1b010000 0 0x1000>; mediatek,larb-id = <20>; mediatek,smi = <&smi_common_vpp>; - clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>, + clocks = <&vencsys_core1 CLK_VENC_CORE1_VENC>, <&vencsys_core1 CLK_VENC_CORE1_GALS>, <&vppsys0 CLK_VPP0_GALS_VDO0_VDO1_VENCSYS_CORE1>; clock-names = "apb", "smi", "gals";
arch/arm64/boot/dts/rockchip/rk3328.dtsi +1 -1
@@ -666,7 +666,7 @@ vpu_mmu: iommu@ff350800 { vdec: video-codec@ff360000 { compatible = "rockchip,rk3328-vdec", "rockchip,rk3399-vdec"; - reg = <0x0 0xff360000 0x0 0x400>; + reg = <0x0 0xff360000 0x0 0x480>; interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>, <&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>;
arch/arm64/boot/dts/rockchip/rk3399.dtsi +4 -2
@@ -1062,7 +1062,9 @@ power-domain@RK3399_PD_VCODEC { power-domain@RK3399_PD_VDU { reg = <RK3399_PD_VDU>; clocks = <&cru ACLK_VDU>, - <&cru HCLK_VDU>; + <&cru HCLK_VDU>, + <&cru SCLK_VDU_CA>, + <&cru SCLK_VDU_CORE>; pm_qos = <&qos_video_m1_r>, <&qos_video_m1_w>; #power-domain-cells = <0>;
@@ -1338,7 +1340,7 @@ vpu_mmu: iommu@ff650800 { vdec: video-codec@ff660000 { compatible = "rockchip,rk3399-vdec"; - reg = <0x0 0xff660000 0x0 0x400>; + reg = <0x0 0xff660000 0x0 0x480>; interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>; clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>, <&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
arch/loongarch/net/bpf_jit.c +2 -10
@@ -796,8 +796,6 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, bool ext/* function return */ case BPF_JMP |BPF_EXIT : -emit_sext_32 (ctx, regmap[BPF_REG_0 ], true); -if (i == ctx->prog->len -1 )break ;
@@ -844,14 +842,8 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, bool ext }break ;case BPF_DW : -if (is_signed_imm12 (off)) { -emit_insn (ctx, ldd, dst, src, off); - }else if (is_signed_imm14 (off)) { -emit_insn (ctx, ldptrd, dst, src, off); - }else { -move_imm (ctx, t1, off, is32); -emit_insn (ctx, ldxd, dst, src, t1); - } +move_imm (ctx, t1, off, is32); +emit_insn (ctx, ldxd, dst, src, t1);break ; }break ;
arch/mips/Kconfig +2 -0
@@ -483,6 +483,7 @@ config MACH_LOONGSON2EF config MACH_LOONGSON64 bool "Loongson 64-bit family of machines" + select ARCH_DMA_DEFAULT_COHERENT select ARCH_SPARSEMEM_ENABLE select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO
@@ -1304,6 +1305,7 @@ config CPU_LOONGSON64 select CPU_SUPPORTS_MSA select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT select CPU_MIPSR2_IRQ_VI + select DMA_NONCOHERENT select WEAK_ORDERING select WEAK_REORDERING_BEYOND_LLSC select MIPS_ASID_BITS_VARIABLE
arch/mips/include/asm/mach-loongson64/boot_param.h +7 -2
@@ -14,7 +14,11 @@#define ADAPTER_ROM 8#define ACPI_TABLE 9#define SMBIOS_TABLE 10 -#define MAX_MEMORY_TYPE 11 +#define UMA_VIDEO_RAM 11 +#define VUMA_VIDEO_RAM 12 +#define MAX_MEMORY_TYPE 13 + +#define MEM_SIZE_IS_IN_BYTES (1 << 31)#define LOONGSON3_BOOT_MEM_MAP_MAX 128struct efi_memory_map_loongson {
@@ -117,7 +121,8 @@ struct irq_source_routing_table {u64 pci_io_start_addr;u64 pci_io_end_addr;u64 pci_config_addr; -u32 dma_mask_bits; +u16 dma_mask_bits; +u16 dma_noncoherent; } __packed;struct interface_info {
arch/mips/kernel/process.c +13 -12
@@ -121,6 +121,19 @@ int copy_thread(struct task_struct *p, const struct kernel_clone_args *args)/* Put the stack after the struct pt_regs. */ childksp = (unsigned long ) childregs; p->thread.cp0_status = (read_c0_status () & ~(ST0_CU2 |ST0_CU1 )) |ST0_KERNEL_CUMASK ; + +/* +* New tasks lose permission to use the fpu. This accelerates context +* switching for most programs since they don't use the fpu. +*/ +clear_tsk_thread_flag (p,TIF_USEDFPU ); +clear_tsk_thread_flag (p,TIF_USEDMSA ); +clear_tsk_thread_flag (p,TIF_MSA_CTX_LIVE ); + +#ifdef CONFIG_MIPS_MT_FPAFF +clear_tsk_thread_flag (p,TIF_FPUBOUND ); +#endif /* CONFIG_MIPS_MT_FPAFF */ +if (unlikely (args->fn)) {/* kernel thread */ unsigned long status = p->thread.cp0_status;
@@ -149,20 +162,8 @@ int copy_thread(struct task_struct *p, const struct kernel_clone_args *args) p->thread.reg29 = (unsigned long ) childregs; p->thread.reg31 = (unsigned long ) ret_from_fork; -/* -* New tasks lose permission to use the fpu. This accelerates context -* switching for most programs since they don't use the fpu. -*/ childregs->cp0_status &= ~(ST0_CU2 |ST0_CU1 ); -clear_tsk_thread_flag (p,TIF_USEDFPU ); -clear_tsk_thread_flag (p,TIF_USEDMSA ); -clear_tsk_thread_flag (p,TIF_MSA_CTX_LIVE ); - -#ifdef CONFIG_MIPS_MT_FPAFF -clear_tsk_thread_flag (p,TIF_FPUBOUND ); -#endif /* CONFIG_MIPS_MT_FPAFF */ -#ifdef CONFIG_MIPS_FP_SUPPORT atomic_set (&p->thread.bd_emu_frame,BD_EMUFRAME_NONE );#endif
arch/mips/loongson64/env.c +9 -1
@@ -13,6 +13,8 @@* Copyright (C) 2009 Lemote Inc. * Author: Wu Zhangjin, [email protected] */ + +#include <linux/dma-map-ops.h> #include <linux/export.h> #include <linux/pci_ids.h> #include <asm/bootinfo.h>
@@ -147,8 +149,14 @@ void __init prom_lefi_init_env(void) loongson_sysconf.dma_mask_bits = eirq_source->dma_mask_bits;if (loongson_sysconf.dma_mask_bits <32 || - loongson_sysconf.dma_mask_bits >64 ) + loongson_sysconf.dma_mask_bits >64 ) { loongson_sysconf.dma_mask_bits =32 ; + dma_default_coherent = true; + }else { + dma_default_coherent = !eirq_source->dma_noncoherent; + } + +pr_info ("Firmware: Coherent DMA: %s\n" , dma_default_coherent ?"on" :"off" ); loongson_sysconf.restart_addr = boot_p->reset_system.ResetWarm; loongson_sysconf.poweroff_addr = boot_p->reset_system.Shutdown;
arch/mips/loongson64/init.c +31 -16
69 lines not on this page · raw message
arch/parisc/Kconfig +5 -2
@@ -105,9 +105,12 @@ config ARCH_HAS_ILOG2_U64 default n config GENERIC_BUG - bool - default y + def_bool y depends on BUG + select GENERIC_BUG_RELATIVE_POINTERS if 64BIT + +config GENERIC_BUG_RELATIVE_POINTERS + bool config GENERIC_HWEIGHT bool
arch/parisc/include/asm/bug.h +18 -18
@@ -17,26 +17,27 @@#define PARISC_BUG_BREAK_ASM "break 0x1f, 0x1fff"#define PARISC_BUG_BREAK_INSN 0x03ffe01f/* PARISC_BUG_BREAK_ASM */ -#if defined(CONFIG_64BIT ) -#define ASM_WORD_INSN ".dword\t" +#ifdef CONFIG_GENERIC_BUG_RELATIVE_POINTERS +# define __BUG_REL (val) ".word " __stringify(val) " - ."#else -#define ASM_WORD_INSN ".word\t" +# define __BUG_REL (val) ".word " __stringify(val)#endif +#ifdef CONFIG_DEBUG_BUGVERBOSE #define BUG () \ do { \ asm volatile("\n" \ "1:\t" PARISC_BUG_BREAK_ASM "\n" \ "\t.pushsection __bug_table,\"a\"\n" \ - "\t.align %4\n" \ - "2:\t" ASM_WORD_INSN "1b, %c0\n" \ + "\t.align 4\n" \ + "2:\t" __BUG_REL(1b) "\n" \ + "\t" __BUG_REL(%c0) "\n" \ "\t.short %1, %2\n" \ - "\t.blockz %3-2*%4-2*2\n" \ + "\t.blockz %3-2*4-2*2\n" \ "\t.popsection" \ : : "i" (__FILE__), "i" (__LINE__), \ - "i" (0), "i" (sizeof(struct bug_entry)), \ - "i" (sizeof(long)) ); \ + "i" (0), "i" (sizeof(struct bug_entry)) ); \ unreachable(); \ } while(0)
@@ -54,15 +55,15 @@ asmvolatile ("\n" \"1:\t" PARISC_BUG_BREAK_ASM "\n" \"\t.pushsection __bug_table,\"a\"\n" \ -"\t.align %4\n" \ -"2:\t" ASM_WORD_INSN "1b, %c0\n" \ +"\t.align 4\n" \ + "2:\t" __BUG_REL(1b) "\n" \ + "\t" __BUG_REL(%c0) "\n" \"\t.short %1, %2\n" \ -"\t.blockz %3-2*%4-2*2\n" \ +"\t.blockz %3-2*4-2*2\n" \"\t.popsection" \ : : "i" (__FILE__), "i" (__LINE__), \"i" (BUGFLAG_WARNING |(flags)), \ -"i" (sizeof (struct bug_entry )), \ -"i" (sizeof (long )) ); \ + "i" (sizeof(struct bug_entry)) ); \ } while(0) #else#define __WARN_FLAGS (flags) \
@@ -70,14 +71,13 @@ asmvolatile ("\n" \"1:\t" PARISC_BUG_BREAK_ASM "\n" \"\t.pushsection __bug_table,\"a\"\n" \ -"\t.align %2\n" \ -"2:\t" ASM_WORD_INSN "1b\n" \ +"\t.align 4\n" \ + "2:\t" __BUG_REL(1b) "\n" \"\t.short %0\n" \ -"\t.blockz %1-%2-2\n" \ +"\t.blockz %1-4-2\n" \"\t.popsection" \ : : "i" (BUGFLAG_WARNING|(flags)), \ -"i" (sizeof (struct bug_entry )), \ -"i" (sizeof (long )) ); \ + "i" (sizeof(struct bug_entry)) ); \ } while(0)#endif
arch/riscv/Kconfig.socs +1 -0
@@ -23,6 +23,7 @@ config SOC_STARFIVE select PINCTRL select RESET_CONTROLLER select SIFIVE_PLIC + select ARM_AMBA help This enables support for StarFive SoC platform hardware.
arch/riscv/kernel/traps_misaligned.c +2 -4
@@ -342,16 +342,14 @@ int handle_misaligned_store(struct pt_regs *regs) } else if ((insn & INSN_MASK_C_SD) == INSN_MATCH_C_SD) { len =8 ; val.data_ulong =GET_RS2S (insn, regs); - }else if ((insn &INSN_MASK_C_SDSP ) ==INSN_MATCH_C_SDSP && - ((insn >>SH_RD ) &0x1f )) { + }else if ((insn &INSN_MASK_C_SDSP ) ==INSN_MATCH_C_SDSP ) { len =8 ; val.data_ulong =GET_RS2C (insn, regs);#endif }else if ((insn &INSN_MASK_C_SW ) ==INSN_MATCH_C_SW ) { len =4 ; val.data_ulong =GET_RS2S (insn, regs); - }else if ((insn &INSN_MASK_C_SWSP ) ==INSN_MATCH_C_SWSP && - ((insn >>SH_RD ) &0x1f )) { + }else if ((insn &INSN_MASK_C_SWSP ) ==INSN_MATCH_C_SWSP ) { len =4 ; val.data_ulong =GET_RS2C (insn, regs); }else {
arch/s390/mm/pgtable.c +1 -1
@@ -731,7 +731,7 @@ void ptep_zap_unused(struct mm_struct *mm, unsigned long addr,pte_clear (mm, addr, ptep); }if (reset) -pgste_val (pgste) &= ~_PGSTE_GPS_USAGE_MASK; +pgste_val (pgste) &= ~(_PGSTE_GPS_USAGE_MASK | _PGSTE_GPS_NODAT);pgste_set_unlock (ptep, pgste);preempt_enable (); }
arch/x86/coco/tdx/tdx.c +1 -0
@@ -8,6 +8,7 @@#include <asm/coco.h> #include <asm/tdx.h> #include <asm/vmx.h> +#include <asm/ia32.h> #include <asm/insn.h> #include <asm/insn-eval.h> #include <asm/pgtable.h>
arch/x86/entry/common.c +96 -1
121 lines not on this page · raw message
arch/x86/entry/entry_64_compat.S +0 -77
80 lines not on this page · raw message
arch/x86/include/asm/ia32.h +22 -1
@@ -68,6 +68,27 @@ extern void ia32_pick_mmap_layout(struct mm_struct *mm);#endif -#endif /* CONFIG_IA32_EMULATION */ +extern bool __ia32_enabled; + +static inline bool ia32_enabled (void ) +{ +return __ia32_enabled; +} + +static inline void ia32_disable (void ) +{ + __ia32_enabled = false; +} + +#else /* !CONFIG_IA32_EMULATION */ + +static inline bool ia32_enabled (void ) +{ +return IS_ENABLED (CONFIG_X86_32 ); +} + +static inline void ia32_disable (void ) {} + +#endif #endif /* _ASM_X86_IA32_H */
arch/x86/include/asm/idtentry.h +4 -0
@@ -569,6 +569,10 @@ DECLARE_IDTENTRY_RAW(X86_TRAP_UD, exc_invalid_op);DECLARE_IDTENTRY_RAW (X86_TRAP_BP , exc_int3);DECLARE_IDTENTRY_RAW_ERRORCODE (X86_TRAP_PF , exc_page_fault); +#if defined(CONFIG_IA32_EMULATION ) +DECLARE_IDTENTRY_RAW (IA32_SYSCALL_VECTOR , int80_emulation); +#endif +#ifdef CONFIG_X86_MCE #ifdef CONFIG_X86_64 DECLARE_IDTENTRY_MCE (X86_TRAP_MC , exc_machine_check);
arch/x86/include/asm/proto.h +0 -4
@@ -32,10 +32,6 @@ void entry_SYSCALL_compat(void);void entry_SYSCALL_compat_safe_stack (void );void entry_SYSRETL_compat_unsafe_stack (void );void entry_SYSRETL_compat_end (void ); -void entry_INT80_compat (void ); -#ifdef CONFIG_XEN_PV -void xen_entry_INT80_compat (void ); -#endif #endif void x86_configure_nx (void );
arch/x86/kernel/cpu/amd.c +3 -0
@@ -1291,6 +1291,9 @@ static void zenbleed_check_cpu(void *unused)void amd_check_microcode (void ) { +if (boot_cpu_data.x86_vendor !=X86_VENDOR_AMD ) +return ; +on_each_cpu (zenbleed_check_cpu,NULL ,1 ); }
arch/x86/kernel/idt.c +1 -1
@@ -117,7 +117,7 @@ static const __initconst struct idt_data def_idts[] = { SYSG(X86_TRAP_OF, asm_exc_overflow),#if defined(CONFIG_IA32_EMULATION ) - SYSG(IA32_SYSCALL_VECTOR, entry_INT80_compat), + SYSG(IA32_SYSCALL_VECTOR, asm_int80_emulation),#elif defined(CONFIG_X86_32 ) SYSG(IA32_SYSCALL_VECTOR, entry_INT80_32),#endif
arch/x86/kernel/sev.c +7 -4
@@ -1279,10 +1279,6 @@ void setup_ghcb(void)if (!cc_platform_has (CC_ATTR_GUEST_STATE_ENCRYPT ))return ; -/* First make sure the hypervisor talks a supported protocol. */ -if (!sev_es_negotiate_protocol ()) -sev_es_terminate (SEV_TERM_SET_GEN ,GHCB_SEV_ES_GEN_REQ ); -/* * Check whether the runtime #VC exception handler is active. It uses * the per-CPU GHCB page which is set up by sev_es_init_vc_handling().
@@ -1297,6 +1293,13 @@ void setup_ghcb(void)return ; } +/* +* Make sure the hypervisor talks a supported protocol. +* This gets called only in the BSP boot phase. +*/ +if (!sev_es_negotiate_protocol ()) +sev_es_terminate (SEV_TERM_SET_GEN ,GHCB_SEV_ES_GEN_REQ ); +/* * Clear the boot_ghcb. The first exception comes in before the bss * section is cleared.
arch/x86/kvm/svm/svm.c +5 -3
@@ -1786,15 +1786,17 @@ void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)bool old_paging =is_paging (vcpu);#ifdef CONFIG_X86_64 -if (vcpu->arch.efer &EFER_LME && !vcpu->arch.guest_state_protected) { +if (vcpu->arch.efer &EFER_LME ) {if (!is_paging (vcpu) && (cr0 &X86_CR0_PG )) { vcpu->arch.efer |=EFER_LMA ; - svm->vmcb->save.efer |=EFER_LMA |EFER_LME ; +if (!vcpu->arch.guest_state_protected) + svm->vmcb->save.efer |=EFER_LMA |EFER_LME ; }if (is_paging (vcpu) && !(cr0 &X86_CR0_PG )) { vcpu->arch.efer &= ~EFER_LMA ; - svm->vmcb->save.efer &= ~(EFER_LMA |EFER_LME ); +if (!vcpu->arch.guest_state_protected) + svm->vmcb->save.efer &= ~(EFER_LMA |EFER_LME ); } }#endif
arch/x86/mm/mem_encrypt_amd.c +11 -0
@@ -34,6 +34,7 @@#include <asm/msr.h> #include <asm/cmdline.h> #include <asm/sev.h> +#include <asm/ia32.h> #include "mm_internal.h"
@@ -502,6 +503,16 @@ void __init sme_early_init(void) x86_platform.guest.enc_status_change_finish = amd_enc_status_change_finish; x86_platform.guest.enc_tlb_flush_required = amd_enc_tlb_flush_required; x86_platform.guest.enc_cache_flush_required = amd_enc_cache_flush_required; + +/* +* The VMM is capable of injecting interrupt 0x80 and triggering the +* compatibility syscall path. +* +* By default, the 32-bit emulation is disabled in order to ensure +* the safety of the VM. +*/ +if (sev_status &MSR_AMD64_SEV_ENABLED ) +ia32_disable (); }void __init mem_encrypt_free_decrypted_mem (void )
arch/x86/xen/enlighten_pv.c +1 -1
@@ -623,7 +623,7 @@ static struct trap_array_entry trap_array[] = { TRAP_ENTRY(exc_int3, false ), TRAP_ENTRY(exc_overflow, false ),#ifdef CONFIG_IA32_EMULATION - { entry_INT80_compat, xen_entry_INT80_compat, false }, +TRAP_ENTRY (int80_emulation, false ), #endifTRAP_ENTRY (exc_page_fault, false ), TRAP_ENTRY(exc_divide_error, false ),
arch/x86/xen/xen-asm.S +1 -1
@@ -156,7 +156,7 @@ xen_pv_trap asm_xenpv_exc_machine_check #endif /* CONFIG_X86_MCE */ xen_pv_trap asm_exc_simd_coprocessor_error #ifdef CONFIG_IA32_EMULATION -xen_pv_trap entry_INT80_compat +xen_pv_trap asm_int80_emulation #endif xen_pv_trap asm_exc_xen_unknown_trap xen_pv_trap asm_exc_xen_hypervisor_callback
drivers/acpi/scan.c +6 -1
@@ -1563,17 +1563,22 @@ static const struct iommu_ops *acpi_iommu_configure_id(struct device *dev,int err;const struct iommu_ops *ops; +/* Serialise to make dev->iommu stable under our potential fwspec */ +mutex_lock (&iommu_probe_device_lock);/* * If we already translated the fwspec there is nothing left to do, * return the iommu_ops. */ ops =acpi_iommu_fwspec_ops (dev); -if (ops) +if (ops) { +mutex_unlock (&iommu_probe_device_lock);return ops; + } err =iort_iommu_configure_id (dev, id_in);if (err && err != -EPROBE_DEFER ) err =viot_iommu_configure (dev); +mutex_unlock (&iommu_probe_device_lock);/* * If we have reason to believe the IOMMU driver missed the initial
drivers/android/binder.c +1 -0
@@ -4788,6 +4788,7 @@ static void binder_release_work(struct binder_proc *proc,"undelivered TRANSACTION_ERROR: %u\n" , e->cmd); }break ; +case BINDER_WORK_TRANSACTION_ONEWAY_SPAM_SUSPECT :case BINDER_WORK_TRANSACTION_COMPLETE : {binder_debug (BINDER_DEBUG_DEAD_TRANSACTION ,"undelivered TRANSACTION_COMPLETE\n" );
drivers/base/devcoredump.c +3 -0
@@ -363,6 +363,7 @@ void dev_coredumpm(struct device *dev, struct module *owner, devcd->devcd_dev.class = &devcd_class;mutex_lock (&devcd->mutex); +dev_set_uevent_suppress (&devcd->devcd_dev, true);if (device_add (&devcd->devcd_dev)) goto put_device;
@@ -377,6 +378,8 @@ void dev_coredumpm(struct device *dev, struct module *owner, "devcoredump"))dev_warn (dev,"devcoredump create_link failed\n" ); +dev_set_uevent_suppress (&devcd->devcd_dev, false); +kobject_uevent (&devcd->devcd_dev.kobj,KOBJ_ADD );INIT_DELAYED_WORK (&devcd->del_wk, devcd_del);schedule_delayed_work (&devcd->del_wk,DEVCD_TIMEOUT );mutex_unlock (&devcd->mutex);
drivers/base/regmap/regcache.c +1 -2
@@ -410,8 +410,7 @@ int regcache_sync(struct regmap *map) rb_entry(node, struct regmap_range_node, node);/* If there's nothing in the cache there's nothing to sync */ - ret =regcache_read (map, this->selector_reg, &i); -if (ret !=0 ) +if (regcache_read (map, this->selector_reg, &i) !=0 )continue ; ret =_regmap_write (map, this->selector_reg, i);
drivers/gpio/gpiolib-sysfs.c +9 -6
@@ -463,14 +463,17 @@ static ssize_t export_store(struct class *class, goto done; status =gpiod_set_transitory (desc, false); -if (!status) { - status =gpiod_export (desc, true); -if (status <0 ) -gpiod_free (desc); -else -set_bit (FLAG_SYSFS , &desc->flags); +if (status) { +gpiod_free (desc); + goto done; } + status =gpiod_export (desc, true); +if (status <0 ) +gpiod_free (desc); +else +set_bit (FLAG_SYSFS , &desc->flags); + done:if (status)pr_debug ("%s: status %d\n" , __func__, status);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +1 -1
@@ -201,7 +201,7 @@ static int amdgpu_cs_pass1(struct amdgpu_cs_parser *p, }for (i =0 ; i < p->nchunks; i++) { -struct drm_amdgpu_cs_chunk __user **chunk_ptr =NULL ; +struct drm_amdgpu_cs_chunk __user *chunk_ptr =NULL ;struct drm_amdgpu_cs_chunk user_chunk;uint32_t __user *cdata;
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +27 -22
137 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_eeprom.c +2 -0
@@ -79,6 +79,8 @@* That is, for an I2C EEPROM driver everything is controlled by * the "eeprom_addr". * +* See also top of amdgpu_ras_eeprom.c. +* * P.S. If you need to write, lock and read the Identification Page, * (M24M02-DR device only, which we do not use), change the "7" to * "0xF" in the macro below, and let the client set bit 20 to 1 in
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c +66 -53
147 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +1 -1
@@ -397,7 +397,7 @@ static int gfx_v11_0_ring_test_ib(struct amdgpu_ring *ring, long timeout) adev->wb.wb[index] =cpu_to_le32 (0xCAFEDEAD ); cpu_ptr = &adev->wb.wb[index]; - r =amdgpu_ib_get (adev,NULL ,16 ,AMDGPU_IB_POOL_DIRECT , &ib); + r =amdgpu_ib_get (adev,NULL ,20 ,AMDGPU_IB_POOL_DIRECT , &ib);if (r) {DRM_ERROR ("amdgpu: failed to get ib (%ld).\n" , r); goto err1;
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +2 -2
@@ -883,8 +883,8 @@ static int gfx_v8_0_ring_test_ib(struct amdgpu_ring *ring, long timeout) gpu_addr = adev->wb.gpu_addr + (index *4 ); adev->wb.wb[index] =cpu_to_le32 (0xCAFEDEAD );memset (&ib,0 ,sizeof (ib)); - r =amdgpu_ib_get (adev,NULL ,16 , -AMDGPU_IB_POOL_DIRECT , &ib); + + r =amdgpu_ib_get (adev,NULL ,20 ,AMDGPU_IB_POOL_DIRECT , &ib);if (r) goto err1;
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +2 -2
@@ -1034,8 +1034,8 @@ static int gfx_v9_0_ring_test_ib(struct amdgpu_ring *ring, long timeout) gpu_addr = adev->wb.gpu_addr + (index *4 ); adev->wb.wb[index] =cpu_to_le32 (0xCAFEDEAD );memset (&ib,0 ,sizeof (ib)); - r =amdgpu_ib_get (adev,NULL ,16 , -AMDGPU_IB_POOL_DIRECT , &ib); + + r =amdgpu_ib_get (adev,NULL ,20 ,AMDGPU_IB_POOL_DIRECT , &ib);if (r) goto err1;
drivers/gpu/drm/bridge/Kconfig +1 -0
@@ -309,6 +309,7 @@ config DRM_TOSHIBA_TC358768 select REGMAP_I2C select DRM_PANEL select DRM_MIPI_DSI + select VIDEOMODE_HELPERS help Toshiba TC358768AXBG/TC358778XBG DSI bridge chip driver.
drivers/gpu/drm/i915/display/icl_dsi.c +7 -0
@@ -1500,6 +1500,13 @@ static void gen11_dsi_post_disable(struct intel_atomic_state *state,static enum drm_mode_status gen11_dsi_mode_valid (struct drm_connector *connector,struct drm_display_mode *mode) { +struct drm_i915_private *i915 =to_i915 (connector->dev); +enum drm_mode_status status; + + status =intel_cpu_transcoder_mode_valid (i915, mode); +if (status !=MODE_OK ) +return status; +/* FIXME: DSC? */ return intel_dsi_mode_valid (connector, mode); }
drivers/gpu/drm/i915/display/intel_crt.c +5 -0
@@ -343,8 +343,13 @@ intel_crt_mode_valid(struct drm_connector *connector,struct drm_device *dev = connector->dev;struct drm_i915_private *dev_priv =to_i915 (dev);int max_dotclk = dev_priv->max_dotclk_freq; +enum drm_mode_status status;int max_clock; + status =intel_cpu_transcoder_mode_valid (dev_priv, mode); +if (status !=MODE_OK ) +return status; +if (mode->flags &DRM_MODE_FLAG_DBLSCAN )return MODE_NO_DBLESCAN ;
drivers/gpu/drm/i915/display/intel_display.c +10 -0
@@ -8229,6 +8229,16 @@ intel_mode_valid(struct drm_device *dev, mode->vtotal > vtotal_max)return MODE_V_ILLEGAL ; +return MODE_OK ; +} + +enum drm_mode_status intel_cpu_transcoder_mode_valid (struct drm_i915_private *dev_priv, +const struct drm_display_mode *mode) +{ +/* +* Additional transcoder timing limits, +* excluding BXT/GLK DSI transcoders. +*/ if (DISPLAY_VER (dev_priv) >=5 ) {if (mode->hdisplay <64 || mode->htotal - mode->hdisplay <32 )
drivers/gpu/drm/i915/display/intel_display.h +3 -0
@@ -554,6 +554,9 @@ enum drm_mode_status intel_mode_valid_max_plane_size(struct drm_i915_private *dev_priv, const struct drm_display_mode *mode, bool bigjoiner); +enum drm_mode_status +intel_cpu_transcoder_mode_valid (struct drm_i915_private *i915, +const struct drm_display_mode *mode);enum phy intel_port_to_phy (struct drm_i915_private *i915,enum port port);bool is_trans_port_sync_mode (const struct intel_crtc_state *state);bool intel_crtc_is_bigjoiner_slave (const struct intel_crtc_state *crtc_state);
drivers/gpu/drm/i915/display/intel_dp.c +3 -2
@@ -973,8 +973,9 @@ intel_dp_mode_valid(struct drm_connector *_connector,enum drm_mode_status status;bool dsc = false, bigjoiner = false; -if (mode->flags &DRM_MODE_FLAG_DBLSCAN ) -return MODE_NO_DBLESCAN ; + status =intel_cpu_transcoder_mode_valid (dev_priv, mode); +if (status !=MODE_OK ) +return status;if (mode->flags &DRM_MODE_FLAG_DBLCLK )return MODE_H_ILLEGAL ;
drivers/gpu/drm/i915/display/intel_dp_mst.c +4 -0
@@ -703,6 +703,10 @@ intel_dp_mst_mode_valid_ctx(struct drm_connector *connector,return 0 ; } + *status =intel_cpu_transcoder_mode_valid (dev_priv, mode); +if (*status !=MODE_OK ) +return 0 ; +if (mode->flags &DRM_MODE_FLAG_DBLSCAN ) { *status =MODE_NO_DBLESCAN ;return 0 ;
drivers/gpu/drm/i915/display/intel_dvo.c +6 -0
@@ -225,10 +225,16 @@ intel_dvo_mode_valid(struct drm_connector *connector, {struct intel_connector *intel_connector =to_intel_connector (connector);struct intel_dvo *intel_dvo =intel_attached_dvo (intel_connector); +struct drm_i915_private *i915 =to_i915 (intel_connector->base.dev);const struct drm_display_mode *fixed_mode =intel_panel_fixed_mode (intel_connector, mode);int max_dotclk =to_i915 (connector->dev)->max_dotclk_freq;int target_clock = mode->clock; +enum drm_mode_status status; + + status =intel_cpu_transcoder_mode_valid (i915, mode); +if (status !=MODE_OK ) +return status;if (mode->flags &DRM_MODE_FLAG_DBLSCAN )return MODE_NO_DBLESCAN ;
drivers/gpu/drm/i915/display/intel_hdmi.c +3 -2
@@ -1987,8 +1987,9 @@ intel_hdmi_mode_valid(struct drm_connector *connector,bool has_hdmi_sink =intel_has_hdmi_sink (hdmi, connector->state);bool ycbcr_420_only; -if (mode->flags &DRM_MODE_FLAG_DBLSCAN ) -return MODE_NO_DBLESCAN ; + status =intel_cpu_transcoder_mode_valid (dev_priv, mode); +if (status !=MODE_OK ) +return status;if ((mode->flags &DRM_MODE_FLAG_3D_MASK ) ==DRM_MODE_FLAG_3D_FRAME_PACKING ) clock *=2 ;
drivers/gpu/drm/i915/display/intel_lvds.c +7 -2
@@ -92,9 +92,9 @@ bool intel_lvds_port_enabled(struct drm_i915_private *dev_priv,/* asserts want to know the pipe even if the port is disabled */ if (HAS_PCH_CPT (dev_priv)) - *pipe = (val &LVDS_PIPE_SEL_MASK_CPT ) >>LVDS_PIPE_SEL_SHIFT_CPT ; + *pipe =REG_FIELD_GET (LVDS_PIPE_SEL_MASK_CPT , val);else - *pipe = (val &LVDS_PIPE_SEL_MASK ) >>LVDS_PIPE_SEL_SHIFT ; + *pipe =REG_FIELD_GET (LVDS_PIPE_SEL_MASK , val);return val &LVDS_PORT_EN ; }
@@ -389,11 +389,16 @@ intel_lvds_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode) {struct intel_connector *intel_connector =to_intel_connector (connector); +struct drm_i915_private *i915 =to_i915 (intel_connector->base.dev);const struct drm_display_mode *fixed_mode =intel_panel_fixed_mode (intel_connector, mode);int max_pixclk =to_i915 (connector->dev)->max_dotclk_freq;enum drm_mode_status status; + status =intel_cpu_transcoder_mode_valid (i915, mode); +if (status !=MODE_OK ) +return status; +if (mode->flags &DRM_MODE_FLAG_DBLSCAN )return MODE_NO_DBLESCAN ;
drivers/gpu/drm/i915/display/intel_sdvo.c +14 -8
@@ -115,7 +115,6 @@ struct intel_sdvo {enum port port; -bool has_hdmi_monitor;bool has_hdmi_audio;/* DDC bus used by this SDVO encoder */
@@ -1278,10 +1277,13 @@ static void i9xx_adjust_sdvo_tv_clock(struct intel_crtc_state *pipe_config) pipe_config->clock_set = true; } -static bool intel_has_hdmi_sink (struct intel_sdvo *sdvo, +static bool intel_has_hdmi_sink (struct intel_sdvo_connector *intel_sdvo_connector,const struct drm_connector_state *conn_state) { -return sdvo->has_hdmi_monitor && +struct drm_connector *connector = conn_state->connector; + +return intel_sdvo_connector->is_hdmi && + connector->display_info.is_hdmi &&READ_ONCE (to_intel_digital_connector_state (conn_state)->force_audio) !=HDMI_AUDIO_OFF_DVI ; }
@@ -1360,7 +1362,7 @@ static int intel_sdvo_compute_config(struct intel_encoder *encoder, pipe_config->pixel_multiplier =intel_sdvo_get_pixel_multiplier (adjusted_mode); - pipe_config->has_hdmi_sink =intel_has_hdmi_sink (intel_sdvo, conn_state); + pipe_config->has_hdmi_sink =intel_has_hdmi_sink (intel_sdvo_connector, conn_state);if (pipe_config->has_hdmi_sink) {if (intel_sdvo_state->base.force_audio ==HDMI_AUDIO_AUTO )
@@ -1871,13 +1873,19 @@ static enum drm_mode_status intel_sdvo_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode) { + struct drm_i915_private *i915 = to_i915(connector->dev);struct intel_sdvo *intel_sdvo =intel_attached_sdvo (to_intel_connector (connector));struct intel_sdvo_connector *intel_sdvo_connector =to_intel_sdvo_connector (connector); -int max_dotclk =to_i915 (connector->dev)->max_dotclk_freq; -bool has_hdmi_sink =intel_has_hdmi_sink (intel_sdvo, connector->state); +bool has_hdmi_sink =intel_has_hdmi_sink (intel_sdvo_connector, connector->state); +int max_dotclk = i915->max_dotclk_freq; +enum drm_mode_status status;int clock = mode->clock; + status =intel_cpu_transcoder_mode_valid (i915, mode); +if (status !=MODE_OK ) +return status; +if (mode->flags &DRM_MODE_FLAG_DBLSCAN )return MODE_NO_DBLESCAN ;
@@ -2064,7 +2072,6 @@ intel_sdvo_tmds_sink_detect(struct drm_connector *connector)if (edid->input &DRM_EDID_INPUT_DIGITAL ) { status = connector_status_connected;if (intel_sdvo_connector->is_hdmi) { - intel_sdvo->has_hdmi_monitor =drm_detect_hdmi_monitor (edid); intel_sdvo->has_hdmi_audio =drm_detect_monitor_audio (edid); } }else
@@ -2116,7 +2123,6 @@ intel_sdvo_detect(struct drm_connector *connector, bool force) intel_sdvo->attached_output = response; - intel_sdvo->has_hdmi_monitor = false; intel_sdvo->has_hdmi_audio = false;if ((intel_sdvo_connector->output_flag & response) ==0 )
drivers/gpu/drm/i915/display/intel_tv.c +7 -1
@@ -956,8 +956,14 @@ static enum drm_mode_status intel_tv_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode) { + struct drm_i915_private *i915 = to_i915(connector->dev);const struct tv_mode *tv_mode =intel_tv_mode_find (connector->state); -int max_dotclk =to_i915 (connector->dev)->max_dotclk_freq; +int max_dotclk = i915->max_dotclk_freq; +enum drm_mode_status status; + + status =intel_cpu_transcoder_mode_valid (i915, mode); +if (status !=MODE_OK ) +return status;if (mode->flags &DRM_MODE_FLAG_DBLSCAN )return MODE_NO_DBLESCAN ;
drivers/gpu/drm/i915/display/vlv_dsi.c +17 -1
@@ -1627,9 +1627,25 @@ static const struct drm_encoder_funcs intel_dsi_funcs = { .destroy = intel_dsi_encoder_destroy, }; +static enum drm_mode_status vlv_dsi_mode_valid (struct drm_connector *connector, +struct drm_display_mode *mode) +{ +struct drm_i915_private *i915 =to_i915 (connector->dev); + +if (IS_VALLEYVIEW (i915) ||IS_CHERRYVIEW (i915)) { +enum drm_mode_status status; + + status =intel_cpu_transcoder_mode_valid (i915, mode); +if (status !=MODE_OK ) +return status; + } + +return intel_dsi_mode_valid (connector, mode); +} +static const struct drm_connector_helper_funcs intel_dsi_connector_helper_funcs = { .get_modes = intel_dsi_get_modes, - .mode_valid = intel_dsi_mode_valid, + .mode_valid = vlv_dsi_mode_valid, .atomic_check = intel_digital_connector_atomic_check, };
drivers/gpu/drm/i915/i915_reg.h +22 -24
81 lines not on this page · raw message
drivers/hwmon/acpi_power_meter.c +4 -0
@@ -31,6 +31,7 @@#define POWER_METER_CAN_NOTIFY (1 << 3)#define POWER_METER_IS_BATTERY (1 << 8)#define UNKNOWN_HYSTERESIS 0xFFFFFFFF +#define UNKNOWN_POWER 0xFFFFFFFF#define METER_NOTIFY_CONFIG 0x80#define METER_NOTIFY_TRIP 0x81
@@ -348,6 +349,9 @@ static ssize_t show_power(struct device *dev,update_meter (resource);mutex_unlock (&resource->lock); +if (resource->power ==UNKNOWN_POWER ) +return -ENODATA ; +return sprintf (buf,"%llu\n" , resource->power *1000 ); }
drivers/hwmon/nzxt-kraken2.c +2 -2
@@ -161,13 +161,13 @@ static int kraken2_probe(struct hid_device *hdev, ret =hid_hw_start (hdev,HID_CONNECT_HIDRAW );if (ret) {hid_err (hdev,"hid hw start failed with %d\n" , ret); - goto fail_and_stop; +return ret; } ret =hid_hw_open (hdev);if (ret) {hid_err (hdev,"hid hw open failed with %d\n" , ret); - goto fail_and_close; + goto fail_and_stop; } priv->hwmon_dev = hwmon_device_register_with_info(&hdev->dev, "kraken2",
drivers/hwtracing/coresight/coresight-etm4x-core.c +5 -7
@@ -2072,7 +2072,7 @@ static void clear_etmdrvdata(void *info) etmdrvdata[cpu] =NULL ; } -static int __exit etm4_remove_dev(struct etmv4_drvdata *drvdata) +static void etm4_remove_dev (struct etmv4_drvdata *drvdata) {etm_perf_symlink (drvdata->csdev, false);/*
@@ -2094,10 +2094,9 @@ static int __exit etm4_remove_dev(struct etmv4_drvdata *drvdata)cscfg_unregister_csdev (drvdata->csdev);coresight_unregister (drvdata->csdev); -return 0 ; } -static void __exit etm4_remove_amba(struct amba_device *adev) +static void etm4_remove_amba (struct amba_device *adev) {struct etmv4_drvdata *drvdata =dev_get_drvdata (&adev->dev);
@@ -2105,15 +2104,14 @@ static void __exit etm4_remove_amba(struct amba_device *adev)etm4_remove_dev (drvdata); } -static int __exit etm4_remove_platform_dev(struct platform_device *pdev) +static int etm4_remove_platform_dev (struct platform_device *pdev) { -int ret =0 ;struct etmv4_drvdata *drvdata =dev_get_drvdata (&pdev->dev);if (drvdata) - ret =etm4_remove_dev (drvdata); +etm4_remove_dev (drvdata);pm_runtime_disable (&pdev->dev); -return ret; +return 0 ; }static const struct amba_id etm4_ids[] = {
drivers/hwtracing/ptt/hisi_ptt.c +5 -0
@@ -837,6 +837,10 @@ static void hisi_ptt_pmu_del(struct perf_event *event, int flags)hisi_ptt_pmu_stop (event,PERF_EF_UPDATE ); } +static void hisi_ptt_pmu_read (struct perf_event *event) +{ +} +static void hisi_ptt_remove_cpuhp_instance (void *hotplug_node) {cpuhp_state_remove_instance_nocalls (hisi_ptt_pmu_online, hotplug_node);
@@ -880,6 +884,7 @@ static int hisi_ptt_register_pmu(struct hisi_ptt *hisi_ptt) .stop = hisi_ptt_pmu_stop, .add = hisi_ptt_pmu_add, .del = hisi_ptt_pmu_del, + .read = hisi_ptt_pmu_read, }; reg =readl (hisi_ptt->iobase +HISI_PTT_LOCATION );
drivers/i2c/busses/i2c-designware-common.c +8 -8
@@ -63,7 +63,7 @@ static int dw_reg_read(void *context, unsigned int reg, unsigned int *val) {struct dw_i2c_dev *dev = context; - *val =readl_relaxed (dev->base + reg); + *val =readl (dev->base + reg);return 0 ; }
@@ -72,7 +72,7 @@ static int dw_reg_write(void *context, unsigned int reg, unsigned int val) {struct dw_i2c_dev *dev = context; -writel_relaxed (val, dev->base + reg); +writel (val, dev->base + reg);return 0 ; }
@@ -81,7 +81,7 @@ static int dw_reg_read_swab(void *context, unsigned int reg, unsigned int *val) {struct dw_i2c_dev *dev = context; - *val =swab32 (readl_relaxed (dev->base + reg)); + *val =swab32 (readl (dev->base + reg));return 0 ; }
@@ -90,7 +90,7 @@ static int dw_reg_write_swab(void *context, unsigned int reg, unsigned int val) {struct dw_i2c_dev *dev = context; -writel_relaxed (swab32 (val), dev->base + reg); +writel (swab32 (val), dev->base + reg);return 0 ; }
@@ -99,8 +99,8 @@ static int dw_reg_read_word(void *context, unsigned int reg, unsigned int *val) {struct dw_i2c_dev *dev = context; - *val =readw_relaxed (dev->base + reg) | - (readw_relaxed (dev->base + reg +2 ) <<16 ); + *val =readw (dev->base + reg) | + (readw (dev->base + reg +2 ) <<16 );return 0 ; }
@@ -109,8 +109,8 @@ static int dw_reg_write_word(void *context, unsigned int reg, unsigned int val) {struct dw_i2c_dev *dev = context; -writew_relaxed (val, dev->base + reg); -writew_relaxed (val >>16 , dev->base + reg +2 ); +writew (val, dev->base + reg); +writew (val >>16 , dev->base + reg +2 );return 0 ; }
drivers/infiniband/core/umem.c +0 -6
@@ -96,12 +96,6 @@ unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,return page_size; } -/* rdma_for_each_block() has a bug if the page size is smaller than the -* page size used to build the umem. For now prevent smaller page sizes -* from being returned. -*/ - pgsz_bitmap &=GENMASK (BITS_PER_LONG -1 ,PAGE_SHIFT ); -/* The best result is the smallest page size that results in the minimum * number of required pages. Compute the largest page size that could * work based on VA address bits that don't change.
drivers/infiniband/hw/bnxt_re/main.c +1 -1
@@ -70,7 +70,7 @@ static char version[] =BNXT_RE_DESC "\n" ;MODULE_AUTHOR ("Eddie Wai <[email protected]>" ); -MODULE_DESCRIPTION (BNXT_RE_DESC " Driver" ); +MODULE_DESCRIPTION (BNXT_RE_DESC );MODULE_LICENSE ("Dual BSD/GPL" );/* globals */
drivers/infiniband/hw/hns/hns_roce_hw_v2.c +9 -4
@@ -4913,10 +4913,15 @@ static int check_cong_type(struct ib_qp *ibqp, cong_alg->wnd_mode_sel =WND_LIMIT ;break ;default : -ibdev_err (&hr_dev->ib_dev, -"error type(%u) for congestion selection.\n" , - hr_dev->caps.cong_type); -return -EINVAL ; +ibdev_warn (&hr_dev->ib_dev, +"invalid type(%u) for congestion selection.\n" , + hr_dev->caps.cong_type); + hr_dev->caps.cong_type =CONG_TYPE_DCQCN ; + cong_alg->alg_sel =CONG_DCQCN ; + cong_alg->alg_sub_sel =UNSUPPORT_CONG_LEVEL ; + cong_alg->dip_vld =DIP_INVALID ; + cong_alg->wnd_mode_sel =WND_LIMIT ; +break ; }return 0 ;
drivers/infiniband/hw/irdma/hw.c +29 -20
131 lines not on this page · raw message
drivers/infiniband/hw/irdma/main.c +1 -1
@@ -48,7 +48,7 @@ static void irdma_prep_tc_change(struct irdma_device *iwdev)/* Wait for all qp's to suspend */ wait_event_timeout (iwdev->suspend_wq, !atomic_read (&iwdev->vsi.qp_suspend_reqs), -IRDMA_EVENT_TIMEOUT ); +msecs_to_jiffies (IRDMA_EVENT_TIMEOUT_MS ));irdma_ws_reset (&iwdev->vsi); }
drivers/infiniband/hw/irdma/main.h +1 -1
@@ -78,7 +78,7 @@ extern struct auxiliary_driver i40iw_auxiliary_drv;#define MAX_DPC_ITERATIONS 128 -#define IRDMA_EVENT_TIMEOUT 50000 +#define IRDMA_EVENT_TIMEOUT_MS 5000#define IRDMA_VCHNL_EVENT_TIMEOUT 100000#define IRDMA_RST_TIMEOUT_HZ 4
drivers/infiniband/hw/irdma/verbs.c +21 -7
@@ -1098,6 +1098,21 @@ static int irdma_query_pkey(struct ib_device *ibdev, u32 port, u16 index,return 0 ; } +static int irdma_wait_for_suspend (struct irdma_qp *iwqp) +{ +if (!wait_event_timeout (iwqp->iwdev->suspend_wq, + !iwqp->suspend_pending, +msecs_to_jiffies (IRDMA_EVENT_TIMEOUT_MS ))) { + iwqp->suspend_pending = false; +ibdev_warn (&iwqp->iwdev->ibdev, +"modify_qp timed out waiting for suspend. qp_id = %d, last_ae = 0x%x\n" , + iwqp->ibqp.qp_num, iwqp->last_aeq); +return -EBUSY ; + } + +return 0 ; +} +/** * irdma_modify_qp_roce - modify qp request * @ibqp: qp's pointer for modify
@@ -1359,17 +1374,11 @@ int irdma_modify_qp_roce(struct ib_qp *ibqp, struct ib_qp_attr *attr, info.next_iwarp_state =IRDMA_QP_STATE_SQD ; issue_modify_qp =1 ; + iwqp->suspend_pending = true;break ;case IB_QPS_SQE :case IB_QPS_ERR :case IB_QPS_RESET : -if (iwqp->iwarp_state ==IRDMA_QP_STATE_RTS ) { -spin_unlock_irqrestore (&iwqp->lock, flags); - info.next_iwarp_state =IRDMA_QP_STATE_SQD ; -irdma_hw_modify_qp (iwdev, iwqp, &info, true); -spin_lock_irqsave (&iwqp->lock, flags); - } -if (iwqp->iwarp_state ==IRDMA_QP_STATE_ERROR ) {spin_unlock_irqrestore (&iwqp->lock, flags);if (udata && udata->inlen) {
@@ -1406,6 +1415,11 @@ int irdma_modify_qp_roce(struct ib_qp *ibqp, struct ib_qp_attr *attr, ctx_info->rem_endpoint_idx = udp_info->arp_idx;if (irdma_hw_modify_qp (iwdev, iwqp, &info, true))return -EINVAL ; +if (info.next_iwarp_state ==IRDMA_QP_STATE_SQD ) { + ret =irdma_wait_for_suspend (iwqp); +if (ret) +return ret; + }spin_lock_irqsave (&iwqp->lock, flags);if (iwqp->iwarp_state == info.curr_iwarp_state) { iwqp->iwarp_state = info.next_iwarp_state;
drivers/infiniband/hw/irdma/verbs.h +1 -0
@@ -193,6 +193,7 @@ struct irdma_qp { u8 flush_issued : 1; u8 sig_all : 1; u8 pau_mode : 1; + u8 suspend_pending : 1; u8 rsvd : 1;u8 iwarp_state;u16 term_sq_flush_code;
drivers/infiniband/ulp/rtrs/rtrs-clt.c +3 -4
@@ -382,7 +382,7 @@ static void complete_rdma_req(struct rtrs_clt_io_req *req, int errno,struct rtrs_clt_path *clt_path;int err; -if (WARN_ON (!req->in_use)) +if (!req->in_use)return ;if (WARN_ON (!req->con))return ;
@@ -1694,7 +1694,7 @@ static int create_con_cq_qp(struct rtrs_clt_con *con) clt_path->s.dev_ref++; max_send_wr =min_t (int, wr_limit,/* QD * (REQ + RSP + FR REGS or INVS) + drain */ - clt_path->queue_depth *3 +1 ); + clt_path->queue_depth *4 +1 ); max_recv_wr =min_t (int, wr_limit, clt_path->queue_depth *3 +1 ); max_send_sge =2 ;
@@ -2346,8 +2346,6 @@ static int init_conns(struct rtrs_clt_path *clt_path)if (err) goto destroy; -rtrs_start_hb (&clt_path->s); -return 0 ; destroy:
@@ -2621,6 +2619,7 @@ static int init_path(struct rtrs_clt_path *clt_path) goto out; }rtrs_clt_path_up (clt_path); +rtrs_start_hb (&clt_path->s); out:mutex_unlock (&clt_path->init_mutex);
drivers/infiniband/ulp/rtrs/rtrs-srv.c +27 -10
@@ -63,8 +63,9 @@ static bool rtrs_srv_change_state(struct rtrs_srv_path *srv_path, {enum rtrs_srv_state old_state;bool changed = false; +unsigned long flags; -spin_lock_irq (&srv_path->state_lock); +spin_lock_irqsave (&srv_path->state_lock, flags); old_state = srv_path->state;switch (new_state) {case RTRS_SRV_CONNECTED :
@@ -85,7 +86,7 @@ static bool rtrs_srv_change_state(struct rtrs_srv_path *srv_path, }if (changed) srv_path->state = new_state; -spin_unlock_irq (&srv_path->state_lock); +spin_unlock_irqrestore (&srv_path->state_lock, flags);return changed; }
@@ -548,7 +549,10 @@ static void unmap_cont_bufs(struct rtrs_srv_path *srv_path)struct rtrs_srv_mr *srv_mr; srv_mr = &srv_path->mrs[i]; -rtrs_iu_free (srv_mr->iu, srv_path->s.dev->ib_dev,1 ); + +if (always_invalidate) +rtrs_iu_free (srv_mr->iu, srv_path->s.dev->ib_dev,1 ); +ib_dereg_mr (srv_mr->mr);ib_dma_unmap_sg (srv_path->s.dev->ib_dev, srv_mr->sgt.sgl, srv_mr->sgt.nents,DMA_BIDIRECTIONAL );
@@ -714,20 +718,23 @@ static void rtrs_srv_info_rsp_done(struct ib_cq *cq, struct ib_wc *wc)WARN_ON (wc->opcode !=IB_WC_SEND ); } -static void rtrs_srv_path_up (struct rtrs_srv_path *srv_path) +static int rtrs_srv_path_up (struct rtrs_srv_path *srv_path) {struct rtrs_srv_sess *srv = srv_path->srv;struct rtrs_srv_ctx *ctx = srv->ctx; -int up; +int up, ret =0 ;mutex_lock (&srv->paths_ev_mutex); up = ++srv->paths_up;if (up ==1 ) - ctx->ops.link_ev (srv,RTRS_SRV_LINK_EV_CONNECTED ,NULL ); + ret = ctx->ops.link_ev (srv,RTRS_SRV_LINK_EV_CONNECTED ,NULL );mutex_unlock (&srv->paths_ev_mutex);/* Mark session as established */ - srv_path->established = true; +if (!ret) + srv_path->established = true; + +return ret; }static void rtrs_srv_path_down (struct rtrs_srv_path *srv_path)
@@ -856,7 +863,12 @@ static int process_info_req(struct rtrs_srv_con *con, goto iu_free;kobject_get (&srv_path->kobj);get_device (&srv_path->srv->dev); -rtrs_srv_change_state (srv_path,RTRS_SRV_CONNECTED ); + err =rtrs_srv_change_state (srv_path,RTRS_SRV_CONNECTED ); +if (!err) { +rtrs_err (s,"rtrs_srv_change_state(), err: %d\n" , err); + goto iu_free; + } +rtrs_srv_start_hb (srv_path);/*
@@ -865,7 +877,11 @@ static int process_info_req(struct rtrs_srv_con *con,* all connections are successfully established. Thus, simply notify * listener with a proper event if we are the first path. */ -rtrs_srv_path_up (srv_path); + err =rtrs_srv_path_up (srv_path); +if (err) { +rtrs_err (s,"rtrs_srv_path_up(), err: %d\n" , err); + goto iu_free; + } ib_dma_sync_single_for_device(srv_path->s.dev->ib_dev, tx_iu->dma_addr,
@@ -1521,7 +1537,6 @@ static void rtrs_srv_close_work(struct work_struct *work) srv_path =container_of (work,typeof (*srv_path), close_work); -rtrs_srv_destroy_path_files (srv_path);rtrs_srv_stop_hb (srv_path);for (i =0 ; i < srv_path->s.con_num; i++) {
@@ -1541,6 +1556,8 @@ static void rtrs_srv_close_work(struct work_struct *work)/* Wait for all completion */ wait_for_completion (&srv_path->complete_done); +rtrs_srv_destroy_path_files (srv_path); +/* Notify upper layer if we are the last path */ rtrs_srv_path_down (srv_path);
drivers/iommu/iommu.c +9 -10
@@ -278,12 +278,13 @@ static void dev_iommu_free(struct device *dev)kfree (param); } +DEFINE_MUTEX (iommu_probe_device_lock); +static int __iommu_probe_device (struct device *dev,struct list_head *group_list) {const struct iommu_ops *ops = dev->bus->iommu_ops;struct iommu_device *iommu_dev;struct iommu_group *group; -static DEFINE_MUTEX (iommu_probe_device_lock);int ret;if (!ops)
@@ -295,11 +296,9 @@ static int __iommu_probe_device(struct device *dev, struct list_head *group_list* probably be able to use device_lock() here to minimise the scope, * but for now enforcing a simple global ordering is fine. */ -mutex_lock (&iommu_probe_device_lock); -if (!dev_iommu_get (dev)) { - ret = -ENOMEM ; - goto err_unlock; - } +lockdep_assert_held (&iommu_probe_device_lock); +if (!dev_iommu_get (dev)) +return -ENOMEM ;if (!try_module_get (ops->owner)) { ret = -EINVAL ;
@@ -326,7 +325,6 @@ static int __iommu_probe_device(struct device *dev, struct list_head *group_listmutex_unlock (&group->mutex);iommu_group_put (group); -mutex_unlock (&iommu_probe_device_lock);iommu_device_link (iommu_dev, dev);return 0 ;
@@ -341,9 +339,6 @@ static int __iommu_probe_device(struct device *dev, struct list_head *group_list err_free:dev_iommu_free (dev); -err_unlock: -mutex_unlock (&iommu_probe_device_lock); -return ret; }
@@ -353,7 +348,9 @@ int iommu_probe_device(struct device *dev)struct iommu_group *group;int ret; +mutex_lock (&iommu_probe_device_lock); ret =__iommu_probe_device (dev,NULL ); +mutex_unlock (&iommu_probe_device_lock);if (ret) goto err_out;
@@ -1684,7 +1681,9 @@ static int probe_iommu_group(struct device *dev, void *data)return 0 ; } +mutex_lock (&iommu_probe_device_lock); ret =__iommu_probe_device (dev, group_list); +mutex_unlock (&iommu_probe_device_lock);if (ret == -ENODEV ) ret =0 ;
drivers/md/md.c +94 -80
174 lines not on this page · raw message
drivers/net/arcnet/com20020-pci.c +46 -43
89 lines not on this page · raw message
drivers/net/ethernet/aquantia/atlantic/aq_ptp.c +5 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/aquantia/atlantic/aq_ptp.h +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/aquantia/atlantic/aq_ring.c +12 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/tg3.c +36 -6
42 lines not on this page · raw message
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c +29 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns/hns_enet.c +31 -22
53 lines not on this page · raw message
drivers/net/ethernet/hisilicon/hns/hns_enet.h +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/iavf/iavf_ethtool.c +2 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/iavf/iavf_txrx.h +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/mbox.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/mcs.c +15 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/mcs.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/mcs_reg.h +27 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c +1 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c +8 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +9 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c +10 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_dev.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_lif.c +8 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_main.c +6 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac5.c +19 -26
45 lines not on this page · raw message
drivers/net/ethernet/stmicro/stmmac/dwmac5.h +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/hwif.h +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/usb/r8152.c +62 -48
110 lines not on this page · raw message
drivers/platform/mellanox/mlxbf-bootctl.c +26 -13
Lines of this file are not shown. View the raw message.
drivers/platform/surface/aggregator/core.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/tty/serial/amba-pl011.c +54 -58
112 lines not on this page · raw message
fs/nilfs2/sufile.c +35 -7
42 lines not on this page · raw message
fs/smb/client/cifsfs.c +159 -15
174 lines not on this page · raw message
include/uapi/linux/netfilter/nf_tables.h +2 -0
Lines of this file are not shown. View the raw message.
kernel/events/core.c +38 -23
61 lines not on this page · raw message
kernel/trace/trace.c +70 -107
177 lines not on this page · raw message
net/netfilter/nft_exthdr.c +107 -1
108 lines not on this page · 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.