Linux 6.6.113
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.6.113 kernel.
All users of the 6.6 kernel series must upgrade.
The updated 6.6.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.6.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/admin-guide/kernel-parameters.txt | 3 Documentation/devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml | 15 Makefile | 2 arch/arm/mach-omap2/pm33xx-core.c | 6 arch/arm64/boot/dts/qcom/msm8916.dtsi | 2 arch/arm64/boot/dts/qcom/msm8939.dtsi | 2 arch/arm64/boot/dts/qcom/sdm845.dtsi | 4 arch/arm64/boot/dts/ti/k3-am62a-main.dtsi | 2 arch/arm64/kernel/cpufeature.c | 10 arch/arm64/kernel/mte.c | 3 arch/arm64/kernel/probes/kprobes.c | 8 arch/loongarch/kernel/setup.c | 5 arch/parisc/include/uapi/asm/ioctls.h | 8 arch/parisc/lib/memcpy.c | 1 arch/powerpc/platforms/powernv/pci-ioda.c | 2 arch/powerpc/platforms/pseries/msi.c | 2 arch/s390/net/bpf_jit.h | 55 - arch/s390/net/bpf_jit_comp.c | 161 ++- arch/sparc/kernel/of_device_32.c | 1 arch/sparc/kernel/of_device_64.c | 1 arch/sparc/mm/hugetlbpage.c | 20 arch/x86/include/asm/msr-index.h | 1 arch/x86/kernel/umip.c | 15 arch/x86/kvm/pmu.c | 5 arch/x86/kvm/svm/pmu.c | 1 arch/x86/kvm/svm/svm.c | 13 arch/x86/kvm/x86.c | 2 arch/xtensa/platforms/iss/simdisk.c | 6 block/blk-crypto-fallback.c | 3 crypto/essiv.c | 14 drivers/acpi/acpi_dbg.c | 26 drivers/acpi/acpi_tad.c | 3 drivers/acpi/acpica/evglock.c | 4 drivers/acpi/battery.c | 60 - drivers/acpi/property.c | 137 ++- drivers/bus/mhi/ep/main.c | 37 drivers/bus/mhi/host/init.c | 5 drivers/char/ipmi/ipmi_kcs_sm.c | 16 drivers/char/ipmi/ipmi_msghandler.c | 416 ++++------ drivers/char/tpm/tpm_tis_core.c | 4 drivers/clk/at91/clk-peripheral.c | 7 drivers/clk/mediatek/clk-mt8195-infra_ao.c | 2 drivers/clk/mediatek/clk-mux.c | 4 drivers/clk/nxp/clk-lpc18xx-cgu.c | 20 drivers/clk/tegra/clk-bpmp.c | 2 drivers/clocksource/clps711x-timer.c | 23 drivers/cpufreq/intel_pstate.c | 8 drivers/cpufreq/tegra186-cpufreq.c | 8 drivers/crypto/aspeed/aspeed-hace-crypto.c | 2 drivers/crypto/atmel-tdes.c | 2 drivers/crypto/rockchip/rk3288_crypto_ahash.c | 2 drivers/firmware/meson/meson_sm.c | 7 drivers/gpio/gpio-wcd934x.c | 2 drivers/gpu/drm/amd/display/dc/dce/dce_transform.c | 21 drivers/gpu/drm/amd/display/dc/dce/dce_transform.h | 4 drivers/gpu/drm/amd/include/asic_reg/dce/dce_6_0_d.h | 7 drivers/gpu/drm/amd/include/asic_reg/dce/dce_6_0_sh_mask.h | 2 drivers/gpu/drm/nouveau/nouveau_bo.c | 2 drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c | 5 drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi_regs.h | 8 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 17 drivers/gpu/drm/vmwgfx/vmwgfx_validation.c | 6 drivers/iio/adc/xilinx-ams.c | 47 - drivers/iio/dac/ad5360.c | 2 drivers/iio/dac/ad5421.c | 2 drivers/iio/frequency/adf4350.c | 20 drivers/iio/imu/inv_icm42600/inv_icm42600_core.c | 4 drivers/iommu/intel/iommu.c | 2 drivers/irqchip/irq-sifive-plic.c | 13 drivers/mailbox/zynqmp-ipi-mailbox.c | 7 drivers/media/i2c/mt9v111.c | 2 drivers/media/mc/mc-devnode.c | 6 drivers/media/mc/mc-entity.c | 2 drivers/media/pci/cx18/cx18-queue.c | 13 drivers/media/pci/ivtv/ivtv-irq.c | 2 drivers/media/pci/ivtv/ivtv-yuv.c | 8 drivers/media/platform/qcom/venus/firmware.c | 8 drivers/media/rc/lirc_dev.c | 9 drivers/memory/samsung/exynos-srom.c | 10 drivers/mfd/intel_soc_pmic_chtdc_ti.c | 5 drivers/misc/fastrpc.c | 37 drivers/mmc/core/sdio.c | 6 drivers/mtd/nand/raw/fsmc_nand.c | 6 drivers/net/ethernet/freescale/fsl_pq_mdio.c | 2 drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 2 drivers/net/wireless/ath/ath11k/core.c | 6 drivers/net/wireless/ath/ath11k/hal.c | 16 drivers/net/wireless/ath/ath11k/hal.h | 1 drivers/net/wireless/mediatek/mt76/mt7921/usb.c | 3 drivers/nvme/host/pci.c | 2 drivers/of/unittest.c | 1 drivers/pci/controller/dwc/pci-keystone.c | 4 drivers/pci/controller/dwc/pcie-tegra194.c | 22 drivers/pci/controller/pci-tegra.c | 27 drivers/pci/controller/pcie-rcar-host.c | 40 drivers/pci/endpoint/functions/pci-epf-test.c | 19 drivers/pci/iov.c | 5 drivers/pci/pci-driver.c | 1 drivers/pci/pci-sysfs.c | 20 drivers/pci/pcie/aer.c | 12 drivers/pci/pcie/err.c | 8 drivers/pinctrl/samsung/pinctrl-samsung.h | 4 drivers/power/supply/max77976_charger.c | 12 drivers/pwm/pwm-berlin.c | 4 drivers/rtc/interface.c | 27 drivers/rtc/rtc-optee.c | 1 drivers/rtc/rtc-x1205.c | 2 drivers/scsi/hpsa.c | 21 drivers/scsi/mvsas/mv_init.c | 2 drivers/spi/spi-cadence-quadspi.c | 5 drivers/video/fbdev/core/fb_cmdline.c | 2 drivers/xen/events/events_base.c | 37 drivers/xen/manage.c | 3 fs/btrfs/export.c | 8 fs/btrfs/extent_io.c | 14 fs/cramfs/inode.c | 11 fs/ext4/fsmap.c | 14 fs/ext4/inode.c | 10 fs/ext4/move_extent.c | 2 fs/ext4/orphan.c | 17 fs/ext4/xattr.c | 19 fs/file.c | 5 fs/fs-writeback.c | 32 fs/fsopen.c | 70 - fs/minix/inode.c | 8 fs/namei.c | 8 fs/namespace.c | 11 fs/nfsd/lockd.c | 15 fs/nfsd/nfs4proc.c | 2 fs/ntfs3/bitmap.c | 1 fs/smb/client/smb1ops.c | 62 + fs/smb/client/smb2inode.c | 22 fs/smb/server/ksmbd_netlink.h | 5 fs/smb/server/server.h | 1 fs/smb/server/transport_ipc.c | 3 fs/smb/server/transport_tcp.c | 28 fs/squashfs/inode.c | 24 include/acpi/acpixf.h | 6 include/asm-generic/io.h | 98 +- include/linux/iio/frequency/adf4350.h | 2 include/linux/ksm.h | 6 include/linux/sched.h | 11 include/media/v4l2-subdev.h | 30 include/net/netfilter/nf_tables.h | 3 include/net/netfilter/nft_fib.h | 4 include/net/netfilter/nft_meta.h | 3 include/net/netfilter/nft_reject.h | 3 init/main.c | 12 kernel/bpf/inode.c | 4 kernel/fork.c | 2 kernel/pid.c | 2 kernel/rseq.c | 10 kernel/sched/deadline.c | 73 + kernel/sys.c | 22 kernel/trace/trace_fprobe.c | 11 kernel/trace/trace_kprobe.c | 11 kernel/trace/trace_probe.h | 9 kernel/trace/trace_uprobe.c | 12 lib/crypto/Makefile | 4 lib/genalloc.c | 5 mm/damon/vaddr.c | 8 mm/hugetlb.c | 3 mm/page_alloc.c | 2 net/bridge/br_vlan.c | 2 net/bridge/netfilter/nft_meta_bridge.c | 5 net/bridge/netfilter/nft_reject_bridge.c | 3 net/core/filter.c | 2 net/ipv4/tcp.c | 5 net/ipv4/tcp_input.c | 1 net/mptcp/pm.c | 7 net/mptcp/pm_netlink.c | 52 + net/mptcp/protocol.h | 8 net/netfilter/nf_tables_api.c | 3 net/netfilter/nft_compat.c | 6 net/netfilter/nft_fib.c | 3 net/netfilter/nft_flow_offload.c | 3 net/netfilter/nft_fwd_netdev.c | 3 net/netfilter/nft_immediate.c | 3 net/netfilter/nft_lookup.c | 3 net/netfilter/nft_masq.c | 3 net/netfilter/nft_meta.c | 6 net/netfilter/nft_nat.c | 3 net/netfilter/nft_objref.c | 39 net/netfilter/nft_osf.c | 3 net/netfilter/nft_queue.c | 3 net/netfilter/nft_redir.c | 3 net/netfilter/nft_reject.c | 3 net/netfilter/nft_reject_inet.c | 3 net/netfilter/nft_reject_netdev.c | 3 net/netfilter/nft_rt.c | 3 net/netfilter/nft_socket.c | 3 net/netfilter/nft_synproxy.c | 3 net/netfilter/nft_tproxy.c | 3 net/netfilter/nft_xfrm.c | 3 net/sctp/sm_make_chunk.c | 3 net/sctp/sm_statefuns.c | 6 security/keys/trusted-keys/trusted_tpm1.c | 7 sound/soc/sof/ipc4-topology.h | 4 tools/build/feature/Makefile | 4 tools/lib/perf/include/perf/event.h | 1 tools/perf/builtin-stat.c | 18 tools/perf/tests/perf-record.c | 4 tools/perf/tests/shell/stat.sh | 29 tools/perf/util/arm-spe-decoder/arm-spe-decoder.h | 18 tools/perf/util/arm-spe.c | 34 tools/perf/util/evsel.c | 31 tools/perf/util/lzma.c | 2 tools/perf/util/session.c | 2 tools/perf/util/setup.py | 5 tools/perf/util/zlib.c | 2 tools/testing/selftests/mm/madv_populate.c | 21 tools/testing/selftests/mm/soft-dirty.c | 5 tools/testing/selftests/mm/vm_util.c | 77 + tools/testing/selftests/mm/vm_util.h | 1 tools/testing/selftests/net/mptcp/mptcp_join.sh | 11 tools/testing/selftests/rseq/rseq.c | 8 216 files changed, 1920 insertions(+), 1078 deletions(-)
Aaron Kling (1):
cpufreq: tegra186: Set target frequency for all cpus in policy
Adam Xue (1):
bus: mhi: host: Do not use uninitialized 'dev' pointer in mhi_init_irq_setup()
Ahmet Eray Karadag (1):
ext4: guard against EA inode refcount underflow in xattr update
Aleksa Sarai (1):
fscontext: do not consume log entries when returning -EMSGSIZE
Alex Deucher (1):
drm/amdgpu: Add additional DCE6 SCL registers
Alexandr Sapozhnikov (1):
net/sctp: fix a null dereference in sctp_disposition sctp_sf_do_5_1D_ce()
Alok Tiwari (1):
clk: nxp: Fix pll0 rate check condition in LPC18xx CGU driver
Amir Mohammad Jahangirzad (1):
ACPI: debug: fix signedness issues in read/write helpers
Anderson Nascimento (1):
btrfs: avoid potential out-of-bounds in btrfs_encode_fh()
Andy Shevchenko (2):
mfd: intel_soc_pmic_chtdc_ti: Drop unneeded assignment for cache_type
ACPI: battery: Check for error code from devm_mutex_init() call
AngeloGioacchino Del Regno (1):
clk: mediatek: mt8195-infra_ao: Fix parent for infra_ao_hdmi_26m
Anthony Yznaga (1):
sparc64: fix hugetlb for sun4u
Askar Safin (1):
openat2: don't trigger automounts with RESOLVE_NO_XDEV
Bartosz Golaszewski (1):
gpio: wcd934x: mark the GPIO controller as sleeping
Brian Masney (2):
clk: at91: peripheral: fix return value
clk: nxp: lpc18xx-cgu: convert from round_rate() to determine_rate()
Brian Norris (1):
PCI/sysfs: Ensure devices are powered for config reads
Catalin Marinas (1):
arm64: mte: Do not flag the zero page as PG_mte_tagged
Chen-Yu Tsai (1):
clk: mediatek: clk-mux: Do not pass flags to clk_mux_determine_rate_flags()
Clément Le Goffic (1):
rtc: optee: fix memory leak on driver removal
Corey Minyard (2):
Revert "ipmi: fix msg stack when IPMI is disconnected"
ipmi: Rework user message limit handling
Dan Carpenter (1):
net/mlx4: prevent potential use after free in mlx4_en_do_uc_filter()
Daniel Borkmann (1):
bpf: Fix metadata_dst leak __bpf_redirect_neigh_v{4,6}Daniel Tang (1):
ACPI: TAD: Add missing sysfs_remove_group() for ACPI_TAD_RT
Deepanshu Kartikey (1):
ext4: validate ea_ino and size in check_xattrs
Donet Tom (1):
mm/ksm: fix incorrect KSM counter handling in mm_struct during fork
Duoming Zhou (1):
scsi: mvsas: Fix use-after-free bugs in mvs_work_queue
Dzmitry Sankouski (1):
power: supply: max77976_charger: fix constant current reporting
Edward Adam Davis (1):
media: mc: Clear minor number before put device
Ekansh Gupta (1):
misc: fastrpc: Add missing dev_err newlines
Eric Biggers (2):
KEYS: trusted_tpm1: Compare HMAC values in constant time
sctp: Fix MAC comparison to be constant-time
Eric Dumazet (1):
tcp: take care of zero tp->window_clamp in tcp_set_rcvlowat()
Eric Woudstra (1):
bridge: br_vlan_fill_forward_path_pvid: use br_vlan_group_rcu()
Erick Karanja (1):
net: fsl_pq_mdio: Fix device node reference leak in fsl_pq_mdio_probe
Esben Haabendal (2):
rtc: interface: Ensure alarm irq is enabled when UIE is enabled
rtc: interface: Fix long-standing race when setting alarm
Fedor Pchelkin (1):
clk: tegra: do not overallocate memory for bpmp clocks
Fernando Fernandez Mancera (1):
netfilter: nft_objref: validate objref and objrefmap expressions
Finn Thain (1):
fbdev: Fix logic error in "offb" name match
Florian Westphal (1):
netfilter: nf_tables: drop unused 3rd argument from validate callback ops
Georg Gottleuber (1):
nvme-pci: Add TUXEDO IBS Gen8 to Samsung sleep quirk
Greg Kroah-Hartman (1):
Linux 6.6.113
Guenter Roeck (1):
ipmi: Fix handling of messages with provided receive message pointer
Gunnar Kudrjavets (1):
tpm_tis: Fix incorrect arguments in tpm_tis_probe_irq_single
Hans de Goede (2):
mfd: intel_soc_pmic_chtdc_ti: Fix invalid regmap-config max_register value
mfd: intel_soc_pmic_chtdc_ti: Set use_single_read regmap_config flag
Haoxiang Li (1):
fs/ntfs3: Fix a resource leak bug in wnd_extend()
Harini T (2):
mailbox: zynqmp-ipi: Remove redundant mbox_controller_unregister() call
mailbox: zynqmp-ipi: Remove dev.parent check in zynqmp_ipi_free_mboxes
Harshit Agarwal (1):
sched/deadline: Fix race in push_dl_task()
Herbert Xu (1):
crypto: essiv - Check ssize for decryption and in-place encryption
Hongbo Li (1):
irqchip/sifive-plic: Make use of __assign_bit()
Huacai Chen (3):
LoongArch: Init acpi_gbl_use_global_lock to false
init: handle bootloader identifier in kernel parameters
ACPICA: Allow to skip Global Lock initialization
Ian Forbes (2):
drm/vmwgfx: Fix Use-after-free in validation drm/vmwgfx: Fix copy-paste typo in validation
Ian Rogers (5):
perf evsel: Avoid container_of on a NULL leader libperf event: Ensure tracing data is multiple of 8 sized perf test: Don't leak workload gopipe in PERF_RECORD_* perf evsel: Ensure the fallback message is always written to perf test stat: Avoid hybrid assumption when virtualized
Ilya Leoshkevich (5):
s390/bpf: Change seen_reg to a mask
s390/bpf: Centralize frame offset calculations s390/bpf: Describe the frame using a struct instead of constants s390/bpf: Write back tail call counter for BPF_PSEUDO_CALL s390/bpf: Write back tail call counter for BPF_TRAMP_F_CALL_ORIG
James Clark (1):
perf test: Add a test for default perf stat command
Jan Kara (4):
ext4: verify orphan file size is not too big
ext4: free orphan info with kvfree
writeback: Avoid softlockup when switching many inodes
writeback: Avoid excessively long inode switching times
Jason Andryuk (3):
xen/events: Cleanup find_virq() return codes xen/events: Return -EEXIST for bound VIRQs xen/events: Update virq_to_irq on migration
Jisheng Zhang (1):
pwm: berlin: Fix wrong register in suspend/resume
Johan Hovold (2):
firmware: meson_sm: fix device leak at probe lib/genalloc: fix device leak in of_gen_pool_get()
John David Anglin (1):
parisc: Remove spurious if statement from raw_copy_from_user()
KaFai Wan (1):
bpf: Avoid RCU context warning when unpinning htab with internal structs
Krzysztof Kozlowski (1):
pinctrl: samsung: Drop unused S3C24xx driver data
Kuniyuki Iwashima (1):
tcp: Don't call reqsk_fastopen_remove() in tcp_conn_request().
Lance Yang (1):
selftests/mm: skip soft-dirty tests when CONFIG_MEM_SOFT_DIRTY is disabled
Laurent Pinchart (1):
media: mc: Fix MUST_CONNECT handling for pads with no links
Leo Yan (6):
perf arm_spe: Correct setting remote access perf arm-spe: Rename the common data source encoding perf arm_spe: Correct memory level for remote access perf session: Fix handling when buffer exceeds 2 GiB tools build: Align warning options with perf perf python: split Clang options when invoking Popen
Li RongQing (1):
mm/hugetlb: early exit from hugetlb_pages_alloc_boot() when max_huge_pages=0
Lichen Liu (1):
fs: Add 'initramfs_options' to set initramfs mount options
Ling Xu (1):
misc: fastrpc: Save actual DMA size in fastrpc_map structure
Linus Walleij (1):
mtd: rawnand: fsmc: Default to autodetect buswidth
Lu Baolu (1):
iommu/vt-d: PRS isn't usable if PDS isn't supported
Lucas Zampieri (1):
irqchip/sifive-plic: Avoid interrupt ID 0 handling during suspend/resume
Lukas Wunner (3):
xen/manage: Fix suspend error path PCI/ERR: Fix uevent on failure to recover PCI/AER: Support errors introduced by PCIe r6.0
Ma Ke (3):
media: lirc: Fix error handling in lirc_register()
of: unittest: Fix device reference count leak in of_unittest_pci_node_verify
sparc: fix error handling in scan_one_device()
Marek Vasut (4):
drm/rcar-du: dsi: Fix 1/2/3 lane support
PCI: tegra: Convert struct tegra_msi mask_lock into raw spinlock
PCI: rcar-host: Drop PMSR spinlock
PCI: rcar-host: Convert struct rcar_msi mask_lock into raw spinlock
Matthieu Baerts (NGI0) (2):
selftests: mptcp: join: validate C-flag + def limit
mptcp: pm: in-kernel: usable client side with C-flag
Miaoqian Lin (2):
ARM: OMAP2+: pm33xx-core: ix device node reference leaks in amx3_idle_init
xtensa: simdisk: add input size check in proc_write_simdisk
Michael Hennerich (2):
iio: frequency: adf4350: Fix ADF4350_REG3_12BIT_CLKDIV_MODE
iio: frequency: adf4350: Fix prescaler usage.
Michael Riesch (1):
dt-bindings: phy: rockchip-inno-csi-dphy: make power-domains non-required
Muhammad Usama Anjum (1):
wifi: ath11k: HAL SRNG: don't deinitialize and re-initialize again
Nam Cao (2):
powerpc/powernv/pci: Fix underflow and leak issue powerpc/pseries/msi: Fix potential underflow and leak issue
Namhyung Kim (1):
perf tools: Add fallback for exclude_guest
Namjae Jeon (1):
ksmbd: add max ip connections parameter
Nathan Chancellor (1):
lib/crypto/curve25519-hacl64: Disable KASAN with clang-17 and older
Nick Morrow (1):
wifi: mt76: mt7921u: Add VID/PID for Netgear A7500
Niklas Cassel (1):
PCI: tegra194: Fix broken tegra_pcie_ep_raise_msi_irq()
Niklas Schnelle (2):
PCI/IOV: Add PCI rescan-remove locking when enabling/disabling SR-IOV PCI/AER: Fix missing uevent on recovery when a reset is requested
Ojaswin Mujoo (1):
ext4: correctly handle queries for metadata mappings
Oleg Nesterov (1):
kernel/sys.c: fix the racy usage of task_lock(tsk->group_leader) in sys_prlimit64() paths
Olga Kornievskaia (1):
nfsd: nfserr_jukebox in nlm_fopen should lead to a retry
Pali Rohár (1):
cifs: Query EA $LXMOD in cifs_query_path_info() for WSL reparse points
Paulo Alcantara (1):
smb: client: fix missing timestamp updates after utime(2)
Peter Ujfalusi (1):
ASoC: SOF: ipc4-topology: Correct the minimum host DMA buffer size
Phillip Lougher (2):
Squashfs: add additional inode sanity checking
Squashfs: reject negative file sizes in squashfs_read_inode()
Pratyush Yadav (2):
spi: cadence-quadspi: Flush posted register writes before INDAC access
spi: cadence-quadspi: Flush posted register writes before DAC access
Qianfeng Rong (3):
media: i2c: mt9v111: fix incorrect type for ret
iio: dac: ad5360: use int type to store negative error codes
iio: dac: ad5421: use int type to store negative error codes
Qu Wenruo (1):
btrfs: fix the incorrect max_bytes value for find_lock_delalloc_range()
Rafael J. Wysocki (6):
ACPI: property: Fix buffer properties extraction for subnodes
cpufreq: intel_pstate: Fix object lifecycle issue in update_qos_request()
ACPI: battery: Add synchronization between interface updates
ACPI: property: Disregard references in data-only subnode lists
ACPI: property: Add code comments explaining what is going on
ACPI: property: Do not pass NULL handles to acpi_attach_data()
Rex Chen (1):
mmc: core: SPI mode remove cmd7
Rob Herring (Arm) (1):
rtc: x1205: Fix Xicor X1205 vendor prefix
Sam James (1):
parisc: don't reference obsolete termio struct for TC* constants
Sean Anderson (2):
iio: xilinx-ams: Fix AMS_ALARM_THR_DIRECT_MASK
iio: xilinx-ams: Unmask interrupts after updating alarms
Sean Christopherson (5):
rseq/selftests: Use weak symbol reference, not definition, to link with glibc x86/umip: Check that the instruction opcode is at least two bytes x86/umip: Fix decoding of register forms of 0F 01 (SGDT and SIDT aliases)
KVM: SVM: Skip fastpath emulation on VM-Exit if next RIP isn't valid
KVM: SVM: Emulate PERF_CNTR_GLOBAL_STATUS_SET for PerfMonV2
Sean Nyekjaer (1):
iio: imu: inv_icm42600: Drop redundant pm_runtime reinitialization in resume
SeongJae Park (1):
mm/damon/vaddr: do not repeat pte_offset_map_lock() until success
Shin'ichiro Kawasaki (1):
PCI: endpoint: pci-epf-test: Add NULL check for DMA channels before release
Shuhao Fu (1):
drm/nouveau: fix bad ret code in nouveau_bo_move_prep
Siddharth Vadapalli (1):
PCI: keystone: Use devm_request_irq() to free "ks-pcie-error-irq" on exit
Simon Schuster (1):
copy_sighand: Handle architectures where sizeof(unsigned long) < sizeof(u64)
Stephan Gerhold (4):
arm64: dts: qcom: msm8916: Add missing MDSS reset
arm64: dts: qcom: msm8939: Add missing MDSS reset
arm64: dts: qcom: sdm845: Fix slimbam num-channels/ees
media: venus: firmware: Use correct reset sequence for IRIS2
Sumit Kumar (1):
bus: mhi: ep: Fix chained transfer handling in read path
Tetsuo Handa (2):
minixfs: Verify inode mode when loading from disk
cramfs: Verify inode mode when loading from disk
Thadeu Lima de Souza Cascardo (1):
mm/page_alloc: only set ALLOC_HIGHATOMIC for __GPF_HIGH allocations
Thomas Fourier (5):
media: cx18: Add missing check after DMA map
media: pci: ivtv: Add missing check after DMA map
crypto: aspeed - Fix dma_unmap_sg() direction
crypto: atmel - Fix dma_unmap_sg() direction
crypto: rockchip - Fix dma_unmap_sg() nents value
Thomas Gleixner (1):
rseq: Protect event mask against membarrier IPI
Thomas Weißschuh (3):
fs: always return zero on success from replace_fd()
ACPI: battery: allocate driver data through devm_ APIs
ACPI: battery: initialize mutexes through devm_ APIs
Thorsten Blum (2):
scsi: hpsa: Fix potential memory leak in hpsa_big_passthru_ioctl()
NFSD: Fix destination buffer size in nfsd4_ssc_setup_dul()
Tiezhu Yang (1):
LoongArch: Remove CONFIG_ACPI_TABLE_UPGRADE in platform_init()
Timur Kristóf (3):
drm/amd/display: Add missing DCE6 SCL_HORZ_FILTER_INIT* SRIs drm/amd/display: Properly clear SCL_*_FILTER_CONTROL on DCE6 drm/amd/display: Properly disable scaling on DCE6
Tomi Valkeinen (1):
media: v4l2-subdev: Fix alloc failure check in v4l2_subdev_call_state_try()
Varad Gautam (1):
asm-generic/io.h: Skip trace helpers if rwmmio events are disabled
Vibhore Vardhan (1):
arm64: dts: ti: k3-am62a-main: Fix main padcfg length
Vidya Sagar (1):
PCI: tegra194: Handle errors in BPMP response
Wang Jiang (1):
PCI: endpoint: Remove surplus return statement from pci_epf_test_clean_dma_chan()
Yang Shi (1):
arm64: kprobes: call set_memory_rox() for kprobe page
Yongjian Sun (1):
ext4: increase i_disksize to offset + len in ext4_update_disksize_before_punch()
Yu Kuai (1):
blk-crypto: fix missing blktrace bio split events
Yuan Chen (1):
tracing: Fix race condition in kprobe initialization causing NULL pointer dereference
Yunseong Kim (1):
perf util: Fix compression checks returning -1 as bool
Zack Rusin (1):
drm/vmwgfx: Fix a null-ptr access in the cursor snooper
Zhang Yi (1):
ext4: fix an off-by-one issue during moving extents
Zhen Ni (2):
clocksource/drivers/clps711x: Fix resource leaks in error paths
memory: samsung: exynos-srom: Fix of_iomap leak in exynos_srom_probe
gaoxiang17 (1):
pid: Add a judgment for ns null in pid_nr_ns
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/kernel-parameters.txt +3 -0
@@ -5638,6 +5638,9 @@ rootflags= [KNL] Set root filesystem mount option string + initramfs_options= [KNL] + Specify mount options for for the initramfs mount. + rootfstype= [KNL] Set root filesystem type rootwait [KNL] Wait (indefinitely) for root device to show up.
Documentation/devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml +14 -1
@@ -57,11 +57,24 @@ required: - clocks - clock-names - '#phy-cells' - - power-domains - resets - reset-names - rockchip,grf +allOf: + - if: + properties: + compatible: + contains: + enum: + - rockchip,px30-csi-dphy + - rockchip,rk1808-csi-dphy + - rockchip,rk3326-csi-dphy + - rockchip,rk3368-csi-dphy + then: + required: + - power-domains + additionalProperties: false examples:
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 6 -SUBLEVEL = 112 +SUBLEVEL = 113 EXTRAVERSION = NAME = Pinguïn Aangedreven
arch/arm/mach-omap2/pm33xx-core.c +5 -1
@@ -388,12 +388,15 @@ static int __init amx3_idle_init(struct device_node *cpu_node, int cpu)if (!state_node)break ; -if (!of_device_is_available (state_node)) +if (!of_device_is_available (state_node)) { +of_node_put (state_node);continue ; + }if (i ==CPUIDLE_STATE_MAX ) {pr_warn ("%s: cpuidle states reached max possible\n" , __func__); +of_node_put (state_node);break ; }
@@ -403,6 +406,7 @@ static int __init amx3_idle_init(struct device_node *cpu_node, int cpu) states[state_count].wfi_flags |=WFI_FLAG_WAKE_M3 |WFI_FLAG_FLUSH_CACHE ; +of_node_put (state_node); state_count++; }
arch/arm64/boot/dts/qcom/msm8916.dtsi +2 -0
@@ -1529,6 +1529,8 @@ mdss: display-subsystem@1a00000 { interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; + resets = <&gcc GCC_MDSS_BCR>; + interrupt-controller; #interrupt-cells = <1>;
arch/arm64/boot/dts/qcom/msm8939.dtsi +2 -0
@@ -1210,6 +1210,8 @@ mdss: display-subsystem@1a00000 { power-domains = <&gcc MDSS_GDSC>; + resets = <&gcc GCC_MDSS_BCR>; + #address-cells = <1>; #size-cells = <1>; #interrupt-cells = <1>;
arch/arm64/boot/dts/qcom/sdm845.dtsi +2 -2
@@ -5208,11 +5208,11 @@ slimbam: dma-controller@17184000 { compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0"; qcom,controlled-remotely; reg = <0 0x17184000 0 0x2a000>; - num-channels = <31>; + num-channels = <23>; interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; #dma-cells = <1>; qcom,ee = <1>; - qcom,num-ees = <2>; + qcom,num-ees = <4>; iommus = <&apps_smmu 0x1806 0x0>; };
arch/arm64/boot/dts/ti/k3-am62a-main.dtsi +1 -1
@@ -185,7 +185,7 @@ secure_proxy_sa3: mailbox@43600000 { main_pmx0: pinctrl@f4000 { compatible = "pinctrl-single"; - reg = <0x00 0xf4000 0x00 0x2ac>; + reg = <0x00 0xf4000 0x00 0x25c>; #pinctrl-cells = <1>; pinctrl-single,register-width = <32>; pinctrl-single,function-mask = <0xffffffff>;
arch/arm64/kernel/cpufeature.c +7 -3
@@ -2174,17 +2174,21 @@ static void bti_enable(const struct arm64_cpu_capabilities *__unused)#ifdef CONFIG_ARM64_MTE static void cpu_enable_mte (struct arm64_cpu_capabilities const *cap) { +static bool cleared_zero_page = false; +sysreg_clear_set (sctlr_el1,0 , SCTLR_ELx_ATA |SCTLR_EL1_ATA0 );mte_cpu_setup ();/* * Clear the tags in the zero page. This needs to be done via the -* linear map which has the Tagged attribute. +* linear map which has the Tagged attribute. Since this page is +* always mapped as pte_special(), set_pte_at() will not attempt to +* clear the tags or set PG_mte_tagged. */ -if (try_page_mte_tagging (ZERO_PAGE (0 ))) { +if (!cleared_zero_page) { + cleared_zero_page = true;mte_clear_page_tags (lm_alias (empty_zero_page)); -set_page_mte_tagged (ZERO_PAGE (0 )); }kasan_init_hw_tags_cpu ();
arch/arm64/kernel/mte.c +2 -1
@@ -428,7 +428,8 @@ static int __access_remote_tags(struct mm_struct *mm, unsigned long addr,put_page (page);break ; } -WARN_ON_ONCE (!page_mte_tagged (page)); + +WARN_ON_ONCE (!page_mte_tagged (page) && !is_zero_page (page));/* limit access to the end of the page */ offset =offset_in_page (addr);
arch/arm64/kernel/probes/kprobes.c +7 -1
@@ -131,9 +131,15 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p)void *alloc_insn_page (void ) { -return __vmalloc_node_range (PAGE_SIZE ,1 ,VMALLOC_START ,VMALLOC_END , +void *addr; + + addr =__vmalloc_node_range (PAGE_SIZE ,1 ,VMALLOC_START ,VMALLOC_END ,GFP_KERNEL ,PAGE_KERNEL_ROX ,VM_FLUSH_RESET_PERMS ,NUMA_NO_NODE ,__builtin_return_address (0 )); +if (!addr) +return NULL ; +set_memory_rox ((unsigned long )addr,1 ); +return addr; }/* arm kprobe: install breakpoint in text */
arch/loongarch/kernel/setup.c +2 -3
@@ -363,10 +363,9 @@ void __init platform_init(void)arch_reserve_vmcore ();arch_parse_crashkernel (); -#ifdef CONFIG_ACPI_TABLE_UPGRADE -acpi_table_upgrade (); -#endif #ifdef CONFIG_ACPI +acpi_table_upgrade (); + acpi_gbl_use_global_lock = false; acpi_gbl_use_default_register_widths = false;acpi_boot_table_init ();#endif
arch/parisc/include/uapi/asm/ioctls.h +4 -4
@@ -10,10 +10,10 @@#define TCSETS _IOW('T', 17, struct termios)/* TCSETATTR */ #define TCSETSW _IOW('T', 18, struct termios)/* TCSETATTRD */ #define TCSETSF _IOW('T', 19, struct termios)/* TCSETATTRF */ -#define TCGETA _IOR('T', 1, struct termio) -#define TCSETA _IOW('T', 2, struct termio) -#define TCSETAW _IOW('T', 3, struct termio) -#define TCSETAF _IOW('T', 4, struct termio) +#define TCGETA 0x40125401 +#define TCSETA 0x80125402 +#define TCSETAW 0x80125403 +#define TCSETAF 0x80125404#define TCSBRK _IO('T', 5)#define TCXONC _IO('T', 6)#define TCFLSH _IO('T', 7)
arch/parisc/lib/memcpy.c +0 -1
@@ -41,7 +41,6 @@ unsigned long raw_copy_from_user(void *dst, const void __user *src,mtsp (get_kernel_space (),SR_TEMP2 );/* Check region is user accessible */ -if (start)while (start < end) {if (!prober_user (SR_TEMP1 , start)) { newlen = (start - (unsigned long ) src);
arch/powerpc/platforms/powernv/pci-ioda.c +1 -1
@@ -1895,7 +1895,7 @@ static int pnv_irq_domain_alloc(struct irq_domain *domain, unsigned int virq,return 0 ; out: -irq_domain_free_irqs_parent (domain, virq, i -1 ); +irq_domain_free_irqs_parent (domain, virq, i);msi_bitmap_free_hwirqs (&phb->msi_bmp, hwirq, nr_irqs);return ret; }
arch/powerpc/platforms/pseries/msi.c +1 -1
@@ -587,7 +587,7 @@ static int pseries_irq_domain_alloc(struct irq_domain *domain, unsigned int virq out:/* TODO: handle RTAS cleanup in ->msi_finish() ? */ -irq_domain_free_irqs_parent (domain, virq, i -1 ); +irq_domain_free_irqs_parent (domain, virq, i);return ret; }
arch/s390/net/bpf_jit.h deleted +0 -55
55 lines not on this page · raw message
arch/s390/net/bpf_jit_comp.c +97 -64
380 lines not on this page · raw message
arch/sparc/kernel/of_device_32.c +1 -0
@@ -387,6 +387,7 @@ static struct platform_device * __init scan_one_device(struct device_node *dp,if (of_device_register (op)) {printk ("%pOF: Could not register of device.\n" , dp); +put_device (&op->dev);kfree (op); op =NULL ; }
arch/sparc/kernel/of_device_64.c +1 -0
@@ -680,6 +680,7 @@ static struct platform_device * __init scan_one_device(struct device_node *dp,if (of_device_register (op)) {printk ("%pOF: Could not register of device.\n" , dp); +put_device (&op->dev);kfree (op); op =NULL ; }
arch/sparc/mm/hugetlbpage.c +20 -0
@@ -133,6 +133,26 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,static pte_t sun4u_hugepage_shift_to_tte (pte_t entry,unsigned int shift) { +unsigned long hugepage_size = _PAGE_SZ4MB_4U; + +pte_val (entry) =pte_val (entry) & ~_PAGE_SZALL_4U; + +switch (shift) { +case HPAGE_256MB_SHIFT : + hugepage_size = _PAGE_SZ256MB_4U; +pte_val (entry) |= _PAGE_PMD_HUGE; +break ; +case HPAGE_SHIFT : +pte_val (entry) |= _PAGE_PMD_HUGE; +break ; +case HPAGE_64K_SHIFT : + hugepage_size = _PAGE_SZ64K_4U; +break ; +default : +WARN_ONCE (1 ,"unsupported hugepage shift=%u\n" , shift); + } + +pte_val (entry) =pte_val (entry) | hugepage_size;return entry; }
arch/x86/include/asm/msr-index.h +1 -0
@@ -661,6 +661,7 @@#define MSR_AMD64_PERF_CNTR_GLOBAL_STATUS 0xc0000300#define MSR_AMD64_PERF_CNTR_GLOBAL_CTL 0xc0000301#define MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_CLR 0xc0000302 +#define MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_SET 0xc0000303/* AMD Last Branch Record MSRs */ #define MSR_AMD64_LBR_SELECT 0xc000010e
arch/x86/kernel/umip.c +13 -2
@@ -156,15 +156,26 @@ static int identify_insn(struct insn *insn)if (!insn->modrm.nbytes)return -EINVAL ; -/* All the instructions of interest start with 0x0f. */ -if (insn->opcode.bytes[0 ] !=0xf ) +/* The instructions of interest have 2-byte opcodes: 0F 00 or 0F 01. */ +if (insn->opcode.nbytes <2 || insn->opcode.bytes[0 ] !=0xf )return -EINVAL ;if (insn->opcode.bytes[1 ] ==0x1 ) {switch (X86_MODRM_REG (insn->modrm.value)) {case 0 : +/* The reg form of 0F 01 /0 encodes VMX instructions. */ +if (X86_MODRM_MOD (insn->modrm.value) ==3 ) +return -EINVAL ; +return UMIP_INST_SGDT ;case 1 : +/* +* The reg form of 0F 01 /1 encodes MONITOR/MWAIT, +* STAC/CLAC, and ENCLS. +*/ +if (X86_MODRM_MOD (insn->modrm.value) ==3 ) +return -EINVAL ; +return UMIP_INST_SIDT ;case 4 :return UMIP_INST_SMSW ;
arch/x86/kvm/pmu.c +5 -0
@@ -588,6 +588,7 @@ int kvm_pmu_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info) msr_info->data = pmu->global_ctrl;break ;case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_CLR : +case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_SET :case MSR_CORE_PERF_GLOBAL_OVF_CTRL : msr_info->data =0 ;break ;
@@ -649,6 +650,10 @@ int kvm_pmu_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)if (!msr_info->host_initiated) pmu->global_status &= ~data;break ; +case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_SET : +if (!msr_info->host_initiated) + pmu->global_status |= data & ~pmu->global_status_mask; +break ;default :kvm_pmu_mark_pmc_in_use (vcpu, msr_info->index);return static_call (kvm_x86_pmu_set_msr)(vcpu, msr_info);
arch/x86/kvm/svm/pmu.c +1 -0
@@ -117,6 +117,7 @@ static bool amd_is_valid_msr(struct kvm_vcpu *vcpu, u32 msr)case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS :case MSR_AMD64_PERF_CNTR_GLOBAL_CTL :case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_CLR : +case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_SET :return pmu->version >1 ;default : if (msr > MSR_F15H_PERF_CTR5 &&
arch/x86/kvm/svm/svm.c +11 -2
@@ -4156,11 +4156,20 @@ static int svm_vcpu_pre_run(struct kvm_vcpu *vcpu)static fastpath_t svm_exit_handlers_fastpath (struct kvm_vcpu *vcpu) { +struct vcpu_svm *svm =to_svm (vcpu); + +/* +* Next RIP must be provided as IRQs are disabled, and accessing guest +* memory to decode the instruction might fault, i.e. might sleep. +*/ +if (!nrips || !svm->vmcb->control.next_rip) +return EXIT_FASTPATH_NONE ; +if (is_guest_mode (vcpu))return EXIT_FASTPATH_NONE ; -if (to_svm (vcpu)->vmcb->control.exit_code ==SVM_EXIT_MSR && -to_svm (vcpu)->vmcb->control.exit_info_1) +if (svm->vmcb->control.exit_code ==SVM_EXIT_MSR && + svm->vmcb->control.exit_info_1)return handle_fastpath_set_msr_irqoff (vcpu);return EXIT_FASTPATH_NONE ;
arch/x86/kvm/x86.c +2 -0
@@ -1495,6 +1495,7 @@ static const u32 msrs_to_save_pmu[] = {MSR_AMD64_PERF_CNTR_GLOBAL_CTL ,MSR_AMD64_PERF_CNTR_GLOBAL_STATUS ,MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_CLR , + MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_SET, }; static u32 msrs_to_save[ARRAY_SIZE(msrs_to_save_base) +
@@ -7194,6 +7195,7 @@ static void kvm_probe_msr_to_save(u32 msr_index)case MSR_AMD64_PERF_CNTR_GLOBAL_CTL :case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS :case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_CLR : +case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_SET :if (!kvm_cpu_cap_has (X86_FEATURE_PERFMON_V2 ))return ;break ;
arch/xtensa/platforms/iss/simdisk.c +5 -1
@@ -230,10 +230,14 @@ static ssize_t proc_read_simdisk(struct file *file, char __user *buf,static ssize_t proc_write_simdisk (struct file *file,const char __user *buf,size_t count,loff_t *ppos) { -char *tmp =memdup_user_nul (buf, count); +char *tmp;struct simdisk *dev =pde_data (file_inode (file));int err; +if (count ==0 || count >PAGE_SIZE ) +return -EINVAL ; + + tmp =memdup_user_nul (buf, count);if (IS_ERR (tmp))return PTR_ERR (tmp);
block/blk-crypto-fallback.c +3 -0
@@ -18,6 +18,7 @@#include <linux/module.h> #include <linux/random.h> #include <linux/scatterlist.h> +#include <trace/events/block.h> #include "blk-cgroup.h" #include "blk-crypto-internal.h"
@@ -229,7 +230,9 @@ static bool blk_crypto_fallback_split_bio_if_needed(struct bio **bio_ptr) bio->bi_status =BLK_STS_RESOURCE ;return false; } +bio_chain (split_bio, bio); +trace_block_split (split_bio, bio->bi_iter.bi_sector);submit_bio_noacct (bio); *bio_ptr = split_bio; }
crypto/essiv.c +6 -8
@@ -186,9 +186,14 @@ static int essiv_aead_crypt(struct aead_request *req, bool enc)const struct essiv_tfm_ctx *tctx =crypto_aead_ctx (tfm);struct essiv_aead_request_ctx *rctx =aead_request_ctx (req);struct aead_request *subreq = &rctx->aead_req; +int ivsize =crypto_aead_ivsize (tfm); +int ssize = req->assoclen - ivsize;struct scatterlist *src = req->src;int err; +if (ssize <0 ) +return -EINVAL ; +crypto_cipher_encrypt_one (tctx->essiv_cipher, req->iv, req->iv);/*
@@ -198,19 +203,12 @@ static int essiv_aead_crypt(struct aead_request *req, bool enc)*/ rctx->assoc =NULL ;if (req->src == req->dst || !enc) { -scatterwalk_map_and_copy (req->iv, req->dst, - req->assoclen -crypto_aead_ivsize (tfm), -crypto_aead_ivsize (tfm),1 ); +scatterwalk_map_and_copy (req->iv, req->dst, ssize, ivsize,1 ); }else {u8 *iv = (u8 *)aead_request_ctx (req) + tctx->ivoffset; -int ivsize =crypto_aead_ivsize (tfm); -int ssize = req->assoclen - ivsize;struct scatterlist *sg;int nents; -if (ssize <0 ) -return -EINVAL ; - nents =sg_nents_for_len (req->src, ssize);if (nents <0 )return -EINVAL ;
drivers/acpi/acpi_dbg.c +13 -13
@@ -569,11 +569,11 @@ static int acpi_aml_release(struct inode *inode, struct file *file)return 0 ; } -static int acpi_aml_read_user (char __user *buf,int len) +static ssize_t acpi_aml_read_user (char __user *buf,size_t len) { -int ret;struct circ_buf *crc = &acpi_aml_io.out_crc; -int n; +ssize_t ret; +size_t n;char *p; ret =acpi_aml_lock_read (crc,ACPI_AML_OUT_USER );
@@ -582,7 +582,7 @@ static int acpi_aml_read_user(char __user *buf, int len)/* sync head before removing logs */ smp_rmb (); p = &crc->buf[crc->tail]; - n =min (len,circ_count_to_end (crc)); + n =min_t (size_t, len,circ_count_to_end (crc));if (copy_to_user (buf, p, n)) { ret = -EFAULT ; goto out;
@@ -599,8 +599,8 @@ static int acpi_aml_read_user(char __user *buf, int len)static ssize_t acpi_aml_read (struct file *file,char __user *buf,size_t count,loff_t *ppos) { -int ret =0 ; -int size =0 ; +ssize_t ret =0 ; +ssize_t size =0 ;if (!count)return 0 ;
@@ -639,11 +639,11 @@ static ssize_t acpi_aml_read(struct file *file, char __user *buf,return size >0 ? size : ret; } -static int acpi_aml_write_user (const char __user *buf,int len) +static ssize_t acpi_aml_write_user (const char __user *buf,size_t len) { -int ret;struct circ_buf *crc = &acpi_aml_io.in_crc; -int n; +ssize_t ret; +size_t n;char *p; ret =acpi_aml_lock_write (crc,ACPI_AML_IN_USER );
@@ -652,7 +652,7 @@ static int acpi_aml_write_user(const char __user *buf, int len)/* sync tail before inserting cmds */ smp_mb (); p = &crc->buf[crc->head]; - n =min (len,circ_space_to_end (crc)); + n =min_t (size_t, len,circ_space_to_end (crc));if (copy_from_user (p, buf, n)) { ret = -EFAULT ; goto out;
@@ -663,14 +663,14 @@ static int acpi_aml_write_user(const char __user *buf, int len) ret = n; out:acpi_aml_unlock_fifo (ACPI_AML_IN_USER , ret >=0 ); -return n; +return ret; }static ssize_t acpi_aml_write (struct file *file,const char __user *buf,size_t count,loff_t *ppos) { -int ret =0 ; -int size =0 ; +ssize_t ret =0 ; +ssize_t size =0 ;if (!count)return 0 ;
drivers/acpi/acpi_tad.c +3 -0
@@ -564,6 +564,9 @@ static int acpi_tad_remove(struct platform_device *pdev)pm_runtime_get_sync (dev); +if (dd->capabilities &ACPI_TAD_RT ) +sysfs_remove_group (&dev->kobj, &acpi_tad_time_attr_group); +if (dd->capabilities &ACPI_TAD_DC_WAKE )sysfs_remove_group (&dev->kobj, &acpi_tad_dc_attr_group);
drivers/acpi/acpica/evglock.c +4 -0
@@ -42,6 +42,10 @@ acpi_status acpi_ev_init_global_lock_handler(void)return_ACPI_STATUS (AE_OK ); } +if (!acpi_gbl_use_global_lock) { +return_ACPI_STATUS (AE_OK ); + } +/* Attempt installation of the global lock handler */ status = acpi_install_fixed_event_handler(ACPI_EVENT_GLOBAL,
drivers/acpi/battery.c +37 -23
147 lines not on this page · raw message
drivers/acpi/property.c +88 -49
212 lines not on this page · raw message
drivers/bus/mhi/ep/main.c +12 -25
@@ -387,17 +387,13 @@ static int mhi_ep_read_channel(struct mhi_ep_cntrl *mhi_cntrl, {struct mhi_ep_chan *mhi_chan = &mhi_cntrl->mhi_chan[ring->ch_id];struct device *dev = &mhi_cntrl->mhi_dev->dev; -size_t tr_len, read_offset, write_offset; +size_t tr_len, read_offset;struct mhi_ep_buf_info buf_info = {};u32 len =MHI_EP_DEFAULT_MTU ;struct mhi_ring_element *el; -bool tr_done = false;void *buf_addr; -u32 buf_left;int ret; - buf_left = len; - do { /* Don't process the transfer ring if the channel is not in RUNNING state */ if (mhi_chan->state != MHI_CH_STATE_RUNNING) {
@@ -410,24 +406,23 @@ static int mhi_ep_read_channel(struct mhi_ep_cntrl *mhi_cntrl,/* Check if there is data pending to be read from previous read operation */ if (mhi_chan->tre_bytes_left) {dev_dbg (dev,"TRE bytes remaining: %u\n" , mhi_chan->tre_bytes_left); - tr_len =min (buf_left, mhi_chan->tre_bytes_left); + tr_len =min (len, mhi_chan->tre_bytes_left); }else { mhi_chan->tre_loc =MHI_TRE_DATA_GET_PTR (el); mhi_chan->tre_size =MHI_TRE_DATA_GET_LEN (el); mhi_chan->tre_bytes_left = mhi_chan->tre_size; - tr_len =min (buf_left, mhi_chan->tre_size); + tr_len =min (len, mhi_chan->tre_size); } read_offset = mhi_chan->tre_size - mhi_chan->tre_bytes_left; - write_offset = len - buf_left; buf_addr =kmem_cache_zalloc (mhi_cntrl->tre_buf_cache,GFP_KERNEL );if (!buf_addr)return -ENOMEM ; buf_info.host_addr = mhi_chan->tre_loc + read_offset; - buf_info.dev_addr = buf_addr + write_offset; + buf_info.dev_addr = buf_addr; buf_info.size = tr_len; buf_info.cb = mhi_ep_read_completion; buf_info.cb_buf = buf_addr;
@@ -443,16 +438,12 @@ static int mhi_ep_read_channel(struct mhi_ep_cntrl *mhi_cntrl, goto err_free_buf_addr; } - buf_left -= tr_len; mhi_chan->tre_bytes_left -= tr_len; -if (!mhi_chan->tre_bytes_left) { -if (MHI_TRE_DATA_GET_IEOT (el)) - tr_done = true; - +if (!mhi_chan->tre_bytes_left) mhi_chan->rd_offset = (mhi_chan->rd_offset +1 ) % ring->ring_size; - } - }while (buf_left && !tr_done); +/* Read until the some buffer is left or the ring becomes not empty */ + }while (!mhi_ep_queue_is_empty (mhi_chan->mhi_dev,DMA_TO_DEVICE ));return 0 ;
@@ -486,15 +477,11 @@ static int mhi_ep_process_ch_ring(struct mhi_ep_ring *ring) mhi_chan->xfer_cb (mhi_chan->mhi_dev, &result); }else {/* UL channel */ -do { - ret =mhi_ep_read_channel (mhi_cntrl, ring); -if (ret <0 ) { -dev_err (&mhi_chan->mhi_dev->dev,"Failed to read channel\n" ); -return ret; - } - -/* Read until the ring becomes empty */ - }while (!mhi_ep_queue_is_empty (mhi_chan->mhi_dev,DMA_TO_DEVICE )); + ret =mhi_ep_read_channel (mhi_cntrl, ring); +if (ret <0 ) { +dev_err (&mhi_chan->mhi_dev->dev,"Failed to read channel\n" ); +return ret; + } }return 0 ;
drivers/bus/mhi/host/init.c +2 -3
@@ -164,7 +164,6 @@ void mhi_deinit_free_irq(struct mhi_controller *mhi_cntrl)int mhi_init_irq_setup (struct mhi_controller *mhi_cntrl) {struct mhi_event *mhi_event = mhi_cntrl->mhi_event; -struct device *dev = &mhi_cntrl->mhi_dev->dev;unsigned long irq_flags =IRQF_SHARED |IRQF_NO_SUSPEND ;int i, ret;
@@ -191,7 +190,7 @@ int mhi_init_irq_setup(struct mhi_controller *mhi_cntrl)continue ;if (mhi_event->irq >= mhi_cntrl->nr_irqs) { -dev_err (dev,"irq %d not available for event ring\n" , +dev_err (mhi_cntrl->cntrl_dev,"irq %d not available for event ring\n" , mhi_event->irq); ret = -EINVAL ; goto error_request;
@@ -202,7 +201,7 @@ int mhi_init_irq_setup(struct mhi_controller *mhi_cntrl) irq_flags, "mhi", mhi_event);if (ret) { -dev_err (dev,"Error requesting irq:%d for ev:%d\n" , +dev_err (mhi_cntrl->cntrl_dev,"Error requesting irq:%d for ev:%d\n" , mhi_cntrl->irq[mhi_event->irq], i); goto error_request; }
drivers/char/ipmi/ipmi_kcs_sm.c +5 -11
@@ -122,10 +122,10 @@ struct si_sm_data {unsigned long error0_timeout; }; -static unsigned int init_kcs_data_with_state (struct si_sm_data *kcs, -struct si_sm_io *io,enum kcs_states state) +static unsigned int init_kcs_data (struct si_sm_data *kcs, +struct si_sm_io *io) { - kcs->state = state; + kcs->state =KCS_IDLE ; kcs->io = io; kcs->write_pos =0 ; kcs->write_count =0 ;
@@ -140,12 +140,6 @@ static unsigned int init_kcs_data_with_state(struct si_sm_data *kcs,return 2 ; } -static unsigned int init_kcs_data (struct si_sm_data *kcs, -struct si_sm_io *io) -{ -return init_kcs_data_with_state (kcs, io,KCS_IDLE ); -} -static inline unsigned char read_status (struct si_sm_data *kcs) {return kcs->io->inputb (kcs->io,1 );
@@ -276,7 +270,7 @@ static int start_kcs_transaction(struct si_sm_data *kcs, unsigned char *data,if (size >MAX_KCS_WRITE_SIZE )return IPMI_REQ_LEN_EXCEEDED_ERR ; -if (kcs->state !=KCS_IDLE ) { +if ((kcs->state !=KCS_IDLE ) && (kcs->state !=KCS_HOSED )) {dev_warn (kcs->io->dev,"KCS in invalid state %d\n" , kcs->state);return IPMI_NOT_IN_MY_STATE_ERR ; }
@@ -501,7 +495,7 @@ static enum si_sm_result kcs_event(struct si_sm_data *kcs, long time) }if (kcs->state ==KCS_HOSED ) { -init_kcs_data_with_state (kcs, kcs->io,KCS_ERROR0 ); +init_kcs_data (kcs, kcs->io);return SI_SM_HOSED ; }
drivers/char/ipmi/ipmi_msghandler.c +200 -216
588 lines not on this page · raw message
drivers/char/tpm/tpm_tis_core.c +2 -2
@@ -977,8 +977,8 @@ static int tpm_tis_probe_irq_single(struct tpm_chip *chip, u32 intmask,* will call disable_irq which undoes all of the above. */ if (!(chip->flags &TPM_CHIP_FLAG_IRQ )) { -tpm_tis_write8 (priv, original_int_vec, -TPM_INT_VECTOR (priv->locality)); +tpm_tis_write8 (priv,TPM_INT_VECTOR (priv->locality), + original_int_vec); rc =-1 ; }
drivers/clk/at91/clk-peripheral.c +5 -2
@@ -279,8 +279,11 @@ static int clk_sam9x5_peripheral_determine_rate(struct clk_hw *hw,long best_diff =LONG_MIN ;u32 shift; -if (periph->id <PERIPHERAL_ID_MIN || !periph->range.max) -return parent_rate; +if (periph->id <PERIPHERAL_ID_MIN || !periph->range.max) { + req->rate = parent_rate; + +return 0 ; + }/* Fist step: check the available dividers. */ for (shift =0 ; shift <=PERIPHERAL_MAX_SHIFT ; shift++) {
drivers/clk/mediatek/clk-mt8195-infra_ao.c +1 -1
@@ -103,7 +103,7 @@ static const struct mtk_gate infra_ao_clks[] = {GATE_INFRA_AO0 (CLK_INFRA_AO_CQ_DMA_FPC ,"infra_ao_cq_dma_fpc" ,"fpc" ,28 ),GATE_INFRA_AO0 (CLK_INFRA_AO_UART5 ,"infra_ao_uart5" ,"top_uart" ,29 ),/* INFRA_AO1 */ -GATE_INFRA_AO1 (CLK_INFRA_AO_HDMI_26M ,"infra_ao_hdmi_26m" ,"clk26m" ,0 ), +GATE_INFRA_AO1 (CLK_INFRA_AO_HDMI_26M ,"infra_ao_hdmi_26m" ,"top_hdmi_xtal" ,0 ),GATE_INFRA_AO1 (CLK_INFRA_AO_SPI0 ,"infra_ao_spi0" ,"top_spi" ,1 ),GATE_INFRA_AO1 (CLK_INFRA_AO_MSDC0 ,"infra_ao_msdc0" ,"top_msdc50_0_hclk" ,2 ), GATE_INFRA_AO1(CLK_INFRA_AO_MSDC1, "infra_ao_msdc1", "top_axi", 4),
drivers/clk/mediatek/clk-mux.c +1 -3
@@ -132,9 +132,7 @@ static int mtk_clk_mux_set_parent_setclr_lock(struct clk_hw *hw, u8 index)static int mtk_clk_mux_determine_rate (struct clk_hw *hw,struct clk_rate_request *req) { -struct mtk_clk_mux *mux =to_mtk_clk_mux (hw); - -return clk_mux_determine_rate_flags (hw, req, mux->data->flags); +return clk_mux_determine_rate_flags (hw, req,0 ); }const struct clk_ops mtk_mux_clr_set_upd_ops = {
drivers/clk/nxp/clk-lpc18xx-cgu.c +11 -9
@@ -371,23 +371,25 @@ static unsigned long lpc18xx_pll0_recalc_rate(struct clk_hw *hw,return 0 ; } -static long lpc18xx_pll0_round_rate (struct clk_hw *hw,unsigned long rate, -unsigned long *prate) +static int lpc18xx_pll0_determine_rate (struct clk_hw *hw, +struct clk_rate_request *req) {unsigned long m; -if (*prate < rate) { +if (req->best_parent_rate < req->rate) {pr_warn ("%s: pll dividers not supported\n" , __func__);return -EINVAL ; } - m =DIV_ROUND_UP_ULL (*prate, rate *2 ); -if (m <=0 && m >LPC18XX_PLL0_MSEL_MAX ) { -pr_warn ("%s: unable to support rate %lu\n" , __func__, rate); + m =DIV_ROUND_UP_ULL (req->best_parent_rate, req->rate *2 ); +if (m ==0 || m >LPC18XX_PLL0_MSEL_MAX ) { +pr_warn ("%s: unable to support rate %lu\n" , __func__, req->rate);return -EINVAL ; } -return 2 * *prate * m; + req->rate =2 * req->best_parent_rate * m; + +return 0 ; } static int lpc18xx_pll0_set_rate(struct clk_hw *hw, unsigned long rate,
@@ -403,7 +405,7 @@ static int lpc18xx_pll0_set_rate(struct clk_hw *hw, unsigned long rate, } m =DIV_ROUND_UP_ULL (parent_rate, rate *2 ); -if (m <=0 && m >LPC18XX_PLL0_MSEL_MAX ) { +if (m ==0 || m >LPC18XX_PLL0_MSEL_MAX ) {pr_warn ("%s: unable to support rate %lu\n" , __func__, rate);return -EINVAL ; }
@@ -444,7 +446,7 @@ static int lpc18xx_pll0_set_rate(struct clk_hw *hw, unsigned long rate,static const struct clk_ops lpc18xx_pll0_ops = { .recalc_rate = lpc18xx_pll0_recalc_rate, - .round_rate = lpc18xx_pll0_round_rate, + .determine_rate = lpc18xx_pll0_determine_rate, .set_rate = lpc18xx_pll0_set_rate, };
drivers/clk/tegra/clk-bpmp.c +1 -1
@@ -635,7 +635,7 @@ static int tegra_bpmp_register_clocks(struct tegra_bpmp *bpmp, bpmp->num_clocks = count; - bpmp->clocks =devm_kcalloc (bpmp->dev, count,sizeof (struct tegra_bpmp_clk ),GFP_KERNEL ); + bpmp->clocks =devm_kcalloc (bpmp->dev, count,sizeof (*bpmp->clocks),GFP_KERNEL );if (!bpmp->clocks)return -ENOMEM ;
drivers/clocksource/clps711x-timer.c +16 -7
@@ -78,24 +78,33 @@ static int __init clps711x_timer_init(struct device_node *np)unsigned int irq =irq_of_parse_and_map (np,0 );struct clk *clock =of_clk_get (np,0 );void __iomem *base =of_iomap (np,0 ); +int ret =0 ;if (!base)return -ENOMEM ; -if (!irq) -return -EINVAL ; -if (IS_ERR (clock)) -return PTR_ERR (clock); +if (!irq) { + ret = -EINVAL ; + goto unmap_io; + } +if (IS_ERR (clock)) { + ret =PTR_ERR (clock); + goto unmap_io; + }switch (of_alias_get_id (np,"timer" )) {case CLPS711X_CLKSRC_CLOCKSOURCE :clps711x_clksrc_init (clock, base);break ;case CLPS711X_CLKSRC_CLOCKEVENT : -return _clps711x_clkevt_init (clock, base, irq); + ret =_clps711x_clkevt_init (clock, base, irq); +break ;default : -return -EINVAL ; + ret = -EINVAL ; +break ; } -return 0 ; +unmap_io: +iounmap (base); +return ret; }TIMER_OF_DECLARE (clps711x,"cirrus,ep7209-timer" , clps711x_timer_init);
drivers/cpufreq/intel_pstate.c +5 -3
@@ -1341,10 +1341,10 @@ static void update_qos_request(enum freq_qos_req_type type)continue ; req = policy->driver_data; -cpufreq_cpu_put (policy); - -if (!req) +if (!req) { +cpufreq_cpu_put (policy);continue ; + }if (hwp_active)intel_pstate_get_hwp_cap (cpu);
@@ -1360,6 +1360,8 @@ static void update_qos_request(enum freq_qos_req_type type)if (freq_qos_update_request (req, freq) <0 )pr_warn ("Failed to update freq constraint: CPU%d\n" , i); + +cpufreq_cpu_put (policy); } }
drivers/cpufreq/tegra186-cpufreq.c +6 -2
@@ -86,10 +86,14 @@ static int tegra186_cpufreq_set_target(struct cpufreq_policy *policy, {struct tegra186_cpufreq_data *data =cpufreq_get_driver_data ();struct cpufreq_frequency_table *tbl = policy->freq_table + index; -unsigned int edvd_offset = data->cpus[policy->cpu].edvd_offset; +unsigned int edvd_offset;u32 edvd_val = tbl->driver_data; +u32 cpu; -writel (edvd_val, data->regs + edvd_offset); +for_each_cpu (cpu, policy->cpus) { + edvd_offset = data->cpus[cpu].edvd_offset; +writel (edvd_val, data->regs + edvd_offset); + }return 0 ; }
drivers/crypto/aspeed/aspeed-hace-crypto.c +1 -1
@@ -346,7 +346,7 @@ static int aspeed_sk_start_sg(struct aspeed_hace_dev *hace_dev) }else {dma_unmap_sg (hace_dev->dev, req->dst, rctx->dst_nents, -DMA_TO_DEVICE ); +DMA_FROM_DEVICE );dma_unmap_sg (hace_dev->dev, req->src, rctx->src_nents,DMA_TO_DEVICE ); }
drivers/crypto/atmel-tdes.c +1 -1
@@ -548,7 +548,7 @@ static int atmel_tdes_crypt_start(struct atmel_tdes_dev *dd)if (err && (dd->flags &TDES_FLAGS_FAST )) {dma_unmap_sg (dd->dev, dd->in_sg,1 ,DMA_TO_DEVICE ); -dma_unmap_sg (dd->dev, dd->out_sg,1 ,DMA_TO_DEVICE ); +dma_unmap_sg (dd->dev, dd->out_sg,1 ,DMA_FROM_DEVICE ); }return err;
drivers/crypto/rockchip/rk3288_crypto_ahash.c +1 -1
@@ -252,7 +252,7 @@ static void rk_hash_unprepare(struct crypto_engine *engine, void *breq)struct rk_ahash_rctx *rctx =ahash_request_ctx (areq);struct rk_crypto_info *rkc = rctx->dev; -dma_unmap_sg (rkc->dev, areq->src, rctx->nrsg,DMA_TO_DEVICE ); +dma_unmap_sg (rkc->dev, areq->src,sg_nents (areq->src),DMA_TO_DEVICE ); }static int rk_hash_run (struct crypto_engine *engine,void *breq)
drivers/firmware/meson/meson_sm.c +6 -1
@@ -225,11 +225,16 @@ EXPORT_SYMBOL(meson_sm_call_write);struct meson_sm_firmware *meson_sm_get (struct device_node *sm_node) {struct platform_device *pdev =of_find_device_by_node (sm_node); +struct meson_sm_firmware *fw;if (!pdev)return NULL ; -return platform_get_drvdata (pdev); + fw =platform_get_drvdata (pdev); + +put_device (&pdev->dev); + +return fw; }EXPORT_SYMBOL_GPL (meson_sm_get);
drivers/gpio/gpio-wcd934x.c +1 -1
@@ -102,7 +102,7 @@ static int wcd_gpio_probe(struct platform_device *pdev) chip->base =-1 ; chip->ngpio =WCD934X_NPINS ; chip->label =dev_name (dev); - chip->can_sleep = false; + chip->can_sleep = true;return devm_gpiochip_add_data (dev, chip, data); }
drivers/gpu/drm/amd/display/dc/dce/dce_transform.c +13 -8
@@ -154,10 +154,13 @@ static bool dce60_setup_scaling_configuration(REG_SET (SCL_BYPASS_CONTROL ,0 ,SCL_BYPASS_MODE ,0 );if (data->taps.h_taps + data->taps.v_taps <=2 ) { -/* Set bypass */ - -/* DCE6 has no SCL_MODE register, skip scale mode programming */ +/* Disable scaler functionality */ +REG_WRITE (SCL_SCALER_ENABLE ,0 ); +/* Clear registers that can cause glitches even when the scaler is off */ +REG_WRITE (SCL_TAP_CONTROL ,0 ); +REG_WRITE (SCL_AUTOMATIC_MODE_CONTROL ,0 ); +REG_WRITE (SCL_F_SHARP_CONTROL ,0 );return false; }
@@ -165,7 +168,7 @@ static bool dce60_setup_scaling_configuration(SCL_H_NUM_OF_TAPS , data->taps.h_taps -1 , SCL_V_NUM_OF_TAPS, data->taps.v_taps - 1); -/* DCE6 has no SCL_MODE register, skip scale mode programming */ +REG_WRITE (SCL_SCALER_ENABLE ,1 );/* DCE6 has no SCL_BOUNDARY_MODE bit, skip replace out of bound pixels */
@@ -502,6 +505,8 @@ static void dce60_transform_set_scaler(REG_SET (DC_LB_MEM_SIZE ,0 ,DC_LB_MEM_SIZE , xfm_dce->lb_memory_size); +REG_WRITE (SCL_UPDATE ,0x00010000 ); +/* Clear SCL_F_SHARP_CONTROL value to 0 */ REG_WRITE (SCL_F_SHARP_CONTROL ,0 );
@@ -527,8 +532,7 @@ static void dce60_transform_set_scaler(if (coeffs_v != xfm_dce->filter_v || coeffs_h != xfm_dce->filter_h) {/* 4. Program vertical filters */ if (xfm_dce->filter_v ==NULL ) -REG_SET (SCL_VERT_FILTER_CONTROL ,0 , -SCL_V_2TAP_HARDCODE_COEF_EN ,0 ); +REG_WRITE (SCL_VERT_FILTER_CONTROL ,0 ); program_multi_taps_filter( xfm_dce, data->taps.v_taps,
@@ -542,8 +546,7 @@ static void dce60_transform_set_scaler(/* 5. Program horizontal filters */ if (xfm_dce->filter_h ==NULL ) -REG_SET (SCL_HORZ_FILTER_CONTROL ,0 , -SCL_H_2TAP_HARDCODE_COEF_EN ,0 ); +REG_WRITE (SCL_HORZ_FILTER_CONTROL ,0 ); program_multi_taps_filter( xfm_dce, data->taps.h_taps,
@@ -566,6 +569,8 @@ static void dce60_transform_set_scaler(/* DCE6 has no SCL_COEF_UPDATE_COMPLETE bit to flip to new coefficient memory */ /* DCE6 DATA_FORMAT register does not support ALPHA_EN */ + + REG_WRITE(SCL_UPDATE, 0); }#endif
drivers/gpu/drm/amd/display/dc/dce/dce_transform.h +4 -0
@@ -155,6 +155,9 @@SRI (SCL_COEF_RAM_TAP_DATA ,SCL , id), \SRI (VIEWPORT_START ,SCL , id), \SRI (VIEWPORT_SIZE ,SCL , id), \ +SRI (SCL_SCALER_ENABLE ,SCL , id), \ +SRI (SCL_HORZ_FILTER_INIT_RGB_LUMA ,SCL , id), \ +SRI (SCL_HORZ_FILTER_INIT_CHROMA ,SCL , id), \SRI (SCL_HORZ_FILTER_SCALE_RATIO ,SCL , id), \SRI (SCL_VERT_FILTER_SCALE_RATIO ,SCL , id), \ SRI(SCL_VERT_FILTER_INIT, SCL, id), \
@@ -590,6 +593,7 @@ struct dce_transform_registers {uint32_t SCL_VERT_FILTER_SCALE_RATIO ;uint32_t SCL_HORZ_FILTER_INIT ;#if defined(CONFIG_DRM_AMD_DC_SI ) +uint32_t SCL_SCALER_ENABLE ;uint32_t SCL_HORZ_FILTER_INIT_RGB_LUMA ;uint32_t SCL_HORZ_FILTER_INIT_CHROMA ;#endif
drivers/gpu/drm/amd/include/asic_reg/dce/dce_6_0_d.h +7 -0
@@ -4115,6 +4115,7 @@#define mmSCL0_SCL_COEF_RAM_CONFLICT_STATUS 0x1B55#define mmSCL0_SCL_COEF_RAM_SELECT 0x1B40#define mmSCL0_SCL_COEF_RAM_TAP_DATA 0x1B41 +#define mmSCL0_SCL_SCALER_ENABLE 0x1B42#define mmSCL0_SCL_CONTROL 0x1B44#define mmSCL0_SCL_DEBUG 0x1B6A#define mmSCL0_SCL_DEBUG2 0x1B69
@@ -4144,6 +4145,7 @@#define mmSCL1_SCL_COEF_RAM_CONFLICT_STATUS 0x1E55#define mmSCL1_SCL_COEF_RAM_SELECT 0x1E40#define mmSCL1_SCL_COEF_RAM_TAP_DATA 0x1E41 +#define mmSCL1_SCL_SCALER_ENABLE 0x1E42#define mmSCL1_SCL_CONTROL 0x1E44#define mmSCL1_SCL_DEBUG 0x1E6A#define mmSCL1_SCL_DEBUG2 0x1E69
@@ -4173,6 +4175,7 @@#define mmSCL2_SCL_COEF_RAM_CONFLICT_STATUS 0x4155#define mmSCL2_SCL_COEF_RAM_SELECT 0x4140#define mmSCL2_SCL_COEF_RAM_TAP_DATA 0x4141 +#define mmSCL2_SCL_SCALER_ENABLE 0x4142#define mmSCL2_SCL_CONTROL 0x4144#define mmSCL2_SCL_DEBUG 0x416A#define mmSCL2_SCL_DEBUG2 0x4169
@@ -4202,6 +4205,7 @@#define mmSCL3_SCL_COEF_RAM_CONFLICT_STATUS 0x4455#define mmSCL3_SCL_COEF_RAM_SELECT 0x4440#define mmSCL3_SCL_COEF_RAM_TAP_DATA 0x4441 +#define mmSCL3_SCL_SCALER_ENABLE 0x4442#define mmSCL3_SCL_CONTROL 0x4444#define mmSCL3_SCL_DEBUG 0x446A#define mmSCL3_SCL_DEBUG2 0x4469
@@ -4231,6 +4235,7 @@#define mmSCL4_SCL_COEF_RAM_CONFLICT_STATUS 0x4755#define mmSCL4_SCL_COEF_RAM_SELECT 0x4740#define mmSCL4_SCL_COEF_RAM_TAP_DATA 0x4741 +#define mmSCL4_SCL_SCALER_ENABLE 0x4742#define mmSCL4_SCL_CONTROL 0x4744#define mmSCL4_SCL_DEBUG 0x476A#define mmSCL4_SCL_DEBUG2 0x4769
@@ -4260,6 +4265,7 @@#define mmSCL5_SCL_COEF_RAM_CONFLICT_STATUS 0x4A55#define mmSCL5_SCL_COEF_RAM_SELECT 0x4A40#define mmSCL5_SCL_COEF_RAM_TAP_DATA 0x4A41 +#define mmSCL5_SCL_SCALER_ENABLE 0x4A42#define mmSCL5_SCL_CONTROL 0x4A44#define mmSCL5_SCL_DEBUG 0x4A6A#define mmSCL5_SCL_DEBUG2 0x4A69
@@ -4287,6 +4293,7 @@#define mmSCL_COEF_RAM_CONFLICT_STATUS 0x1B55#define mmSCL_COEF_RAM_SELECT 0x1B40#define mmSCL_COEF_RAM_TAP_DATA 0x1B41 +#define mmSCL_SCALER_ENABLE 0x1B42#define mmSCL_CONTROL 0x1B44#define mmSCL_DEBUG 0x1B6A#define mmSCL_DEBUG2 0x1B69
drivers/gpu/drm/amd/include/asic_reg/dce/dce_6_0_sh_mask.h +2 -0
@@ -8648,6 +8648,8 @@#define REGAMMA_LUT_INDEX__REGAMMA_LUT_INDEX__SHIFT 0x00000000#define REGAMMA_LUT_WRITE_EN_MASK__REGAMMA_LUT_WRITE_EN_MASK_MASK 0x00000007L#define REGAMMA_LUT_WRITE_EN_MASK__REGAMMA_LUT_WRITE_EN_MASK__SHIFT 0x00000000 +#define SCL_SCALER_ENABLE__SCL_SCALE_EN_MASK 0x00000001L +#define SCL_SCALER_ENABLE__SCL_SCALE_EN__SHIFT 0x00000000#define SCL_ALU_CONTROL__SCL_ALU_DISABLE_MASK 0x00000001L#define SCL_ALU_CONTROL__SCL_ALU_DISABLE__SHIFT 0x00000000#define SCL_BYPASS_CONTROL__SCL_BYPASS_MODE_MASK 0x00000003L
drivers/gpu/drm/nouveau/nouveau_bo.c +1 -1
@@ -836,7 +836,7 @@ nouveau_bo_move_prep(struct nouveau_drm *drm, struct ttm_buffer_object *bo,nvif_vmm_put (vmm, &old_mem->vma[1 ]);nvif_vmm_put (vmm, &old_mem->vma[0 ]); } -return 0 ; +return ret; } static int
drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c +4 -1
@@ -576,7 +576,10 @@ static int rcar_mipi_dsi_startup(struct rcar_mipi_dsi *dsi,udelay (10 );rcar_mipi_dsi_clr (dsi,CLOCKSET1 ,CLOCKSET1_UPDATEPLL ); - ppisetr =PPISETR_DLEN_3 |PPISETR_CLEN ; +rcar_mipi_dsi_clr (dsi,TXSETR ,TXSETR_LANECNT_MASK ); +rcar_mipi_dsi_set (dsi,TXSETR , dsi->lanes -1 ); + + ppisetr = ((BIT (dsi->lanes) -1 ) &PPISETR_DLEN_MASK ) |PPISETR_CLEN ;rcar_mipi_dsi_write (dsi,PPISETR , ppisetr);rcar_mipi_dsi_set (dsi,PHYSETUP ,PHYSETUP_SHUTDOWNZ );
drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi_regs.h +4 -4
@@ -12,6 +12,9 @@#define LINKSR_LPBUSY (1 << 1)#define LINKSR_HSBUSY (1 << 0) +#define TXSETR 0x100 +#define TXSETR_LANECNT_MASK (0x3 << 0) +/* * Video Mode Register */
@@ -80,10 +83,7 @@* PHY-Protocol Interface (PPI) Registers */ #define PPISETR 0x700 -#define PPISETR_DLEN_0 (0x1 << 0) -#define PPISETR_DLEN_1 (0x3 << 0) -#define PPISETR_DLEN_2 (0x7 << 0) -#define PPISETR_DLEN_3 (0xf << 0) +#define PPISETR_DLEN_MASK (0xf << 0)#define PPISETR_CLEN (1 << 8)#define PPICLCR 0x710
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +12 -5
@@ -1514,6 +1514,7 @@ static int vmw_cmd_dma(struct vmw_private *dev_priv, SVGA3dCmdHeader *header) {struct vmw_bo *vmw_bo =NULL ; +struct vmw_resource *res;struct vmw_surface *srf =NULL ;VMW_DECLARE_CMD_VAR (*cmd, SVGA3dCmdSurfaceDMA);int ret;
@@ -1549,18 +1550,24 @@ static int vmw_cmd_dma(struct vmw_private *dev_priv, dirty = (cmd->body.transfer ==SVGA3D_WRITE_HOST_VRAM ) ?VMW_RES_DIRTY_SET :0 ; - ret =vmw_cmd_res_check (dev_priv, sw_context, vmw_res_surface, - dirty, user_surface_converter, - &cmd->body.host.sid,NULL ); + ret =vmw_cmd_res_check (dev_priv, sw_context, vmw_res_surface, dirty, + user_surface_converter, &cmd->body.host.sid, +NULL );if (unlikely (ret !=0 )) {if (unlikely (ret != -ERESTARTSYS ))VMW_DEBUG_USER ("could not find surface for DMA.\n" );return ret; } - srf =vmw_res_to_srf (sw_context->res_cache[vmw_res_surface].res); + res = sw_context->res_cache[vmw_res_surface].res; +if (!res) { +VMW_DEBUG_USER ("Invalid DMA surface.\n" ); +return -EINVAL ; + } -vmw_kms_cursor_snoop (srf, sw_context->fp->tfile, &vmw_bo->tbo, header); + srf =vmw_res_to_srf (res); +vmw_kms_cursor_snoop (srf, sw_context->fp->tfile, &vmw_bo->tbo, + header);return 0 ; }
drivers/gpu/drm/vmwgfx/vmwgfx_validation.c +4 -2
@@ -326,8 +326,10 @@ int vmw_validation_add_resource(struct vmw_validation_context *ctx,hash_add_rcu (ctx->sw_context->res_ht, &node->hash.head, node->hash.key); } node->res =vmw_resource_reference_unless_doomed (res); -if (!node->res) +if (!node->res) { +hash_del_rcu (&node->hash.head);return -ESRCH ; + } node->first_usage =1 ;if (!res->dev_priv->has_mob) {
@@ -654,7 +656,7 @@ void vmw_validation_drop_ht(struct vmw_validation_context *ctx)hash_del_rcu (&val->hash.head);list_for_each_entry (val, &ctx->resource_ctx_list, head) -hash_del_rcu (&entry->hash.head); +hash_del_rcu (&val->hash.head); ctx->sw_context =NULL ; }
drivers/iio/adc/xilinx-ams.c +26 -21
73 lines not on this page · raw message
drivers/iio/dac/ad5360.c +1 -1
@@ -262,7 +262,7 @@ static int ad5360_update_ctrl(struct iio_dev *indio_dev, unsigned int set, unsigned int clr) {struct ad5360_state *st =iio_priv (indio_dev); -unsigned int ret; +int ret;mutex_lock (&st->lock);
drivers/iio/dac/ad5421.c +1 -1
@@ -186,7 +186,7 @@ static int ad5421_update_ctrl(struct iio_dev *indio_dev, unsigned int set, unsigned int clr) {struct ad5421_state *st =iio_priv (indio_dev); -unsigned int ret; +int ret;mutex_lock (&st->lock);
drivers/iio/frequency/adf4350.c +13 -7
@@ -143,6 +143,19 @@ static int adf4350_set_freq(struct adf4350_state *st, unsigned long long freq)if (freq >ADF4350_MAX_OUT_FREQ || freq < st->min_out_freq)return -EINVAL ; + st->r4_rf_div_sel =0 ; + +/* +* !\TODO: The below computation is making sure we get a power of 2 +* shift (st->r4_rf_div_sel) so that freq becomes higher or equal to +* ADF4350_MIN_VCO_FREQ. This might be simplified with fls()/fls_long() +* and friends. +*/ +while (freq <ADF4350_MIN_VCO_FREQ ) { + freq <<=1 ; + st->r4_rf_div_sel++; + } +if (freq >ADF4350_MAX_FREQ_45_PRESC ) { prescaler =ADF4350_REG1_PRESCALER ; mdiv =75 ;
@@ -151,13 +164,6 @@ static int adf4350_set_freq(struct adf4350_state *st, unsigned long long freq) mdiv =23 ; } - st->r4_rf_div_sel =0 ; - -while (freq <ADF4350_MIN_VCO_FREQ ) { - freq <<=1 ; - st->r4_rf_div_sel++; - } -/* * Allow a predefined reference division factor * if not set, compute our own
drivers/iio/imu/inv_icm42600/inv_icm42600_core.c +0 -4
@@ -747,10 +747,6 @@ static int inv_icm42600_resume(struct device *dev)if (ret) goto out_unlock; -pm_runtime_disable (dev); -pm_runtime_set_active (dev); -pm_runtime_enable (dev); -/* restore sensors state */ ret = inv_icm42600_set_pwr_mgmt0(st, st->suspended.gyro, st->suspended.accel,
drivers/iommu/intel/iommu.c +1 -1
@@ -4415,7 +4415,7 @@ static struct iommu_device *intel_iommu_probe_device(struct device *dev) }if (info->ats_supported &&ecap_prs (iommu->ecap) && -pci_pri_supported (pdev)) +ecap_pds (iommu->ecap) &&pci_pri_supported (pdev)) info->pri_supported =1 ; } }
drivers/irqchip/irq-sifive-plic.c +7 -6
@@ -248,11 +248,11 @@ static int plic_irq_suspend(void) priv =per_cpu_ptr (&plic_handlers,smp_processor_id ())->priv; -for (i =0 ; i < priv->nr_irqs; i++) -if (readl (priv->regs +PRIORITY_BASE + i *PRIORITY_PER_ID )) -__set_bit (i, priv->prio_save); -else -__clear_bit (i, priv->prio_save); +/* irq ID 0 is reserved */ +for (i =1 ; i < priv->nr_irqs; i++) { +__assign_bit (i, priv->prio_save, +readl (priv->regs +PRIORITY_BASE + i *PRIORITY_PER_ID )); + }for_each_cpu (cpu, cpu_present_mask) {struct plic_handler *handler =per_cpu_ptr (&plic_handlers, cpu);
@@ -279,7 +279,8 @@ static void plic_irq_resume(void) priv =per_cpu_ptr (&plic_handlers,smp_processor_id ())->priv; -for (i =0 ; i < priv->nr_irqs; i++) { +/* irq ID 0 is reserved */ +for (i =1 ; i < priv->nr_irqs; i++) { index =BIT_WORD (i);writel ((priv->prio_save[index] &BIT_MASK (i)) ?1 :0 , priv->regs +PRIORITY_BASE + i *PRIORITY_PER_ID );
drivers/mailbox/zynqmp-ipi-mailbox.c +2 -5
@@ -616,11 +616,8 @@ static void zynqmp_ipi_free_mboxes(struct zynqmp_ipi_pdata *pdata) i = pdata->num_mboxes;for (; i >=0 ; i--) { ipi_mbox = &pdata->ipi_mboxes[i]; -if (ipi_mbox->dev.parent) { -mbox_controller_unregister (&ipi_mbox->mbox); -if (device_is_registered (&ipi_mbox->dev)) -device_unregister (&ipi_mbox->dev); - } +if (device_is_registered (&ipi_mbox->dev)) +device_unregister (&ipi_mbox->dev); } }
drivers/media/i2c/mt9v111.c +1 -1
@@ -534,8 +534,8 @@ static int mt9v111_calc_frame_rate(struct mt9v111_dev *mt9v111,static int mt9v111_hw_config (struct mt9v111_dev *mt9v111) {struct i2c_client *c = mt9v111->client; -unsigned int ret;u16 outfmtctrl2; +int ret;/* Force device reset. */ ret =__mt9v111_hw_reset (mt9v111);
drivers/media/mc/mc-devnode.c +1 -5
@@ -50,11 +50,6 @@ static void media_devnode_release(struct device *cd) {struct media_devnode *devnode =to_media_devnode (cd); -mutex_lock (&media_devnode_lock); -/* Mark device node number as free */ -clear_bit (devnode->minor, media_devnode_nums); -mutex_unlock (&media_devnode_lock); -/* Release media_devnode and perform other cleanups as needed. */ if (devnode->release) devnode->release (devnode);
@@ -283,6 +278,7 @@ void media_devnode_unregister(struct media_devnode *devnode)/* Delete the cdev on this minor as well */ cdev_device_del (&devnode->cdev, &devnode->dev); devnode->media_dev =NULL ; +clear_bit (devnode->minor, media_devnode_nums);mutex_unlock (&media_devnode_lock);put_device (&devnode->dev);
drivers/media/mc/mc-entity.c +1 -1
@@ -678,7 +678,7 @@ static int media_pipeline_explore_next_link(struct media_pipeline *pipe,* (already discovered through iterating over links) and pads * not internally connected. */ -if (origin == local || !local->num_links || +if (origin == local || local->num_links || !media_entity_has_pad_interdep (origin->entity, origin->index, local->index))continue ;
drivers/media/pci/cx18/cx18-queue.c +10 -3
@@ -379,15 +379,22 @@ int cx18_stream_alloc(struct cx18_stream *s)break ; } + buf->dma_handle =dma_map_single (&s->cx->pci_dev->dev, + buf->buf, s->buf_size, + s->dma); +if (dma_mapping_error (&s->cx->pci_dev->dev, buf->dma_handle)) { +kfree (buf->buf); +kfree (mdl); +kfree (buf); +break ; + } +INIT_LIST_HEAD (&mdl->list);INIT_LIST_HEAD (&mdl->buf_list); mdl->id = s->mdl_base_idx;/* a somewhat safe value */ cx18_enqueue (s, mdl, &s->q_idle);INIT_LIST_HEAD (&buf->list); - buf->dma_handle =dma_map_single (&s->cx->pci_dev->dev, - buf->buf, s->buf_size, - s->dma);cx18_buf_sync_for_cpu (s, buf);list_add_tail (&buf->list, &s->buf_pool); }
drivers/media/pci/ivtv/ivtv-irq.c +1 -1
@@ -351,7 +351,7 @@ void ivtv_dma_stream_dec_prepare(struct ivtv_stream *s, u32 offset, int lock)/* Insert buffer block for YUV if needed */ if (s->type ==IVTV_DEC_STREAM_TYPE_YUV && f->offset_y) { -if (yi->blanking_dmaptr) { +if (yi->blanking_ptr) { s->sg_pending[idx].src = yi->blanking_dmaptr; s->sg_pending[idx].dst = offset; s->sg_pending[idx].size =720 *16 ;
drivers/media/pci/ivtv/ivtv-yuv.c +7 -1
@@ -125,7 +125,7 @@ static int ivtv_yuv_prep_user_dma(struct ivtv *itv, struct ivtv_user_dma *dma,ivtv_udma_fill_sg_array (dma, y_buffer_offset, uv_buffer_offset, y_size);/* If we've offset the y plane, ensure top area is blanked */ -if (f->offset_y && yi->blanking_dmaptr) { +if (f->offset_y && yi->blanking_ptr) { dma->SGarray[dma->SG_length].size =cpu_to_le32 (720 *16 ); dma->SGarray[dma->SG_length].src =cpu_to_le32 (yi->blanking_dmaptr); dma->SGarray[dma->SG_length].dst =cpu_to_le32 (IVTV_DECODER_OFFSET + yuv_offset[frame]);
@@ -929,6 +929,12 @@ static void ivtv_yuv_init(struct ivtv *itv) yi->blanking_dmaptr =dma_map_single (&itv->pdev->dev, yi->blanking_ptr,720 *16 ,DMA_TO_DEVICE ); +if (dma_mapping_error (&itv->pdev->dev, yi->blanking_dmaptr)) { +kfree (yi->blanking_ptr); + yi->blanking_ptr =NULL ; + yi->blanking_dmaptr =0 ; +IVTV_DEBUG_WARN ("Failed to dma_map yuv blanking buffer\n" ); + } }else { yi->blanking_dmaptr =0 ;IVTV_DEBUG_WARN ("Failed to allocate yuv blanking buffer\n" );
drivers/media/platform/qcom/venus/firmware.c +4 -4
@@ -30,7 +30,7 @@ static void venus_reset_cpu(struct venus_core *core)u32 fw_size = core->fw.mapped_mem_size;void __iomem *wrapper_base; -if (IS_IRIS2_1 (core)) +if (IS_IRIS2 (core) ||IS_IRIS2_1 (core)) wrapper_base = core->wrapper_tz_base;else wrapper_base = core->wrapper_base;
@@ -42,7 +42,7 @@ static void venus_reset_cpu(struct venus_core *core)writel (fw_size, wrapper_base +WRAPPER_NONPIX_START_ADDR );writel (fw_size, wrapper_base +WRAPPER_NONPIX_END_ADDR ); -if (IS_IRIS2_1 (core)) { +if (IS_IRIS2 (core) ||IS_IRIS2_1 (core)) {/* Bring XTSS out of reset */ writel (0 , wrapper_base +WRAPPER_TZ_XTSS_SW_RESET ); }else {
@@ -68,7 +68,7 @@ int venus_set_hw_state(struct venus_core *core, bool resume)if (resume) {venus_reset_cpu (core); }else { -if (IS_IRIS2_1 (core)) +if (IS_IRIS2 (core) ||IS_IRIS2_1 (core))writel (WRAPPER_XTSS_SW_RESET_BIT , core->wrapper_tz_base +WRAPPER_TZ_XTSS_SW_RESET );else
@@ -181,7 +181,7 @@ static int venus_shutdown_no_tz(struct venus_core *core)void __iomem *wrapper_base = core->wrapper_base;void __iomem *wrapper_tz_base = core->wrapper_tz_base; -if (IS_IRIS2_1 (core)) { +if (IS_IRIS2 (core) ||IS_IRIS2_1 (core)) {/* Assert the reset to XTSS */ reg =readl (wrapper_tz_base +WRAPPER_TZ_XTSS_SW_RESET ); reg |=WRAPPER_XTSS_SW_RESET_BIT ;
drivers/media/rc/lirc_dev.c +5 -4
@@ -735,11 +735,11 @@ int lirc_register(struct rc_dev *dev)cdev_init (&dev->lirc_cdev, &lirc_fops); +get_device (&dev->dev); + err =cdev_device_add (&dev->lirc_cdev, &dev->lirc_dev);if (err) - goto out_ida; - -get_device (&dev->dev); + goto out_put_device;switch (dev->driver_type) {case RC_DRIVER_SCANCODE :
@@ -763,7 +763,8 @@ int lirc_register(struct rc_dev *dev)return 0 ; -out_ida: +out_put_device: +put_device (&dev->lirc_dev);ida_free (&lirc_ida, minor);return err; }
drivers/memory/samsung/exynos-srom.c +4 -6
@@ -121,20 +121,18 @@ static int exynos_srom_probe(struct platform_device *pdev)return -ENOMEM ; srom->dev = dev; - srom->reg_base =of_iomap (np,0 ); -if (!srom->reg_base) { + srom->reg_base =devm_platform_ioremap_resource (pdev,0 ); +if (IS_ERR (srom->reg_base)) {dev_err (&pdev->dev,"iomap of exynos srom controller failed\n" ); -return -ENOMEM ; +return PTR_ERR (srom->reg_base); }platform_set_drvdata (pdev, srom); srom->reg_offset =exynos_srom_alloc_reg_dump (exynos_srom_offsets,ARRAY_SIZE (exynos_srom_offsets)); -if (!srom->reg_offset) { -iounmap (srom->reg_base); +if (!srom->reg_offset)return -ENOMEM ; - }for_each_child_of_node (np, child) {if (exynos_srom_configure_bank (srom, child)) {
drivers/mfd/intel_soc_pmic_chtdc_ti.c +3 -2
@@ -81,8 +81,9 @@ static struct mfd_cell chtdc_ti_dev[] = {static const struct regmap_config chtdc_ti_regmap_config = { .reg_bits =8 , .val_bits =8 , - .max_register =128 , - .cache_type =REGCACHE_NONE , + .max_register =0xff , +/* The hardware does not support reading multiple registers at once */ + .use_single_read = true, };static const struct regmap_irq chtdc_ti_irqs[] = {
drivers/misc/fastrpc.c +23 -14
@@ -322,11 +322,11 @@ static void fastrpc_free_map(struct kref *ref) perm.vmid =QCOM_SCM_VMID_HLOS ; perm.perm =QCOM_SCM_PERM_RWX ; - err =qcom_scm_assign_mem (map->phys, map->size, + err =qcom_scm_assign_mem (map->phys, map->len, &src_perms, &perm,1 );if (err) { -dev_err (map->fl->sctx->dev,"Failed to assign memory phys 0x%llx size 0x%llx err %d" , - map->phys, map->size, err); +dev_err (map->fl->sctx->dev,"Failed to assign memory phys 0x%llx size 0x%llx err %d\n" , + map->phys, map->len, err);return ; } }
@@ -752,7 +752,8 @@ static int fastrpc_map_attach(struct fastrpc_user *fl, int fd,struct fastrpc_session_ctx *sess = fl->sctx;struct fastrpc_map *map =NULL ;struct sg_table *table; -int err =0 ; +struct scatterlist *sgl =NULL ; +int err =0 , sgl_index =0 ; map =kzalloc (sizeof (*map),GFP_KERNEL );if (!map)
@@ -789,7 +790,15 @@ static int fastrpc_map_attach(struct fastrpc_user *fl, int fd, map->phys =sg_dma_address (map->table->sgl); map->phys += ((u64 )fl->sctx->sid <<32 ); } - map->size = len; +for_each_sg (map->table->sgl, sgl, map->table->nents, + sgl_index) + map->size +=sg_dma_len (sgl); +if (len > map->size) { +dev_dbg (sess->dev,"Bad size passed len 0x%llx map size 0x%llx\n" , + len, map->size); + err = -EINVAL ; + goto map_err; + } map->va =sg_virt (map->table->sgl); map->len = len;
@@ -806,10 +815,10 @@ static int fastrpc_map_attach(struct fastrpc_user *fl, int fd, dst_perms[1 ].vmid = fl->cctx->vmperms[0 ].vmid; dst_perms[1 ].perm =QCOM_SCM_PERM_RWX ; map->attr = attr; - err =qcom_scm_assign_mem (map->phys, (u64 )map->size, &src_perms, dst_perms,2 ); + err =qcom_scm_assign_mem (map->phys, (u64 )map->len, &src_perms, dst_perms,2 );if (err) { -dev_err (sess->dev,"Failed to assign memory with phys 0x%llx size 0x%llx err %d" , - map->phys, map->size, err); +dev_err (sess->dev,"Failed to assign memory with phys 0x%llx size 0x%llx err %d\n" , + map->phys, map->len, err); goto map_err; } }
@@ -1240,7 +1249,7 @@ static bool is_session_rejected(struct fastrpc_user *fl, bool unsigned_pd_reques* that does not support unsigned PD offload */ if (!fl->cctx->unsigned_support || !unsigned_pd_request) { -dev_err (&fl->cctx->rpdev->dev,"Error: Untrusted application trying to offload to signed PD" ); +dev_err (&fl->cctx->rpdev->dev,"Error: Untrusted application trying to offload to signed PD\n" );return true; } }
@@ -1304,7 +1313,7 @@ static int fastrpc_init_create_static_process(struct fastrpc_user *fl, &src_perms, fl->cctx->vmperms, fl->cctx->vmcount);if (err) { -dev_err (fl->sctx->dev,"Failed to assign memory with phys 0x%llx size 0x%llx err %d" , +dev_err (fl->sctx->dev,"Failed to assign memory with phys 0x%llx size 0x%llx err %d\n" , fl->cctx->remote_heap->phys, fl->cctx->remote_heap->size, err); goto err_map; }
@@ -1358,7 +1367,7 @@ static int fastrpc_init_create_static_process(struct fastrpc_user *fl, (u64 )fl->cctx->remote_heap->size, &src_perms, &dst_perms, 1);if (err) -dev_err (fl->sctx->dev,"Failed to assign memory phys 0x%llx size 0x%llx err %d" , +dev_err (fl->sctx->dev,"Failed to assign memory phys 0x%llx size 0x%llx err %d\n" , fl->cctx->remote_heap->phys, fl->cctx->remote_heap->size, err); } err_map:
@@ -2063,7 +2072,7 @@ static int fastrpc_req_mem_map(struct fastrpc_user *fl, char __user *argp) args[0 ].length =sizeof (req_msg); pages.addr = map->phys; - pages.size = map->size; + pages.size = map->len; args[1 ].ptr = (u64) (uintptr_t) &pages; args[1 ].length =sizeof (pages);
@@ -2078,7 +2087,7 @@ static int fastrpc_req_mem_map(struct fastrpc_user *fl, char __user *argp) err =fastrpc_internal_invoke (fl, true,FASTRPC_INIT_HANDLE , sc, &args[0 ]);if (err) {dev_err (dev,"mem mmap error, fd %d, vaddr %llx, size %lld\n" , - req.fd, req.vaddrin, map->size); + req.fd, req.vaddrin, map->len); goto err_invoke; }
@@ -2091,7 +2100,7 @@ static int fastrpc_req_mem_map(struct fastrpc_user *fl, char __user *argp)if (copy_to_user ((void __user *)argp, &req,sizeof (req))) {/* unmap the memory and release the buffer */ req_unmap.vaddr = (uintptr_t ) rsp_msg.vaddr; - req_unmap.length = map->size; + req_unmap.length = map->len;fastrpc_req_mem_unmap_impl (fl, &req_unmap);return -EFAULT ; }
drivers/mmc/core/sdio.c +5 -1
@@ -945,7 +945,11 @@ static void mmc_sdio_remove(struct mmc_host *host)*/ static int mmc_sdio_alive (struct mmc_host *host) { -return mmc_select_card (host->card); +if (!mmc_host_is_spi (host)) +return mmc_select_card (host->card); +else +return mmc_io_rw_direct (host->card,0 ,0 ,SDIO_CCCR_CCCR ,0 , +NULL ); }/*
drivers/mtd/nand/raw/fsmc_nand.c +5 -1
@@ -876,10 +876,14 @@ static int fsmc_nand_probe_config_dt(struct platform_device *pdev,if (!of_property_read_u32 (np,"bank-width" , &val)) {if (val ==2 ) { nand->options |=NAND_BUSWIDTH_16 ; - }else if (val !=1 ) { + }else if (val ==1 ) { + nand->options |=NAND_BUSWIDTH_AUTO ; + }else {dev_err (&pdev->dev,"invalid bank-width %u\n" , val);return -EINVAL ; } + }else { + nand->options |=NAND_BUSWIDTH_AUTO ; }if (of_property_read_bool (np,"nand-skip-bbtscan" ))
drivers/net/ethernet/freescale/fsl_pq_mdio.c +2 -0
@@ -483,10 +483,12 @@ static int fsl_pq_mdio_probe(struct platform_device *pdev)"missing 'reg' property in node %pOF\n" , tbi); err = -EBUSY ; +of_node_put (tbi); goto error; }set_tbipa (*prop, pdev, data->get_tbipa, priv->map, &res); +of_node_put (tbi); } }
drivers/net/ethernet/mellanox/mlx4/en_netdev.c +1 -1
@@ -1177,9 +1177,9 @@ static void mlx4_en_do_uc_filter(struct mlx4_en_priv *priv,mlx4_unregister_mac (mdev->dev, priv->port, mac);hlist_del_rcu (&entry->hlist); -kfree_rcu (entry, rcu);en_dbg (DRV , priv,"Removed MAC %pM on port:%d\n" , entry->mac, priv->port); +kfree_rcu (entry, rcu); ++removed; } }
drivers/net/wireless/ath/ath11k/core.c +1 -5
@@ -1763,14 +1763,10 @@ static int ath11k_core_reconfigure_on_crash(struct ath11k_base *ab)mutex_unlock (&ab->core_lock);ath11k_dp_free (ab); -ath11k_hal_srng_deinit (ab); +ath11k_hal_srng_clear (ab); ab->free_vdev_map = (1LL << (ab->num_radios *TARGET_NUM_VDEVS (ab))) -1 ; - ret =ath11k_hal_srng_init (ab); -if (ret) -return ret; -clear_bit (ATH11K_FLAG_CRASH_FLUSH , &ab->dev_flags); ret =ath11k_core_qmi_firmware_ready (ab);
drivers/net/wireless/ath/ath11k/hal.c +16 -0
@@ -1356,6 +1356,22 @@ void ath11k_hal_srng_deinit(struct ath11k_base *ab) }EXPORT_SYMBOL (ath11k_hal_srng_deinit); +void ath11k_hal_srng_clear (struct ath11k_base *ab) +{ +/* No need to memset rdp and wrp memory since each individual +* segment would get cleared in ath11k_hal_srng_src_hw_init() +* and ath11k_hal_srng_dst_hw_init(). +*/ +memset (ab->hal.srng_list,0 , +sizeof (ab->hal.srng_list)); +memset (ab->hal.shadow_reg_addr,0 , +sizeof (ab->hal.shadow_reg_addr));
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7921/usb.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pci-keystone.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-tegra194.c +18 -4
Lines of this file are not shown. View the raw message.
drivers/pci/controller/pcie-rcar-host.c +15 -25
Lines of this file are not shown. View the raw message.
drivers/pci/endpoint/functions/pci-epf-test.c +11 -8
Lines of this file are not shown. View the raw message.
drivers/pinctrl/samsung/pinctrl-samsung.h +0 -4
Lines of this file are not shown. View the raw message.
drivers/power/supply/max77976_charger.c +6 -6
Lines of this file are not shown. View the raw message.
fs/fsopen.c +38 -32
70 lines not on this page · raw message
fs/smb/client/smb1ops.c +60 -2
62 lines not on this page · raw message
include/asm-generic/io.h +66 -32
98 lines not on this page · raw message
kernel/sched/deadline.c +49 -24
73 lines not on this page · raw message
net/bridge/netfilter/nft_reject_bridge.c +1 -2
Lines of this file are not shown. View the raw message.
net/mptcp/pm_netlink.c +51 -1
52 lines not on this page · raw message
security/keys/trusted-keys/trusted_tpm1.c +4 -3
Lines of this file are not shown. View the raw message.
tools/perf/util/arm-spe-decoder/arm-spe-decoder.h +9 -9
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/madv_populate.c +2 -19
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/soft-dirty.c +4 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/vm_util.c +77 -0
77 lines not on this page · raw message
tools/testing/selftests/net/mptcp/mptcp_join.sh +11 -0
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.