Linux 6.13.8
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.13.8 kernel.
All users of the 6.13 kernel series must upgrade.
The updated 6.13.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.13.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/rust/quick-start.rst | 2 Makefile | 2 arch/alpha/include/asm/elf.h | 6 arch/alpha/include/asm/pgtable.h | 2 arch/alpha/include/asm/processor.h | 8 arch/alpha/kernel/osf_sys.c | 11 arch/arm64/include/asm/tlbflush.h | 22 - arch/arm64/kernel/topology.c | 22 - arch/arm64/mm/mmu.c | 5 arch/loongarch/kvm/switch.S | 2 arch/loongarch/mm/pageattr.c | 3 arch/x86/events/intel/core.c | 85 ++++ arch/x86/events/rapl.c | 1 arch/x86/include/asm/sev.h | 6 arch/x86/kernel/cpu/microcode/amd.c | 2 arch/x86/kernel/cpu/vmware.c | 4 arch/x86/kernel/devicetree.c | 3 arch/x86/kernel/irq.c | 2 arch/x86/kvm/mmu/mmu.c | 2 block/bio.c | 2 drivers/acpi/resource.c | 6 drivers/block/null_blk/main.c | 4 drivers/block/virtio_blk.c | 5 drivers/clk/samsung/clk-gs101.c | 8 drivers/clk/samsung/clk-pll.c | 7 drivers/firmware/iscsi_ibft.c | 5 drivers/gpio/gpiolib-cdev.c | 15 drivers/gpio/gpiolib.c | 8 drivers/gpio/gpiolib.h | 5 drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c | 5 drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 2 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 8 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 12 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c | 1 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 64 ++- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 7 drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 7 drivers/gpu/drm/amd/display/dc/dce60/dce60_timing_generator.c | 1 drivers/gpu/drm/amd/display/dc/dml2/dml21/dml21_translation_helper.c | 4 drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c | 6 drivers/gpu/drm/display/drm_dp_mst_topology.c | 40 +- drivers/gpu/drm/drm_atomic_uapi.c | 4 drivers/gpu/drm/drm_connector.c | 4 drivers/gpu/drm/drm_panic_qr.rs | 16 drivers/gpu/drm/gma500/mid_bios.c | 5 drivers/gpu/drm/hyperv/hyperv_drm_drv.c | 2 drivers/gpu/drm/i915/display/intel_display.c | 5 drivers/gpu/drm/i915/gem/i915_gem_mman.c | 5 drivers/gpu/drm/nouveau/nouveau_connector.c | 1 drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 193 ++++------ drivers/gpu/drm/vkms/vkms_composer.c | 2 drivers/gpu/drm/xe/xe_guc_ct.c | 6 drivers/gpu/drm/xe/xe_guc_log.c | 3 drivers/gpu/drm/xe/xe_guc_submit.c | 4 drivers/gpu/drm/xe/xe_hmm.c | 6 drivers/gpu/drm/xe/xe_pm.c | 13 drivers/hid/Kconfig | 3 drivers/hid/hid-apple.c | 13 drivers/hid/hid-ids.h | 3 drivers/hid/hid-quirks.c | 1 drivers/hid/hid-steam.c | 6 drivers/hid/hid-topre.c | 7 drivers/hid/intel-ish-hid/ipc/hw-ish.h | 2 drivers/hid/intel-ish-hid/ipc/ipc.c | 15 drivers/hid/intel-ish-hid/ipc/pci-ish.c | 7 drivers/hid/intel-ish-hid/ishtp/ishtp-dev.h | 2 drivers/hv/vmbus_drv.c | 13 drivers/i2c/busses/i2c-ali1535.c | 12 drivers/i2c/busses/i2c-ali15x3.c | 12 drivers/i2c/busses/i2c-sis630.c | 12 drivers/input/joystick/xpad.c | 39 +- drivers/input/misc/iqs7222.c | 50 +- drivers/input/serio/i8042-acpipnpio.h | 111 ++--- drivers/input/touchscreen/ads7846.c | 2 drivers/input/touchscreen/goodix_berlin_core.c | 24 - drivers/irqchip/irq-riscv-imsic-early.c | 2 drivers/irqchip/irq-thead-c900-aclint-sswi.c | 2 drivers/md/dm-flakey.c | 2 drivers/net/bonding/bond_options.c | 55 ++ drivers/net/dsa/mv88e6xxx/chip.c | 59 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 25 + drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 13 drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.h | 3 drivers/net/ethernet/intel/ice/ice_arfs.c | 2 drivers/net/ethernet/intel/ice/ice_eswitch.c | 6 drivers/net/ethernet/intel/ice/ice_lag.c | 27 + drivers/net/ethernet/intel/ice/ice_lib.c | 18 drivers/net/ethernet/intel/ice/ice_lib.h | 4 drivers/net/ethernet/intel/ice/ice_txrx.c | 4 drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 3 drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c | 12 drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 6 drivers/net/ethernet/mellanox/mlx5/core/eq.c | 2 drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c | 2 drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 4 drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h | 1 drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c | 3 drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c | 5 drivers/net/ethernet/mellanox/mlx5/core/mlx5_irq.h | 4 drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c | 13 drivers/net/ethernet/mellanox/mlx5/core/pci_irq.h | 2 drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.h | 2 drivers/net/ethernet/microsoft/mana/gdma_main.c | 11 drivers/net/ethernet/microsoft/mana/mana_en.c | 10 drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c | 8 drivers/net/ethernet/realtek/rtase/rtase_main.c | 10 drivers/net/mctp/mctp-i2c.c | 5 drivers/net/mctp/mctp-i3c.c | 5 drivers/net/phy/nxp-c45-tja11xx.c | 68 +++ drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 6 drivers/net/wwan/mhi_wwan_mbim.c | 2 drivers/nvme/host/apple.c | 5 drivers/nvme/host/core.c | 14 drivers/nvme/host/fc.c | 59 --- drivers/nvme/host/pci.c | 7 drivers/nvme/target/rdma.c | 33 + drivers/phy/ti/phy-gmii-sel.c | 15 drivers/pinctrl/bcm/pinctrl-bcm281xx.c | 2 drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c | 3 drivers/platform/x86/intel/int3472/discrete.c | 85 +++- drivers/platform/x86/intel/pmc/core.c | 4 drivers/platform/x86/thinkpad_acpi.c | 50 +- drivers/powercap/powercap_sys.c | 3 drivers/s390/cio/chp.c | 3 drivers/scsi/qla1280.c | 2 drivers/scsi/scsi_scan.c | 2 drivers/spi/spi-microchip-core.c | 41 -- drivers/thermal/cpufreq_cooling.c | 2 drivers/ufs/core/ufshcd.c | 7 drivers/usb/phy/phy-generic.c | 2 drivers/usb/serial/ftdi_sio.c | 14 drivers/usb/serial/ftdi_sio_ids.h | 13 drivers/usb/serial/option.c | 48 +- drivers/usb/typec/tcpm/tcpm.c | 8 drivers/vhost/vhost.c | 2 drivers/video/fbdev/hyperv_fb.c | 52 +- drivers/virt/coco/sev-guest/sev-guest.c | 63 ++- drivers/xen/swiotlb-xen.c | 2 fs/btrfs/extent_io.c | 11 fs/btrfs/qgroup.c | 6 fs/fuse/dir.c | 2 fs/namei.c | 24 - fs/netfs/read_collect.c | 2 fs/smb/client/asn1.c | 2 fs/smb/client/cifs_spnego.c | 4 fs/smb/client/cifsglob.h | 4 fs/smb/client/connect.c | 16 fs/smb/client/fs_context.c | 18 fs/smb/client/inode.c | 13 fs/smb/client/reparse.c | 5 fs/smb/client/sess.c | 3 fs/smb/client/smb2pdu.c | 4 fs/smb/common/smbfsctl.h | 3 fs/smb/server/connection.c | 20 + fs/smb/server/connection.h | 2 fs/smb/server/ksmbd_work.c | 3 fs/smb/server/ksmbd_work.h | 1 fs/smb/server/oplock.c | 43 +- fs/smb/server/oplock.h | 1 fs/smb/server/server.c | 14 fs/vboxsf/super.c | 3 include/asm-generic/vmlinux.lds.h | 1 include/linux/blk-mq.h | 16 include/linux/fs.h | 2 include/linux/hugetlb.h | 5 include/linux/module.h | 5 include/linux/pci_ids.h | 1 include/net/bluetooth/hci_core.h | 108 +---- include/net/bluetooth/l2cap.h | 3 include/net/netfilter/nf_tables.h | 4 include/sound/soc.h | 5 init/Kconfig | 2 io_uring/futex.c | 2 io_uring/io-wq.c | 23 - kernel/futex/core.c | 5 kernel/futex/futex.h | 11 kernel/futex/pi.c | 2 kernel/futex/waitwake.c | 4 kernel/rcu/tree.c | 14 kernel/sched/core.c | 5 kernel/sched/debug.c | 2 kernel/sched/ext.c | 3 kernel/time/hrtimer.c | 22 - kernel/vhost_task.c | 4 mm/hugetlb.c | 8 mm/page_isolation.c | 10 mm/userfaultfd.c | 91 +++- net/bluetooth/hci_core.c | 10 net/bluetooth/hci_event.c | 37 + net/bluetooth/iso.c | 6 net/bluetooth/l2cap_core.c | 181 ++++----- net/bluetooth/l2cap_sock.c | 15 net/bluetooth/rfcomm/core.c | 6 net/bluetooth/sco.c | 25 - net/core/dev.c | 5 net/core/netpoll.c | 9 net/ipv6/addrconf.c | 15 net/mac80211/eht.c | 9 net/mac80211/util.c | 8 net/mctp/route.c | 10 net/mctp/test/route-test.c | 109 +++++ net/mptcp/protocol.h | 2 net/netfilter/ipvs/ip_vs_ctl.c | 8 net/netfilter/nf_conncount.c | 6 net/netfilter/nf_tables_api.c | 24 - net/netfilter/nft_compat.c | 8 net/netfilter/nft_ct.c | 6 net/netfilter/nft_exthdr.c | 10 net/openvswitch/conntrack.c | 30 - net/openvswitch/datapath.h | 3 net/openvswitch/flow_netlink.c | 15 net/sched/sch_api.c | 6 net/sched/sch_gred.c | 3 net/sctp/stream.c | 2 net/switchdev/switchdev.c | 25 - net/wireless/core.c | 7 rust/kernel/alloc/allocator_test.rs | 18 rust/kernel/error.rs | 2 rust/kernel/init.rs | 23 - rust/kernel/init/macros.rs | 6 rust/kernel/lib.rs | 2 rust/kernel/sync.rs | 16 scripts/generate_rust_analyzer.py | 73 ++- scripts/mod/modpost.c | 35 + scripts/mod/modpost.h | 6 scripts/module.lds.S | 1 scripts/rustdoc_test_gen.rs | 4 sound/hda/intel-dsp-config.c | 5 sound/pci/hda/hda_intel.c | 2 sound/pci/hda/patch_realtek.c | 1 sound/soc/amd/yc/acp6x-mach.c | 7 sound/soc/codecs/arizona.c | 14 sound/soc/codecs/cs42l43.c | 2 sound/soc/codecs/madera.c | 10 sound/soc/codecs/rt722-sdca-sdw.c | 4 sound/soc/codecs/tas2764.c | 10 sound/soc/codecs/tas2764.h | 8 sound/soc/codecs/tas2770.c | 2 sound/soc/codecs/wm0010.c | 13 sound/soc/codecs/wm5110.c | 8 sound/soc/generic/simple-card-utils.c | 1 sound/soc/intel/boards/sof_sdw.c | 43 +- sound/soc/intel/common/soc-acpi-intel-mtl-match.c | 2 sound/soc/renesas/rcar/core.c | 14 sound/soc/renesas/rcar/rsnd.h | 1 sound/soc/renesas/rcar/src.c | 116 ++++-- sound/soc/renesas/rcar/ssi.c | 3 sound/soc/soc-ops.c | 15 sound/soc/sof/amd/acp-ipc.c | 23 - sound/soc/sof/amd/acp.c | 1 sound/soc/sof/amd/acp.h | 1 sound/soc/sof/amd/vangogh.c | 18 sound/soc/sof/intel/hda-codec.c | 1 sound/soc/sof/intel/hda.c | 18 sound/soc/sof/intel/pci-ptl.c | 1 sound/soc/tegra/tegra210_adx.c | 4 tools/objtool/check.c | 9 tools/sched_ext/include/scx/common.bpf.h | 11 tools/sound/dapm-graph | 2 tools/testing/selftests/bpf/prog_tests/sockmap_basic.c | 6 tools/testing/selftests/bpf/prog_tests/xdp_cpumap_attach.c | 4 tools/testing/selftests/bpf/prog_tests/xdp_devmap_attach.c | 8 tools/testing/selftests/cgroup/test_cpuset_v1_hp.sh | 2 tools/testing/selftests/drivers/net/bonding/bond_options.sh | 4 tools/testing/selftests/filesystems/statmount/statmount_test.c | 22 + tools/testing/selftests/sched_ext/dsp_local_on.bpf.c | 2 266 files changed, 2455 insertions(+), 1273 deletions(-)
Aaron Ma (1):
perf/x86/rapl: Add support for Intel Arrow Lake U
Ajay Kaher (1):
x86/vmware: Parse MP tables for SEV-SNP enabled guests under VMware hypervisors
Alban Kurti (2):
rust: error: add missing newline to pr_warn! calls
rust: init: add missing newline to pr_info! calls
Alex Deucher (1):
drm/amdgpu/vce2: fix ip block reference
Alex Henrie (2):
HID: apple: fix up the F6 key on the Omoton KB066 keyboard
HID: apple: disable Fn key handling on the Omoton KB066
Alex Hung (2):
drm/amd/display: Fix out-of-bound accesses drm/amd/display: Assign normalized_pix_clk when color depth = 14
Alexander Stein (1):
usb: phy: generic: Use proper helper for property detection
Alexey Kardashevskiy (1):
virt: sev-guest: Move SNP Guest Request data pages handling under snp_cmd_mutex
Alexey Kashavkin (1):
netfilter: nft_exthdr: fix offset with ipv4_find_option()
Aliaksei Urbanski (1):
drm/amd/display: fix missing .is_two_pixels_per_container
Amit Cohen (1):
net: switchdev: Convert blocking notification chain to a raw one
Amit Sunil Dhamne (1):
usb: typec: tcpm: fix state transition for SNK_WAIT_CAPABILITIES state in run_state_machine()
Andrea Righi (3):
sched_ext: Validate prev_cpu in scx_bpf_select_cpu_dfl()
sched_ext: selftests/dsp_local_on: Fix selftest on UP systems tools/sched_ext: Add helper to check task migration state
Andrei Botila (2):
net: phy: nxp-c45-tja11xx: add TJA112X PHY configuration errata
net: phy: nxp-c45-tja11xx: add TJA112XB SGMII PCS restart errata
Andrew Davis (1):
phy: ti: gmii-sel: Do not use syscon helper to build regmap
Andy Shevchenko (1):
hrtimers: Mark is_migration_base() with __always_inline
Antheas Kapenekakis (3):
Input: xpad - add support for ZOTAC Gaming Zone
Input: xpad - add support for TECNO Pocket Go
Input: xpad - rename QH controller to Legion Go S
Arnd Bergmann (1):
x86/irq: Define trace events conditionally
Artur Weber (1):
pinctrl: bcm281xx: Fix incorrect regmap max_registers value
Bard Liao (3):
ASoC: Intel: soc-acpi-intel-mtl-match: declare adr as ull
ASoC: SOF: Intel: don't check number of sdw links when set dmic_fixup
ASoC: rt722-sdca: add missing readable registers
Barry Song (1):
mm: fix kernel BUG when userfaultfd_move encounters swapcache
Bartosz Golaszewski (1):
gpio: cdev: use raw notifier for line state events
Beata Michalska (1):
arm64: amu: Delay allocating cpumask for AMU FIE support
Benjamin Berg (1):
wifi: mac80211: fix MPDU length parsing for EHT 5/6 GHz
Benno Lossin (1):
rust: init: fix Zeroable implementation for Option<NonNull<T>> and Option<KBox<T>>
Bharadwaj Raju (1):
selftests/cgroup: use bash in test_cpuset_v1_hp.sh
Bibo Mao (1):
LoongArch: KVM: Set host with kernel mode when switch to VM mode
Boon Khai Ng (1):
USB: serial: ftdi_sio: add support for Altera USB Blaster 3
Brahmajit Das (1):
vboxsf: fix building with GCC 15
Breno Leitao (1):
netpoll: hold rcu read lock in __netpoll_send_skb()
Carolina Jubran (1):
net/mlx5e: Prevent bridge link show failure for non-eswitch-allowed devices
Charles Han (1):
pinctrl: nuvoton: npcm8xx: Add NULL check in npcm8xx_gpio_fw
Charles Keepax (2):
ASoC: ops: Consistently treat platform_max as control value
ASoC: cs42l43: Fix maximum ADC Volume
Chengen Du (1):
iscsi_ibft: Fix UBSAN shift-out-of-bounds warning in ibft_attr_show_nic()
Chia-Lin Kao (AceLan) (1):
HID: ignore non-functional sensor in HP 5MP Camera
Christian Loehle (1):
sched/debug: Provide slice length for fair tasks
Christophe JAILLET (4):
ASoC: codecs: wm0010: Fix error handling path in wm0010_spi_probe()
i2c: ali1535: Fix an error handling path in ali1535_probe()
i2c: ali15x3: Fix an error handling path in ali15x3_probe()
i2c: sis630: Fix an error handling path in sis630_probe()
Christopher Lentocha (1):
nvme-pci: quirk Acer FA100 for non-uniqueue identifiers
Cong Wang (1):
net_sched: Prevent creation of classes with TC_H_ROOT
Conor Dooley (1):
spi: microchip-core: prevent RX overflows when transmit size > FIFO size
Cristian Ciocaltea (2):
ASoC: SOF: amd: Add post_fw_run_delay ACP quirk
ASoC: SOF: amd: Handle IPC replies before FW_BOOT_COMPLETE
Dan Carpenter (1):
ipvs: prevent integer overflow in do_ip_vs_get_ctl()
Daniel Brackenbury (1):
HID: topre: Fix n-key rollover on Realforce R3S TKL boards
Daniel Lezcano (1):
thermal/cpufreq_cooling: Remove structure member documentation
Daniel Wagner (4):
nvme-fc: go straight to connecting state when initializing
nvme-fc: do not ignore connectivity loss during connecting
nvme: only allow entering LIVE from CONNECTING state
nvme-fc: rely on state transitions to handle connectivity loss
David Rosca (1):
drm/amdgpu/display: Allow DCC for video formats on GFX12
Dmitry Kandybka (1):
platform/x86/intel: pmc: fix ltr decode in pmc_core_ltr_show()
Dmytro Maluka (1):
x86/of: Don't use DTB for SMP setup if ACPI is enabled
Edson Juliano Drosdeck (1):
ALSA: hda/realtek: Limit mic boost on Positivo ARN50
Emmanuel Grumbach (1):
wifi: iwlwifi: mvm: fix PNVM timeout for non-MSI-X platforms
Eric W. Biederman (1):
alpha/elf: Fix misc/setarch test of util-linux by removing 32bit support
Fabio Porcedda (2):
USB: serial: option: add Telit Cinterion FE990B compositions
USB: serial: option: fix Telit Cinterion FE990A name
Filipe Manana (1):
btrfs: avoid starting new transaction when cleaning qgroup during subvolume drop
Florent Revest (1):
x86/microcode/AMD: Fix out-of-bounds on systems with CPU-less NUMA nodes
Florian Westphal (1):
netfilter: nf_tables: make destruction work queue pernet
Frederic Weisbecker (1):
net: Handle napi_schedule() calls from non-interrupt
Gannon Kolding (1):
ACPI: resource: IRQ override for Eluktronics MECH-17
Ge Yang (1):
mm/hugetlb: wait for hugetlb folios to be freed
Greg Kroah-Hartman (1):
Linux 6.13.8
Grzegorz Nitka (1):
ice: fix memory leak in aRFS after reset
Guillaume Nault (1):
gre: Fix IPv6 link-local address generation.
H. Nikolaus Schaller (1):
Input: ads7846 - fix gpiod allocation
Hangbin Liu (2):
bonding: fix incorrect MAC address setting to receive NS messages
selftests: bonding: fix incorrect mac address
Haoxiang Li (1):
qlcnic: fix memory leak issues in qlcnic_sriov_common.c
Harry Wentland (1):
drm/vkms: Round fixp2int conversion in lerp_u16
Hector Martin (4):
apple-nvme: Release power domains when probe fails
ASoC: tas2770: Fix volume scale
ASoC: tas2764: Fix power control mask
ASoC: tas2764: Set the SDOUT polarity correctly
Henrique Carvalho (1):
smb: client: Fix match_session bug preventing session reuse
Huacai Chen (1):
LoongArch: Fix kernel_page_present() for KPRANGE/XKPRANGE
Ievgen Vovk (1):
HID: hid-apple: Apple Magic Keyboard a3203 USB-C support
Ilya Maximets (1):
net: openvswitch: remove misbehaving actions length check
Imre Deak (1):
drm/dp_mst: Fix locking when skipping CSN before topology probing
Ivan Abramov (1):
drm/gma500: Add NULL check for pci_gfx_root in mid_get_vbt_data()
Jan Beulich (1):
Xen/swiotlb: mark xen_swiotlb_fixup() __init
Jann Horn (1):
sched: Clarify wake_up_q()'s write to task->wake_q.next
Jeff LaBundy (1):
Input: iqs7222 - preserve system status register
Jens Axboe (1):
futex: Pass in task to futex_queue()
Jianbo Liu (1):
net/mlx5: Bridge, fix the crash caused by LAG state check
Jiayuan Chen (1):
selftests/bpf: Fix invalid flag of recv()
Jiri Pirko (1):
net/mlx5: Fill out devlink dev info only for PFs
Joe Hattori (1):
powercap: call put_device() on an error path in powercap_register_control_type()
Johan Hovold (1):
USB: serial: option: match on interface class for Telit FN990B
Joseph Huang (1):
net: dsa: mv88e6xxx: Verify after ATU Load ops
Josh Poimboeuf (1):
objtool: Ignore dangling jump table entries
José Roberto de Souza (2):
drm/xe: Make GUC binaries dump consistent with other binaries in devcoredump drm/i915: Increase I915_PARAM_MMAP_GTT_VERSION version to indicate support for partial mmaps
Jun Yang (1):
sched: address a potential NULL pointer dereference in the GRED scheduler.
Justin Lai (1):
rtase: Fix improper release of ring list entries in rtase_sw_reset
Kan Liang (1):
perf/x86/intel: Use better start period for frequency mode
Keith Busch (1):
vhost: return task creation error instead of NULL
Kent Overstreet (1):
dm-flakey: Fix memory corruption in optional corrupt_bio_byte feature
Kohei Enju (1):
netfilter: nf_conncount: Fully initialize struct nf_conncount_tuple in insert_tree()
Kuninori Morimoto (4):
ASoC: simple-card-utils.c: add missing dlc->of_node
ASoC: rsnd: indicate unsupported clock rate
ASoC: rsnd: don't indicate warning on rsnd_kctrl_accept_runtime()
ASoC: rsnd: adjust convert rate limitation
Larysa Zaremba (1):
ice: do not configure destination override for switchdev
Leo Li (1):
drm/amd/display: Disable unneeded hpd interrupts during dm_init
Luca Weiss (1):
Input: goodix-berlin - fix vddio regulator references
Lucas De Marchi (1):
drm/xe/guc: Fix size_t print format
Luiz Augusto von Dentz (4):
Bluetooth: hci_event: Fix enabling passive scanning
Revert "Bluetooth: hci_core: Fix sleeping function called from invalid context"
Bluetooth: L2CAP: Fix slab-use-after-free Read in l2cap_send_cmd
Bluetooth: L2CAP: Fix corrupted list in hci_chan_del
Magnus Lindholm (1):
scsi: qla1280: Fix kernel oops when debug level > 2
Marcin Szycik (1):
ice: Fix switchdev slow-path in LAG
Mario Limonciello (3):
drm/amd/display: fix default brightness
drm/amd/display: Restore correct backlight brightness after a GPU reset drm/amd/display: Fix slab-use-after-free on hdcp_work
Mark Pearson (1):
platform/x86: thinkpad_acpi: Support for V9 DYTC platform profiles
Masahiro Yamada (1):
kbuild: keep symbols for symbol_get() even with CONFIG_TRIM_UNUSED_KSYMS
Matt Johnston (3):
net: mctp i3c: Copy headers if cloned
net: mctp i2c: Copy headers if cloned
net: mctp: unshare packets when reassembling
Matthew Maurer (1):
rust: Disallow BTF generation with Rust + LTO
Matthew Wilcox (Oracle) (1):
btrfs: fix two misuses of folio_shift()
Matthieu Baerts (NGI0) (1):
mptcp: safety check before fallback
Max Kellermann (1):
fs/netfs/read_collect: add to next->prev_donated
Maxime Ripard (3):
drm/tests: hdmi: Remove redundant assignments drm/tests: hdmi: Reorder DRM entities variables assignment drm/tests: hdmi: Fix recursive locking
Michael Kelley (4):
fbdev: hyperv_fb: iounmap() the correct memory when removing a device drm/hyperv: Fix address space leak when Hyper-V DRM device is removed
fbdev: hyperv_fb: Fix hang in kdump kernel when on Hyper-V Gen 2 VMs
Drivers: hv: vmbus: Don't release fb_mmio resource in vmbus_free_mmio()
Miguel Ojeda (3):
rust: remove leftover mentions of the alloc crate drm/panic: use div_ceil to clean Clippy warning drm/panic: fix overindented list items in documentation
Miklos Szeredi (2):
selftests: always check mask returned by statmount(2)
fuse: don't truncate cached, mutated symlink
Mina Almasry (1):
netmem: prevent TX of unreadable skbs
Ming Lei (1):
block: fix 'kmem_cache of name 'bio-108' already exists'
Miri Korenblit (2):
wifi: mac80211: don't queue sdata::work for a non-running sdata
wifi: cfg80211: cancel wiphy_work before freeing wiphy
Mitchell Levy (1):
rust: lockdep: Remove support for dynamically allocated LockClassKeys
Murad Masimov (4):
cifs: Fix integer overflow while processing acregmax mount option
cifs: Fix integer overflow while processing acdirmax mount option
cifs: Fix integer overflow while processing actimeo mount option
cifs: Fix integer overflow while processing closetimeo mount option
Namjae Jeon (2):
ksmbd: fix use-after-free in ksmbd_free_work_struct
ksmbd: prevent connection release during oplock break notification
Natalie Vock (1):
drm/amdgpu: NULL-check BO's backing store when determining GFX12 PTE flags
Nicklas Bo Jensen (1):
netfilter: nf_conncount: garbage collection is not skipped when jiffies wrap around
Nicolas Frattaroli (1):
ASoC: dapm-graph: set fill colour of turned on nodes
Nilton Perim Neto (1):
Input: xpad - add 8BitDo SN30 Pro, Hyperkin X91 and Gamesir G7 SE controllers
Pali Rohár (2):
cifs: Throw -EOPNOTSUPP error on unsupported reparse point type from parse_reparse_point()
cifs: Treat unhandled directory name surrogate reparse points as mount directory nodes
Pauli Virtanen (1):
Bluetooth: SCO: fix sco_conn refcounting on sco_conn_ready
Paulo Alcantara (2):
smb: client: fix noisy when tree connecting to DFS interlink targets
smb: client: fix regression with guest option
Pavel Rojtberg (1):
Input: xpad - add multiple supported devices
Peter Griffin (1):
clk: samsung: gs101: fix synchronous external abort in samsung_clk_save()
Peter Oberparleiter (1):
s390/cio: Fix CHPID "configure" attribute caching
Peter Ujfalusi (2):
ASoC: SOF: Intel: pci-ptl: Add support for PTL-H
ASoC: Intel: sof_sdw: Fix unlikely uninitialized variable use in create_sdw_dailinks()
Pierre-Louis Bossart (3):
PCI: pci_ids: add INTEL_HDA_PTL_H
ALSA: hda: intel-dsp-config: Add PTL-H support
ALSA: hda: hda-intel: add Panther Lake-H support
Piotr Jaroszynski (1):
Fix mmu notifiers for range-based invalidates
Richard Fitzgerald (2):
ASoC: Intel: sof_sdw: Add lookup of quirk using PCI subsystem ID
ASoC: Intel: sof_sdw: Add quirk for Asus Zenbook S14
Rik van Riel (1):
scsi: core: Use GFP_NOIO to avoid circular locking dependency
Rodrigo Vivi (1):
drm/xe/pm: Temporarily disable D3Cold on BMG
Ruozhu Li (1):
nvmet-rdma: recheck queue state is LIVE in state lock in recv done
Sakari Ailus (2):
platform/x86: int3472: Use correct type for "polarity", call it gpio_flags platform/x86: int3472: Call "reset" GPIO "enable" for INT347E
Saurabh Sengar (2):
fbdev: hyperv_fb: Simplify hvfb_putmem
fbdev: hyperv_fb: Allow graceful removal of framebuffer
Sebastian Andrzej Siewior (1):
netfilter: nft_ct: Use __refcount_inc() for per-CPU nft_ct_pcpu_template.
Seunghui Lee (1):
scsi: ufs: core: Fix error return with query response
Shay Drory (2):
net/mlx5: Fix incorrect IRQ pool usage when releasing IRQs net/mlx5: Lag, Check shared fdb before creating MultiPort E-Switch
Shigeru Yoshida (1):
selftests/bpf: Adjust data size to have ETH_HLEN
Shin'ichiro Kawasaki (2):
nvme: move error logging from nvme_end_req() to __nvme_end_req()
block: change blk_mq_add_to_batch() third argument type to bool
Shradha Gupta (1):
net: mana: cleanup mana struct after debugfs_remove()
Stephan Gerhold (1):
net: wwan: mhi_wwan_mbim: Silence sequence number glitch errors
Steve French (1):
smb3: add support for IAKerb
Suren Baghdasaryan (1):
userfaultfd: fix PTE unmapping stack-allocated PTE copies
Sybil Isabel Dorsett (1):
platform/x86: thinkpad_acpi: Fix invalid fan speed on ThinkPad X120e
Taehee Yoo (6):
eth: bnxt: fix truesize for mb-xdp-pass case
eth: bnxt: return fail if interface is down in bnxt_queue_mem_alloc()
eth: bnxt: do not use BNXT_VNIC_NTUPLE unconditionally in queue restart logic
eth: bnxt: do not update checksum in bnxt_xdp_build_skb()
eth: bnxt: fix kernel panic in the bnxt_get_queue_stats{rx | tx}
eth: bnxt: fix memory leak in queue reset
Tamir Duberstein (4):
rust: alloc: satisfy POSIX alignment requirement
scripts: generate_rust_analyzer: add missing macros deps
scripts: generate_rust_analyzer: add missing include_dirs
scripts: generate_rust_analyzer: add uapi crate
Tejas Upadhyay (2):
drm/xe: cancel pending job timer before freeing scheduler drm/xe: Release guc ids before cancelling work
Tejun Heo (1):
sched_ext: selftests/dsp_local_on: Fix sporadic failures
Terry Cheong (1):
ASoC: SOF: Intel: hda: add softdep pre to snd-hda-codec-hdmi module
Thomas Hellström (1):
drm/xe/userptr: Fix an incorrect assert
Thomas Mizrahi (1):
ASoC: amd: yc: Support mic on another Lenovo ThinkPad E16 Gen 2 model
Thomas Zimmermann (1):
drm/nouveau: Do not override forced connector status
Thorsten Blum (1):
ASoC: tegra: Fix ADX S24_LE audio format
Uday M Bhat (1):
ASoC: Intel: sof_sdw: Add support for Fatcat board with BT offload enabled in PTL platform
Uday Shankar (1):
io-wq: backoff when retrying worker creation
Uladzislau Rezki (Sony) (1):
mm/slab/kvfree_rcu: Switch to WQ_MEM_RECLAIM wq
Varada Pavani (1):
clk: samsung: update PLL locktime for PLL142XX used on FSD platform
Vicki Pfau (1):
HID: hid-steam: Fix issues with disabling both gamepad mode and lizard mode
Ville Syrjälä (2):
drm/i915/cdclk: Do cdclk post plane programming later drm/atomic: Filter out redundant DPMS calls
Vitaly Rodionov (1):
ASoC: arizona/madera: use fsleep() in up/down DAPM event delays.
Vlad Dogaru (1):
net/mlx5: HWS, Rightsize bwc matcher priority
Wentao Liang (1):
net/mlx5: handle errors in mlx5_chains_create_table()
Werner Sembach (4):
Input: i8042 - swap old quirk combination with new quirk for NHxxRZQ
Input: i8042 - add required quirks for missing old boardnames
Input: i8042 - swap old quirk combination with new quirk for several devices
Input: i8042 - swap old quirk combination with new quirk for more devices
Xin Long (1):
Revert "openvswitch: switch to per-action label counting in conntrack"
Xu Lu (1):
irqchip/riscv: Ensure ordering of memory writes and IPI writes
Yifan Zha (1):
drm/amd/amdkfd: Evict all queues even HWS remove queue failed
Yu-Chun Lin (1):
sctp: Fix undefined behavior in left shift operation
Zhang Lixu (3):
HID: intel-ish-hid: fix the length of MNG_SYNC_FW_CLOCK in doorbell
HID: intel-ish-hid: Send clock sync message immediately after reset
HID: intel-ish-hid: ipc: Add Panther Lake PCI device IDs
Zhenhua Huang (1):
arm64: mm: Populate vmemmap at the page level if not section aligned
Greg Kroah-Hartman
maintainerDocumentation/rust/quick-start.rst +1 -1
@@ -145,7 +145,7 @@ Rust standard library source **************************** The Rust standard library source is required because the build system will -cross-compile ``core`` and ``alloc``. +cross-compile ``core``. If ``rustup`` is being used, run::
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 13 -SUBLEVEL = 7 +SUBLEVEL = 8 EXTRAVERSION = NAME = Baby Opossum Posse
arch/alpha/include/asm/elf.h +1 -5
@@ -74,7 +74,7 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];/* * This is used to ensure we don't load something for the wrong architecture. */ -#define elf_check_arch (x) ((x)->e_machine == EM_ALPHA) +#define elf_check_arch (x) (((x)->e_machine == EM_ALPHA) && !((x)->e_flags & EF_ALPHA_32BIT))/* * These are used to set parameters in the core dumps.
@@ -137,10 +137,6 @@ extern int dump_elf_task(elf_greg_t *dest, struct task_struct *task); : amask (AMASK_CIX) ? "ev6" : "ev67"); \ }) -#define SET_PERSONALITY (EX ) \ - set_personality(((EX).e_flags & EF_ALPHA_32BIT) \ - ? PER_LINUX_32BIT : PER_LINUX) -extern int alpha_l1i_cacheshape;extern int alpha_l1d_cacheshape;extern int alpha_l2_cacheshape;
arch/alpha/include/asm/pgtable.h +1 -1
@@ -360,7 +360,7 @@ static inline pte_t pte_swp_clear_exclusive(pte_t pte)extern void paging_init (void ); -/* We have our own get_unmapped_area to cope with ADDR_LIMIT_32BIT. */ +/* We have our own get_unmapped_area */ #define HAVE_ARCH_UNMAPPED_AREA #endif /* _ALPHA_PGTABLE_H */
arch/alpha/include/asm/processor.h +2 -6
@@ -8,23 +8,19 @@#ifndef __ASM_ALPHA_PROCESSOR_H#define __ASM_ALPHA_PROCESSOR_H -#include <linux/personality.h> /* for ADDR_LIMIT_32BIT */ -/* * We have a 42-bit user address space: 4TB user VM... */ #define TASK_SIZE (0x40000000000UL) -#define STACK_TOP \ - (current->personality & ADDR_LIMIT_32BIT ? 0x80000000 : 0x00120000000UL) +#define STACK_TOP (0x00120000000UL)#define STACK_TOP_MAX 0x00120000000UL/* This decides where the kernel will search for a free chunk of vm * space during mmap's. */ -#define TASK_UNMAPPED_BASE \ - ((current->personality & ADDR_LIMIT_32BIT) ? 0x40000000 : TASK_SIZE / 2) +#define TASK_UNMAPPED_BASE (TASK_SIZE / 2)/* This is dead. Everything has been moved to thread_info. */ struct thread_struct { };
arch/alpha/kernel/osf_sys.c +2 -9
@@ -1210,8 +1210,7 @@ SYSCALL_DEFINE1(old_adjtimex, struct timex32 __user *, txc_p)return ret; } -/* Get an address range which is currently unmapped. Similar to the -generic version except that we know how to honor ADDR_LIMIT_32BIT. */ +/* Get an address range which is currently unmapped. */ static unsigned long arch_get_unmapped_area_1(unsigned long addr, unsigned long len,
@@ -1230,13 +1229,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags, vm_flags_t vm_flags) { - unsigned long limit; - -/* "32 bit" actually means 31 bit, since pointers sign extend. */ -if (current->personality &ADDR_LIMIT_32BIT ) - limit =0x80000000 ; -else - limit =TASK_SIZE ; + unsigned long limit = TASK_SIZE;if (len > limit)return -ENOMEM ;
arch/arm64/include/asm/tlbflush.h +12 -10
@@ -396,33 +396,35 @@ static inline void arch_tlbbatch_flush(struct arch_tlbflush_unmap_batch *batch)#define __flush_tlb_range_op (op, start, pages, stride, \ asid, tlb_level, tlbi_user, lpa2) \ do { \ + typeof(start) __flush_start = start; \ + typeof(pages) __flush_pages = pages; \ int num = 0; \ int scale = 3; \ int shift = lpa2 ? 16 : PAGE_SHIFT; \ unsigned long addr; \ \ - while (pages > 0) { \ + while (__flush_pages > 0) { \ if (!system_supports_tlb_range() || \ - pages == 1 || \ - (lpa2 && start != ALIGN(start, SZ_64K))) { \ - addr = __TLBI_VADDR(start, asid); \ + __flush_pages == 1 || \ + (lpa2 && __flush_start != ALIGN(__flush_start, SZ_64K))) { \ + addr = __TLBI_VADDR(__flush_start, asid); \ __tlbi_level(op, addr, tlb_level); \ if (tlbi_user) \ __tlbi_user_level(op, addr, tlb_level); \ - start += stride; \ - pages -= stride >> PAGE_SHIFT; \ + __flush_start += stride; \ + __flush_pages -= stride >> PAGE_SHIFT; \ continue; \ } \ \ - num = __TLBI_RANGE_NUM(pages, scale); \ + num = __TLBI_RANGE_NUM(__flush_pages, scale); \ if (num >= 0) { \ - addr = __TLBI_VADDR_RANGE(start >> shift, asid, \ + addr = __TLBI_VADDR_RANGE(__flush_start >> shift, asid, \ scale, num, tlb_level); \ __tlbi(r##op, addr); \ if (tlbi_user) \ __tlbi_user(r##op, addr); \ - start += __TLBI_RANGE_PAGES(num, scale) << PAGE_SHIFT; \ - pages -= __TLBI_RANGE_PAGES(num, scale); \ + __flush_start += __TLBI_RANGE_PAGES(num, scale) << PAGE_SHIFT; \ + __flush_pages -= __TLBI_RANGE_PAGES(num, scale);\ } \ scale--; \ } \
arch/arm64/kernel/topology.c +10 -12
@@ -194,12 +194,19 @@ static void amu_fie_setup(const struct cpumask *cpus)int cpu;/* We are already set since the last insmod of cpufreq driver */ -if (unlikely (cpumask_subset (cpus, amu_fie_cpus))) +if (cpumask_available (amu_fie_cpus) && +unlikely (cpumask_subset (cpus, amu_fie_cpus)))return ; -for_each_cpu (cpu, cpus) { +for_each_cpu (cpu, cpus)if (!freq_counters_valid (cpu))return ; + +if (!cpumask_available (amu_fie_cpus) && + !zalloc_cpumask_var (&amu_fie_cpus,GFP_KERNEL )) { +WARN_ONCE (1 ,"Failed to allocate FIE cpumask for CPUs[%*pbl]\n" , +cpumask_pr_args (cpus)); +return ; }cpumask_or (amu_fie_cpus, amu_fie_cpus, cpus);
@@ -237,17 +244,8 @@ static struct notifier_block init_amu_fie_notifier = {static int __init init_amu_fie (void ) { -int ret; - -if (!zalloc_cpumask_var (&amu_fie_cpus,GFP_KERNEL )) -return -ENOMEM ; - - ret =cpufreq_register_notifier (&init_amu_fie_notifier, +return cpufreq_register_notifier (&init_amu_fie_notifier,CPUFREQ_POLICY_NOTIFIER ); -if (ret) -free_cpumask_var (amu_fie_cpus); - -return ret; }core_initcall (init_amu_fie);
arch/arm64/mm/mmu.c +4 -1
@@ -1176,8 +1176,11 @@ int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node, struct vmem_altmap *altmap) {WARN_ON ((start <VMEMMAP_START ) || (end >VMEMMAP_END )); +/* [start, end] should be within one section */ +WARN_ON_ONCE (end - start >PAGES_PER_SECTION *sizeof (struct page )); -if (!IS_ENABLED (CONFIG_ARM64_4K_PAGES )) +if (!IS_ENABLED (CONFIG_ARM64_4K_PAGES ) || + (end - start <PAGES_PER_SECTION *sizeof (struct page )))return vmemmap_populate_basepages (start, end, node, altmap);else return vmemmap_populate_hugepages (start, end, node, altmap);
arch/loongarch/kvm/switch.S +1 -1
@@ -85,7 +85,7 @@ * Guest CRMD comes from separate GCSR_CRMD register */ ori t0, zero, CSR_PRMD_PIE - csrxchg t0, t0, LOONGARCH_CSR_PRMD + csrwr t0, LOONGARCH_CSR_PRMD /* Set PVM bit to setup ertn to guest context */ ori t0, zero, CSR_GSTAT_PVM
arch/loongarch/mm/pageattr.c +2 -1
@@ -3,6 +3,7 @@* Copyright (C) 2024 Loongson Technology Corporation Limited */ +#include <linux/memblock.h> #include <linux/pagewalk.h> #include <linux/pgtable.h> #include <asm/set_memory.h>
@@ -167,7 +168,7 @@ bool kernel_page_present(struct page *page)unsigned long addr = (unsigned long )page_address (page);if (addr < vm_map_base) -return true; +return memblock_is_memory (__pa (addr)); pgd =pgd_offset_k (addr);if (pgd_none (pgdp_get (pgd)))
arch/x86/events/intel/core.c +85 -0
97 lines not on this page · raw message
arch/x86/events/rapl.c +1 -0
@@ -796,6 +796,7 @@ static const struct x86_cpu_id rapl_model_match[] __initconst = {X86_MATCH_VFM (INTEL_METEORLAKE_L , &model_skl),X86_MATCH_VFM (INTEL_ARROWLAKE_H , &model_skl),X86_MATCH_VFM (INTEL_ARROWLAKE , &model_skl), +X86_MATCH_VFM (INTEL_ARROWLAKE_U , &model_skl), X86_MATCH_VFM(INTEL_LUNARLAKE_M, &model_skl), {}, };
arch/x86/include/asm/sev.h +3 -3
@@ -185,6 +185,9 @@ struct snp_guest_req {unsigned int vmpck_id;u8 msg_version;u8 msg_type; + +struct snp_req_data input; +void *certs_data; };/*
@@ -245,9 +248,6 @@ struct snp_msg_desc {struct snp_guest_msg secret_request, secret_response;struct snp_secrets_page *secrets; -struct snp_req_data input; - -void *certs_data;struct aesgcm_ctx *ctx;
arch/x86/kernel/cpu/microcode/amd.c +1 -1
@@ -1075,7 +1075,7 @@ static enum ucode_state load_microcode_amd(u8 family, const u8 *data, size_t sizif (ret !=UCODE_OK )return ret; -for_each_node (nid) { +for_each_node_with_cpus (nid) { cpu =cpumask_first (cpumask_of_node (nid)); c = &cpu_data (cpu);
arch/x86/kernel/cpu/vmware.c +4 -0
@@ -26,6 +26,7 @@#include <linux/export.h> #include <linux/clocksource.h> #include <linux/cpu.h> +#include <linux/efi.h> #include <linux/reboot.h> #include <linux/static_call.h> #include <asm/div64.h>
@@ -429,6 +430,9 @@ static void __init vmware_platform_setup(void)pr_warn ("Failed to get TSC freq from the hypervisor\n" ); } +if (cc_platform_has (CC_ATTR_GUEST_SEV_SNP ) && !efi_enabled (EFI_BOOT )) + x86_init.mpparse.find_mptable = mpparse_find_mptable; +vmware_paravirt_ops_setup ();#ifdef CONFIG_X86_IO_APIC
arch/x86/kernel/devicetree.c +2 -1
@@ -2,6 +2,7 @@/* * Architecture specific OF callbacks. */ +#include <linux/acpi.h> #include <linux/export.h> #include <linux/io.h> #include <linux/interrupt.h>
@@ -313,6 +314,6 @@ void __init x86_flattree_get_config(void)if (initial_dtb)early_memunmap (dt, map_len);#endif -if (of_have_populated_dt ()) +if (acpi_disabled &&of_have_populated_dt ()) x86_init.mpparse.parse_smp_cfg = x86_dtb_parse_smp_config; }
arch/x86/kernel/irq.c +2 -0
@@ -25,8 +25,10 @@#include <asm/posted_intr.h> #include <asm/irq_remapping.h> +#if defined(CONFIG_X86_LOCAL_APIC ) || defined(CONFIG_X86_THERMAL_VECTOR )#define CREATE_TRACE_POINTS #include <asm/trace/irq_vectors.h> +#endif DEFINE_PER_CPU_SHARED_ALIGNED (irq_cpustat_t, irq_stat);EXPORT_PER_CPU_SYMBOL (irq_stat);
arch/x86/kvm/mmu/mmu.c +1 -1
@@ -7435,7 +7435,7 @@ static void kvm_mmu_start_lpage_recovery(struct once *once) kvm_nx_huge_page_recovery_worker_kill, kvm, "kvm-nx-lpage-recovery"); -if (!nx_thread) +if (IS_ERR (nx_thread))return ;vhost_task_start (nx_thread);
block/bio.c +1 -1
@@ -77,7 +77,7 @@ struct bio_slab {struct kmem_cache *slab;unsigned int slab_ref;unsigned int slab_size; -char name[8 ]; +char name[12 ]; };static DEFINE_MUTEX (bio_slab_lock);static DEFINE_XARRAY (bio_slabs);
drivers/acpi/resource.c +6 -0
@@ -563,6 +563,12 @@ static const struct dmi_system_id irq1_edge_low_force_override[] = { DMI_MATCH(DMI_BOARD_NAME, "RP-15"), }, }, + { + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"Eluktronics Inc." ), + DMI_MATCH(DMI_BOARD_NAME, "MECH-17"), + }, + }, {/* TongFang GM6XGxX/TUXEDO Stellaris 16 Gen5 AMD */ .matches = {
drivers/block/null_blk/main.c +2 -2
@@ -1541,8 +1541,8 @@ static int null_poll(struct blk_mq_hw_ctx *hctx, struct io_comp_batch *iob) cmd =blk_mq_rq_to_pdu (req); cmd->error =null_process_cmd (cmd,req_op (req),blk_rq_pos (req),blk_rq_sectors (req)); -if (!blk_mq_add_to_batch (req, iob, (__force int ) cmd->error, - blk_mq_end_request_batch)) +if (!blk_mq_add_to_batch (req, iob, cmd->error !=BLK_STS_OK , + blk_mq_end_request_batch))blk_mq_end_request (req, cmd->error); nr++; }
drivers/block/virtio_blk.c +3 -2
@@ -1207,11 +1207,12 @@ static int virtblk_poll(struct blk_mq_hw_ctx *hctx, struct io_comp_batch *iob)while ((vbr =virtqueue_get_buf (vq->vq, &len)) !=NULL ) {struct request *req =blk_mq_rq_from_pdu (vbr); +u8 status =virtblk_vbr_status (vbr); found++;if (!blk_mq_complete_request_remote (req) && - !blk_mq_add_to_batch (req, iob,virtblk_vbr_status (vbr), - virtblk_complete_batch)) + !blk_mq_add_to_batch (req, iob, status !=VIRTIO_BLK_S_OK , + virtblk_complete_batch))virtblk_request_done (req); }
drivers/clk/samsung/clk-gs101.c +0 -8
@@ -382,17 +382,9 @@ static const unsigned long cmu_top_clk_regs[] __initconst = {EARLY_WAKEUP_DPU_DEST ,EARLY_WAKEUP_CSIS_DEST ,EARLY_WAKEUP_SW_TRIG_APM , -EARLY_WAKEUP_SW_TRIG_APM_SET , -EARLY_WAKEUP_SW_TRIG_APM_CLEAR ,EARLY_WAKEUP_SW_TRIG_CLUSTER0 , -EARLY_WAKEUP_SW_TRIG_CLUSTER0_SET , -EARLY_WAKEUP_SW_TRIG_CLUSTER0_CLEAR ,EARLY_WAKEUP_SW_TRIG_DPU , -EARLY_WAKEUP_SW_TRIG_DPU_SET , -EARLY_WAKEUP_SW_TRIG_DPU_CLEAR ,EARLY_WAKEUP_SW_TRIG_CSIS , -EARLY_WAKEUP_SW_TRIG_CSIS_SET , -EARLY_WAKEUP_SW_TRIG_CSIS_CLEAR ,CLK_CON_MUX_MUX_CLKCMU_BO_BUS ,CLK_CON_MUX_MUX_CLKCMU_BUS0_BUS , CLK_CON_MUX_MUX_CLKCMU_BUS1_BUS,
drivers/clk/samsung/clk-pll.c +6 -1
@@ -206,6 +206,7 @@ static const struct clk_ops samsung_pll3000_clk_ops = {*/ /* Maximum lock time can be 270 * PDIV cycles */ #define PLL35XX_LOCK_FACTOR (270) +#define PLL142XX_LOCK_FACTOR (150)#define PLL35XX_MDIV_MASK (0x3FF)#define PLL35XX_PDIV_MASK (0x3F)
@@ -272,7 +273,11 @@ static int samsung_pll35xx_set_rate(struct clk_hw *hw, unsigned long drate, }/* Set PLL lock time. */ -writel_relaxed (rate->pdiv *PLL35XX_LOCK_FACTOR , +if (pll->type == pll_142xx) +writel_relaxed (rate->pdiv *PLL142XX_LOCK_FACTOR , + pll->lock_reg); +else +writel_relaxed (rate->pdiv *PLL35XX_LOCK_FACTOR , pll->lock_reg);/* Change PLL PMS values */
drivers/firmware/iscsi_ibft.c +4 -1
@@ -310,7 +310,10 @@ static ssize_t ibft_attr_show_nic(void *data, int type, char *buf) str +=sprintf_ipaddr (str, nic->ip_addr);break ;case ISCSI_BOOT_ETH_SUBNET_MASK : - val =cpu_to_be32 (~((1 << (32 -nic->subnet_mask_prefix))-1 )); +if (nic->subnet_mask_prefix >32 ) + val =cpu_to_be32 (~0 ); +else + val =cpu_to_be32 (~((1 << (32 -nic->subnet_mask_prefix))-1 )); str +=sprintf (str,"%pI4" , &val);break ;case ISCSI_BOOT_ETH_PREFIX_LEN :
drivers/gpio/gpiolib-cdev.c +9 -6
@@ -2729,8 +2729,9 @@ static int gpio_chrdev_open(struct inode *inode, struct file *file) cdev->gdev =gpio_device_get (gdev); cdev->lineinfo_changed_nb.notifier_call = lineinfo_changed_notify; - ret =atomic_notifier_chain_register (&gdev->line_state_notifier, - &cdev->lineinfo_changed_nb); +scoped_guard (write_lock_irqsave, &gdev->line_state_lock) + ret = raw_notifier_chain_register(&gdev->line_state_notifier, + &cdev->lineinfo_changed_nb);if (ret) goto out_free_bitmap;
@@ -2754,8 +2755,9 @@ static int gpio_chrdev_open(struct inode *inode, struct file *file)blocking_notifier_chain_unregister (&gdev->device_notifier, &cdev->device_unregistered_nb); out_unregister_line_notifier: -atomic_notifier_chain_unregister (&gdev->line_state_notifier, - &cdev->lineinfo_changed_nb); + scoped_guard(write_lock_irqsave, &gdev->line_state_lock) +raw_notifier_chain_unregister (&gdev->line_state_notifier, + &cdev->lineinfo_changed_nb); out_free_bitmap:gpio_device_put (gdev);bitmap_free (cdev->watched_lines);
@@ -2779,8 +2781,9 @@ static int gpio_chrdev_release(struct inode *inode, struct file *file)blocking_notifier_chain_unregister (&gdev->device_notifier, &cdev->device_unregistered_nb); -atomic_notifier_chain_unregister (&gdev->line_state_notifier, - &cdev->lineinfo_changed_nb); + scoped_guard(write_lock_irqsave, &gdev->line_state_lock) +raw_notifier_chain_unregister (&gdev->line_state_notifier, + &cdev->lineinfo_changed_nb);bitmap_free (cdev->watched_lines);gpio_device_put (gdev);kfree (cdev);
drivers/gpio/gpiolib.c +5 -3
@@ -1025,7 +1025,8 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data, } } -ATOMIC_INIT_NOTIFIER_HEAD (&gdev->line_state_notifier); +rwlock_init (&gdev->line_state_lock); +RAW_INIT_NOTIFIER_HEAD (&gdev->line_state_notifier);BLOCKING_INIT_NOTIFIER_HEAD (&gdev->device_notifier); ret =init_srcu_struct (&gdev->srcu);
@@ -4171,8 +4172,9 @@ EXPORT_SYMBOL_GPL(gpiod_set_array_value_cansleep);void gpiod_line_state_notify (struct gpio_desc *desc,unsigned long action) { -atomic_notifier_call_chain (&desc->gdev->line_state_notifier, - action, desc); +guard (read_lock_irqsave)(&desc->gdev->line_state_lock); + +raw_notifier_call_chain (&desc->gdev->line_state_notifier, action, desc); }/**
drivers/gpio/gpiolib.h +4 -1
@@ -16,6 +16,7 @@#include <linux/gpio/driver.h> #include <linux/module.h> #include <linux/notifier.h> +#include <linux/spinlock.h> #include <linux/srcu.h> #include <linux/workqueue.h>
@@ -45,6 +46,7 @@* @list: links gpio_device:s together for traversal * @line_state_notifier: used to notify subscribers about lines being * requested, released or reconfigured +* @line_state_lock: RW-spinlock protecting the line state notifier * @line_state_wq: used to emit line state events from a separate thread in * process context * @device_notifier: used to notify character device wait queues about the GPIO
@@ -72,7 +74,8 @@ struct gpio_device {const char *label;void *data;struct list_head list; -struct atomic_notifier_head line_state_notifier; +struct raw_notifier_head line_state_notifier; +rwlock_t line_state_lock;struct workqueue_struct *line_state_wq;struct blocking_notifier_head device_notifier;struct srcu_struct srcu;
drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c +3 -2
@@ -528,8 +528,9 @@ static void gmc_v12_0_get_vm_pte(struct amdgpu_device *adev, bo_adev =amdgpu_ttm_adev (bo->tbo.bdev); coherent = bo->flags &AMDGPU_GEM_CREATE_COHERENT ; - is_system = (bo->tbo.resource->mem_type ==TTM_PL_TT ) || - (bo->tbo.resource->mem_type ==AMDGPU_PL_PREEMPT ); + is_system = bo->tbo.resource && + (bo->tbo.resource->mem_type ==TTM_PL_TT || + bo->tbo.resource->mem_type ==AMDGPU_PL_PREEMPT );if (bo && bo->flags &AMDGPU_GEM_CREATE_GFX12_DCC ) *flags |=AMDGPU_PTE_DCC ;
drivers/gpu/drm/amd/amdgpu/vce_v2_0.c +1 -1
@@ -284,7 +284,7 @@ static int vce_v2_0_stop(struct amdgpu_device *adev)return 0 ; } - ip_block =amdgpu_device_ip_get_ip_block (adev,AMD_IP_BLOCK_TYPE_VCN ); + ip_block =amdgpu_device_ip_get_ip_block (adev,AMD_IP_BLOCK_TYPE_VCE );if (!ip_block)return -EINVAL ;
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +5 -3
@@ -1230,11 +1230,13 @@ static int evict_process_queues_cpsch(struct device_queue_manager *dqm,decrement_queue_count (dqm, qpd, q);if (dqm->dev->kfd->shared_resources.enable_mes) { - retval =remove_queue_mes (dqm, q, qpd); -if (retval) { +int err; + + err =remove_queue_mes (dqm, q, qpd); +if (err) {dev_err (dev,"Failed to evict queue %d\n" , q->properties.queue_id); - goto out; + retval = err; } } }
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +11 -1
@@ -244,6 +244,10 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,static void handle_hpd_irq_helper (struct amdgpu_dm_connector *aconnector);static void handle_hpd_rx_irq (void *param); +static void amdgpu_dm_backlight_set_level (struct amdgpu_display_manager *dm, +int bl_idx, +u32 user_brightness); +static bool is_timing_unchanged_for_freesync (struct drm_crtc_state *old_crtc_state,struct drm_crtc_state *new_crtc_state);
@@ -3318,6 +3322,12 @@ static int dm_resume(struct amdgpu_ip_block *ip_block)mutex_unlock (&dm->dc_lock); +/* set the backlight after a reset */ +for (i =0 ; i < dm->num_of_edps; i++) { +if (dm->backlight_dev[i]) +amdgpu_dm_backlight_set_level (dm, i, dm->brightness[i]); + } +return 0 ; }/* Recreate dc_state - DC invalidates it when setting power state to S3. */
@@ -4848,6 +4858,7 @@ amdgpu_dm_register_backlight_device(struct amdgpu_dm_connector *aconnector) dm->backlight_dev[aconnector->bl_idx] =backlight_device_register (bl_name, aconnector->base.kdev, dm, &amdgpu_dm_backlight_ops, &props); + dm->brightness[aconnector->bl_idx] = props.brightness;if (IS_ERR (dm->backlight_dev[aconnector->bl_idx])) {DRM_ERROR ("DM: Backlight registration failed!\n" );
@@ -4915,7 +4926,6 @@ static void setup_backlight_device(struct amdgpu_display_manager *dm, aconnector->bl_idx = bl_idx;amdgpu_dm_update_backlight_caps (dm, bl_idx); - dm->brightness[bl_idx] =AMDGPU_MAX_BL_LEVEL ; dm->backlight_link[bl_idx] = link; dm->num_of_edps++;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c +1 -0
@@ -455,6 +455,7 @@ void hdcp_destroy(struct kobject *kobj, struct hdcp_workqueue *hdcp_work)for (i =0 ; i < hdcp_work->max_link; i++) {cancel_delayed_work_sync (&hdcp_work[i].callback_dwork);cancel_delayed_work_sync (&hdcp_work[i].watchdog_timer_dwork); +cancel_delayed_work_sync (&hdcp_work[i].property_validate_dwork); }sysfs_remove_bin_file (kobj, &hdcp_work[0 ].attr);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c +45 -19
101 lines not on this page · raw message
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c +5 -2
@@ -275,8 +275,11 @@ static int amdgpu_dm_plane_validate_dcc(struct amdgpu_device *adev,if (!dcc->enable)return 0 ; -if (format >=SURFACE_PIXEL_FORMAT_VIDEO_BEGIN || - !dc->cap_funcs.get_dcc_compression_cap) +if (adev->family <AMDGPU_FAMILY_GC_12_0_0 && + format >=SURFACE_PIXEL_FORMAT_VIDEO_BEGIN ) +return -EINVAL ; + +if (!dc->cap_funcs.get_dcc_compression_cap)return -EINVAL ; input.format = format;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c +5 -2
@@ -3389,10 +3389,13 @@ static int get_norm_pix_clk(const struct dc_crtc_timing *timing)break ;case COLOR_DEPTH_121212 : normalized_pix_clk = (pix_clk *36 ) /24 ; -break ; +break ; +case COLOR_DEPTH_141414 : + normalized_pix_clk = (pix_clk *42 ) /24 ; +break ;case COLOR_DEPTH_161616 : normalized_pix_clk = (pix_clk *48 ) /24 ; -break ; +break ;default :ASSERT (0 );break ;
drivers/gpu/drm/amd/display/dc/dce60/dce60_timing_generator.c +1 -0
@@ -239,6 +239,7 @@ static const struct timing_generator_funcs dce60_tg_funcs = { dce60_timing_generator_enable_advanced_request, .configure_crc = dce60_configure_crc, .get_crc = dce110_get_crc, + .is_two_pixels_per_container = dce110_is_two_pixels_per_container, }; void dce60_timing_generator_construct(
drivers/gpu/drm/amd/display/dc/dml2/dml21/dml21_translation_helper.c +2 -2
@@ -1010,7 +1010,7 @@ bool dml21_map_dc_state_into_dml_display_cfg(const struct dc *in_dc, struct dc_sif (disp_cfg_stream_location <0 ) disp_cfg_stream_location = dml_dispcfg->num_streams++; -ASSERT (disp_cfg_stream_location >=0 && disp_cfg_stream_location <= __DML2_WRAPPER_MAX_STREAMS_PLANES__); +ASSERT (disp_cfg_stream_location >=0 && disp_cfg_stream_location < __DML2_WRAPPER_MAX_STREAMS_PLANES__);populate_dml21_timing_config_from_stream_state (&dml_dispcfg->stream_descriptors[disp_cfg_stream_location].timing, context->streams[stream_index], dml_ctx);adjust_dml21_hblank_timing_config_from_pipe_ctx (&dml_dispcfg->stream_descriptors[disp_cfg_stream_location].timing, &context->res_ctx.pipe_ctx[stream_index]);populate_dml21_output_config_from_stream_state (&dml_dispcfg->stream_descriptors[disp_cfg_stream_location].output, context->streams[stream_index], &context->res_ctx.pipe_ctx[stream_index]);
@@ -1035,7 +1035,7 @@ bool dml21_map_dc_state_into_dml_display_cfg(const struct dc *in_dc, struct dc_sif (disp_cfg_plane_location <0 ) disp_cfg_plane_location = dml_dispcfg->num_planes++; -ASSERT (disp_cfg_plane_location >=0 && disp_cfg_plane_location <= __DML2_WRAPPER_MAX_STREAMS_PLANES__); +ASSERT (disp_cfg_plane_location >=0 && disp_cfg_plane_location < __DML2_WRAPPER_MAX_STREAMS_PLANES__);populate_dml21_surface_config_from_plane_state (in_dc, &dml_dispcfg->plane_descriptors[disp_cfg_plane_location].surface, context->stream_status[stream_index].plane_states[plane_index]);populate_dml21_plane_config_from_plane_state (dml_ctx, &dml_dispcfg->plane_descriptors[disp_cfg_plane_location], context->stream_status[stream_index].plane_states[plane_index], context, stream_index);
drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c +3 -3
@@ -746,7 +746,7 @@ static void populate_dml_output_cfg_from_stream_state(struct dml_output_cfg_st *case SIGNAL_TYPE_DISPLAY_PORT_MST :case SIGNAL_TYPE_DISPLAY_PORT : out->OutputEncoder[location] = dml_dp; -if (dml2->v20.scratch.hpo_stream_to_link_encoder_mapping[location] !=-1 ) +if (location <MAX_HPO_DP2_ENCODERS && dml2->v20.scratch.hpo_stream_to_link_encoder_mapping[location] !=-1 ) out->OutputEncoder[dml2->v20.scratch.hpo_stream_to_link_encoder_mapping[location]] = dml_dp2p0;break ;case SIGNAL_TYPE_EDP :
@@ -1303,7 +1303,7 @@ void map_dc_state_into_dml_display_cfg(struct dml2_context *dml2, struct dc_statif (disp_cfg_stream_location <0 ) disp_cfg_stream_location = dml_dispcfg->num_timings++; -ASSERT (disp_cfg_stream_location >=0 && disp_cfg_stream_location <= __DML2_WRAPPER_MAX_STREAMS_PLANES__); +ASSERT (disp_cfg_stream_location >=0 && disp_cfg_stream_location < __DML2_WRAPPER_MAX_STREAMS_PLANES__);populate_dml_timing_cfg_from_stream_state (&dml_dispcfg->timing, disp_cfg_stream_location, context->streams[i]);populate_dml_output_cfg_from_stream_state (&dml_dispcfg->output, disp_cfg_stream_location, context->streams[i], current_pipe_context, dml2);
@@ -1343,7 +1343,7 @@ void map_dc_state_into_dml_display_cfg(struct dml2_context *dml2, struct dc_statif (disp_cfg_plane_location <0 ) disp_cfg_plane_location = dml_dispcfg->num_surfaces++; -ASSERT (disp_cfg_plane_location >=0 && disp_cfg_plane_location <= __DML2_WRAPPER_MAX_STREAMS_PLANES__); +ASSERT (disp_cfg_plane_location >=0 && disp_cfg_plane_location < __DML2_WRAPPER_MAX_STREAMS_PLANES__);populate_dml_surface_cfg_from_plane_state (dml2->v20.dml_core_ctx.project, &dml_dispcfg->surface, disp_cfg_plane_location, context->stream_status[i].plane_states[j]); populate_dml_plane_cfg_from_plane_state(
drivers/gpu/drm/display/drm_dp_mst_topology.c +24 -16
@@ -4035,6 +4035,22 @@ static int drm_dp_mst_handle_down_rep(struct drm_dp_mst_topology_mgr *mgr)return 0 ; } +static bool primary_mstb_probing_is_done (struct drm_dp_mst_topology_mgr *mgr) +{ +bool probing_done = false; + +mutex_lock (&mgr->lock); + +if (mgr->mst_primary &&drm_dp_mst_topology_try_get_mstb (mgr->mst_primary)) { + probing_done = mgr->mst_primary->link_address_sent; +drm_dp_mst_topology_put_mstb (mgr->mst_primary); + } + +mutex_unlock (&mgr->lock); + +return probing_done; +} +static inline bool drm_dp_mst_process_up_req (struct drm_dp_mst_topology_mgr *mgr,struct drm_dp_pending_up_req *up_req)
@@ -4065,8 +4081,12 @@ drm_dp_mst_process_up_req(struct drm_dp_mst_topology_mgr *mgr,/* TODO: Add missing handler for DP_RESOURCE_STATUS_NOTIFY events */ if (msg->req_type ==DP_CONNECTION_STATUS_NOTIFY ) { - dowork =drm_dp_mst_handle_conn_stat (mstb, &msg->u.conn_stat); - hotplug = true; +if (!primary_mstb_probing_is_done (mgr)) { +drm_dbg_kms (mgr->dev,"Got CSN before finish topology probing. Skip it.\n" ); + }else { + dowork =drm_dp_mst_handle_conn_stat (mstb, &msg->u.conn_stat); + hotplug = true; + } }drm_dp_mst_topology_put_mstb (mstb);
@@ -4148,10 +4168,11 @@ static int drm_dp_mst_handle_up_req(struct drm_dp_mst_topology_mgr *mgr)drm_dp_send_up_ack_reply (mgr, mst_primary, up_req->msg.req_type, false); +drm_dp_mst_topology_put_mstb (mst_primary); +if (up_req->msg.req_type ==DP_CONNECTION_STATUS_NOTIFY ) {const struct drm_dp_connection_status_notify *conn_stat = &up_req->msg.u.conn_stat; -bool handle_csn; drm_dbg_kms(mgr->dev, "Got CSN: pn: %d ldps:%d ddps: %d mcs: %d ip: %d pdt: %d\n", conn_stat->port_number,
@@ -4160,16 +4181,6 @@ static int drm_dp_mst_handle_up_req(struct drm_dp_mst_topology_mgr *mgr) conn_stat->message_capability_status, conn_stat->input_port, conn_stat->peer_device_type); - -mutex_lock (&mgr->probe_lock); - handle_csn = mst_primary->link_address_sent; -mutex_unlock (&mgr->probe_lock); - -if (!handle_csn) { -drm_dbg_kms (mgr->dev,"Got CSN before finish topology probing. Skip it." ); -kfree (up_req); - goto out_put_primary; - } }else if (up_req->msg.req_type ==DP_RESOURCE_STATUS_NOTIFY ) {const struct drm_dp_resource_status_notify *res_stat = &up_req->msg.u.resource_stat;
@@ -4184,9 +4195,6 @@ static int drm_dp_mst_handle_up_req(struct drm_dp_mst_topology_mgr *mgr)list_add_tail (&up_req->next, &mgr->up_req_list);mutex_unlock (&mgr->up_req_lock);queue_work (system_long_wq, &mgr->up_req_work); - -out_put_primary: -drm_dp_mst_topology_put_mstb (mst_primary); out_clear_reply:reset_msg_rx_state (&mgr->up_req_recv);return ret;
drivers/gpu/drm/drm_atomic_uapi.c +4 -0
@@ -956,6 +956,10 @@ int drm_atomic_connector_commit_dpms(struct drm_atomic_state *state,if (mode !=DRM_MODE_DPMS_ON ) mode =DRM_MODE_DPMS_OFF ; + +if (connector->dpms == mode) + goto out; + connector->dpms = mode; crtc = connector->state->crtc;
drivers/gpu/drm/drm_connector.c +4 -0
@@ -1308,6 +1308,10 @@ EXPORT_SYMBOL(drm_hdmi_connector_get_output_format_name);* callback. For atomic drivers the remapping to the "ACTIVE" property is * implemented in the DRM core. * +* On atomic drivers any DPMS setproperty ioctl where the value does not +* change is completely skipped, otherwise a full atomic commit will occur. +* On legacy drivers the exact behavior is driver specific. +* * Note that this property cannot be set through the MODE_ATOMIC ioctl, * userspace must use "ACTIVE" on the CRTC instead. *
drivers/gpu/drm/drm_panic_qr.rs +8 -8
@@ -545,7 +545,7 @@ fn add_segments(&mut self, segments: &[&Segment<'_>]) { } self.push (&mut offset, (MODE_STOP ,4 )); -let pad_offset = (offset +7 ) /8 ; +let pad_offset = offset.div_ceil (8 );for iin pad_offset..self.version.max_data () { self.data[i] =PADDING [(i &1 ) ^ (pad_offset &1 )]; }
@@ -659,7 +659,7 @@ struct QrImage<'a> {impl QrImage <'_> {fn new <'a, 'b>(em: &'bEncodedMsg <'b>, qrdata: &'amut [u8 ]) ->QrImage <'a> {let width = em.version.width (); -let stride = (width +7 ) /8 ; +let stride = width.div_ceil (8 );let data = qrdata; let mut qr_image = QrImage {
@@ -911,16 +911,16 @@ fn draw_all(&mut self, data: impl Iterator<Item = u8>) {/// /// * `url`: The base URL of the QR code. It will be encoded as Binary segment. /// * `data`: A pointer to the binary data, to be encoded. if URL is NULL, it -/// will be encoded as binary segment, otherwise it will be encoded -/// efficiently as a numeric segment, and appended to the URL. +/// will be encoded as binary segment, otherwise it will be encoded +/// efficiently as a numeric segment, and appended to the URL. /// * `data_len`: Length of the data, that needs to be encoded, must be less -/// than data_size. +/// than data_size. /// * `data_size`: Size of data buffer, it should be at least 4071 bytes to hold -/// a V40 QR code. It will then be overwritten with the QR code image. +/// a V40 QR code. It will then be overwritten with the QR code image. /// * `tmp`: A temporary buffer that the QR code encoder will use, to write the -/// segments and ECC. +/// segments and ECC. /// * `tmp_size`: Size of the temporary buffer, it must be at least 3706 bytes -/// long for V40. +/// long for V40. /// /// # Safety ///
drivers/gpu/drm/gma500/mid_bios.c +5 -0
@@ -279,6 +279,11 @@ static void mid_get_vbt_data(struct drm_psb_private *dev_priv) 0, PCI_DEVFN(2, 0));int ret =-1 ; +if (pci_gfx_root ==NULL ) { +WARN_ON (1 ); +return ; + } +/* Get the address of the platform config vbt */ pci_read_config_dword (pci_gfx_root,0xFC , &addr);pci_dev_put (pci_gfx_root);
drivers/gpu/drm/hyperv/hyperv_drm_drv.c +2 -0
@@ -156,6 +156,7 @@ static int hyperv_vmbus_probe(struct hv_device *hdev,return 0 ; err_free_mmio: +iounmap (hv->vram);vmbus_free_mmio (hv->mem->start, hv->fb_size); err_vmbus_close:vmbus_close (hdev->channel);
@@ -174,6 +175,7 @@ static void hyperv_vmbus_remove(struct hv_device *hdev)vmbus_close (hdev->channel);hv_set_drvdata (hdev,NULL ); +iounmap (hv->vram);vmbus_free_mmio (hv->mem->start, hv->fb_size); }
drivers/gpu/drm/i915/display/intel_display.c +2 -3
@@ -7840,9 +7840,6 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)/* Now enable the clocks, plane, pipe, and connectors that we set up. */ dev_priv->display.funcs.display->commit_modeset_enables (state); -if (state->modeset) -intel_set_cdclk_post_plane_update (state); -intel_wait_for_vblank_workers (state);/* FIXME: We should call drm_atomic_helper_commit_hw_done() here
@@ -7916,6 +7913,8 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)intel_verify_planes (state);intel_sagv_post_plane_update (state); +if (state->modeset) +intel_set_cdclk_post_plane_update (state);intel_pmdemand_post_plane_update (state);drm_atomic_helper_commit_hw_done (&state->base);
drivers/gpu/drm/i915/gem/i915_gem_mman.c +4 -1
@@ -164,6 +164,9 @@ static unsigned int tile_row_pages(const struct drm_i915_gem_object *obj)* 4 - Support multiple fault handlers per object depending on object's * backing storage (a.k.a. MMAP_OFFSET). * +* 5 - Support multiple partial mmaps(mmap part of BO + unmap a offset, multiple +* times with different size and offset). +* * Restrictions: * * * snoopable objects cannot be accessed via the GTT. It can cause machine
@@ -191,7 +194,7 @@ static unsigned int tile_row_pages(const struct drm_i915_gem_object *obj)*/ int i915_gem_mmap_gtt_version (void ) { -return 4 ; +return 5 ; } static inline struct i915_gtt_view
drivers/gpu/drm/nouveau/nouveau_connector.c +0 -1
@@ -775,7 +775,6 @@ nouveau_connector_force(struct drm_connector *connector)if (!nv_encoder) {NV_ERROR (drm,"can't find encoder to force %s on!\n" , connector->name); - connector->status = connector_status_disconnected;return ; }
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c +96 -97
493 lines not on this page · raw message
drivers/gpu/drm/vkms/vkms_composer.c +1 -1
@@ -98,7 +98,7 @@ static u16 lerp_u16(u16 a, u16 b, s64 t)s64 delta =drm_fixp_mul (b_fp - a_fp, t); -return drm_fixp2int (a_fp + delta); +return drm_fixp2int_round (a_fp + delta); }static s64 get_lut_index (const struct vkms_color_lut *lut,u16 channel_value)
drivers/gpu/drm/xe/xe_guc_ct.c +4 -2
@@ -1699,9 +1699,11 @@ void xe_guc_ct_snapshot_print(struct xe_guc_ct_snapshot *snapshot,drm_printf (p,"\tg2h outstanding: %d\n" , snapshot->g2h_outstanding); -if (snapshot->ctb) -xe_print_blob_ascii85 (p,"CTB data" ,'\n' , +if (snapshot->ctb) { +drm_printf (p,"[CTB].length: 0x%zx\n" , snapshot->ctb_size); +xe_print_blob_ascii85 (p,"[CTB].data" ,'\n' , snapshot->ctb,0 , snapshot->ctb_size); + } }else {drm_puts (p,"CT disabled\n" ); }
drivers/gpu/drm/xe/xe_guc_log.c +2 -1
@@ -208,10 +208,11 @@ void xe_guc_log_snapshot_print(struct xe_guc_log_snapshot *snapshot, struct drm_drm_printf (p,"GuC timestamp: 0x%08llX [%llu]\n" , snapshot->stamp, snapshot->stamp);drm_printf (p,"Log level: %u\n" , snapshot->level); +drm_printf (p,"[LOG].length: 0x%zx\n" , snapshot->size); remain = snapshot->size;for (i =0 ; i < snapshot->num_chunks; i++) {size_t size =min (GUC_LOG_CHUNK_SIZE , remain); -const char *prefix = i ?NULL :"Log data" ; +const char *prefix = i ?NULL :"[LOG].data" ;char suffix = i == snapshot->num_chunks -1 ?'\n' :0 ;xe_print_blob_ascii85 (p, prefix, suffix, snapshot->copy[i],0 , size);
drivers/gpu/drm/xe/xe_guc_submit.c +3 -1
@@ -1236,9 +1236,11 @@ static void __guc_exec_queue_fini_async(struct work_struct *w)xe_pm_runtime_get (guc_to_xe (guc));trace_xe_exec_queue_destroy (q); +release_guc_id (guc, q);if (xe_exec_queue_is_lr (q))cancel_work_sync (&ge->lr_tdr); -release_guc_id (guc, q); +/* Confirm no work left behind accessing device structures */ +cancel_delayed_work_sync (&ge->sched.base.work_tdr);xe_sched_entity_fini (&ge->entity);xe_sched_fini (&ge->sched);
drivers/gpu/drm/xe/xe_hmm.c +5 -1
@@ -138,13 +138,17 @@ static int xe_build_sg(struct xe_device *xe, struct hmm_range *range, i += size;if (unlikely (j == st->nents -1 )) { +xe_assert (xe, i >= npages);if (i > npages) size -= (i - npages); +sg_mark_end (sgl); + }else { +xe_assert (xe, i < npages); } +sg_set_page (sgl, page, size <<PAGE_SHIFT ,0 ); } -xe_assert (xe, i == npages);return dma_map_sgtable (dev, st, write ?DMA_BIDIRECTIONAL :DMA_TO_DEVICE ,DMA_ATTR_SKIP_CPU_SYNC |DMA_ATTR_NO_KERNEL_MAPPING );
drivers/gpu/drm/xe/xe_pm.c +12 -1
@@ -266,6 +266,15 @@ int xe_pm_init_early(struct xe_device *xe) }ALLOW_ERROR_INJECTION (xe_pm_init_early,ERRNO );/* See xe_pci_probe() */ +static u32 vram_threshold_value (struct xe_device *xe) +{ +/* FIXME: D3Cold temporarily disabled by default on BMG */ +if (xe->info.platform ==XE_BATTLEMAGE ) +return 0 ; + +return DEFAULT_VRAM_THRESHOLD ; +} +/** * xe_pm_init - Initialize Xe Power Management * @xe: xe device instance
@@ -276,6 +285,7 @@ ALLOW_ERROR_INJECTION(xe_pm_init_early, ERRNO); /* See xe_pci_probe() */*/ int xe_pm_init (struct xe_device *xe) { +u32 vram_threshold;int err;/* For now suspend/resume is only allowed with GuC */
@@ -289,7 +299,8 @@ int xe_pm_init(struct xe_device *xe)if (err)return err; - err =xe_pm_set_vram_threshold (xe,DEFAULT_VRAM_THRESHOLD ); + vram_threshold =vram_threshold_value (xe); + err =xe_pm_set_vram_threshold (xe, vram_threshold);if (err)return err; }
drivers/hid/Kconfig +2 -1
@@ -1167,7 +1167,8 @@ config HID_TOPRE tristate "Topre REALFORCE keyboards" depends on HID help - Say Y for N-key rollover support on Topre REALFORCE R2 108/87 key keyboards. + Say Y for N-key rollover support on Topre REALFORCE R2 108/87 key and + Topre REALFORCE R3S 87 key keyboards. config HID_THINGM tristate "ThingM blink(1) USB RGB LED"
drivers/hid/hid-apple.c +12 -1
@@ -378,6 +378,12 @@ static bool apple_is_non_apple_keyboard(struct hid_device *hdev)return false; } +static bool apple_is_omoton_kb066 (struct hid_device *hdev) +{ +return hdev->product ==USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI && +strcmp (hdev->name,"Bluetooth Keyboard" ) ==0 ; +} +static inline void apple_setup_key_translation (struct input_dev *input,const struct apple_key_translation *table) {
@@ -474,6 +480,7 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input, hid->product == USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2015) table = magic_keyboard_2015_fn_keys; else if (hid->product == USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021 || + hid->product == USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024 || hid->product == USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021 || hid->product == USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021) table = apple2021_fn_keys;
@@ -724,7 +731,7 @@ static int apple_input_configured(struct hid_device *hdev, {struct apple_sc *asc =hid_get_drvdata (hdev); -if ((asc->quirks &APPLE_HAS_FN ) && !asc->fn_found) { +if (((asc->quirks &APPLE_HAS_FN ) && !asc->fn_found) ||apple_is_omoton_kb066 (hdev)) {hid_info (hdev,"Fn key not found (Apple Wireless Keyboard clone?), disabling Fn key handling\n" ); asc->quirks &= ~APPLE_HAS_FN ; }
@@ -1150,6 +1157,10 @@ static const struct hid_device_id apple_devices[] = { .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY }, { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021), .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024), + .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY }, + { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024), + .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021), .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY }, { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021),
drivers/hid/hid-ids.h +3 -0
@@ -184,6 +184,7 @@#define USB_DEVICE_ID_APPLE_IRCONTROL4 0x8242#define USB_DEVICE_ID_APPLE_IRCONTROL5 0x8243#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021 0x029c +#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024 0x0320#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021 0x029a#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021 0x029f#define USB_DEVICE_ID_APPLE_TOUCHBAR_BACKLIGHT 0x8102
@@ -1093,6 +1094,7 @@#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001 0x3001#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3003 0x3003#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008 0x3008 +#define USB_DEVICE_ID_QUANTA_HP_5MP_CAMERA_5473 0x5473#define I2C_VENDOR_ID_RAYDIUM 0x2386#define I2C_PRODUCT_ID_RAYDIUM_4B33 0x4b33
@@ -1299,6 +1301,7 @@#define USB_VENDOR_ID_TOPRE 0x0853#define USB_DEVICE_ID_TOPRE_REALFORCE_R2_108 0x0148#define USB_DEVICE_ID_TOPRE_REALFORCE_R2_87 0x0146 +#define USB_DEVICE_ID_TOPRE_REALFORCE_R3S_87 0x0313#define USB_VENDOR_ID_TOPSEED 0x0766#define USB_DEVICE_ID_TOPSEED_CYBERLINK 0x0204
drivers/hid/hid-quirks.c +1 -0
@@ -891,6 +891,7 @@ static const struct hid_device_id hid_ignore_list[] = { { HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_DPAD) }, #endif { HID_USB_DEVICE(USB_VENDOR_ID_YEALINK, USB_DEVICE_ID_YEALINK_P1K_P4K_B2K) }, + { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_HP_5MP_CAMERA_5473) }, { } };
drivers/hid/hid-steam.c +3 -3
@@ -1051,10 +1051,10 @@ static void steam_mode_switch_cb(struct work_struct *work) struct steam_device, mode_switch);unsigned long flags;bool client_opened; - steam->gamepad_mode = !steam->gamepad_mode;if (!lizard_mode)return ; + steam->gamepad_mode = !steam->gamepad_mode;if (steam->gamepad_mode)steam_set_lizard_mode (steam, false);else {
@@ -1623,7 +1623,7 @@ static void steam_do_deck_input_event(struct steam_device *steam,schedule_delayed_work (&steam->mode_switch,45 *HZ /100 ); } -if (!steam->gamepad_mode) +if (!steam->gamepad_mode && lizard_mode)return ; lpad_touched = b10 &BIT (3 );
@@ -1693,7 +1693,7 @@ static void steam_do_deck_sensors_event(struct steam_device *steam,*/ steam->sensor_timestamp_us +=4000 ; -if (!steam->gamepad_mode) +if (!steam->gamepad_mode && lizard_mode)return ;input_event (sensors,EV_MSC ,MSC_TIMESTAMP , steam->sensor_timestamp_us);
drivers/hid/hid-topre.c +7 -0
@@ -29,6 +29,11 @@ static const __u8 *topre_report_fixup(struct hid_device *hdev, __u8 *rdesc,hid_info (hdev,"fixing up Topre REALFORCE keyboard report descriptor\n" ); rdesc[72 ] =0x02 ; + }else if (*rsize >=106 && rdesc[28 ] ==0x29 && rdesc[29 ] ==0xe7 && + rdesc[30 ] ==0x81 && rdesc[31 ] ==0x00 ) { +hid_info (hdev, +"fixing up Topre REALFORCE keyboard report descriptor\n" ); + rdesc[31 ] =0x02 ; }return rdesc; }
@@ -38,6 +43,8 @@ static const struct hid_device_id topre_id_table[] = { USB_DEVICE_ID_TOPRE_REALFORCE_R2_108) }, { HID_USB_DEVICE(USB_VENDOR_ID_TOPRE, USB_DEVICE_ID_TOPRE_REALFORCE_R2_87) }, + { HID_USB_DEVICE(USB_VENDOR_ID_TOPRE, + USB_DEVICE_ID_TOPRE_REALFORCE_R3S_87) }, { } }; MODULE_DEVICE_TABLE(hid, topre_id_table);
drivers/hid/intel-ish-hid/ipc/hw-ish.h +2 -0
@@ -36,6 +36,8 @@#define PCI_DEVICE_ID_INTEL_ISH_ARL_H 0x7745#define PCI_DEVICE_ID_INTEL_ISH_ARL_S 0x7F78#define PCI_DEVICE_ID_INTEL_ISH_LNL_M 0xA845 +#define PCI_DEVICE_ID_INTEL_ISH_PTL_H 0xE345 +#define PCI_DEVICE_ID_INTEL_ISH_PTL_P 0xE445#define REVISION_ID_CHT_A0 0x6#define REVISION_ID_CHT_Ax_SI 0x0
drivers/hid/intel-ish-hid/ipc/ipc.c +9 -6
@@ -517,6 +517,10 @@ static int ish_fw_reset_handler(struct ishtp_device *dev)/* ISH FW is dead */ if (!ish_is_input_ready (dev))return -EPIPE ; + +/* Send clock sync at once after reset */ + ishtp_dev->prev_sync =0 ; +/* * Set HOST2ISH.ILUP. Apparently we need this BEFORE sending * RESET_NOTIFY_ACK - FW will be checking for it
@@ -577,15 +581,14 @@ static void fw_reset_work_fn(struct work_struct *work)*/ static void _ish_sync_fw_clock (struct ishtp_device *dev) { -static unsigned long prev_sync; -uint64_t usec; +struct ipc_time_update_msg time = {}; -if (prev_sync &&time_before (jiffies, prev_sync +20 *HZ )) +if (dev->prev_sync &&time_before (jiffies, dev->prev_sync +20 *HZ ))return ; - prev_sync = jiffies; - usec =ktime_to_us (ktime_get_boottime ()); -ipc_send_mng_msg (dev,MNG_SYNC_FW_CLOCK , &usec,sizeof (uint64_t )); + dev->prev_sync = jiffies; +/* The fields of time would be updated while sending message */ +ipc_send_mng_msg (dev,MNG_SYNC_FW_CLOCK , &time,sizeof (time)); }/**
drivers/hid/intel-ish-hid/ipc/pci-ish.c +7 -0
@@ -26,9 +26,11 @@enum ishtp_driver_data_index {ISHTP_DRIVER_DATA_NONE ,ISHTP_DRIVER_DATA_LNL_M , +ISHTP_DRIVER_DATA_PTL , };#define ISH_FW_GEN_LNL_M "lnlm" +#define ISH_FW_GEN_PTL "ptl"#define ISH_FIRMWARE_PATH (gen) "intel/ish/ish_" gen ".bin"#define ISH_FIRMWARE_PATH_ALL "intel/ish/ish_*.bin"
@@ -37,6 +39,9 @@ static struct ishtp_driver_data ishtp_driver_data[] = { [ISHTP_DRIVER_DATA_LNL_M ] = { .fw_generation =ISH_FW_GEN_LNL_M , }, + [ISHTP_DRIVER_DATA_PTL ] = { + .fw_generation =ISH_FW_GEN_PTL , + }, };static const struct pci_device_id ish_pci_tbl[] = {
@@ -63,6 +68,8 @@ static const struct pci_device_id ish_pci_tbl[] = { {PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ISH_ARL_H)}, {PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ISH_ARL_S)}, {PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ISH_LNL_M), .driver_data = ISHTP_DRIVER_DATA_LNL_M}, + {PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ISH_PTL_H), .driver_data = ISHTP_DRIVER_DATA_PTL}, + {PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ISH_PTL_P), .driver_data = ISHTP_DRIVER_DATA_PTL}, {} };MODULE_DEVICE_TABLE (pci, ish_pci_tbl);
drivers/hid/intel-ish-hid/ishtp/ishtp-dev.h +2 -0
@@ -254,6 +254,8 @@ struct ishtp_device {unsigned int ipc_tx_cnt;unsigned long long ipc_tx_bytes_cnt; +/* Time of the last clock sync */ +unsigned long prev_sync;const struct ishtp_hw_ops *ops;size_t mtu;uint32_t ishtp_msg_hdr;
drivers/hv/vmbus_drv.c +13 -0
@@ -2262,12 +2262,25 @@ void vmbus_free_mmio(resource_size_t start, resource_size_t size)struct resource *iter;mutex_lock (&hyperv_mmio_lock); + +/* +* If all bytes of the MMIO range to be released are within the +* special case fb_mmio shadow region, skip releasing the shadow +* region since no corresponding __request_region() was done +* in vmbus_allocate_mmio(). +*/ +if (fb_mmio && start >= fb_mmio->start && + (start + size -1 <= fb_mmio->end)) + goto skip_shadow_release; +for (iter = hyperv_mmio; iter; iter = iter->sibling) {if ((iter->start >= start + size) || (iter->end <= start))continue ;__release_region (iter, start, size); } + +skip_shadow_release:release_mem_region (start, size);mutex_unlock (&hyperv_mmio_lock);
drivers/i2c/busses/i2c-ali1535.c +11 -1
@@ -485,6 +485,8 @@ MODULE_DEVICE_TABLE(pci, ali1535_ids);static int ali1535_probe (struct pci_dev *dev,const struct pci_device_id *id) { +int ret; +if (ali1535_setup (dev)) {dev_warn (&dev->dev,"ALI1535 not detected, module not inserted.\n" );
@@ -496,7 +498,15 @@ static int ali1535_probe(struct pci_dev *dev, const struct pci_device_id *id)snprintf (ali1535_adapter.name,sizeof (ali1535_adapter.name),"SMBus ALI1535 adapter at %04x" , ali1535_offset); -return i2c_add_adapter (&ali1535_adapter); + ret =i2c_add_adapter (&ali1535_adapter); +if (ret) + goto release_region; + +return 0 ; + +release_region: +release_region (ali1535_smba,ALI1535_SMB_IOSIZE ); +return ret; }static void ali1535_remove (struct pci_dev *dev)
drivers/i2c/busses/i2c-ali15x3.c +11 -1
@@ -472,6 +472,8 @@ MODULE_DEVICE_TABLE (pci, ali15x3_ids);static int ali15x3_probe (struct pci_dev *dev,const struct pci_device_id *id) { +int ret; +if (ali15x3_setup (dev)) {dev_err (&dev->dev,"ALI15X3 not detected, module not inserted.\n" );
@@ -483,7 +485,15 @@ static int ali15x3_probe(struct pci_dev *dev, const struct pci_device_id *id)snprintf (ali15x3_adapter.name,sizeof (ali15x3_adapter.name),"SMBus ALI15X3 adapter at %04x" , ali15x3_smba); -return i2c_add_adapter (&ali15x3_adapter); + ret =i2c_add_adapter (&ali15x3_adapter); +if (ret) + goto release_region; + +return 0 ; + +release_region: +release_region (ali15x3_smba,ALI15X3_SMB_IOSIZE ); +return ret; }static void ali15x3_remove (struct pci_dev *dev)
drivers/i2c/busses/i2c-sis630.c +11 -1
@@ -509,6 +509,8 @@ MODULE_DEVICE_TABLE(pci, sis630_ids);static int sis630_probe (struct pci_dev *dev,const struct pci_device_id *id) { +int ret; +if (sis630_setup (dev)) {dev_err (&dev->dev, "SIS630 compatible bus not detected, "
@@ -522,7 +524,15 @@ static int sis630_probe(struct pci_dev *dev, const struct pci_device_id *id)snprintf (sis630_adapter.name,sizeof (sis630_adapter.name),"SMBus SIS630 adapter at %04x" , smbus_base +SMB_STS ); -return i2c_add_adapter (&sis630_adapter); + ret =i2c_add_adapter (&sis630_adapter); +if (ret) + goto release_region; + +return 0 ; + +release_region: +release_region (smbus_base +SMB_STS ,SIS630_SMB_IOREGION ); +return ret; }static void sis630_remove (struct pci_dev *dev)
drivers/input/joystick/xpad.c +32 -7
@@ -140,6 +140,7 @@ static const struct xpad_device { { 0x044f, 0x0f00, "Thrustmaster Wheel", 0, XTYPE_XBOX }, { 0x044f, 0x0f03, "Thrustmaster Wheel", 0, XTYPE_XBOX }, { 0x044f, 0x0f07, "Thrustmaster, Inc. Controller", 0, XTYPE_XBOX }, + { 0x044f, 0xd01e, "ThrustMaster, Inc. ESWAP X 2 ELDEN RING EDITION", 0, XTYPE_XBOXONE }, { 0x044f, 0x0f10, "Thrustmaster Modena GT Wheel", 0, XTYPE_XBOX }, { 0x044f, 0xb326, "Thrustmaster Gamepad GP XID", 0, XTYPE_XBOX360 }, { 0x045e, 0x0202, "Microsoft X-Box pad v1 (US)", 0, XTYPE_XBOX },
@@ -177,6 +178,7 @@ static const struct xpad_device { { 0x06a3, 0x0200, "Saitek Racing Wheel", 0, XTYPE_XBOX }, { 0x06a3, 0x0201, "Saitek Adrenalin", 0, XTYPE_XBOX }, { 0x06a3, 0xf51a, "Saitek P3600", 0, XTYPE_XBOX360 }, + { 0x0738, 0x4503, "Mad Catz Racing Wheel", 0, XTYPE_XBOXONE }, { 0x0738, 0x4506, "Mad Catz 4506 Wireless Controller", 0, XTYPE_XBOX }, { 0x0738, 0x4516, "Mad Catz Control Pad", 0, XTYPE_XBOX }, { 0x0738, 0x4520, "Mad Catz Control Pad Pro", 0, XTYPE_XBOX },
@@ -238,6 +240,7 @@ static const struct xpad_device { { 0x0e6f, 0x0146, "Rock Candy Wired Controller for Xbox One", 0, XTYPE_XBOXONE }, { 0x0e6f, 0x0147, "PDP Marvel Xbox One Controller", 0, XTYPE_XBOXONE }, { 0x0e6f, 0x015c, "PDP Xbox One Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, + { 0x0e6f, 0x015d, "PDP Mirror's Edge Official Wired Controller for Xbox One", XTYPE_XBOXONE }, { 0x0e6f, 0x0161, "PDP Xbox One Controller", 0, XTYPE_XBOXONE }, { 0x0e6f, 0x0162, "PDP Xbox One Controller", 0, XTYPE_XBOXONE }, { 0x0e6f, 0x0163, "PDP Xbox One Controller", 0, XTYPE_XBOXONE },
@@ -276,12 +279,15 @@ static const struct xpad_device { { 0x0f0d, 0x0078, "Hori Real Arcade Pro V Kai Xbox One", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, { 0x0f0d, 0x00c5, "Hori Fighting Commander ONE", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, { 0x0f0d, 0x00dc, "HORIPAD FPS for Nintendo Switch", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, + { 0x0f0d, 0x0151, "Hori Racing Wheel Overdrive for Xbox Series X", 0, XTYPE_XBOXONE }, + { 0x0f0d, 0x0152, "Hori Racing Wheel Overdrive for Xbox Series X", 0, XTYPE_XBOXONE }, { 0x0f30, 0x010b, "Philips Recoil", 0, XTYPE_XBOX }, { 0x0f30, 0x0202, "Joytech Advanced Controller", 0, XTYPE_XBOX }, { 0x0f30, 0x8888, "BigBen XBMiniPad Controller", 0, XTYPE_XBOX }, { 0x102c, 0xff0c, "Joytech Wireless Advanced Controller", 0, XTYPE_XBOX }, { 0x1038, 0x1430, "SteelSeries Stratus Duo", 0, XTYPE_XBOX360 }, { 0x1038, 0x1431, "SteelSeries Stratus Duo", 0, XTYPE_XBOX360 }, + { 0x10f5, 0x7005, "Turtle Beach Recon Controller", 0, XTYPE_XBOXONE }, { 0x11c9, 0x55f0, "Nacon GC-100XF", 0, XTYPE_XBOX360 }, { 0x11ff, 0x0511, "PXN V900", 0, XTYPE_XBOX360 }, { 0x1209, 0x2882, "Ardwiino Controller", 0, XTYPE_XBOX360 },
@@ -306,7 +312,7 @@ static const struct xpad_device { { 0x1689, 0xfe00, "Razer Sabertooth", 0, XTYPE_XBOX360 }, { 0x17ef, 0x6182, "Lenovo Legion Controller for Windows", 0, XTYPE_XBOX360 }, { 0x1949, 0x041a, "Amazon Game Controller", 0, XTYPE_XBOX360 }, - { 0x1a86, 0xe310, "QH Electronics Controller", 0, XTYPE_XBOX360 }, + { 0x1a86, 0xe310, "Legion Go S", 0, XTYPE_XBOX360 }, { 0x1bad, 0x0002, "Harmonix Rock Band Guitar", 0, XTYPE_XBOX360 }, { 0x1bad, 0x0003, "Harmonix Rock Band Drumkit", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360 }, { 0x1bad, 0x0130, "Ion Drum Rocker", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360 },
@@ -343,6 +349,7 @@ static const struct xpad_device { { 0x1bad, 0xfa01, "MadCatz GamePad", 0, XTYPE_XBOX360 }, { 0x1bad, 0xfd00, "Razer Onza TE", 0, XTYPE_XBOX360 }, { 0x1bad, 0xfd01, "Razer Onza", 0, XTYPE_XBOX360 }, + { 0x1ee9, 0x1590, "ZOTAC Gaming Zone", 0, XTYPE_XBOX360 }, { 0x20d6, 0x2001, "BDA Xbox Series X Wired Controller", 0, XTYPE_XBOXONE }, { 0x20d6, 0x2009, "PowerA Enhanced Wired Controller for Xbox Series X|S", 0, XTYPE_XBOXONE }, { 0x20d6, 0x281f, "PowerA Wired Controller For Xbox 360", 0, XTYPE_XBOX360 },
@@ -366,6 +373,7 @@ static const struct xpad_device { { 0x24c6, 0x5510, "Hori Fighting Commander ONE (Xbox 360/PC Mode)", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, { 0x24c6, 0x551a, "PowerA FUSION Pro Controller", 0, XTYPE_XBOXONE }, { 0x24c6, 0x561a, "PowerA FUSION Controller", 0, XTYPE_XBOXONE }, + { 0x24c6, 0x581a, "ThrustMaster XB1 Classic Controller", 0, XTYPE_XBOXONE }, { 0x24c6, 0x5b00, "ThrustMaster Ferrari 458 Racing Wheel", 0, XTYPE_XBOX360 }, { 0x24c6, 0x5b02, "Thrustmaster, Inc. GPX Controller", 0, XTYPE_XBOX360 }, { 0x24c6, 0x5b03, "Thrustmaster Ferrari 458 Racing Wheel", 0, XTYPE_XBOX360 },
@@ -374,10 +382,15 @@ static const struct xpad_device { { 0x2563, 0x058d, "OneXPlayer Gamepad", 0, XTYPE_XBOX360 }, { 0x294b, 0x3303, "Snakebyte GAMEPAD BASE X", 0, XTYPE_XBOXONE }, { 0x294b, 0x3404, "Snakebyte GAMEPAD RGB X", 0, XTYPE_XBOXONE }, + { 0x2993, 0x2001, "TECNO Pocket Go", 0, XTYPE_XBOX360 }, { 0x2dc8, 0x2000, "8BitDo Pro 2 Wired Controller fox Xbox", 0, XTYPE_XBOXONE }, { 0x2dc8, 0x3106, "8BitDo Ultimate Wireless / Pro 2 Wired Controller", 0, XTYPE_XBOX360 }, + { 0x2dc8, 0x3109, "8BitDo Ultimate Wireless Bluetooth", 0, XTYPE_XBOX360 }, { 0x2dc8, 0x310a, "8BitDo Ultimate 2C Wireless Controller", 0, XTYPE_XBOX360 }, + { 0x2dc8, 0x6001, "8BitDo SN30 Pro", 0, XTYPE_XBOX360 }, { 0x2e24, 0x0652, "Hyperkin Duke X-Box One pad", 0, XTYPE_XBOXONE }, + { 0x2e24, 0x1688, "Hyperkin X91 X-Box One pad", 0, XTYPE_XBOXONE }, + { 0x2e95, 0x0504, "SCUF Gaming Controller", MAP_SELECT_BUTTON, XTYPE_XBOXONE }, { 0x31e3, 0x1100, "Wooting One", 0, XTYPE_XBOX360 }, { 0x31e3, 0x1200, "Wooting Two", 0, XTYPE_XBOX360 }, { 0x31e3, 0x1210, "Wooting Lekker", 0, XTYPE_XBOX360 },
@@ -385,11 +398,16 @@ static const struct xpad_device { { 0x31e3, 0x1230, "Wooting Two HE (ARM)", 0, XTYPE_XBOX360 }, { 0x31e3, 0x1300, "Wooting 60HE (AVR)", 0, XTYPE_XBOX360 }, { 0x31e3, 0x1310, "Wooting 60HE (ARM)", 0, XTYPE_XBOX360 }, + { 0x3285, 0x0603, "Nacon Pro Compact controller for Xbox", 0, XTYPE_XBOXONE }, { 0x3285, 0x0607, "Nacon GC-100", 0, XTYPE_XBOX360 }, + { 0x3285, 0x0614, "Nacon Pro Compact", 0, XTYPE_XBOXONE }, { 0x3285, 0x0646, "Nacon Pro Compact", 0, XTYPE_XBOXONE }, + { 0x3285, 0x0662, "Nacon Revolution5 Pro", 0, XTYPE_XBOX360 }, { 0x3285, 0x0663, "Nacon Evol-X", 0, XTYPE_XBOXONE }, { 0x3537, 0x1004, "GameSir T4 Kaleid", 0, XTYPE_XBOX360 }, + { 0x3537, 0x1010, "GameSir G7 SE", 0, XTYPE_XBOXONE }, { 0x3767, 0x0101, "Fanatec Speedster 3 Forceshock Wheel", 0, XTYPE_XBOX }, + { 0x413d, 0x2104, "Black Shark Green Ghost Gamepad", 0, XTYPE_XBOX360 }, { 0xffff, 0xffff, "Chinese-made Xbox Controller", 0, XTYPE_XBOX }, { 0x0000, 0x0000, "Generic X-Box pad", 0, XTYPE_UNKNOWN } };
@@ -488,6 +506,7 @@ static const struct usb_device_id xpad_table[] = {XPAD_XBOX360_VENDOR (0x03f0 ),/* HP HyperX Xbox 360 controllers */ XPAD_XBOXONE_VENDOR (0x03f0 ),/* HP HyperX Xbox One controllers */ XPAD_XBOX360_VENDOR (0x044f ),/* Thrustmaster Xbox 360 controllers */ +XPAD_XBOXONE_VENDOR (0x044f ),/* Thrustmaster Xbox One controllers */ XPAD_XBOX360_VENDOR (0x045e ),/* Microsoft Xbox 360 controllers */ XPAD_XBOXONE_VENDOR (0x045e ),/* Microsoft Xbox One controllers */ XPAD_XBOX360_VENDOR(0x046d), /* Logitech Xbox 360-style controllers */
@@ -519,8 +538,9 @@ static const struct usb_device_id xpad_table[] = {XPAD_XBOX360_VENDOR (0x1689 ),/* Razer Onza */ XPAD_XBOX360_VENDOR (0x17ef ),/* Lenovo */ XPAD_XBOX360_VENDOR (0x1949 ),/* Amazon controllers */ -XPAD_XBOX360_VENDOR (0x1a86 ),/* QH Electronics */ +XPAD_XBOX360_VENDOR (0x1a86 ),/* Nanjing Qinheng Microelectronics (WCH) */ XPAD_XBOX360_VENDOR (0x1bad ),/* Harmonix Rock Band guitar and drums */ +XPAD_XBOX360_VENDOR (0x1ee9 ),/* ZOTAC Technology Limited */ XPAD_XBOX360_VENDOR (0x20d6 ),/* PowerA controllers */ XPAD_XBOXONE_VENDOR (0x20d6 ),/* PowerA controllers */ XPAD_XBOX360_VENDOR(0x2345), /* Machenike Controllers */
@@ -528,17 +548,20 @@ static const struct usb_device_id xpad_table[] = {XPAD_XBOXONE_VENDOR (0x24c6 ),/* PowerA controllers */ XPAD_XBOX360_VENDOR (0x2563 ),/* OneXPlayer Gamepad */ XPAD_XBOX360_VENDOR (0x260d ),/* Dareu H101 */ -XPAD_XBOXONE_VENDOR (0x294b ),/* Snakebyte */ +XPAD_XBOXONE_VENDOR (0x294b ),/* Snakebyte */ +XPAD_XBOX360_VENDOR (0x2993 ),/* TECNO Mobile */ XPAD_XBOX360_VENDOR (0x2c22 ),/* Qanba Controllers */ -XPAD_XBOX360_VENDOR (0x2dc8 ),/* 8BitDo Pro 2 Wired Controller */ -XPAD_XBOXONE_VENDOR (0x2dc8 ),/* 8BitDo Pro 2 Wired Controller for Xbox */ -XPAD_XBOXONE_VENDOR (0x2e24 ),/* Hyperkin Duke Xbox One pad */ -XPAD_XBOX360_VENDOR (0x2f24 ),/* GameSir controllers */ +XPAD_XBOX360_VENDOR (0x2dc8 ),/* 8BitDo Controllers */ +XPAD_XBOXONE_VENDOR (0x2dc8 ),/* 8BitDo Controllers */ +XPAD_XBOXONE_VENDOR (0x2e24 ),/* Hyperkin Controllers */ +XPAD_XBOX360_VENDOR (0x2f24 ),/* GameSir Controllers */ +XPAD_XBOXONE_VENDOR (0x2e95 ),/* SCUF Gaming Controller */ XPAD_XBOX360_VENDOR (0x31e3 ),/* Wooting Keyboards */ XPAD_XBOX360_VENDOR (0x3285 ),/* Nacon GC-100 */ XPAD_XBOXONE_VENDOR (0x3285 ),/* Nacon Evol-X */ XPAD_XBOX360_VENDOR (0x3537 ),/* GameSir Controllers */ XPAD_XBOXONE_VENDOR (0x3537 ),/* GameSir Controllers */ + XPAD_XBOX360_VENDOR(0x413d), /* Black Shark Green Ghost Controller */ { } };
@@ -691,7 +714,9 @@ static const struct xboxone_init_packet xboxone_init_packets[] = {XBOXONE_INIT_PKT (0x045e ,0x0b00 , xboxone_s_init),XBOXONE_INIT_PKT (0x045e ,0x0b00 , extra_input_packet_init),XBOXONE_INIT_PKT (0x0e6f ,0x0000 , xboxone_pdp_led_on), +XBOXONE_INIT_PKT (0x20d6 ,0xa01a , xboxone_pdp_led_on),XBOXONE_INIT_PKT (0x0e6f ,0x0000 , xboxone_pdp_auth), +XBOXONE_INIT_PKT (0x20d6 ,0xa01a , xboxone_pdp_auth),XBOXONE_INIT_PKT (0x24c6 ,0x541a , xboxone_rumblebegin_init),XBOXONE_INIT_PKT (0x24c6 ,0x542a , xboxone_rumblebegin_init), XBOXONE_INIT_PKT(0x24c6, 0x543a, xboxone_rumblebegin_init),
drivers/input/misc/iqs7222.c +22 -28
195 lines not on this page · raw message
drivers/input/serio/i8042-acpipnpio.h +55 -56
240 lines not on this page · raw message
drivers/input/touchscreen/ads7846.c +1 -1
@@ -1021,7 +1021,7 @@ static int ads7846_setup_pendown(struct spi_device *spi,if (pdata->get_pendown_state) { ts->get_pendown_state = pdata->get_pendown_state; }else { - ts->gpio_pendown =gpiod_get (&spi->dev,"pendown" ,GPIOD_IN ); + ts->gpio_pendown =devm_gpiod_get (&spi->dev,"pendown" ,GPIOD_IN );if (IS_ERR (ts->gpio_pendown)) {dev_err (&spi->dev,"failed to request pendown GPIO\n" );return PTR_ERR (ts->gpio_pendown);
drivers/input/touchscreen/goodix_berlin_core.c +12 -12
@@ -165,7 +165,7 @@ struct goodix_berlin_core {struct device *dev;struct regmap *regmap;struct regulator *avdd; -struct regulator *iovdd; +struct regulator *vddio;struct gpio_desc *reset_gpio;struct touchscreen_properties props;struct goodix_berlin_fw_version fw_version;
@@ -248,19 +248,19 @@ static int goodix_berlin_power_on(struct goodix_berlin_core *cd) {int error; - error =regulator_enable (cd->iovdd); + error =regulator_enable (cd->vddio);if (error) { -dev_err (cd->dev,"Failed to enable iovdd: %d\n" , error); +dev_err (cd->dev,"Failed to enable vddio: %d\n" , error);return error; } -/* Vendor waits 3ms for IOVDD to settle */ +/* Vendor waits 3ms for VDDIO to settle */ usleep_range (3000 ,3100 ); error =regulator_enable (cd->avdd);if (error) {dev_err (cd->dev,"Failed to enable avdd: %d\n" , error); - goto err_iovdd_disable; + goto err_vddio_disable; }/* Vendor waits 15ms for IOVDD to settle */
@@ -283,8 +283,8 @@ static int goodix_berlin_power_on(struct goodix_berlin_core *cd) err_dev_reset:gpiod_set_value_cansleep (cd->reset_gpio,1 );regulator_disable (cd->avdd); -err_iovdd_disable: -regulator_disable (cd->iovdd); +err_vddio_disable: +regulator_disable (cd->vddio);return error; }
@@ -292,7 +292,7 @@ static void goodix_berlin_power_off(struct goodix_berlin_core *cd) {gpiod_set_value_cansleep (cd->reset_gpio,1 );regulator_disable (cd->avdd); -regulator_disable (cd->iovdd); +regulator_disable (cd->vddio); }static int goodix_berlin_read_version (struct goodix_berlin_core *cd)
@@ -744,10 +744,10 @@ int goodix_berlin_probe(struct device *dev, int irq, const struct input_id *id,return dev_err_probe (dev,PTR_ERR (cd->avdd),"Failed to request avdd regulator\n" ); - cd->iovdd =devm_regulator_get (dev,"iovdd" ); -if (IS_ERR (cd->iovdd)) -return dev_err_probe (dev,PTR_ERR (cd->iovdd), -"Failed to request iovdd regulator\n" ); + cd->vddio =devm_regulator_get (dev,"vddio" ); +if (IS_ERR (cd->vddio)) +return dev_err_probe (dev,PTR_ERR (cd->vddio), +"Failed to request vddio regulator\n" ); error =goodix_berlin_power_on (cd);if (error) {
drivers/irqchip/irq-riscv-imsic-early.c +1 -1
@@ -27,7 +27,7 @@ static void imsic_ipi_send(unsigned int cpu) {struct imsic_local_config *local =per_cpu_ptr (imsic->global.local, cpu); -writel_relaxed (IMSIC_IPI_ID , local->msi_va); +writel (IMSIC_IPI_ID , local->msi_va); }static void imsic_ipi_starting_cpu (void )
drivers/irqchip/irq-thead-c900-aclint-sswi.c +1 -1
@@ -31,7 +31,7 @@ static DEFINE_PER_CPU(void __iomem *, sswi_cpu_regs);static void thead_aclint_sswi_ipi_send (unsigned int cpu) { -writel_relaxed (0x1 ,per_cpu (sswi_cpu_regs, cpu)); +writel (0x1 ,per_cpu (sswi_cpu_regs, cpu)); }static void thead_aclint_sswi_ipi_clear (void )
drivers/md/dm-flakey.c +1 -1
@@ -426,7 +426,7 @@ static struct bio *clone_bio(struct dm_target *ti, struct flakey_c *fc, struct bif (!clone)return NULL ; -bio_init (clone, fc->dev->bdev, bio->bi_inline_vecs, nr_iovecs, bio->bi_opf); +bio_init (clone, fc->dev->bdev, clone->bi_inline_vecs, nr_iovecs, bio->bi_opf); clone->bi_iter.bi_sector =flakey_map_sector (ti, bio->bi_iter.bi_sector); clone->bi_private = bio;
drivers/net/bonding/bond_options.c +47 -8
87 lines not on this page · raw message
drivers/net/dsa/mv88e6xxx/chip.c +48 -11
94 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt.c +22 -3
@@ -2039,6 +2039,7 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr,struct rx_cmp_ext *rxcmp1;u32 tmp_raw_cons = *raw_cons;u16 cons, prod, cp_cons =RING_CMP (tmp_raw_cons); +struct skb_shared_info *sinfo;struct bnxt_sw_rx_bd *rx_buf;unsigned int len;u8 *data_ptr, agg_bufs, cmp_type;
@@ -2165,6 +2166,7 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr, false);if (!frag_len) goto oom_next_rx; + } xdp_active = true; }
@@ -2174,6 +2176,12 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr, rc =1 ; goto next_rx; } +if (xdp_buff_has_frags (&xdp)) { + sinfo =xdp_get_shared_info_from_buff (&xdp); + agg_bufs = sinfo->nr_frags; + }else { + agg_bufs =0 ; + } }if (len <= bp->rx_copy_thresh) {
@@ -2211,7 +2219,8 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr,if (!skb) goto oom_next_rx; }else { - skb =bnxt_xdp_build_skb (bp, skb, agg_bufs, rxr->page_pool, &xdp, rxcmp1); + skb =bnxt_xdp_build_skb (bp, skb, agg_bufs, + rxr->page_pool, &xdp);if (!skb) {/* we should be able to free the old skb here */ bnxt_xdp_buff_frags_free (rxr, &xdp);
@@ -15322,6 +15331,9 @@ static void bnxt_get_queue_stats_rx(struct net_device *dev, int i,struct bnxt_cp_ring_info *cpr;u64 *sw; +if (!bp->bnapi) +return ; + cpr = &bp->bnapi[i]->cp_ring; sw = cpr->stats.sw_stats;
@@ -15345,6 +15357,9 @@ static void bnxt_get_queue_stats_tx(struct net_device *dev, int i,struct bnxt_napi *bnapi;u64 *sw; +if (!bp->tx_ring) +return ; + bnapi = bp->tx_ring[bp->tx_ring_map[i]].bnapi; sw = bnapi->cp_ring.stats.sw_stats;
@@ -15386,6 +15401,9 @@ static int bnxt_queue_mem_alloc(struct net_device *dev, void *qmem, int idx)struct bnxt_ring_struct *ring;int rc; +if (!bp->rx_ring) +return -ENETDOWN ; + rxr = &bp->rx_ring[idx]; clone = qmem;memcpy (clone, rxr,sizeof (*rxr));
@@ -15468,6 +15486,7 @@ static void bnxt_queue_mem_free(struct net_device *dev, void *qmem)struct bnxt_ring_struct *ring;bnxt_free_one_rx_ring_skbs (bp, rxr); +bnxt_free_one_tpa_info (bp, rxr);xdp_rxq_info_unreg (&rxr->xdp_rxq);
@@ -15579,7 +15598,7 @@ static int bnxt_queue_start(struct net_device *dev, void *qmem, int idx) cpr = &rxr->bnapi->cp_ring; cpr->sw_stats->rx.rx_resets++; -for (i =0 ; i <=BNXT_VNIC_NTUPLE ; i++) { +for (i =0 ; i <= bp->nr_vnics; i++) { vnic = &bp->vnic_info[i]; rc =bnxt_hwrm_vnic_set_rss_p5 (bp, vnic, true);
@@ -15607,7 +15626,7 @@ static int bnxt_queue_stop(struct net_device *dev, void *qmem, int idx)struct bnxt_vnic_info *vnic;int i; -for (i =0 ; i <=BNXT_VNIC_NTUPLE ; i++) { +for (i =0 ; i <= bp->nr_vnics; i++) { vnic = &bp->vnic_info[i]; vnic->mru =0 ; bnxt_hwrm_vnic_update(bp, vnic,
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c +3 -10
@@ -456,23 +456,16 @@ int bnxt_xdp(struct net_device *dev, struct netdev_bpf *xdp)struct sk_buff *bnxt_xdp_build_skb (struct bnxt *bp,struct sk_buff *skb,u8 num_frags, -struct page_pool *pool,struct xdp_buff *xdp, -struct rx_cmp_ext *rxcmp1) +struct page_pool *pool,struct xdp_buff *xdp) {struct skb_shared_info *sinfo =xdp_get_shared_info_from_buff (xdp);if (!skb)return NULL ; -skb_checksum_none_assert (skb); -if (RX_CMP_L4_CS_OK (rxcmp1)) { -if (bp->dev->features &NETIF_F_RXCSUM ) { - skb->ip_summed =CHECKSUM_UNNECESSARY ; - skb->csum_level =RX_CMP_ENCAP (rxcmp1); - } - } +xdp_update_skb_shared_info (skb, num_frags, sinfo->xdp_frags_size, -BNXT_RX_PAGE_SIZE * sinfo->nr_frags, +BNXT_RX_PAGE_SIZE * num_frags,xdp_buff_is_frag_pfmemalloc (xdp));return skb; }
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.h +1 -2
@@ -33,6 +33,5 @@ void bnxt_xdp_buff_frags_free(struct bnxt_rx_ring_info *rxr, struct xdp_buff *xdp);struct sk_buff *bnxt_xdp_build_skb (struct bnxt *bp,struct sk_buff *skb,u8 num_frags,struct page_pool *pool, -struct xdp_buff *xdp, -struct rx_cmp_ext *rxcmp1); +struct xdp_buff *xdp);#endif
drivers/net/ethernet/intel/ice/ice_arfs.c +1 -1
@@ -511,7 +511,7 @@ void ice_init_arfs(struct ice_vsi *vsi)struct hlist_head *arfs_fltr_list;unsigned int i; -if (!vsi || vsi->type !=ICE_VSI_PF ) +if (!vsi || vsi->type !=ICE_VSI_PF ||ice_is_arfs_active (vsi))return ; arfs_fltr_list = kcalloc(ICE_MAX_ARFS_LIST, sizeof(*arfs_fltr_list),
drivers/net/ethernet/intel/ice/ice_eswitch.c +0 -6
@@ -49,9 +49,6 @@ static int ice_eswitch_setup_env(struct ice_pf *pf)if (vlan_ops->dis_rx_filtering (uplink_vsi)) goto err_vlan_filtering; -if (ice_vsi_update_security (uplink_vsi, ice_vsi_ctx_set_allow_override)) - goto err_override_uplink; -if (ice_vsi_update_local_lb (uplink_vsi, true)) goto err_override_local_lb;
@@ -63,8 +60,6 @@ static int ice_eswitch_setup_env(struct ice_pf *pf) err_up:ice_vsi_update_local_lb (uplink_vsi, false); err_override_local_lb: -ice_vsi_update_security (uplink_vsi, ice_vsi_ctx_clear_allow_override); -err_override_uplink: vlan_ops->ena_rx_filtering (uplink_vsi); err_vlan_filtering: ice_cfg_dflt_vsi(uplink_vsi->port_info, uplink_vsi->idx, false,
@@ -275,7 +270,6 @@ static void ice_eswitch_release_env(struct ice_pf *pf) vlan_ops =ice_get_compat_vsi_vlan_ops (uplink_vsi);ice_vsi_update_local_lb (uplink_vsi, false); -ice_vsi_update_security (uplink_vsi, ice_vsi_ctx_clear_allow_override); vlan_ops->ena_rx_filtering (uplink_vsi);ice_cfg_dflt_vsi (uplink_vsi->port_info, uplink_vsi->idx, false,ICE_FLTR_TX );
drivers/net/ethernet/intel/ice/ice_lag.c +27 -0
@@ -1000,6 +1000,28 @@ static void ice_lag_link(struct ice_lag *lag)netdev_info (lag->netdev,"Shared SR-IOV resources in bond are active\n" ); } +/** +* ice_lag_config_eswitch - configure eswitch to work with LAG +* @lag: lag info struct +* @netdev: active network interface device struct +* +* Updates all port representors in eswitch to use @netdev for Tx. +* +* Configures the netdev to keep dst metadata (also used in representor Tx). +* This is required for an uplink without switchdev mode configured. +*/ +static void ice_lag_config_eswitch (struct ice_lag *lag, +struct net_device *netdev) +{ +struct ice_repr *repr; +unsigned long id; + +xa_for_each (&lag->pf->eswitch.reprs, id, repr) + repr->dst->u.port_info.lower_dev = netdev; + +netif_keep_dst (netdev); +} +/** * ice_lag_unlink - handle unlink event * @lag: LAG info struct
@@ -1021,6 +1043,9 @@ static void ice_lag_unlink(struct ice_lag *lag)ice_lag_move_vf_nodes (lag, act_port, pri_port); lag->primary = false; lag->active_port =ICE_LAG_INVALID_PORT ; + +/* Config primary's eswitch back to normal operation. */ +ice_lag_config_eswitch (lag, lag->netdev); }else {struct ice_lag *primary_lag;
@@ -1419,6 +1444,7 @@ static void ice_lag_monitor_active(struct ice_lag *lag, void *ptr)ice_lag_move_vf_nodes (lag, prim_port, event_port); lag->active_port = event_port; +ice_lag_config_eswitch (lag, event_netdev);return ; }
@@ -1428,6 +1454,7 @@ static void ice_lag_monitor_active(struct ice_lag *lag, void *ptr)/* new active port */ ice_lag_move_vf_nodes (lag, lag->active_port, event_port); lag->active_port = event_port; +ice_lag_config_eswitch (lag, event_netdev); }else {/* port not set as currently active (e.g. new active port * has already claimed the nodes and filters
drivers/net/ethernet/intel/ice/ice_lib.c +0 -18
@@ -3930,24 +3930,6 @@ void ice_vsi_ctx_clear_antispoof(struct ice_vsi_ctx *ctx) ICE_AQ_VSI_SEC_TX_PRUNE_ENA_S); } -/** -* ice_vsi_ctx_set_allow_override - allow destination override on VSI -* @ctx: pointer to VSI ctx structure -*/ -void ice_vsi_ctx_set_allow_override (struct ice_vsi_ctx *ctx) -{ - ctx->info.sec_flags |=ICE_AQ_VSI_SEC_FLAG_ALLOW_DEST_OVRD ; -} - -/** -* ice_vsi_ctx_clear_allow_override - turn off destination override on VSI -* @ctx: pointer to VSI ctx structure -*/ -void ice_vsi_ctx_clear_allow_override (struct ice_vsi_ctx *ctx) -{ - ctx->info.sec_flags &= ~ICE_AQ_VSI_SEC_FLAG_ALLOW_DEST_OVRD ; -} -/** * ice_vsi_update_local_lb - update sw block in VSI with local loopback bit * @vsi: pointer to VSI structure
drivers/net/ethernet/intel/ice/ice_lib.h +0 -4
@@ -104,10 +104,6 @@ ice_vsi_update_security(struct ice_vsi *vsi, void (*fill)(struct ice_vsi_ctx *))void ice_vsi_ctx_set_antispoof (struct ice_vsi_ctx *ctx);void ice_vsi_ctx_clear_antispoof (struct ice_vsi_ctx *ctx); - -void ice_vsi_ctx_set_allow_override (struct ice_vsi_ctx *ctx); - -void ice_vsi_ctx_clear_allow_override (struct ice_vsi_ctx *ctx);int ice_vsi_update_local_lb (struct ice_vsi *vsi,bool set);int ice_vsi_add_vlan_zero (struct ice_vsi *vsi);int ice_vsi_del_vlan_zero (struct ice_vsi *vsi);
drivers/net/ethernet/intel/ice/ice_txrx.c +3 -1
@@ -2424,7 +2424,9 @@ ice_xmit_frame_ring(struct sk_buff *skb, struct ice_tx_ring *tx_ring) ICE_TXD_CTX_QW1_CMD_S);ice_tstamp (tx_ring, skb, first, &offload); -if (ice_is_switchdev_running (vsi->back) && vsi->type !=ICE_VSI_SF ) +if ((ice_is_switchdev_running (vsi->back) || +ice_lag_is_switchdev_running (vsi->back)) && + vsi->type !=ICE_VSI_SF )ice_eswitch_set_target_vsi (skb, &offload);if (offload.cd_qw1 &ICE_TX_DESC_DTYPE_CTX ) {
drivers/net/ethernet/mellanox/mlx5/core/devlink.c +3 -0
@@ -46,6 +46,9 @@ mlx5_devlink_info_get(struct devlink *devlink, struct devlink_info_req *req,u32 running_fw, stored_fw;int err; +if (!mlx5_core_is_pf (dev)) +return 0 ; + err =devlink_info_version_fixed_put (req,"fw.psid" , dev->board_id);if (err)return err;
drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c +5 -7
@@ -48,15 +48,10 @@ mlx5_esw_bridge_lag_rep_get(struct net_device *dev, struct mlx5_eswitch *esw)struct list_head *iter;netdev_for_each_lower_dev (dev, lower, iter) { -struct mlx5_core_dev *mdev; -struct mlx5e_priv *priv; -if (!mlx5e_eswitch_rep (lower))continue ; - priv =netdev_priv (lower); - mdev = priv->mdev; -if (mlx5_lag_is_shared_fdb (mdev) &&mlx5_esw_bridge_dev_same_esw (lower, esw))
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_main.c +2 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/eq.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/mlx5_irq.h +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c +10 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/pci_irq.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microsoft/mana/gdma_main.c +10 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microsoft/mana/mana_en.c +6 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/rtase/rtase_main.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/net/phy/nxp-c45-tja11xx.c +68 -0
68 lines not on this page · raw message
drivers/net/wireless/intel/iwlwifi/mvm/fw.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/nvme/host/fc.c +8 -51
59 lines not on this page · raw message
drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/platform/x86/intel/int3472/discrete.c +65 -20
85 lines not on this page · raw message
drivers/platform/x86/thinkpad_acpi.c +36 -14
50 lines not on this page · raw message
drivers/spi/spi-microchip-core.c +18 -23
41 lines not on this page · raw message
drivers/usb/serial/option.c +32 -16
48 lines not on this page · raw message
drivers/video/fbdev/hyperv_fb.c +34 -18
52 lines not on this page · raw message
drivers/virt/coco/sev-guest/sev-guest.c +39 -24
63 lines not on this page · raw message
fs/smb/server/oplock.c +21 -22
43 lines not on this page · raw message
include/net/bluetooth/hci_core.h +38 -70
108 lines not on this page · raw message
mm/userfaultfd.c +74 -17
91 lines not on this page · raw message
net/bluetooth/l2cap_core.c +85 -96
181 lines not on this page · raw message
net/mctp/test/route-test.c +109 -0
109 lines not on this page · raw message
scripts/generate_rust_analyzer.py +43 -30
73 lines not on this page · raw message
sound/soc/intel/boards/sof_sdw.c +36 -7
43 lines not on this page · raw message
sound/soc/intel/common/soc-acpi-intel-mtl-match.c +1 -1
Lines of this file are not shown. View the raw message.
sound/soc/renesas/rcar/src.c +93 -23
116 lines not on this page · raw message
tools/sched_ext/include/scx/common.bpf.h +11 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c +3 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/xdp_cpumap_attach.c +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/xdp_devmap_attach.c +4 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/cgroup/test_cpuset_v1_hp.sh +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/drivers/net/bonding/bond_options.sh +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/filesystems/statmount/statmount_test.c +21 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/sched_ext/dsp_local_on.bpf.c +1 -1
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.