Linux 6.9.11
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.9.11 kernel.
All users of the 6.9 kernel series must upgrade.
The updated 6.9.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.9.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/cdrom/cdrom-standard.rst | 4 Makefile | 2 arch/arm64/kernel/armv8_deprecated.c | 3 arch/loongarch/boot/dts/loongson-2k0500-ref.dts | 4 arch/loongarch/boot/dts/loongson-2k1000-ref.dts | 4 arch/loongarch/boot/dts/loongson-2k2000-ref.dts | 2 arch/mips/kernel/syscalls/syscall_o32.tbl | 2 arch/powerpc/kernel/eeh_pe.c | 7 arch/powerpc/kvm/book3s_64_vio.c | 18 arch/powerpc/platforms/pseries/setup.c | 4 arch/riscv/kernel/stacktrace.c | 3 drivers/acpi/ac.c | 4 drivers/acpi/ec.c | 9 drivers/acpi/sbs.c | 4 drivers/block/loop.c | 23 drivers/block/null_blk/main.c | 4 drivers/bluetooth/btnxpuart.c | 2 drivers/clk/qcom/apss-ipq-pll.c | 2 drivers/firmware/efi/libstub/zboot.lds | 1 drivers/gpio/gpio-pca953x.c | 2 drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c | 15 drivers/gpu/drm/amd/amdgpu/psp_v14_0.c | 5 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 52 + drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c | 3 drivers/gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c | 2 drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c | 2 drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c | 1 drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c | 2 drivers/gpu/drm/amd/include/pptable.h | 91 +-- drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 13 drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h | 5 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v14_0_0_ppsmc.h | 4 drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h | 4 drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c | 73 ++ drivers/gpu/drm/drm_panel_orientation_quirks.c | 6 drivers/gpu/drm/exynos/exynos_dp.c | 1 drivers/gpu/drm/mediatek/mtk_drm_drv.c | 8 drivers/gpu/drm/radeon/radeon_gem.c | 2 drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c | 8 drivers/gpu/drm/vmwgfx/Kconfig | 2 drivers/hid/hid-debug.c | 2 drivers/hid/hid-ids.h | 2 drivers/hid/hid-input.c | 13 drivers/input/joystick/xpad.c | 1 drivers/input/mouse/elantech.c | 31 + drivers/input/serio/i8042-acpipnpio.h | 18 drivers/input/touchscreen/ads7846.c | 12 drivers/input/touchscreen/silead.c | 19 drivers/misc/mei/main.c | 2 drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c | 2 drivers/net/ethernet/ibm/ibmvnic.c | 12 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 1 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c | 10 drivers/net/ethernet/marvell/octeontx2/nic/otx2_reg.h | 55 +- drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c | 2 drivers/net/ethernet/marvell/octeontx2/nic/qos.c | 3 drivers/net/usb/qmi_wwan.c | 2 drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 16 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 47 + drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c | 13 drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 6 drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 8 drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 12 drivers/net/wireless/intel/iwlwifi/mvm/sta.h | 5 drivers/nvme/host/core.c | 1 drivers/nvme/host/fabrics.c | 6 drivers/nvme/host/nvme.h | 2 drivers/nvme/target/core.c | 1 drivers/nvme/target/fabrics-cmd-auth.c | 3 drivers/nvme/target/fabrics-cmd.c | 6 drivers/of/irq.c | 143 ++--- drivers/of/of_private.h | 3 drivers/parport/parport_amiga.c | 8 drivers/perf/riscv_pmu_sbi.c | 2 drivers/platform/mellanox/nvsw-sn2201.c | 5 drivers/platform/x86/amd/hsmp.c | 50 + drivers/platform/x86/lg-laptop.c | 89 +-- drivers/platform/x86/wireless-hotkey.c | 2 drivers/pnp/base.h | 1 drivers/s390/char/sclp.c | 1 drivers/scsi/device_handler/scsi_dh_alua.c | 31 - drivers/scsi/libsas/sas_internal.h | 14 drivers/scsi/qedf/qedf.h | 1 drivers/scsi/qedf/qedf_main.c | 47 + drivers/scsi/sr.h | 2 drivers/scsi/sr_ioctl.c | 5 drivers/spi/spi-davinci.c | 6 drivers/spi/spi-imx.c | 2 drivers/spi/spi-mux.c | 1 drivers/spi/spi.c | 6 drivers/tee/optee/ffa_abi.c | 12 drivers/vfio/device_cdev.c | 7 drivers/vfio/group.c | 7 drivers/vfio/pci/vfio_pci_core.c | 271 ++-------- drivers/vfio/vfio_main.c | 44 + fs/btrfs/btrfs_inode.h | 10 fs/btrfs/file.c | 16 fs/btrfs/ordered-data.c | 31 + fs/btrfs/qgroup.c | 4 fs/btrfs/ref-verify.c | 9 fs/btrfs/scrub.c | 24 fs/cachefiles/cache.c | 45 + fs/cachefiles/ondemand.c | 74 +- fs/cachefiles/volume.c | 1 fs/dcache.c | 31 - fs/erofs/zmap.c | 2 fs/file.c | 4 fs/hfsplus/xattr.c | 2 fs/iomap/buffered-io.c | 3 fs/netfs/buffered_write.c | 4 fs/netfs/fscache_volume.c | 14 fs/netfs/internal.h | 2 fs/nfs/dir.c | 27 fs/nfs/nfs4proc.c | 1 fs/nfs/pagelist.c | 5 fs/nfs/symlink.c | 2 fs/smb/client/cifsfs.c | 2 fs/smb/client/file.c | 4 fs/smb/common/smb2pdu.h | 34 + fs/smb/server/smb2pdu.c | 9 include/linux/cdrom.h | 2 include/linux/fscache-cache.h | 6 include/linux/page_ref.h | 49 - include/linux/pnp.h | 2 include/linux/spi/spi.h | 5 include/linux/vfio.h | 1 include/linux/vfio_pci_core.h | 2 include/net/bluetooth/hci_sync.h | 2 include/sound/dmaengine_pcm.h | 1 include/trace/events/fscache.h | 4 include/uapi/linux/input-event-codes.h | 2 io_uring/register.c | 4 kernel/workqueue.c | 51 + lib/Kconfig | 8 lib/closure.c | 10 mm/filemap.c | 10 mm/gup.c | 2 net/bluetooth/hci_core.c | 76 -- net/bluetooth/hci_sync.c | 13 net/bluetooth/l2cap_core.c | 3 net/bluetooth/l2cap_sock.c | 14 net/ipv6/ila/ila_lwt.c | 7 net/ipv6/rpl_iptunnel.c | 14 net/mac80211/cfg.c | 5 net/mac80211/ieee80211_i.h | 2 net/mac80211/main.c | 11 net/mac80211/mesh.c | 1 net/mac80211/scan.c | 31 - net/mac80211/util.c | 4 net/mac802154/tx.c | 8 net/wireless/rdev-ops.h | 6 net/wireless/scan.c | 59 +- scripts/kconfig/expr.c | 29 - scripts/kconfig/expr.h | 1 scripts/kconfig/gconf.c | 3 scripts/kconfig/menu.c | 2 sound/core/pcm_dmaengine.c | 22 sound/core/pcm_native.c | 2 sound/pci/hda/Kconfig | 2 sound/pci/hda/cs35l41_hda_property.c | 8 sound/pci/hda/cs35l56_hda.c | 5 sound/pci/hda/patch_realtek.c | 9 sound/soc/amd/yc/acp6x-mach.c | 7 sound/soc/codecs/cs35l56-shared.c | 4 sound/soc/codecs/es8326.c | 8 sound/soc/codecs/rt722-sdca-sdw.c | 4 sound/soc/intel/avs/topology.c | 19 sound/soc/intel/boards/bytcr_rt5640.c | 11 sound/soc/soc-generic-dmaengine-pcm.c | 8 sound/soc/soc-topology.c | 29 - sound/soc/sof/intel/hda-pcm.c | 6 sound/soc/sof/sof-audio.c | 2 sound/soc/ti/davinci-mcasp.c | 9 sound/soc/ti/omap-hdmi.c | 6 tools/power/cpupower/utils/helpers/amd.c | 26 tools/testing/selftests/bpf/config | 3 tools/testing/selftests/bpf/prog_tests/tc_links.c | 61 ++ tools/testing/selftests/cachestat/test_cachestat.c | 1 tools/testing/selftests/filesystems/overlayfs/dev_in_maps.c | 1 tools/testing/selftests/futex/functional/Makefile | 2 tools/testing/selftests/net/openvswitch/ovs-dpctl.py | 2 tools/testing/selftests/openat2/openat2_test.c | 1 tools/testing/selftests/timens/exec.c | 6 tools/testing/selftests/timens/timer.c | 2 tools/testing/selftests/timens/timerfd.c | 2 tools/testing/selftests/timens/vfork_exec.c | 4 tools/testing/selftests/vDSO/parse_vdso.c | 16 tools/testing/selftests/vDSO/vdso_standalone_test_x86.c | 18 188 files changed, 1713 insertions(+), 879 deletions(-)
Adrian Moreno (1):
selftests: openvswitch: Set value to nla flags.
Aivaz Latypov (1):
ALSA: hda/relatek: Enable Mute LED on HP Laptop 15-gw0xxx
Alex Williamson (3):
vfio: Create vfio_fs_type with inode per device vfio/pci: Use unmap_mapping_range() vfio/pci: Insert full vma on mmap'd MMIO fault
Alexander Stein (1):
Input: ads7846 - use spi_device_id table
Alexander Usyskin (1):
mei: demote client disconnect warning on suspend to debug
Alexey Makhalov (1):
drm/vmwgfx: Fix missing HYPERVISOR_GUEST dependency
Alvin Lee (1):
drm/amd/display: Account for cursor prefetch BW in DML1 mode support
Amadeusz Sławiński (3):
ASoC: topology: Fix references to freed memory
ASoC: Intel: avs: Fix route override
ASoC: topology: Do not assign fields that are already set
Andreas Hindborg (1):
null_blk: fix validation of block size
Andy Shevchenko (1):
PNP: Hide pnp_bus_type from the non-PNP code
Anjali K (1):
powerpc/pseries: Whitelist dtl slub object for copying to userspace
Armin Wolf (6):
ACPI: EC: Abort address space access upon error
ACPI: EC: Avoid returning AE_OK on errors in address space handler platform/x86: wireless-hotkey: Add support for LG Airplane Button platform/x86: lg-laptop: Remove LGEX0815 hotkey handling platform/x86: lg-laptop: Change ACPI device id
platform/x86: lg-laptop: Use ACPI device handle when evaluating WMAB/WMBB
Arnd Bergmann (1):
mips: fix compat_sys_lseek syscall
Aryan Srivastava (1):
net: mvpp2: fill-in dev_port attribute
Aseda Aboagye (2):
input: Add event code for accessibility key
input: Add support for "Do Not Disturb"
Ayala Beker (1):
wifi: iwlwifi: mvm: properly set 6 GHz channel direct probe option
Baokun Li (5):
cachefiles: add consistency check for copen/cread
cachefiles: make on-demand read killable
netfs, fscache: export fscache_put_volume() and add fscache_try_get_volume()
cachefiles: fix slab-use-after-free in fscache_withdraw_volume()
cachefiles: fix slab-use-after-free in cachefiles_withdraw_cookie()
Bastien Curutchet (1):
spi: davinci: Unset POWERDOWN bit when releasing resources
Benjamin Berg (1):
wifi: iwlwifi: mvm: remove stale STA link data during restart
Boyang Yu (1):
nvme: fix NVME_NS_DEAC may incorrectly identifying the disk as EXT_LBA.
Chen Ni (2):
can: kvaser_usb: fix return value for hif_usb_send_regout platform/mellanox: nvsw-sn2201: Add check for platform_device_add_resources
Christian Brauner (1):
fs: better handle deep ancestor chains in is_subdir()
Chunguang Xu (2):
nvme-fabrics: use reserved tag for reg read/write command
nvme: avoid double free special payload
Cyril Hrubis (1):
loop: Disable fallocate() zero and discard if not supported
Daniel Borkmann (1):
selftests/bpf: Extend tcx tests to cover late tcx_entry release
Daniel Gabay (1):
wifi: iwlwifi: properly set WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK
Daniel Miess (1):
drm/amd/display: Change dram_clock_latency to 34us for dcn351
Daniel Wagner (1):
nvmet: always initialize cqe.result
Daniele Palmas (1):
net: usb: qmi_wwan: add Telit FN912 compositions
David Lechner (1):
spi: mux: set ctlr->bits_per_word_mask
Dhananjay Ugwekar (1):
tools/power/cpupower: Fix Pstate frequency reporting on AMD Family 1Ah CPUs
Dmitry Antipov (2):
wifi: mac80211: fix UBSAN noise in ieee80211_prep_hw_scan()
wifi: cfg80211: wext: add extra SIOCSIWSCAN data check
Dmitry Mastykin (1):
NFSv4: Fix memory leak in nfs4_set_security_label
Dmitry Savin (1):
ALSA: hda: cs35l41: Fix swapped l/r audio channels for Lenovo ThinBook 13x Gen4
Douglas Anderson (2):
drm: renesas: shmobile: Call drm_atomic_helper_shutdown() at shutdown time drm/mediatek: Call drm_atomic_helper_shutdown() at shutdown time
Edward Adam Davis (2):
bluetooth/l2cap: sync sock recv cb and release
hfsplus: fix uninit-value in copy_name
Emmanuel Grumbach (1):
wifi: iwlwifi: mvm: don't wake up rx_sync_waitq upon RFKILL
Eric Dumazet (2):
net: ipv6: rpl_iptunnel: block BH in rpl_output() and rpl_input()
ila: block BH in ila_output()
Fangzhi Zuo (1):
drm/amd/display: Update efficiency bandwidth for dcn351
Filipe Manana (3):
btrfs: ensure fast fsync waits for ordered extents after a write failure
btrfs: qgroup: fix quota root leak after quota disable failure
btrfs: fix uninitialized return value in the ref-verify tool
Gabor Juhos (1):
clk: qcom: apss-ipq-pll: remove 'config_ctl_hi_val' from Stromer pll configs
Ganesh Goudar (1):
powerpc/eeh: avoid possible crash when edev->pdev changes
Gao Xiang (1):
erofs: ensure m_llen is reset to 0 if metadata is invalid
Greg Kroah-Hartman (1):
Linux 6.9.11
Hagar Hemdan (1):
io_uring: fix possible deadlock in io_register_iowq_max_workers()
Hans de Goede (1):
Input: silead - Always support 10 fingers
Harish Kasiviswanathan (1):
drm/amdgpu: Indicate CU havest info to CP
Heiko Carstens (1):
s390/sclp: Fix sclp_init() cleanup on failure
Huacai Chen (1):
LoongArch: Fix GMAC's phy-mode definitions in dts
Ian Ray (1):
gpio: pca953x: fix pca953x_irq_bus_sync_unlock race
Ilan Peer (1):
wifi: iwlwifi: mvm: Fix scan abort handling with HW rfkill
Jack Yu (2):
ASoC: rt722-sdca-sdw: add silence detection register as volatile
ASoC: rt722-sdca-sdw: add debounce time for type detection
Jai Luthra (2):
ALSA: dmaengine: Synchronize dma channel after drop()
ASoC: ti: davinci-mcasp: Set min period size using FIFO config
Jan Kara (1):
nfs: Avoid flushing many pages with NFS_FILE_SYNC
Johannes Berg (6):
wifi: mac80211: apply mcast rate only if interface is up
wifi: mac80211: handle tasklet frames before stopping
wifi: cfg80211: fix 6 GHz scan request building
wifi: iwlwifi: mvm: handle BA session teardown in RF-kill
wifi: cfg80211: wext: set ssids=NULL for passive scans
wifi: mac80211: disable softirqs for queued frame handling
John Hubbard (3):
selftests/futex: pass _GNU_SOURCE without a value to the compiler selftest/timerns: fix clang build failures for abs() calls selftests/vDSO: fix clang build errors and warnings
Jonathan Denose (1):
Input: elantech - fix touchpad state on resume for Lenovo N24
Justin Stitt (1):
scsi: sr: Fix unintentional arithmetic wraparound
Kailang Yang (1):
ALSA: hda/realtek: Add more codec ID to no shutup pins list
Kent Overstreet (1):
closures: Change BUG_ON() to WARN_ON()
Kenton Groombridge (1):
wifi: mac80211: Avoid address calculations via out of bounds array indexing
Krzysztof Kozlowski (1):
drm/exynos: dp: drop driver owner initialization
Li Ma (1):
drm/amd/swsmu: add MALL init support workaround for smu_v14_0_1
Likun Gao (1):
drm/amdgpu: init TA fw for psp v14
Linus Torvalds (1):
cpumask: limit FORCE_NR_CPUS to just the UP case
Louis Dalibard (1):
HID: Ignore battery for ELAN touchscreens 2F2C and 4116
Luiz Augusto von Dentz (1):
Bluetooth: L2CAP: Fix deadlock
Luke D. Jones (1):
Input: xpad - add support for ASUS ROG RAIKIRI PRO
Marc Zyngier (1):
of/irq: Disable "interrupt-map" parsing for PASEMI Nemo
Mark-PK Tsai (1):
tee: optee: ffa: Fix missing-field-initializers warning
Martin Wilck (1):
scsi: core: alua: I/O errors for ALUA state transitions
Masahiro Yamada (2):
kconfig: gconf: give a proper initial state to the Save button
kconfig: remove wrong expr_trans_bool()
Michael Ellerman (4):
selftests: cachestat: Fix build warnings on ppc64 selftests/openat2: Fix build warnings on ppc64 selftests/overlayfs: Fix build error on ppc64
KVM: PPC: Book3S HV: Prevent UAF in kvm_spapr_tce_attach_iommu_group()
Namjae Jeon (1):
ksmbd: return FILE_DEVICE_DISK instead of super magic
Nathan Chancellor (1):
efi/libstub: zboot.lds: Discard .discard sections
Neeraj Sanjay Kale (1):
Bluetooth: btnxpuart: Enable Power Save feature on startup
Nick Child (1):
ibmvnic: Add tx check to prevent skb leak
Nicolas Escande (1):
wifi: mac80211: mesh: init nonpeer_pm to active by default in mesh sdata
Patrice Chotard (1):
spi: Fix OCTAL mode support
Paul Hsieh (1):
drm/amd/display: change dram_clock_latency to 34us for dcn35
Peter Ujfalusi (2):
ASoC: SOF: sof-audio: Skip unprepare for in-use widgets on error rollback
ASoC: SOF: Intel: hda-pcm: Limit the maximum number of periods by MAX_BDL_ENTRIES
Pierre-Eric Pelloux-Prayer (1):
drm/radeon: check bo_va->bo is non-NULL before using it
Primoz Fiser (1):
ASoC: ti: omap-hdmi: Fix too long driver name
Puranjay Mohan (1):
riscv: stacktrace: fix usage of ftrace_graph_ret_addr()
Qu Wenruo (1):
btrfs: scrub: handle RST lookup error correctly
Ratheesh Kannoth (1):
octeontx2-pf: Fix coverity and klockwork issues in octeon PF driver
Richard Fitzgerald (1):
ASoC: cs35l56: Disconnect ASP1 TX sources when ASP1 DAI is hooked up
Ritesh Harjani (IBM) (1):
iomap: Fix iomap_adjust_read_range for plen calculation
Rob Herring (Arm) (1):
of/irq: Factor out parsing of interrupt-map parent phandle+args from of_irq_parse_raw()
Roman Li (1):
drm/amd/display: Fix array-index-out-of-bounds in dml2/FCLKChangeSupport
Sagi Grimberg (1):
nfs: propagate readlink errors in nfs_symlink_filler
Samuel Holland (1):
drivers/perf: riscv: Reset the counter to hpmevent mapping while starting cpus
Saurav Kashyap (3):
scsi: qedf: Don't process stag work during unload and recovery
scsi: qedf: Wait for stag work during unload
scsi: qedf: Set qed_slowpath_params to zero before use
Scott Mayhew (1):
nfs: don't invalidate dentries on transient errors
Shengjiu Wang (1):
ALSA: dmaengine_pcm: terminate dmaengine before synchronize
Simon Trimmer (2):
ALSA: hda: cs35l56: Fix lifecycle of codec pointer
ALSA: hda: cs35l56: Select SERIAL_MULTI_INSTANTIATE
Stefan Binding (4):
ALSA: hda: cs35l41: Support Lenovo Thinkbook 16P Gen 5
ALSA: hda: cs35l41: Support Lenovo Thinkbook 13x Gen 4
ALSA: hda/realtek: Support Lenovo Thinkbook 16P Gen 5
ALSA: hda/realtek: Support Lenovo Thinkbook 13x Gen 4
Steve French (1):
cifs: fix noisy message on copy_file_range
Suma Hegde (1):
platform/x86/amd/hsmp: Check HSMP support on AMD family of processors
Takashi Iwai (2):
ALSA: PCM: Allow resume only for suspended streams
ALSA: hda: Use imply for suggesting CONFIG_SERIAL_MULTI_INSTANTIATE
Tasos Sahanidis (1):
drm/amdgpu/pptable: Fix UBSAN array-index-out-of-bounds
Tejun Heo (1):
workqueue: Refactor worker ID formatting and make wq_worker_comm() use full ID string
Tetsuo Handa (1):
Bluetooth: hci_core: cancel all works upon hci_unregister_dev()
Thomas GENTY (1):
bytcr_rt5640 : inverse jack detect for Archos 101 cesium
Thomas Weißschuh (1):
ACPI: AC: Properly notify powermanagement core about changes
Tobias Jakobi (2):
drm: panel-orientation-quirks: Add quirk for Aya Neo KUN
Input: i8042 - add Ayaneo Kun to i8042 quirk table
Tom Chung (2):
drm/amd/display: Add refresh rate range check drm/amd/display: Fix refresh rate range for some panel
Uwe Kleine-König (2):
parport: amiga: Mark driver struct with __refdata to prevent section mismatch
spi: imx: Don't expect DMA for i.MX{25,35,50,51,53} cspi devices
Vyacheslav Frantsishko (1):
ASoC: amd: yc: Fix non-functional mic on ASUS M5602RA
Wei Li (1):
arm64: armv8_deprecated: Fix warning in isndep cpuhp starting process
Xingui Yang (1):
scsi: libsas: Fix exp-attached device scan after probe failure scanned in again after probe failed
Yang Shi (1):
mm: page_ref: remove folio_try_get_rcu()
Yedidya Benshimol (2):
wifi: iwlwifi: mvm: d3: fix WoWLAN command version lookup
wifi: iwlwifi: mvm: Handle BIGTK cipher in kek_kck cmd
Yunshui Jiang (1):
net: mac802154: Fix racy device stats updates by DEV_STATS_INC() and DEV_STATS_ADD()
Yuntao Wang (1):
fs/file: fix the check in find_next_fd()
Zhang Yi (1):
ASoC: codecs: ES8326: Solve headphone detection issue
Zizhi Wo (1):
cachefiles: Set object to close if ondemand_id < 0 in copen
Greg Kroah-Hartman
maintainerDocumentation/cdrom/cdrom-standard.rst +2 -2
@@ -217,7 +217,7 @@ current *struct* is:: int (*media_changed)(struct cdrom_device_info *, int); int (*tray_move)(struct cdrom_device_info *, int); int (*lock_door)(struct cdrom_device_info *, int); - int (*select_speed)(struct cdrom_device_info *, int); + int (*select_speed)(struct cdrom_device_info *, unsigned long); int (*get_last_session) (struct cdrom_device_info *, struct cdrom_multisession *); int (*get_mcn)(struct cdrom_device_info *, struct cdrom_mcn *);
@@ -396,7 +396,7 @@ action need be taken, and the return value should be 0. :: - int select_speed(struct cdrom_device_info *cdi, int speed) + int select_speed(struct cdrom_device_info *cdi, unsigned long speed) Some CD-ROM drives are capable of changing their head-speed. There are several reasons for changing the speed of a CD-ROM drive. Badly
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 9 -SUBLEVEL = 10 +SUBLEVEL = 11 EXTRAVERSION = NAME = Hurr durr I'ma ninja sloth
arch/arm64/kernel/armv8_deprecated.c +3 -0
@@ -462,6 +462,9 @@ static int run_all_insn_set_hw_mode(unsigned int cpu)for (int i =0 ; i <ARRAY_SIZE (insn_emulations); i++) {struct insn_emulation *insn = insn_emulations[i];bool enable =READ_ONCE (insn->current_mode) ==INSN_HW ; +if (insn->status ==INSN_UNAVAILABLE ) +continue ; +if (insn->set_hw_mode && insn->set_hw_mode (enable)) {pr_warn ("CPU[%u] cannot support the emulation of %s" , cpu, insn->name);
arch/loongarch/boot/dts/loongson-2k0500-ref.dts +2 -2
@@ -44,14 +44,14 @@ linux,cma { &gmac0 { status = "okay"; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; bus_id = <0x0>; }; &gmac1 { status = "okay"; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; bus_id = <0x1>; };
arch/loongarch/boot/dts/loongson-2k1000-ref.dts +2 -2
@@ -43,7 +43,7 @@ linux,cma { &gmac0 { status = "okay"; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; phy-handle = <&phy0>; mdio { compatible = "snps,dwmac-mdio";
@@ -58,7 +58,7 @@ phy0: ethernet-phy@0 { &gmac1 { status = "okay"; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; phy-handle = <&phy1>; mdio { compatible = "snps,dwmac-mdio";
arch/loongarch/boot/dts/loongson-2k2000-ref.dts +1 -1
@@ -92,7 +92,7 @@ phy1: ethernet-phy@1 { &gmac2 { status = "okay"; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; phy-handle = <&phy2>; mdio { compatible = "snps,dwmac-mdio";
arch/mips/kernel/syscalls/syscall_o32.tbl +1 -1
@@ -27,7 +27,7 @@ 17 o32 break sys_ni_syscall # 18 was sys_stat 18 o32 unused18 sys_ni_syscall -19 o32 lseek sys_lseek +19 o32 lseek sys_lseek compat_sys_lseek 20 o32 getpid sys_getpid 21 o32 mount sys_mount 22 o32 umount sys_oldumount
arch/powerpc/kernel/eeh_pe.c +5 -2
@@ -849,6 +849,7 @@ struct pci_bus *eeh_pe_bus_get(struct eeh_pe *pe) {struct eeh_dev *edev;struct pci_dev *pdev; +struct pci_bus *bus =NULL ;if (pe->type &EEH_PE_PHB )return pe->phb->bus;
@@ -859,9 +860,11 @@ struct pci_bus *eeh_pe_bus_get(struct eeh_pe *pe)/* Retrieve the parent PCI bus of first (top) PCI device */ edev = list_first_entry_or_null(&pe->edevs, struct eeh_dev, entry); +pci_lock_rescan_remove (); pdev =eeh_dev_to_pci_dev (edev);if (pdev) -return pdev->bus; + bus = pdev->bus; +pci_unlock_rescan_remove (); -return NULL ; +return bus; }
arch/powerpc/kvm/book3s_64_vio.c +13 -5
@@ -130,14 +130,16 @@ long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd, }rcu_read_unlock (); -fdput (f); - -if (!found) +if (!found) { +fdput (f);return -EINVAL ; + } table_group =iommu_group_get_iommudata (grp); -if (WARN_ON (!table_group)) +if (WARN_ON (!table_group)) { +fdput (f);return -EFAULT ; + }for (i =0 ; i <IOMMU_TABLE_GROUP_MAX_TABLES ; ++i) {struct iommu_table *tbltmp = table_group->tables[i];
@@ -158,8 +160,10 @@ long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,break ; } } -if (!tbl) +if (!tbl) { +fdput (f);return -EINVAL ; + }rcu_read_lock ();list_for_each_entry_rcu (stit, &stt->iommu_tables, next) {
@@ -170,6 +174,7 @@ long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,/* stit is being destroyed */ iommu_tce_table_put (tbl);rcu_read_unlock (); +fdput (f);return -ENOTTY ; }/*
@@ -177,6 +182,7 @@ long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,* its KVM reference counter and can return. */ rcu_read_unlock (); +fdput (f);return 0 ; }rcu_read_unlock ();
@@ -184,6 +190,7 @@ long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd, stit =kzalloc (sizeof (*stit),GFP_KERNEL );if (!stit) {iommu_tce_table_put (tbl); +fdput (f);return -ENOMEM ; }
@@ -192,6 +199,7 @@ long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,list_add_rcu (&stit->next, &stt->iommu_tables); +fdput (f);return 0 ; }
arch/powerpc/platforms/pseries/setup.c +2 -2
@@ -343,8 +343,8 @@ static int alloc_dispatch_log_kmem_cache(void) {void (*ctor)(void *) =get_dtl_cache_ctor (); - dtl_cache =kmem_cache_create ("dtl" ,DISPATCH_LOG_BYTES , -DISPATCH_LOG_BYTES ,0 , ctor); + dtl_cache =kmem_cache_create_usercopy ("dtl" ,DISPATCH_LOG_BYTES , +DISPATCH_LOG_BYTES ,0 ,0 ,DISPATCH_LOG_BYTES , ctor);if (!dtl_cache) {pr_warn ("Failed to create dispatch trace log buffer cache\n" );pr_warn ("Stolen time statistics will be unreliable\n" );
arch/riscv/kernel/stacktrace.c +2 -1
@@ -32,6 +32,7 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs, bool (*fn)(void *, unsigned long), void *arg) { unsigned long fp, sp, pc; +int graph_idx =0 ;int level =0 ;if (regs) {
@@ -68,7 +69,7 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs, pc = regs->ra; }else { fp = frame->fp; - pc =ftrace_graph_ret_addr (current,NULL , frame->ra, + pc =ftrace_graph_ret_addr (current, &graph_idx, frame->ra, &frame->ra);if (pc == (unsigned long )ret_from_exception) {if (unlikely (!__kernel_text_address (pc) || !fn (arg, pc)))
drivers/acpi/ac.c +2 -2
@@ -145,7 +145,7 @@ static void acpi_ac_notify(acpi_handle handle, u32 event, void *data)dev_name (&adev->dev), event, (u32) ac->state);acpi_notifier_call_chain (adev, event, (u32 ) ac->state); -kobject_uevent (&ac->charger->dev.kobj,KOBJ_CHANGE ); +power_supply_changed (ac->charger); } }
@@ -268,7 +268,7 @@ static int acpi_ac_resume(struct device *dev)if (acpi_ac_get_state (ac))return 0 ;if (old_state != ac->state) -kobject_uevent (&ac->charger->dev.kobj,KOBJ_CHANGE ); +power_supply_changed (ac->charger);return 0 ; }
drivers/acpi/ec.c +7 -2
@@ -1333,10 +1333,13 @@ acpi_ec_space_handler(u32 function, acpi_physical_address address,if (ec->busy_polling || bits >8 )acpi_ec_burst_enable (ec); -for (i =0 ; i < bytes; ++i, ++address, ++value) +for (i =0 ; i < bytes; ++i, ++address, ++value) { result = (function ==ACPI_READ ) ?acpi_ec_read (ec, address, value) :acpi_ec_write (ec, address, *value); +if (result <0 ) +break ; + }if (ec->busy_polling || bits >8 )acpi_ec_burst_disable (ec);
@@ -1348,8 +1351,10 @@ acpi_ec_space_handler(u32 function, acpi_physical_address address,return AE_NOT_FOUND ;case -ETIME :return AE_TIME ; -default : +case 0 :return AE_OK ; +default : +return AE_ERROR ; } }
drivers/acpi/sbs.c +2 -2
@@ -610,7 +610,7 @@ static void acpi_sbs_callback(void *context)if (sbs->charger_exists) {acpi_ac_get_present (sbs);if (sbs->charger_present != saved_charger_state) -kobject_uevent (&sbs->charger->dev.kobj,KOBJ_CHANGE ); +power_supply_changed (sbs->charger); }if (sbs->manager_present) {
@@ -622,7 +622,7 @@ static void acpi_sbs_callback(void *context)acpi_battery_read (bat);if (saved_battery_state == bat->present)continue ; -kobject_uevent (&bat->bat->dev.kobj,KOBJ_CHANGE ); +power_supply_changed (bat->bat); } } }
drivers/block/loop.c +23 -0
@@ -302,6 +302,21 @@ static int lo_read_simple(struct loop_device *lo, struct request *rq,return 0 ; } +static void loop_clear_limits (struct loop_device *lo,int mode) +{ +struct queue_limits lim =queue_limits_start_update (lo->lo_queue); + +if (mode &FALLOC_FL_ZERO_RANGE ) + lim.max_write_zeroes_sectors =0 ; + +if (mode &FALLOC_FL_PUNCH_HOLE ) { + lim.max_hw_discard_sectors =0 ; + lim.discard_granularity =0 ; + } + +queue_limits_commit_update (lo->lo_queue, &lim); +} +static int lo_fallocate (struct loop_device *lo,struct request *rq,loff_t pos,int mode) {
@@ -320,6 +335,14 @@ static int lo_fallocate(struct loop_device *lo, struct request *rq, loff_t pos, ret = file->f_op->fallocate (file, mode, pos,blk_rq_bytes (rq));if (unlikely (ret && ret != -EINVAL && ret != -EOPNOTSUPP ))return -EIO ; + +/* +* We initially configure the limits in a hope that fallocate is +* supported and clear them here if that turns out not to be true. +*/ +if (unlikely (ret == -EOPNOTSUPP )) +loop_clear_limits (lo, mode); +return ret; }
drivers/block/null_blk/main.c +2 -2
@@ -1810,8 +1810,8 @@ static int null_validate_conf(struct nullb_device *dev) dev->queue_mode =NULL_Q_MQ ; } - dev->blocksize =round_down (dev->blocksize,512 ); - dev->blocksize = clamp_t(unsigned int, dev->blocksize, 512, 4096); +if (blk_validate_block_size (dev->blocksize)) +return -EINVAL ;if (dev->use_per_node_hctx) {if (dev->submit_queues != nr_online_nodes)
drivers/bluetooth/btnxpuart.c +1 -1
@@ -281,7 +281,7 @@ static u8 crc8_table[CRC8_TABLE_SIZE];/* Default configurations */ #define DEFAULT_H2C_WAKEUP_MODE WAKEUP_METHOD_BREAK -#define DEFAULT_PS_MODE PS_MODE_DISABLE +#define DEFAULT_PS_MODE PS_MODE_ENABLE#define FW_INIT_BAUDRATE HCI_NXP_PRI_BAUDRATE static struct sk_buff *nxp_drv_send_cmd(struct hci_dev *hdev, u16 opcode,
drivers/clk/qcom/apss-ipq-pll.c +0 -2
@@ -100,7 +100,6 @@ static struct clk_alpha_pll ipq_pll_stromer_plus = {static const struct alpha_pll_config ipq5018_pll_config = { .l =0x2a , .config_ctl_val =0x4001075b , - .config_ctl_hi_val =0x304 , .main_output_mask =BIT (0 ), .aux_output_mask =BIT (1 ), .early_output_mask =BIT (3 ),
@@ -114,7 +113,6 @@ static const struct alpha_pll_config ipq5018_pll_config = {static const struct alpha_pll_config ipq5332_pll_config = { .l =0x2d , .config_ctl_val =0x4001075b , - .config_ctl_hi_val =0x304 , .main_output_mask =BIT (0 ), .aux_output_mask =BIT (1 ), .early_output_mask =BIT (3 ),
drivers/firmware/efi/libstub/zboot.lds +1 -0
@@ -41,6 +41,7 @@ SECTIONS } /DISCARD/ : { + *(.discard .discard.*) *(.modinfo .init.modinfo) } }
drivers/gpio/gpio-pca953x.c +2 -0
@@ -758,6 +758,8 @@ static void pca953x_irq_bus_sync_unlock(struct irq_data *d)int level;if (chip->driver_data &PCA_PCAL ) { +guard (mutex)(&chip->i2c_lock); +/* Enable latch on interrupt-enabled inputs */ pca953x_write_regs (chip,PCAL953X_IN_LATCH , chip->irq_mask);
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c +13 -2
@@ -4187,9 +4187,10 @@ static u32 gfx_v9_4_3_get_cu_active_bitmap(struct amdgpu_device *adev, int xcc_istatic int gfx_v9_4_3_get_cu_info (struct amdgpu_device *adev,struct amdgpu_cu_info *cu_info) { -int i, j, k, counter, xcc_id, active_cu_number =0 ; -u32 mask, bitmap, ao_bitmap, ao_cu_mask =0 ; +int i, j, k, prev_counter, counter, xcc_id, active_cu_number =0 ; +u32 mask, bitmap, ao_bitmap, ao_cu_mask =0 , tmp;unsigned disable_masks[4 *4 ]; +bool is_symmetric_cus;if (!adev || !cu_info)return -EINVAL ;
@@ -4207,6 +4208,7 @@ static int gfx_v9_4_3_get_cu_info(struct amdgpu_device *adev,mutex_lock (&adev->grbm_idx_mutex);for (xcc_id =0 ; xcc_id <NUM_XCC (adev->gfx.xcc_mask); xcc_id++) { + is_symmetric_cus = true;for (i =0 ; i < adev->gfx.config.max_shader_engines; i++) {for (j =0 ; j < adev->gfx.config.max_sh_per_se; j++) { mask =1 ;
@@ -4234,6 +4236,15 @@ static int gfx_v9_4_3_get_cu_info(struct amdgpu_device *adev, ao_cu_mask |= (ao_bitmap << (i *16 + j *8 )); cu_info->ao_cu_bitmap[i][j] = ao_bitmap; } +if (i && is_symmetric_cus && prev_counter != counter) + is_symmetric_cus = false; + prev_counter = counter; + } +if (is_symmetric_cus) { + tmp =RREG32_SOC15 (GC ,GET_INST (GC , xcc_id), regCP_CPC_DEBUG); + tmp =REG_SET_FIELD (tmp,CP_CPC_DEBUG ,CPC_HARVESTING_RELAUNCH_DISABLE ,1 ); + tmp =REG_SET_FIELD (tmp,CP_CPC_DEBUG ,CPC_HARVESTING_DISPATCH_DISABLE ,1 ); +WREG32_SOC15 (GC ,GET_INST (GC , xcc_id), regCP_CPC_DEBUG, tmp); }gfx_v9_4_3_xcc_select_se_sh (adev,0xffffffff ,0xffffffff ,0xffffffff , xcc_id);
drivers/gpu/drm/amd/amdgpu/psp_v14_0.c +5 -0
@@ -32,7 +32,9 @@#include "mp/mp_14_0_2_sh_mask.h" MODULE_FIRMWARE ("amdgpu/psp_14_0_2_sos.bin" ); +MODULE_FIRMWARE ("amdgpu/psp_14_0_2_ta.bin" );MODULE_FIRMWARE ("amdgpu/psp_14_0_3_sos.bin" ); +MODULE_FIRMWARE ("amdgpu/psp_14_0_3_ta.bin" );/* For large FW files the time to complete can be very long */ #define USBC_PD_POLLING_LIMIT_S 240
@@ -64,6 +66,9 @@ static int psp_v14_0_init_microcode(struct psp_context *psp)case IP_VERSION (14 ,0 ,2 ):case IP_VERSION (14 ,0 ,3 ): err =psp_init_sos_microcode (psp, ucode_prefix); +if (err) +return err; + err =psp_init_ta_microcode (psp, ucode_prefix);if (err)return err;break ;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +51 -1
72 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c +3 -0
@@ -3364,6 +3364,9 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l &mode_lib->vba.UrgentBurstFactorLumaPre[k], &mode_lib->vba.UrgentBurstFactorChromaPre[k], &mode_lib->vba.NotUrgentLatencyHidingPre[k]); + + v->cursor_bw_pre[k] = mode_lib->vba.NumberOfCursors[k] * mode_lib->vba.CursorWidth[k][0 ] * mode_lib->vba.CursorBPP[k][0 ] / +8.0 / (mode_lib->vba.HTotal[k] / mode_lib->vba.PixelClock[k]) * v->VRatioPreY[i][j][k]; } {
drivers/gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c +1 -1
@@ -177,7 +177,7 @@ struct _vcs_dpi_soc_bounding_box_st dcn3_5_soc = { .urgent_latency_pixel_data_only_us = 4.0, .urgent_latency_pixel_mixed_with_vm_data_us = 4.0, .urgent_latency_vm_data_only_us = 4.0, - .dram_clock_change_latency_us = 11.72, + .dram_clock_change_latency_us = 34.0, .urgent_out_of_order_return_per_channel_pixel_only_bytes = 4096, .urgent_out_of_order_return_per_channel_pixel_and_vm_bytes = 4096, .urgent_out_of_order_return_per_channel_vm_only_bytes = 4096,
drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c +1 -1
@@ -215,7 +215,7 @@ struct _vcs_dpi_soc_bounding_box_st dcn3_51_soc = { .urgent_latency_pixel_data_only_us = 4.0, .urgent_latency_pixel_mixed_with_vm_data_us = 4.0, .urgent_latency_vm_data_only_us = 4.0, - .dram_clock_change_latency_us = 11.72, + .dram_clock_change_latency_us = 34, .urgent_out_of_order_return_per_channel_pixel_only_bytes = 4096, .urgent_out_of_order_return_per_channel_pixel_and_vm_bytes = 4096, .urgent_out_of_order_return_per_channel_vm_only_bytes = 4096,
drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c +1 -0
@@ -233,6 +233,7 @@ void dml2_init_socbb_params(struct dml2_context *dml2, const struct dc *in_dc, s out->round_trip_ping_latency_dcfclk_cycles =106 ; out->smn_latency_us =2 ; out->dispclk_dppclk_vco_speed_mhz =3600 ; + out->pct_ideal_dram_bw_after_urgent_pixel_only =65.0 ;break ; }
drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c +1 -1
@@ -294,7 +294,7 @@ void dml2_calculate_rq_and_dlg_params(const struct dc *dc, struct dc_state *cont context->bw_ctx.bw.dcn.clk.dcfclk_deep_sleep_khz = (unsigned int )in_ctx->v20.dml_core_ctx.mp.DCFCLKDeepSleep *1000 ; context->bw_ctx.bw.dcn.clk.dppclk_khz =0 ; -if (in_ctx->v20.dml_core_ctx.ms.support.FCLKChangeSupport[in_ctx->v20.scratch.mode_support_params.out_lowest_state_idx] == dml_fclock_change_unsupported) +if (in_ctx->v20.dml_core_ctx.ms.support.FCLKChangeSupport[0 ] == dml_fclock_change_unsupported) context->bw_ctx.bw.dcn.clk.fclk_p_state_change_support = false;else context->bw_ctx.bw.dcn.clk.fclk_p_state_change_support = true;
drivers/gpu/drm/amd/include/pptable.h +49 -42
177 lines not on this page · raw message
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c +13 -0
@@ -323,6 +323,18 @@ static int smu_dpm_set_umsch_mm_enable(struct smu_context *smu,return ret; } +static int smu_set_mall_enable (struct smu_context *smu) +{ +int ret =0 ; + +if (!smu->ppt_funcs->set_mall_enable) +return 0 ; + + ret = smu->ppt_funcs->set_mall_enable (smu); + +return ret; +} +/** * smu_dpm_set_power_gate - power gate/ungate the specific IP block *
@@ -1785,6 +1797,7 @@ static int smu_hw_init(void *handle)smu_dpm_set_jpeg_enable (smu, true);smu_dpm_set_vpe_enable (smu, true);smu_dpm_set_umsch_mm_enable (smu, true); +smu_set_mall_enable (smu);smu_set_gfx_cgpg (smu, true); }
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h +5 -0
@@ -1391,6 +1391,11 @@ struct pptable_funcs {*/ int (*dpm_set_umsch_mm_enable)(struct smu_context *smu,bool enable); +/** +* @set_mall_enable: Init MALL power gating control. +*/ +int (*set_mall_enable)(struct smu_context *smu); +/** * @notify_rlc_state: Notify RLC power state to SMU. */
drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v14_0_0_ppsmc.h +2 -2
@@ -106,8 +106,8 @@#define PPSMC_MSG_DisableLSdma 0x35 ///< Disable LSDMA#define PPSMC_MSG_SetSoftMaxVpe 0x36 ///<#define PPSMC_MSG_SetSoftMinVpe 0x37 ///< -#define PPSMC_MSG_AllocMALLCache 0x38 ///< Allocating MALL Cache -#define PPSMC_MSG_ReleaseMALLCache 0x39 ///< Releasing MALL Cache +#define PPSMC_MSG_MALLPowerController 0x38 ///< Set MALL control +#define PPSMC_MSG_MALLPowerState 0x39 ///< Enter/Exit MALL PG#define PPSMC_Message_Count 0x3A ///< Total number of PPSMC messages/** @}*/
drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h +3 -1
@@ -272,7 +272,9 @@__SMU_DUMMY_MAP (SetSoftMinVpe), \__SMU_DUMMY_MAP (GetMetricsVersion), \__SMU_DUMMY_MAP (EnableUCLKShadow), \ -__SMU_DUMMY_MAP (RmaDueToBadPageThreshold), +__SMU_DUMMY_MAP (RmaDueToBadPageThreshold), \ +__SMU_DUMMY_MAP (MALLPowerController), \ +__SMU_DUMMY_MAP (MALLPowerState), #undef __SMU_DUMMY_MAP#define __SMU_DUMMY_MAP (type) SMU_MSG_##type
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c +73 -0
103 lines not on this page · raw message
drivers/gpu/drm/drm_panel_orientation_quirks.c +6 -0
@@ -202,6 +202,12 @@ static const struct dmi_system_id orientation_data[] = { DMI_MATCH(DMI_BOARD_NAME, "NEXT"), }, .driver_data = (void *)&lcd800x1280_rightside_up, + }, { /* AYA NEO KUN */ + .matches = { +DMI_EXACT_MATCH (DMI_BOARD_VENDOR ,"AYANEO" ), + DMI_MATCH(DMI_BOARD_NAME, "KUN"), + }, + .driver_data = (void *)&lcd1600x2560_rightside_up, }, { /* Chuwi HiBook (CWI514) */ .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "Hampoo"),
drivers/gpu/drm/exynos/exynos_dp.c +0 -1
@@ -285,7 +285,6 @@ struct platform_driver dp_driver = { .remove_new = exynos_dp_remove, .driver = { .name = "exynos-dp", - .owner = THIS_MODULE, .pm = pm_ptr(&exynos_dp_pm_ops), .of_match_table = exynos_dp_match, },
drivers/gpu/drm/mediatek/mtk_drm_drv.c +8 -0
@@ -950,6 +950,13 @@ static void mtk_drm_remove(struct platform_device *pdev)of_node_put (private->comp_node[i]); } +static void mtk_drm_shutdown (struct platform_device *pdev) +{ +struct mtk_drm_private *private =platform_get_drvdata (pdev); + +drm_atomic_helper_shutdown (private->drm); +} +static int mtk_drm_sys_prepare (struct device *dev) {struct mtk_drm_private *private =dev_get_drvdata (dev);
@@ -981,6 +988,7 @@ static const struct dev_pm_ops mtk_drm_pm_ops = {static struct platform_driver mtk_drm_platform_driver = { .probe = mtk_drm_probe, .remove_new = mtk_drm_remove, + .shutdown = mtk_drm_shutdown, .driver = { .name ="mediatek-drm" , .pm = &mtk_drm_pm_ops,
drivers/gpu/drm/radeon/radeon_gem.c +1 -1
@@ -641,7 +641,7 @@ static void radeon_gem_va_update_vm(struct radeon_device *rdev,if (r) goto error_unlock; -if (bo_va->it.start) +if (bo_va->it.start && bo_va->bo) r =radeon_vm_bo_update (rdev, bo_va, bo_va->bo->tbo.resource); error_unlock:
drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c +8 -0
@@ -171,6 +171,13 @@ static void shmob_drm_remove(struct platform_device *pdev)drm_kms_helper_poll_fini (ddev); } +static void shmob_drm_shutdown (struct platform_device *pdev) +{ +struct shmob_drm_device *sdev =platform_get_drvdata (pdev); + +drm_atomic_helper_shutdown (&sdev->ddev); +} +static int shmob_drm_probe (struct platform_device *pdev) {struct shmob_drm_platform_data *pdata = pdev->dev.platform_data;
@@ -273,6 +280,7 @@ static const struct of_device_id shmob_drm_of_table[] __maybe_unused = {static struct platform_driver shmob_drm_platform_driver = { .probe = shmob_drm_probe, .remove_new = shmob_drm_remove, + .shutdown = shmob_drm_shutdown, .driver = { .name ="shmob-drm" , .of_match_table =of_match_ptr (shmob_drm_of_table),
drivers/gpu/drm/vmwgfx/Kconfig +1 -1
@@ -2,7 +2,7 @@ config DRM_VMWGFX tristate "DRM driver for VMware Virtual GPU" depends on DRM && PCI && MMU - depends on X86 || ARM64 + depends on (X86 && HYPERVISOR_GUEST) || ARM64 select DRM_TTM select DRM_TTM_HELPER select MAPPING_DIRTY_HELPERS
drivers/hid/hid-debug.c +2 -0
@@ -974,6 +974,8 @@ static const char *keys[KEY_MAX + 1] = { [KEY_CAMERA_ACCESS_ENABLE] = "CameraAccessEnable", [KEY_CAMERA_ACCESS_DISABLE] = "CameraAccessDisable", [KEY_CAMERA_ACCESS_TOGGLE] = "CameraAccessToggle", + [KEY_ACCESSIBILITY] = "Accessibility", + [KEY_DO_NOT_DISTURB] = "DoNotDisturb", [KEY_DICTATE] = "Dictate", [KEY_MICMUTE] = "MicrophoneMute", [KEY_BRIGHTNESS_MIN] = "BrightnessMin",
drivers/hid/hid-ids.h +2 -0
@@ -421,6 +421,8 @@#define I2C_DEVICE_ID_HP_SPECTRE_X360_13_AW0020NG 0x29DF#define I2C_DEVICE_ID_ASUS_TP420IA_TOUCHSCREEN 0x2BC8#define I2C_DEVICE_ID_ASUS_GV301RA_TOUCHSCREEN 0x2C82 +#define I2C_DEVICE_ID_ASUS_UX3402_TOUCHSCREEN 0x2F2C +#define I2C_DEVICE_ID_ASUS_UX6404_TOUCHSCREEN 0x4116#define USB_DEVICE_ID_ASUS_UX550VE_TOUCHSCREEN 0x2544#define USB_DEVICE_ID_ASUS_UX550_TOUCHSCREEN 0x2706#define I2C_DEVICE_ID_SURFACE_GO_TOUCHSCREEN 0x261A
drivers/hid/hid-input.c +13 -0
@@ -377,6 +377,10 @@ static const struct hid_device_id hid_battery_quirks[] = { HID_BATTERY_QUIRK_IGNORE }, {HID_I2C_DEVICE (USB_VENDOR_ID_ELAN ,I2C_DEVICE_ID_ASUS_GV301RA_TOUCHSCREEN ), HID_BATTERY_QUIRK_IGNORE }, + { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_ASUS_UX3402_TOUCHSCREEN), + HID_BATTERY_QUIRK_IGNORE }, + { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_ASUS_UX6404_TOUCHSCREEN), + HID_BATTERY_QUIRK_IGNORE }, { HID_USB_DEVICE(USB_VENDOR_ID_ELAN, USB_DEVICE_ID_ASUS_UX550_TOUCHSCREEN), HID_BATTERY_QUIRK_IGNORE }, { HID_USB_DEVICE(USB_VENDOR_ID_ELAN, USB_DEVICE_ID_ASUS_UX550VE_TOUCHSCREEN),
@@ -833,9 +837,18 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fielbreak ; } +if ((usage->hid &0xf0 ) ==0x90 ) {/* SystemControl*/ +switch (usage->hid &0xf ) { +case 0xb :map_key_clear (KEY_DO_NOT_DISTURB );break ; +default : goto ignore; + } +break ; + } +if ((usage->hid &0xf0 ) ==0xa0 ) {/* SystemControl */ switch (usage->hid &0xf ) {case 0x9 :map_key_clear (KEY_MICMUTE );break ; +case 0xa :map_key_clear (KEY_ACCESSIBILITY );break ;default : goto ignore; }break ;
drivers/input/joystick/xpad.c +1 -0
@@ -209,6 +209,7 @@ static const struct xpad_device { { 0x0738, 0xf738, "Super SFIV FightStick TE S", 0, XTYPE_XBOX360 }, { 0x07ff, 0xffff, "Mad Catz GamePad", 0, XTYPE_XBOX360 }, { 0x0b05, 0x1a38, "ASUS ROG RAIKIRI", 0, XTYPE_XBOXONE }, + { 0x0b05, 0x1abb, "ASUS ROG RAIKIRI PRO", 0, XTYPE_XBOXONE }, { 0x0c12, 0x0005, "Intec wireless", 0, XTYPE_XBOX }, { 0x0c12, 0x8801, "Nyko Xbox Controller", 0, XTYPE_XBOX }, { 0x0c12, 0x8802, "Zeroplus Xbox Controller", 0, XTYPE_XBOX },
drivers/input/mouse/elantech.c +31 -0
@@ -1476,16 +1476,47 @@ static void elantech_disconnect(struct psmouse *psmouse) psmouse->private =NULL ; } +/* +* Some hw_version 4 models fail to properly activate absolute mode on +* resume without going through disable/enable cycle. +*/ +static const struct dmi_system_id elantech_needs_reenable[] = { +#if defined(CONFIG_DMI) && defined(CONFIG_X86) + { +/* Lenovo N24 */ + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"LENOVO" ), +DMI_MATCH (DMI_PRODUCT_NAME ,"81AF" ), + }, + }, +#endif + { } +}; +/* * Put the touchpad back into absolute mode when reconnecting */ static int elantech_reconnect (struct psmouse *psmouse) { +int err; +psmouse_reset (psmouse);if (elantech_detect (psmouse,0 ))return -1 ; +if (dmi_check_system (elantech_needs_reenable)) { + err =ps2_command (&psmouse->ps2dev,NULL ,PSMOUSE_CMD_DISABLE ); +if (err) +psmouse_warn (psmouse,"failed to deactivate mouse on %s: %d\n" , + psmouse->ps2dev.serio->phys, err); + + err =ps2_command (&psmouse->ps2dev,NULL ,PSMOUSE_CMD_ENABLE ); +if (err) +psmouse_warn (psmouse,"failed to reactivate mouse on %s: %d\n" , + psmouse->ps2dev.serio->phys, err); + } +if (elantech_set_absolute_mode (psmouse)) {psmouse_err (psmouse,"failed to put touchpad back into absolute mode.\n" );
drivers/input/serio/i8042-acpipnpio.h +16 -2
@@ -76,7 +76,7 @@ static inline void i8042_write_command(int val)#define SERIO_QUIRK_PROBE_DEFER BIT(5)#define SERIO_QUIRK_RESET_ALWAYS BIT(6)#define SERIO_QUIRK_RESET_NEVER BIT(7) -#define SERIO_QUIRK_DIECT BIT(8) +#define SERIO_QUIRK_DIRECT BIT(8)#define SERIO_QUIRK_DUMBKBD BIT(9)#define SERIO_QUIRK_NOLOOP BIT(10)#define SERIO_QUIRK_NOTIMEOUT BIT(11)
@@ -1332,6 +1332,20 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = { .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) }, + { + /* + * The Ayaneo Kun is a handheld device where some the buttons + * are handled by an AT keyboard. The keyboard is usually + * detected as raw, but sometimes, usually after a cold boot, + * it is detected as translated. Make sure that the keyboard + * is always in raw mode. + */ + .matches = { + DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AYANEO"), + DMI_MATCH(DMI_BOARD_NAME, "KUN"), + }, + .driver_data = (void *)(SERIO_QUIRK_DIRECT) + }, { } };
@@ -1655,7 +1669,7 @@ static void __init i8042_check_quirks(void)if (quirks &SERIO_QUIRK_RESET_NEVER ) i8042_reset =I8042_RESET_NEVER ; } -if (quirks &SERIO_QUIRK_DIECT ) +if (quirks &SERIO_QUIRK_DIRECT ) i8042_direct = true;if (quirks &SERIO_QUIRK_DUMBKBD ) i8042_dumbkbd = true;
drivers/input/touchscreen/ads7846.c +11 -1
@@ -1111,6 +1111,16 @@ static const struct of_device_id ads7846_dt_ids[] = { };MODULE_DEVICE_TABLE (of, ads7846_dt_ids); +static const struct spi_device_id ads7846_spi_ids[] = { + {"tsc2046" ,7846 }, + {"ads7843" ,7843 }, + {"ads7845" ,7845 }, + {"ads7846" ,7846 }, + {"ads7873" ,7873 }, + { }, +}; +MODULE_DEVICE_TABLE (spi, ads7846_spi_ids); +static const struct ads7846_platform_data *ads7846_get_props (struct device *dev) {struct ads7846_platform_data *pdata;
@@ -1386,10 +1396,10 @@ static struct spi_driver ads7846_driver = { }, .probe = ads7846_probe, .remove = ads7846_remove, + .id_table = ads7846_spi_ids, };module_spi_driver (ads7846_driver);MODULE_DESCRIPTION ("ADS7846 TouchScreen Driver" );MODULE_LICENSE ("GPL" ); -MODULE_ALIAS ("spi:ads7846" );
drivers/input/touchscreen/silead.c +5 -14
@@ -71,7 +71,6 @@ struct silead_ts_data {struct regulator_bulk_data regulators[2 ];char fw_name[64 ];struct touchscreen_properties prop; -u32 max_fingers;u32 chip_id;struct input_mt_pos pos[SILEAD_MAX_FINGERS ];int slots[SILEAD_MAX_FINGERS ];
@@ -136,7 +135,7 @@ static int silead_ts_request_input_dev(struct silead_ts_data *data)touchscreen_parse_properties (data->input, true, &data->prop);silead_apply_efi_fw_min_max (data); -input_mt_init_slots (data->input, data->max_fingers, +input_mt_init_slots (data->input,SILEAD_MAX_FINGERS ,INPUT_MT_DIRECT |INPUT_MT_DROP_UNUSED |INPUT_MT_TRACK );
@@ -256,10 +255,10 @@ static void silead_ts_read_data(struct i2c_client *client)return ; } -if (buf[0 ] > data->max_fingers) { +if (buf[0 ] >SILEAD_MAX_FINGERS ) {dev_warn (dev,"More touches reported then supported %d > %d\n" , - buf[0 ], data->max_fingers); - buf[0 ] = data->max_fingers; + buf[0 ],SILEAD_MAX_FINGERS ); + buf[0 ] =SILEAD_MAX_FINGERS ; }if (silead_ts_handle_pen_data (data, buf))
@@ -315,7 +314,6 @@ static void silead_ts_read_data(struct i2c_client *client)static int silead_ts_init (struct i2c_client *client) { -struct silead_ts_data *data =i2c_get_clientdata (client);int error; error = i2c_smbus_write_byte_data(client, SILEAD_REG_RESET,
@@ -325,7 +323,7 @@ static int silead_ts_init(struct i2c_client *client)usleep_range (SILEAD_CMD_SLEEP_MIN ,SILEAD_CMD_SLEEP_MAX ); error =i2c_smbus_write_byte_data (client,SILEAD_REG_TOUCH_NR , - data->max_fingers); +SILEAD_MAX_FINGERS );if (error) goto i2c_write_err;usleep_range (SILEAD_CMD_SLEEP_MIN ,SILEAD_CMD_SLEEP_MAX );
@@ -591,13 +589,6 @@ static void silead_ts_read_props(struct i2c_client *client)const char *str;int error; - error =device_property_read_u32 (dev,"silead,max-fingers" , - &data->max_fingers); -if (error) { -dev_dbg (dev,"Max fingers read error %d\n" , error); - data->max_fingers =5 ;/* Most devices handle up-to 5 fingers */ - } - error =device_property_read_string (dev,"firmware-name" , &str);if (!error) snprintf(data->fw_name, sizeof(data->fw_name),
drivers/misc/mei/main.c +1 -1
@@ -329,7 +329,7 @@ static ssize_t mei_write(struct file *file, const char __user *ubuf, }if (!mei_cl_is_connected (cl)) { -cl_err (dev, cl,"is not connected" ); +cl_dbg (dev, cl,"is not connected" ); rets = -ENODEV ; goto out; }
drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c +1 -1
@@ -295,7 +295,7 @@ int kvaser_usb_send_cmd_async(struct kvaser_usb_net_priv *priv, void *cmd, }usb_free_urb (urb); -return 0 ; +return err; }int kvaser_usb_can_rx_over_error (struct net_device *netdev)
drivers/net/ethernet/ibm/ibmvnic.c +12 -0
@@ -2478,6 +2478,18 @@ static netdev_tx_t ibmvnic_xmit(struct sk_buff *skb, struct net_device *netdev) (tx_pool->consumer_index +1 ) % tx_pool->num_buffers; tx_buff = &tx_pool->tx_buff[bufidx]; + +/* Sanity checks on our free map to make sure it points to an index +* that is not being occupied by another skb. If skb memory is +* not freed then we see congestion control kick in and halt tx. +*/ +if (unlikely (tx_buff->skb)) { +dev_warn_ratelimited (dev,"TX free map points to untracked skb (%s %d idx=%d)\n" , +skb_is_gso (skb) ?"tso_pool" :"tx_pool" , + queue_num, bufidx); +dev_kfree_skb_any (tx_buff->skb); + } + tx_buff->skb = skb; tx_buff->index = bufidx; tx_buff->pool_index = queue_num;
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +1 -0
@@ -6906,6 +6906,7 @@ static int mvpp2_port_probe(struct platform_device *pdev,/* 9704 == 9728 - 20 and rounding to 8 */ dev->max_mtu =MVPP2_BM_JUMBO_PKT_SIZE ;device_set_node (&dev->dev, port_fwnode); + dev->dev_port = port->id; port->pcs_gmac.ops = &mvpp2_phylink_gmac_pcs_ops; port->pcs_gmac.neg_mode = true;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +5 -5
@@ -648,14 +648,14 @@ int otx2_txschq_config(struct otx2_nic *pfvf, int lvl, int prio, bool txschq_for }else if (lvl ==NIX_TXSCH_LVL_TL4 ) { parent = schq_list[NIX_TXSCH_LVL_TL3 ][prio]; req->reg[0 ] =NIX_AF_TL4X_PARENT (schq); - req->regval[0 ] = parent <<16 ; + req->regval[0 ] = (u64 )parent <<16 ; req->num_regs++; req->reg[1 ] =NIX_AF_TL4X_SCHEDULE (schq); req->regval[1 ] = dwrr_val; }else if (lvl ==NIX_TXSCH_LVL_TL3 ) { parent = schq_list[NIX_TXSCH_LVL_TL2 ][prio]; req->reg[0 ] =NIX_AF_TL3X_PARENT (schq); - req->regval[0 ] = parent <<16 ; + req->regval[0 ] = (u64 )parent <<16 ; req->num_regs++; req->reg[1 ] =NIX_AF_TL3X_SCHEDULE (schq); req->regval[1 ] = dwrr_val;
@@ -670,11 +670,11 @@ int otx2_txschq_config(struct otx2_nic *pfvf, int lvl, int prio, bool txschq_for }else if (lvl ==NIX_TXSCH_LVL_TL2 ) { parent = schq_list[NIX_TXSCH_LVL_TL1 ][prio]; req->reg[0 ] =NIX_AF_TL2X_PARENT (schq); - req->regval[0 ] = parent <<16 ; + req->regval[0 ] = (u64 )parent <<16 ; req->num_regs++; req->reg[1 ] =NIX_AF_TL2X_SCHEDULE (schq); - req->regval[1 ] =TXSCH_TL1_DFLT_RR_PRIO <<24 | dwrr_val; + req->regval[1 ] = (u64 )hw->txschq_aggr_lvl_rr_prio <<24 | dwrr_val;if (lvl == hw->txschq_link_cfg_lvl) { req->num_regs++;
@@ -698,7 +698,7 @@ int otx2_txschq_config(struct otx2_nic *pfvf, int lvl, int prio, bool txschq_for req->num_regs++; req->reg[1 ] =NIX_AF_TL1X_TOPOLOGY (schq); - req->regval[1 ] = (TXSCH_TL1_DFLT_RR_PRIO <<1 ); + req->regval[1 ] = hw->txschq_aggr_lvl_rr_prio <<1 ; req->num_regs++; req->reg[2 ] =NIX_AF_TL1X_CIR (schq);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_reg.h +28 -27
61 lines not on this page · raw message
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c +1 -1
@@ -510,7 +510,7 @@ static int otx2_tx_napi_handler(struct otx2_nic *pfvf,static void otx2_adjust_adaptive_coalese (struct otx2_nic *pfvf,struct otx2_cq_poll *cq_poll) { -struct dim_sample dim_sample; +struct dim_sample dim_sample = {0 };u64 rx_frames, rx_bytes;u64 tx_frames, tx_bytes;
drivers/net/ethernet/marvell/octeontx2/nic/qos.c +1 -2
@@ -153,7 +153,6 @@ static void __otx2_qos_txschq_cfg(struct otx2_nic *pfvf, num_regs++;otx2_config_sched_shaping (pfvf, node, cfg, &num_regs); - }else if (level ==NIX_TXSCH_LVL_TL4 ) {otx2_config_sched_shaping (pfvf, node, cfg, &num_regs); }else if (level ==NIX_TXSCH_LVL_TL3 ) {
@@ -176,7 +175,7 @@ static void __otx2_qos_txschq_cfg(struct otx2_nic *pfvf,/* check if node is root */ if (node->qid ==OTX2_QOS_QID_INNER && !node->parent) { cfg->reg[num_regs] =NIX_AF_TL2X_SCHEDULE (node->schq); - cfg->regval[num_regs] =TXSCH_TL1_DFLT_RR_PRIO <<24 | + cfg->regval[num_regs] = (u64 )hw->txschq_aggr_lvl_rr_prio <<24 |mtu_to_dwrr_weight (pfvf, pfvf->tx_max_pktlen); num_regs++;
drivers/net/usb/qmi_wwan.c +2 -0
@@ -1380,6 +1380,8 @@ static const struct usb_device_id products[] = { {QMI_QUIRK_SET_DTR(0x1bc7, 0x1260, 2)}, /* Telit LE910Cx */ {QMI_QUIRK_SET_DTR(0x1bc7, 0x1261, 2)}, /* Telit LE910Cx */ {QMI_QUIRK_SET_DTR(0x1bc7, 0x1900, 1)}, /* Telit LN940 series */ + {QMI_QUIRK_SET_DTR(0x1bc7, 0x3000, 0)}, /* Telit FN912 series */ + {QMI_QUIRK_SET_DTR(0x1bc7, 0x3001, 0)}, /* Telit FN912 series */ {QMI_FIXED_INTF(0x1c9e, 0x9801, 3)}, /* Telewell TW-3G HSPA+ */ {QMI_FIXED_INTF(0x1c9e, 0x9803, 4)}, /* Telewell TW-3G HSPA+ */ {QMI_FIXED_INTF(0x1c9e, 0x9b01, 3)}, /* XS Stick W100-2 from 4G Systems */
drivers/net/wireless/intel/iwlwifi/mvm/d3.c +13 -3
@@ -595,6 +595,12 @@ static void iwl_mvm_wowlan_gtk_type_iter(struct ieee80211_hw *hw, void *_data) {struct wowlan_key_gtk_type_iter *data = _data; +__le32 *cipher =NULL ; + +if (key->keyidx ==4 || key->keyidx ==5 ) + cipher = &data->kek_kck_cmd->igtk_cipher; +if (key->keyidx ==6 || key->keyidx ==7 ) + cipher = &data->kek_kck_cmd->bigtk_cipher;switch (key->cipher) {default :
@@ -606,10 +612,13 @@ static void iwl_mvm_wowlan_gtk_type_iter(struct ieee80211_hw *hw,return ;case WLAN_CIPHER_SUITE_BIP_GMAC_256 :case WLAN_CIPHER_SUITE_BIP_GMAC_128 : - data->kek_kck_cmd->igtk_cipher =cpu_to_le32 (STA_KEY_FLG_GCMP ); +if (cipher) + *cipher =cpu_to_le32 (STA_KEY_FLG_GCMP );return ;case WLAN_CIPHER_SUITE_AES_CMAC : - data->kek_kck_cmd->igtk_cipher =cpu_to_le32 (STA_KEY_FLG_CCM ); +case WLAN_CIPHER_SUITE_BIP_CMAC_256 : +if (cipher) + *cipher =cpu_to_le32 (STA_KEY_FLG_CCM );return ;case WLAN_CIPHER_SUITE_CCMP :if (!sta)
@@ -2182,7 +2191,8 @@ static bool iwl_mvm_setup_connection_keep(struct iwl_mvm *mvm, out:if (iwl_fw_lookup_notif_ver (mvm->fw,LONG_GROUP , -WOWLAN_GET_STATUSES ,0 ) <10 ) { +WOWLAN_GET_STATUSES , +IWL_FW_CMD_VER_UNKNOWN ) <10 ) { mvmvif->seqno_valid = true;/* +0x10 because the set API expects next-to-use, not last-used */ mvmvif->seqno = status->non_qos_seq_ctr +0x10 ;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +41 -6
78 lines not on this page · raw message
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c +7 -6
@@ -515,11 +515,11 @@ static int iwl_mvm_mld_cfg_sta(struct iwl_mvm *mvm, struct ieee80211_sta *sta,return iwl_mvm_mld_send_sta_cmd (mvm, &cmd); } -static void iwl_mvm_mld_free_sta_link (struct iwl_mvm *mvm, -struct iwl_mvm_sta *mvm_sta, -struct iwl_mvm_link_sta *mvm_sta_link, -unsigned int link_id, -bool is_in_fw) +void iwl_mvm_mld_free_sta_link (struct iwl_mvm *mvm, +struct iwl_mvm_sta *mvm_sta, +struct iwl_mvm_link_sta *mvm_sta_link, +unsigned int link_id, +bool is_in_fw) {RCU_INIT_POINTER (mvm->fw_id_to_mac_id[mvm_sta_link->sta_id], is_in_fw ?ERR_PTR (-EINVAL ) :NULL );
@@ -1012,7 +1012,8 @@ static int iwl_mvm_mld_update_sta_baids(struct iwl_mvm *mvm, cmd.modify.tid =cpu_to_le32 (data->tid); - ret =iwl_mvm_send_cmd_pdu (mvm, cmd_id,0 ,sizeof (cmd), &cmd); + ret =iwl_mvm_send_cmd_pdu (mvm, cmd_id,CMD_SEND_IN_RFKILL , +sizeof (cmd), &cmd); data->sta_mask = new_sta_mask;if (ret)return ret;
drivers/net/wireless/intel/iwlwifi/mvm/ops.c +2 -4
@@ -1854,12 +1854,10 @@ static bool iwl_mvm_set_hw_rfkill_state(struct iwl_op_mode *op_mode, bool state)bool rfkill_safe_init_done =READ_ONCE (mvm->rfkill_safe_init_done);bool unified =iwl_mvm_has_unified_ucode (mvm); -if (state) { +if (state)set_bit (IWL_MVM_STATUS_HW_RFKILL , &mvm->status); -wake_up (&mvm->rx_sync_waitq); - }else { +else clear_bit (IWL_MVM_STATUS_HW_RFKILL , &mvm->status); - }iwl_mvm_set_rfkill_state (mvm);
drivers/net/wireless/intel/iwlwifi/mvm/scan.c +6 -2
@@ -1717,7 +1717,10 @@ iwl_mvm_umac_scan_fill_6g_chan_list(struct iwl_mvm *mvm,break ; } -if (k == idex_b && idex_b <SCAN_BSSID_MAX_SIZE ) { +if (k == idex_b && idex_b <SCAN_BSSID_MAX_SIZE && + !WARN_ONCE (!is_valid_ether_addr (scan_6ghz_params[j].bssid), +"scan: invalid BSSID at index %u, index_b=%u\n" , + j, idex_b)) {memcpy (&pp->bssid_array[idex_b++], scan_6ghz_params[j].bssid,ETH_ALEN ); }
@@ -3251,10 +3254,11 @@ static int iwl_mvm_umac_scan_abort(struct iwl_mvm *mvm, int type) ret =iwl_mvm_send_cmd_pdu (mvm,WIDE_ID (IWL_ALWAYS_LONG_GROUP ,SCAN_ABORT_UMAC ), -0 ,sizeof (cmd), &cmd); +CMD_SEND_IN_RFKILL ,sizeof (cmd), &cmd);if (!ret) mvm->scan_uid_status[uid] = type <<IWL_MVM_SCAN_STOPPING_SHIFT ; +IWL_DEBUG_SCAN (mvm,"Scan abort: ret=%d\n" , ret);return ret; }
drivers/net/wireless/intel/iwlwifi/mvm/sta.c +8 -4
@@ -2836,7 +2836,12 @@ static int iwl_mvm_fw_baid_op_cmd(struct iwl_mvm *mvm, .action = start ? cpu_to_le32(IWL_RX_BAID_ACTION_ADD) : cpu_to_le32(IWL_RX_BAID_ACTION_REMOVE), }; -u32 cmd_id =WIDE_ID (DATA_PATH_GROUP ,RX_BAID_ALLOCATION_CONFIG_CMD ); +struct iwl_host_cmd hcmd = { + .id =WIDE_ID (DATA_PATH_GROUP ,RX_BAID_ALLOCATION_CONFIG_CMD ), + .flags =CMD_SEND_IN_RFKILL , + .len[0 ] =sizeof (cmd), + .data[0 ] = &cmd, + };int ret;BUILD_BUG_ON (sizeof (struct iwl_rx_baid_cfg_resp ) !=sizeof (baid));
@@ -2848,7 +2853,7 @@ static int iwl_mvm_fw_baid_op_cmd(struct iwl_mvm *mvm, cmd.alloc.ssn =cpu_to_le16 (ssn); cmd.alloc.win_size =cpu_to_le16 (buf_size); baid = -EIO ; - }else if (iwl_fw_lookup_cmd_ver (mvm->fw, cmd_id,1 ) ==1 ) { + }else if (iwl_fw_lookup_cmd_ver (mvm->fw, hcmd.id,1 ) ==1 ) { cmd.remove_v1.baid =cpu_to_le32 (baid);BUILD_BUG_ON (sizeof (cmd.remove_v1) >sizeof (cmd.remove)); }else {
@@ -2857,8 +2862,7 @@ static int iwl_mvm_fw_baid_op_cmd(struct iwl_mvm *mvm, cmd.remove.tid =cpu_to_le32 (tid); } - ret =iwl_mvm_send_cmd_pdu_status (mvm, cmd_id,sizeof (cmd), - &cmd, &baid); + ret =iwl_mvm_send_cmd_status (mvm, &hcmd, &baid);if (ret)return ret;
drivers/net/wireless/intel/iwlwifi/mvm/sta.h +5 -0
@@ -638,6 +638,11 @@ int iwl_mvm_mld_update_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct ieee80211_sta *sta);int iwl_mvm_mld_rm_sta (struct iwl_mvm *mvm,struct ieee80211_vif *vif,struct ieee80211_sta *sta); +void iwl_mvm_mld_free_sta_link (struct iwl_mvm *mvm, +struct iwl_mvm_sta *mvm_sta, +struct iwl_mvm_link_sta *mvm_sta_link, +unsigned int link_id, +bool is_in_fw);int iwl_mvm_mld_rm_sta_id (struct iwl_mvm *mvm,u8 sta_id); int iwl_mvm_mld_update_sta_links(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
drivers/nvme/host/core.c +1 -0
@@ -998,6 +998,7 @@ void nvme_cleanup_cmd(struct request *req)clear_bit_unlock (0 , &ctrl->discard_page_busy); else kfree(bvec_virt(&req->special_vec)); + req->rq_flags &= ~RQF_SPECIAL_PAYLOAD ; } }EXPORT_SYMBOL_GPL (nvme_cleanup_cmd);
drivers/nvme/host/fabrics.c +3 -3
@@ -180,7 +180,7 @@ int nvmf_reg_read32(struct nvme_ctrl *ctrl, u32 off, u32 *val) cmd.prop_get.offset =cpu_to_le32 (off); ret =__nvme_submit_sync_cmd (ctrl->fabrics_q, &cmd, &res,NULL ,0 , -NVME_QID_ANY ,0 ); +NVME_QID_ANY ,NVME_SUBMIT_RESERVED );if (ret >=0 ) *val =le64_to_cpu (res.u64);
@@ -226,7 +226,7 @@ int nvmf_reg_read64(struct nvme_ctrl *ctrl, u32 off, u64 *val) cmd.prop_get.offset =cpu_to_le32 (off); ret =__nvme_submit_sync_cmd (ctrl->fabrics_q, &cmd, &res,NULL ,0 , -NVME_QID_ANY ,0 ); +NVME_QID_ANY ,NVME_SUBMIT_RESERVED );if (ret >=0 ) *val =le64_to_cpu (res.u64);
@@ -271,7 +271,7 @@ int nvmf_reg_write32(struct nvme_ctrl *ctrl, u32 off, u32 val) cmd.prop_set.value =cpu_to_le64 (val); ret =__nvme_submit_sync_cmd (ctrl->fabrics_q, &cmd,NULL ,NULL ,0 , -NVME_QID_ANY ,0 ); +NVME_QID_ANY ,NVME_SUBMIT_RESERVED );if (unlikely (ret)) dev_err(ctrl->device, "Property Set error: %d, offset %#x\n",
drivers/nvme/host/nvme.h +1 -1
@@ -503,7 +503,7 @@ static inline bool nvme_ns_head_multipath(struct nvme_ns_head *head)enum nvme_ns_features {NVME_NS_EXT_LBAS =1 <<0 ,/* support extended LBA format */ NVME_NS_METADATA_SUPPORTED =1 <<1 ,/* support getting generated md */ -NVME_NS_DEAC ,/* DEAC bit in Write Zeores supported */ +NVME_NS_DEAC =1 <<2 ,/* DEAC bit in Write Zeores supported */ };struct nvme_ns {
drivers/nvme/target/core.c +1 -0
@@ -957,6 +957,7 @@ bool nvmet_req_init(struct nvmet_req *req, struct nvmet_cq *cq, req->metadata_sg_cnt =0 ; req->transfer_len =0 ; req->metadata_len =0 ; + req->cqe->result.u64 =0 ; req->cqe->status =0 ; req->cqe->sq_head =0 ; req->ns =NULL ;
drivers/nvme/target/fabrics-cmd-auth.c +0 -3
@@ -332,7 +332,6 @@ void nvmet_execute_auth_send(struct nvmet_req *req)pr_debug ("%s: ctrl %d qid %d nvme status %x error loc %d\n" , __func__, ctrl->cntlid, req->sq->qid, status, req->error_loc); - req->cqe->result.u64 =0 ;if (req->sq->dhchap_step !=NVME_AUTH_DHCHAP_MESSAGE_SUCCESS2 && req->sq->dhchap_step !=NVME_AUTH_DHCHAP_MESSAGE_FAILURE2 ) {unsigned long auth_expire_secs = ctrl->kato ? ctrl->kato :120 ;
@@ -515,8 +514,6 @@ void nvmet_execute_auth_receive(struct nvmet_req *req) status =nvmet_copy_to_sgl (req,0 , d, al);kfree (d); done: - req->cqe->result.u64 =0 ; -if (req->sq->dhchap_step ==NVME_AUTH_DHCHAP_MESSAGE_SUCCESS2 )nvmet_auth_sq_free (req->sq);else if (req->sq->dhchap_step ==NVME_AUTH_DHCHAP_MESSAGE_FAILURE1 ) {
drivers/nvme/target/fabrics-cmd.c +0 -6
@@ -226,9 +226,6 @@ static void nvmet_execute_admin_connect(struct nvmet_req *req)if (status) goto out; -/* zero out initial completion result, assign values as needed */ - req->cqe->result.u32 =0 ; -if (c->recfmt !=0 ) {pr_warn ("invalid connect version (%d).\n" ,le16_to_cpu (c->recfmt));
@@ -304,9 +301,6 @@ static void nvmet_execute_io_connect(struct nvmet_req *req)if (status) goto out; -/* zero out initial completion result, assign values as needed */ - req->cqe->result.u32 =0 ; -if (c->recfmt !=0 ) {pr_warn ("invalid connect version (%d).\n" ,le16_to_cpu (c->recfmt));
drivers/of/irq.c +78 -65
213 lines not on this page · raw message
drivers/of/of_private.h +3 -0
@@ -158,6 +158,9 @@ extern void __of_sysfs_remove_bin_file(struct device_node *np,extern int of_bus_n_addr_cells (struct device_node *np);extern int of_bus_n_size_cells (struct device_node *np); +const __be32 *of_irq_parse_imap_parent (const __be32 *imap,int len, +struct of_phandle_args *out_irq); +struct bus_dma_region ;#if defined(CONFIG_OF_ADDRESS ) && defined(CONFIG_HAS_DMA ) int of_dma_get_range(struct device_node *np,
drivers/parport/parport_amiga.c +7 -1
@@ -229,7 +229,13 @@ static void __exit amiga_parallel_remove(struct platform_device *pdev)parport_put_port (port); } -static struct platform_driver amiga_parallel_driver = { +/* +* amiga_parallel_remove() lives in .exit.text. For drivers registered via +* module_platform_driver_probe() this is ok because they cannot get unbound at +* runtime. So mark the driver struct with __refdata to prevent modpost +* triggering a section mismatch warning. +*/ +static struct platform_driver amiga_parallel_driver__refdata = { .remove_new =__exit_p (amiga_parallel_remove), .driver = { .name ="amiga-parallel" ,
drivers/perf/riscv_pmu_sbi.c +1 -1
@@ -634,7 +634,7 @@ static inline void pmu_sbi_stop_all(struct riscv_pmu *pmu)* which may include counters that are not enabled yet. */ sbi_ecall (SBI_EXT_PMU ,SBI_EXT_PMU_COUNTER_STOP , -0 , pmu->cmask,0 ,0 ,0 ,0 ); +0 , pmu->cmask,SBI_PMU_STOP_FLAG_RESET ,0 ,0 ,0 ); }static inline void pmu_sbi_stop_hw_ctrs (struct riscv_pmu *pmu)
drivers/platform/mellanox/nvsw-sn2201.c +4 -1
@@ -1198,6 +1198,7 @@ static int nvsw_sn2201_config_pre_init(struct nvsw_sn2201 *nvsw_sn2201)static int nvsw_sn2201_probe (struct platform_device *pdev) {struct nvsw_sn2201 *nvsw_sn2201; +int ret; nvsw_sn2201 =devm_kzalloc (&pdev->dev,sizeof (*nvsw_sn2201),GFP_KERNEL );if (!nvsw_sn2201)
@@ -1205,8 +1206,10 @@ static int nvsw_sn2201_probe(struct platform_device *pdev) nvsw_sn2201->dev = &pdev->dev;platform_set_drvdata (pdev, nvsw_sn2201); -platform_device_add_resources (pdev, nvsw_sn2201_lpc_io_resources, + ret =platform_device_add_resources (pdev, nvsw_sn2201_lpc_io_resources,ARRAY_SIZE (nvsw_sn2201_lpc_io_resources)); +if (ret) +return ret; nvsw_sn2201->main_mux_deferred_nr =NVSW_SN2201_MAIN_MUX_DEFER_NR ; nvsw_sn2201->main_mux_devs = nvsw_sn2201_main_mux_brdinfo;
drivers/platform/x86/amd/hsmp.c +43 -7
66 lines not on this page · raw message
drivers/platform/x86/lg-laptop.c +34 -55
275 lines not on this page · raw message
drivers/platform/x86/wireless-hotkey.c +2 -0
@@ -19,6 +19,7 @@ MODULE_AUTHOR("Alex Hung");MODULE_ALIAS ("acpi*:HPQ6001:*" );MODULE_ALIAS ("acpi*:WSTADEF:*" );MODULE_ALIAS ("acpi*:AMDI0051:*" ); +MODULE_ALIAS ("acpi*:LGEX0815:*" );struct wl_button {struct input_dev *input_dev;
@@ -29,6 +30,7 @@ static const struct acpi_device_id wl_ids[] = { {"HPQ6001", 0}, {"WSTADEF", 0}, {"AMDI0051", 0}, + {"LGEX0815", 0}, {"", 0}, };
drivers/pnp/base.h +1 -0
@@ -6,6 +6,7 @@extern struct mutex pnp_lock;extern const struct attribute_group *pnp_dev_groups[]; +extern const struct bus_type pnp_bus_type;int pnp_register_protocol (struct pnp_protocol *protocol);void pnp_unregister_protocol (struct pnp_protocol *protocol);
drivers/s390/char/sclp.c +1 -0
@@ -1293,6 +1293,7 @@ sclp_init(void) fail_unregister_reboot_notifier:unregister_reboot_notifier (&sclp_reboot_notifier); fail_init_state_uninitialized: +list_del (&sclp_state_change_event.list); sclp_init_state = sclp_init_state_uninitialized;free_page ((unsigned long ) sclp_read_sccb);free_page ((unsigned long ) sclp_init_sccb);
drivers/scsi/device_handler/scsi_dh_alua.c +22 -9
@@ -414,28 +414,40 @@ static char print_alua_state(unsigned char state) } } -static enum scsi_disposition alua_check_sense (struct scsi_device *sdev, -struct scsi_sense_hdr *sense_hdr) +static void alua_handle_state_transition (struct scsi_device *sdev) {struct alua_dh_data *h = sdev->handler_data;struct alua_port_group *pg; +rcu_read_lock (); + pg =rcu_dereference (h->pg); +if (pg) + pg->state =SCSI_ACCESS_STATE_TRANSITIONING ; +rcu_read_unlock (); +alua_check (sdev, false); +} + +static enum scsi_disposition alua_check_sense (struct scsi_device *sdev, +struct scsi_sense_hdr *sense_hdr) +{switch (sense_hdr->sense_key) {case NOT_READY :if (sense_hdr->asc ==0x04 && sense_hdr->ascq ==0x0a ) {/* * LUN Not Accessible - ALUA state transition */ -rcu_read_lock (); - pg =rcu_dereference (h->pg); -if (pg) - pg->state =SCSI_ACCESS_STATE_TRANSITIONING ; -rcu_read_unlock (); -alua_check (sdev, false); +alua_handle_state_transition (sdev);return NEEDS_RETRY ; }break ;case UNIT_ATTENTION : +if (sense_hdr->asc ==0x04 && sense_hdr->ascq ==0x0a ) { +/* +* LUN Not Accessible - ALUA state transition +*/ +alua_handle_state_transition (sdev); +return NEEDS_RETRY ; + }if (sense_hdr->asc ==0x29 && sense_hdr->ascq ==0x00 ) {/* * Power On, Reset, or Bus Device Reset.
@@ -502,7 +514,8 @@ static int alua_tur(struct scsi_device *sdev) retval =scsi_test_unit_ready (sdev,ALUA_FAILOVER_TIMEOUT *HZ ,ALUA_FAILOVER_RETRIES , &sense_hdr); -if (sense_hdr.sense_key ==NOT_READY && +if ((sense_hdr.sense_key ==NOT_READY || + sense_hdr.sense_key ==UNIT_ATTENTION ) && sense_hdr.asc ==0x04 && sense_hdr.ascq ==0x0a )return SCSI_DH_RETRY ;else if (retval)
drivers/scsi/libsas/sas_internal.h +14 -0
@@ -145,6 +145,20 @@ static inline void sas_fail_probe(struct domain_device *dev, const char *func, i func, dev->parent ?"exp-attached" :"direct-attached" , SAS_ADDR(dev->sas_addr), err); + +/* +* If the device probe failed, the expander phy attached address +* needs to be reset so that the phy will not be treated as flutter +* in the next revalidation +*/ +if (dev->parent && !dev_is_expander (dev->dev_type)) { +struct sas_phy *phy = dev->phy; +struct domain_device *parent = dev->parent; +struct ex_phy *ex_phy = &parent->ex_dev.ex_phy[phy->number]; + +memset (ex_phy->attached_sas_addr,0 ,SAS_ADDR_SIZE ); + } +sas_unregister_dev (dev->port, dev); }
drivers/scsi/qedf/qedf.h +1 -0
@@ -363,6 +363,7 @@ struct qedf_ctx {#define QEDF_IN_RECOVERY 5#define QEDF_DBG_STOP_IO 6#define QEDF_PROBING 8 +#define QEDF_STAG_IN_PROGRESS 9unsigned long flags;/* Miscellaneous state flags */ int fipvlan_retries;u8 num_queues;
drivers/scsi/qedf/qedf_main.c +44 -3
104 lines not on this page · raw message
drivers/scsi/sr.h +1 -1
@@ -65,7 +65,7 @@ int sr_disk_status(struct cdrom_device_info *);int sr_get_last_session (struct cdrom_device_info *,struct cdrom_multisession *);int sr_get_mcn (struct cdrom_device_info *,struct cdrom_mcn *);int sr_reset (struct cdrom_device_info *); -int sr_select_speed (struct cdrom_device_info *cdi,int speed); +int sr_select_speed (struct cdrom_device_info *cdi,unsigned long speed);int sr_audio_ioctl (struct cdrom_device_info *,unsigned int ,void *);int sr_is_xa (Scsi_CD *);
drivers/scsi/sr_ioctl.c +4 -1
@@ -425,11 +425,14 @@ int sr_reset(struct cdrom_device_info *cdi)return 0 ; } -int sr_select_speed (struct cdrom_device_info *cdi,int speed) +int sr_select_speed (struct cdrom_device_info *cdi,unsigned long speed) {Scsi_CD *cd = cdi->handle;struct packet_command cgc; +/* avoid exceeding the max speed or overflowing integer bounds */ + speed =clamp (0 , speed,0xffff /177 ); +if (speed ==0 ) speed =0xffff ;/* set to max */ else
drivers/spi/spi-davinci.c +6 -0
@@ -984,6 +984,9 @@ static int davinci_spi_probe(struct platform_device *pdev)return ret; free_dma: +/* This bit needs to be cleared to disable dpsi->clk */ +clear_io_bits (dspi->base +SPIGCR1 ,SPIGCR1_POWERDOWN_MASK ); +if (dspi->dma_rx) {dma_release_channel (dspi->dma_rx);dma_release_channel (dspi->dma_tx);
@@ -1013,6 +1016,9 @@ static void davinci_spi_remove(struct platform_device *pdev)spi_bitbang_stop (&dspi->bitbang); +/* This bit needs to be cleared to disable dpsi->clk */ +clear_io_bits (dspi->base +SPIGCR1 ,SPIGCR1_POWERDOWN_MASK ); +if (dspi->dma_rx) {dma_release_channel (dspi->dma_rx);dma_release_channel (dspi->dma_tx);
drivers/spi/spi-imx.c +1 -1
@@ -1050,7 +1050,7 @@ static struct spi_imx_devtype_data imx35_cspi_devtype_data = { .rx_available = mx31_rx_available, .reset = mx31_reset, .fifo_size = 8, - .has_dmamode = true, + .has_dmamode = false, .dynamic_burst = false, .has_targetmode = false, .devtype = IMX35_CSPI,
drivers/spi/spi-mux.c +1 -0
@@ -156,6 +156,7 @@ static int spi_mux_probe(struct spi_device *spi)/* supported modes are the same as our parent's */ ctlr->mode_bits = spi->controller->mode_bits; ctlr->flags = spi->controller->flags; + ctlr->bits_per_word_mask = spi->controller->bits_per_word_mask; ctlr->transfer_one_message = spi_mux_transfer_one_message; ctlr->setup = spi_mux_setup; ctlr->num_chipselect =mux_control_states (priv->mux);
drivers/spi/spi.c +4 -2
@@ -4152,7 +4152,8 @@ static int __spi_validate(struct spi_device *spi, struct spi_message *message)return -EINVAL ;if (xfer->tx_nbits !=SPI_NBITS_SINGLE && xfer->tx_nbits !=SPI_NBITS_DUAL && - xfer->tx_nbits !=SPI_NBITS_QUAD ) + xfer->tx_nbits !=SPI_NBITS_QUAD && + xfer->tx_nbits !=SPI_NBITS_OCTAL )return -EINVAL ;if ((xfer->tx_nbits ==SPI_NBITS_DUAL ) && !(spi->mode & (SPI_TX_DUAL |SPI_TX_QUAD )))
@@ -4167,7 +4168,8 @@ static int __spi_validate(struct spi_device *spi, struct spi_message *message)return -EINVAL ;if (xfer->rx_nbits !=SPI_NBITS_SINGLE && xfer->rx_nbits !=SPI_NBITS_DUAL && - xfer->rx_nbits !=SPI_NBITS_QUAD ) + xfer->rx_nbits !=SPI_NBITS_QUAD && + xfer->rx_nbits !=SPI_NBITS_OCTAL )return -EINVAL ;if ((xfer->rx_nbits ==SPI_NBITS_DUAL ) && !(spi->mode & (SPI_RX_DUAL |SPI_RX_QUAD )))
drivers/tee/optee/ffa_abi.c +9 -3
@@ -660,7 +660,9 @@ static bool optee_ffa_api_is_compatbile(struct ffa_device *ffa_dev, const struct ffa_ops *ops) {const struct ffa_msg_ops *msg_ops = ops->msg_ops; -struct ffa_send_direct_data data = {OPTEE_FFA_GET_API_VERSION }; +struct ffa_send_direct_data data = { + .data0 =OPTEE_FFA_GET_API_VERSION , + };int rc; msg_ops->mode_32bit_set (ffa_dev);
@@ -677,7 +679,9 @@ static bool optee_ffa_api_is_compatbile(struct ffa_device *ffa_dev,return false; } - data = (struct ffa_send_direct_data ){OPTEE_FFA_GET_OS_VERSION }; + data = (struct ffa_send_direct_data ){ + .data0 =OPTEE_FFA_GET_OS_VERSION , + }; rc = msg_ops->sync_send_receive (ffa_dev, &data);if (rc) {pr_err ("Unexpected error %d\n" , rc);
@@ -698,7 +702,9 @@ static bool optee_ffa_exchange_caps(struct ffa_device *ffa_dev,unsigned int *rpc_param_count, unsigned int *max_notif_value) { - struct ffa_send_direct_data data = { OPTEE_FFA_EXCHANGE_CAPABILITIES }; + struct ffa_send_direct_data data = { + .data0 =OPTEE_FFA_EXCHANGE_CAPABILITIES , + };int rc; rc = ops->msg_ops->sync_send_receive (ffa_dev, &data);
drivers/vfio/device_cdev.c +7 -0
@@ -39,6 +39,13 @@ int vfio_device_fops_cdev_open(struct inode *inode, struct file *filep) filep->private_data = df; +/* +* Use the pseudo fs inode on the device to link all mmaps +* to the same address space, allowing us to unmap all vmas +* associated to this device using unmap_mapping_range(). +*/ + filep->f_mapping = device->inode->i_mapping; +return 0 ; err_put_registration:
drivers/vfio/group.c +7 -0
@@ -286,6 +286,13 @@ static struct file *vfio_device_open_file(struct vfio_device *device)*/ filep->f_mode |= (FMODE_PREAD |FMODE_PWRITE ); +/* +* Use the pseudo fs inode on the device to link all mmaps +* to the same address space, allowing us to unmap all vmas +* associated to this device using unmap_mapping_range(). +*/ + filep->f_mapping = device->inode->i_mapping; +if (device->group->type ==VFIO_NO_IOMMU )dev_warn (device->dev,"vfio-noiommu device opened by user " "(%s:%d)\n" , current->comm,task_pid_nr (current));
drivers/vfio/pci/vfio_pci_core.c +66 -205
387 lines not on this page · raw message
drivers/vfio/vfio_main.c +44 -0
82 lines not on this page · raw message
fs/cachefiles/cache.c +44 -1
45 lines not on this page · raw message
fs/cachefiles/ondemand.c +54 -20
74 lines not on this page · raw message
include/linux/page_ref.h +2 -47
49 lines not on this page · raw message
kernel/workqueue.c +34 -17
51 lines not on this page · raw message
net/bluetooth/hci_core.c +22 -54
76 lines not on this page · raw message
net/wireless/scan.c +40 -19
59 lines not on this page · raw message
tools/power/cpupower/utils/helpers/amd.c +23 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/tc_links.c +61 -0
61 lines not on this page · raw message
tools/testing/selftests/cachestat/test_cachestat.c +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/filesystems/overlayfs/dev_in_maps.c +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/futex/functional/Makefile +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/openvswitch/ovs-dpctl.py +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/openat2/openat2_test.c +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/timens/timerfd.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/timens/vfork_exec.c +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/vDSO/parse_vdso.c +11 -5
Lines of this file are not shown. View the raw message.
tools/testing/selftests/vDSO/vdso_standalone_test_x86.c +16 -2
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.