Merge tag 'android16-6.12.30_r00' into android16-6.12

This merges the android16-6.12.30_r00 tag into the android16-6.12 branch,
catching it up with the latest LTS releases.

It contains the following commits:

* 398edeaf7e Merge android16-6.12 into android16-6.12-lts
* 360b34f1a9 FROMGIT: mm: page_alloc: tighten up find_suitable_fallback()
* 4e89551038 UPSTREAM: mm/page_alloc: clarify should_claim_block() commentary
* 2505a76e67 UPSTREAM: mm/page_alloc: clarify terminology in migratetype fallback code
* 9407ed7ee3 BACKPORT: mm: page_alloc: group fallback functions together
* fc396aefad UPSTREAM: mm: page_alloc: remove remnants of unlocked migratetype updates
* f87e594933 UPSTREAM: mm/page_alloc: add some detailed comments in can_steal_fallback
* a3db058b64 Merge android16-6.12 into android16-6.12-lts
* 60eb68c4d8 Revert "virtio_ring: add a func argument 'recycle_done' to virtqueue_reset()"
* 81930ac28a Revert "virtio_net: ensure netdev_tx_reset_queue is called on bind xsk for tx"
*   dba4f359fc Merge 6.12.30 into android16-6.12-lts
|\
| * e0e2f78243 Linux 6.12.30
| * 25e07c8403 drm/amdgpu: fix pm notifier handling
| * 8e7583fb85 phy: tegra: xusb: remove a stray unlock
| * 5924b32446 usb: typec: ucsi: displayport: Fix deadlock
| * bca94cc345 drm/tiny: panel-mipi-dbi: Use drm_client_setup_with_fourcc()
| * 5ed066083f drm/panel-mipi-dbi: Run DRM default client setup
| * 25998ed87f drm/fbdev-dma: Support struct drm_driver.fbdev_probe
| * d22496de50 Bluetooth: btnxpuart: Fix kernel panic during FW release
| * 7ca84f6a22 iio: light: opt3001: fix deadlock due to concurrent flag access
| * 58517eae32 accel/ivpu: Fix fw log printing
| * 0923a7d55a accel/ivpu: Refactor functions in ivpu_fw_log.c
| * 1516c55872 accel/ivpu: Reset fw log on cold boot
| * 1c302f64ea accel/ivpu: Rename ivpu_log_level to fw_log_level
| * 74953f93f4 mm/page_alloc: fix race condition in unaccepted memory handling
| * 260ca2e961 drm/xe/gsc: do not flush the GSC worker from the reset path
| * 6b2d1fbd41 CIFS: New mount option for cifs.upcall namespace resolution
| * 23dc14c52d dmaengine: idxd: Refactor remove call with idxd_cleanup() helper
| * 017d4012dc dmaengine: idxd: fix memory leak in error handling path of idxd_pci_probe
| * 868dbce755 dmaengine: idxd: fix memory leak in error handling path of idxd_alloc
| * 21f9f5cd9a dmaengine: idxd: Add missing idxd cleanup to fix memory leak in remove call
| * e0ba67b10d dmaengine: idxd: Add missing cleanups in cleanup internals
| * 80b0260227 dmaengine: idxd: Add missing cleanup for early error out in idxd_setup_internals
| * 56e2f09083 dmaengine: idxd: fix memory leak in error handling path of idxd_setup_groups
| * 4958737c42 dmaengine: idxd: fix memory leak in error handling path of idxd_setup_engines
| * 5fcd392dae dmaengine: idxd: fix memory leak in error handling path of idxd_setup_wqs
| * 6b5d770e45 dmaengine: ti: k3-udma: Use cap_mask directly from dma_device structure instead of a local copy
| * 26e63b2fe3 dmaengine: ti: k3-udma: Add missing locking
| * fe0756daad mm: userfaultfd: correct dirty flags set for both present and swap pte
| * d005c81665 net: qede: Initialize qede_ll_ops with designated initializer
| * 20d6e621be ring-buffer: Fix persistent buffer when commit page is the reader page
| * 2b81e76db3 wifi: mt76: disable napi on driver removal
| * ec5d9a750e tpm: Mask TPM RC in tpm2_start_auth_session()
| * cac03fecbc spi: tegra114: Use value to check for invalid delays
| * d0df124437 smb: client: fix memory leak during error handling for POSIX mkdir
| * bffc3038a2 scsi: sd_zbc: block: Respect bio vector limits for REPORT ZONES buffer
| * c450f648d0 phy: renesas: rcar-gen3-usb2: Set timing registers only once
| * c78a5693bd phy: renesas: rcar-gen3-usb2: Fix role detection on unbind/bind
| * ed0e7d31d0 phy: Fix error handling in tegra_xusb_port_init
| * 1db527f0cb phy: tegra: xusb: Use a bitmask for UTMI pad power state tracking
| * ce14aa00dd tracing: samples: Initialize trace_array_printk() with the correct function
| * 589c9e66bd ftrace: Fix preemption accounting for stacktrace filter command
| * 7d353da580 ftrace: Fix preemption accounting for stacktrace trigger command
| * 511ceee899 kbuild: Disable -Wdefault-const-init-unsafe
| * 899e014e68 Drivers: hv: vmbus: Remove vmbus_sendpacket_pagebuffer()
| * 4400b05ffa Drivers: hv: Allow vmbus_sendpacket_mpb_desc() to create multiple ranges
| * 02a68f11ba arm64: dts: rockchip: Remove overdrive-mode OPPs from RK3588J SoC dtsi
| * 7f2e784f27 arm64: dts: amlogic: dreambox: fix missing clkc_audio node
| * b1d6694b39 hv_netvsc: Remove rmsg_pgcnt
| * 7a508c604c hv_netvsc: Preserve contiguous PFN grouping in the page buffer array
| * 24f05522c1 hv_netvsc: Use vmbus_sendpacket_mpb_desc() to send VMBus messages
| * fe1bebd0ed dma-buf: insert memory barrier before updating num_fences
| * 93152dac0b ALSA: usb-audio: Add sample rate quirk for Microdia JP001 USB Camera
| * c88f4ff535 ALSA: usb-audio: Add sample rate quirk for Audioengine D1
| * f8302100f4 ALSA: es1968: Add error handling for snd_pcm_hw_constraint_pow2()
| * 7f8d77f654 ACPI: PPTT: Fix processor subtable walk
| * a348ff3f5b gpio: pca953x: fix IRQ storm on system wake up
| * f0c0b8e6bc MAINTAINERS: Update Alexey Makhalov's email address
| * 64a33088ad drm/amd/display: Avoid flooding unnecessary info messages
| * 2d125a1f0d drm/amd/display: Correct the reply value when AUX write incomplete
| * 8d71c3231b drm/amdgpu: csa unmap use uninterruptible lock
| * e54f20c5a1 drm/amdgpu: fix incorrect MALL size for GFX1151
| * c75f3f9cbf Revert "drm/amd/display: Hardware cursor changes color when switched to software cursor"
| * 3ee6399854 btrfs: add back warning for mount option commit values exceeding 300
| * bf804f34ad btrfs: fix folio leak in submit_one_async_extent()
| * 6ea6cea17f btrfs: fix discard worker infinite loop after disabling discard
| * 12f69c4e30 LoongArch: uprobes: Remove redundant code about resume_era
| * 88650dde2e LoongArch: uprobes: Remove user_{en,dis}able_single_step()
| * c92b99c4c0 LoongArch: Fix MAX_REG_OFFSET calculation
| * 2135336574 LoongArch: Save and restore CSR.CNTC for hibernation
| * 66a309b4d5 LoongArch: Move __arch_cpu_idle() to .cpuidle.text section
| * 111e55db3c LoongArch: Prevent cond_resched() occurring within kernel-fpu
| * f8544be7e8 HID: bpf: abort dispatch if device destroyed
| * d32c1880b3 udf: Make sure i_lenExtents is uptodate on inode eviction
| * 0102989af4 sched_ext: bpf_iter_scx_dsq_new() should always initialize iterator
| * a0c2478218 dmaengine: Revert "dmaengine: dmatest: Fix dmatest waiting less when interrupted"
| * 1533677267 NFSv4/pnfs: Reset the layout state after a layoutreturn
| * 6dbf38159d tsnep: fix timestamping with a stacked DSA driver
| * a11b8c0be6 net/tls: fix kernel panic when alloc_page failed
| * abc43c1ffd mlxsw: spectrum_router: Fix use-after-free when deleting GRE net devices
| * 07c737d9ab wifi: mac80211: Set n_channels after allocating struct cfg80211_scan_request
| * 7db81acae0 octeontx2-pf: Do not reallocate all ntuple filters
| * 1977cec5be octeontx2-af: Fix CGX Receive counters
| * 256adb2da5 net: ethernet: mtk_eth_soc: fix typo for declaration MT7988 ESW capability
| * bf85a27605 octeontx2-pf: macsec: Fix incorrect max transmit size in TX secy
| * 38a2fdd3e9 netlink: specs: tc: all actions are indexed arrays
| * be64ab9c17 netlink: specs: tc: fix a couple of attribute names
| * 3f16340071 drm/xe: Save CTX_TIMESTAMP mmio value instead of LRC value
| * d2a9a92bb4 regulator: max20086: fix invalid memory access
| * 5451b834b3 qlcnic: fix memory leak in qlcnic_sriov_channel_cfg_cmd()
| * 1f80e6ff02 net/mlx5e: Disable MACsec offload for uplink representor profile
| * 462e224381 vsock/test: Fix occasional failure in SIOCOUTQ tests
| * 225e29465a net: dsa: b53: prevent standalone from trying to forward to other ports
| * bd99372178 ALSA: sh: SND_AICA should depend on SH_DMA_API
| * a3c147040b nvme-pci: acquire cq_poll_lock in nvme_poll_irqdisable
| * ddfa034da3 nvme-pci: make nvme_pci_npages_prp() __always_inline
| * 0251e13f3f net: dsa: sja1105: discard incoming frames in BR_STATE_LISTENING
| * 3e64d35475 net: cadence: macb: Fix a possible deadlock in macb_halt_tx.
| * 5ee626e473 ALSA: ump: Fix a typo of snd_ump_stream_msg_device_info
| * caac5761a6 ALSA: seq: Fix delivery of UMP events to group ports
| * 8ee6ec20dd net: mctp: Ensure keys maintain only one ref to corresponding dev
| * d308312acd tests/ncdevmem: Fix double-free of queue array
| * 38c937dbd4 selftests: ncdevmem: Switch to AF_INET6
| * 04db681f3c selftests: ncdevmem: Make client_ip optional
| * 0738648a7d selftests: ncdevmem: Unify error handling
| * eb15f4f380 selftests: ncdevmem: Separate out dmabuf provider
| * f3380d119f selftests: ncdevmem: Redirect all non-payload output to stderr
| * d4d1561d17 net: mctp: Don't access ifa_index when missing
| * 9e5efcff49 mctp: no longer rely on net->dev_index_head[]
| * 37050be74e tools/net/ynl: ethtool: fix crash when Hardware Clock info is missing
| * d1365ca80b net_sched: Flush gso_skb list too during ->change()
| * 28826a89fd Bluetooth: MGMT: Fix MGMT_OP_ADD_DEVICE invalid device flags
| * 10c7f1c647 RDMA/core: Fix "KASAN: slab-use-after-free Read in ib_register_device" problem
| * de7acdb462 spi: loopback-test: Do not split 1024-byte hexdumps
| * da824f1271 nfs: handle failure of nfs_get_lock_context in unlock path
| * 94e7272b63 HID: uclogic: Add NULL check in uclogic_input_configured()
| * a699995370 HID: thrustmaster: fix memory leak in thrustmaster_interrupts()
| * 336edd6b0f RDMA/rxe: Fix slab-use-after-free Read in rxe_queue_cleanup bug
| * c43b0a185f virtio_net: ensure netdev_tx_reset_queue is called on bind xsk for tx
| * 343a77562c virtio_ring: add a func argument 'recycle_done' to virtqueue_reset()
| * 1cf8bdd596 iio: chemical: sps30: use aligned_s64 for timestamp
| * 7b16d3c361 iio: adc: ad7768-1: Fix insufficient alignment of timestamp.
| * b9e0997f2e xhci: dbc: Avoid event polling busyloop if pending rx transfers are inactive.
| * 651eaaae6b xhci: dbc: Improve performance by removing delay in transfer event polling.
| * 5d9d62323e Revert "drm/amd: Stop evicting resources on APUs in suspend"
| * 4d45a5f1e2 drm/amd: Add Suspend/Hibernate notification callback support
| * ea0153e065 iio: pressure: mprls0025pa: use aligned_s64 for timestamp
| * 039681d656 iio: chemical: pms7003: use aligned_s64 for timestamp
| * b37c112ef2 iio: adc: ad7266: Fix potential timestamp alignment issue.
| * a065f78eba KVM: x86/mmu: Prevent installing hugepages when mem attributes are changing
| * 3d962ec543 KVM: Add member to struct kvm_gfn_range to indicate private/shared
| * 54401e29ab uio_hv_generic: Fix sysfs creation path for ring buffer
| * 7bf64cd0cc tpm: tis: Double the timeout B to 4s
| * 517c11fe4f tracing: probes: Fix a possible race in trace_probe_log APIs
| * f0d70d8dca cgroup/cpuset: Extend kthread_is_per_cpu() check to all PF_NO_SETAFFINITY tasks
| * 220444d209 arm64: dts: imx8mp-var-som: Fix LDO5 shutdown causing SD card timeout
| * 48fff1267e platform/x86: asus-wmi: Fix wlan_ctrl_by_user detection
| * 03e4ee3a9a platform/x86/amd/pmc: Declare quirk_spurious_8042 for MECHREVO Wujie 14XA (GX4HRXL)
| * bc4c54cbb4 binfmt_elf: Move brk for static PIE even if ASLR disabled
| * 97dd8c19f2 riscv: dts: sophgo: fix DMA data-width configuration for CV18xx
| * a0bde67526 drivers/platform/x86/amd: pmf: Check for invalid Smart PC Policies
| * 5022d7a392 drivers/platform/x86/amd: pmf: Check for invalid sideloaded Smart PC Policies
| * 10d1496f85 fs/xattr.c: fix simple_xattr_list to always include security.* xattrs
| * 61f489ca99 arm64: dts: rockchip: Assign RT5616 MCLK rate on rk3588-friendlyelec-cm3588
* | bdd44337d5 UPSTREAM: loop: don't require ->write_iter for writable files in loop_configure
* | 651f2e4fca Merge 6.12.29 into android16-6.12-lts
|\|
| * 5be5dbf91e Linux 6.12.29
| * 7e78061be7 x86/its: FineIBT-paranoid vs ITS
| * bb85c3abbf x86/its: Fix build errors when CONFIG_MODULES=n
| * 2a6194e124 selftest/x86/bugs: Add selftests for ITS
| * 88a817e60d x86/its: Use dynamic thunks for indirect branches
| * 15335117c5 x86/ibt: Keep IBT disabled during alternative patching
| * bd57853b86 x86/its: Align RETs in BHB clear sequence to avoid thunking
| * 9f132c0397 x86/its: Add support for RSB stuffing mitigation
| * 4dc1902fde x86/its: Add "vmexit" option to skip mitigation on some CPUs
| * 68d59e9ba3 x86/its: Enable Indirect Target Selection mitigation
| * 5100004723 x86/its: Add support for ITS-safe return thunk
| * 16a7d5b7a4 x86/its: Add support for ITS-safe indirect thunk
| * a6f2a436e9 x86/its: Enumerate Indirect Target Selection (ITS) bug
| * 76f847655b Documentation: x86/bugs/its: Add ITS documentation
| * f23d4f4aeb x86/speculation: Remove the extra #ifdef around CALL_NOSPEC
| * 9ebe6f1bd2 x86/speculation: Add a conditional CS prefix to CALL_NOSPEC
| * d2498bbb54 x86/speculation: Simplify and make CALL_NOSPEC consistent
| * 9d8295dcf2 x86/bhi: Do not set BHI_DIS_S in 32-bit mode
| * b86349f326 x86/bpf: Add IBHF call at end of classic BPF
| * 87a12b9b38 x86/bpf: Call branch history clearing sequence on exit
| * 2176530849 arm64: proton-pack: Add new CPUs 'k' values for branch mitigation
| * e5f5100f1c arm64: bpf: Only mitigate cBPF programs loaded by unprivileged users
| * 38c345fd54 arm64: bpf: Add BHB mitigation to the epilogue for cBPF programs
| * f2aebb8ec6 arm64: proton-pack: Expose whether the branchy loop k value
| * ec5bca57af arm64: proton-pack: Expose whether the platform is mitigated by firmware
| * 2a3915e861 arm64: insn: Add support for encoding DSB
| * 86b37810fa sched/eevdf: Fix se->slice being set to U64_MAX and resulting crash
| * 16bae58f73 mm: page_alloc: speed up fallbacks in rmqueue_bulk()
| * 564d25b1a6 mm: page_alloc: don't steal single pages from biggest buddy
| * 12abefb8c8 Bluetooth: btmtk: Remove the resetting step before downloading the fw
| * c7a9df4ef4 Bluetooth: btmtk: Remove resetting mt7921 before downloading the fw
| * 2482f7705b io_uring: always arm linked timeouts prior to issue
| * 6b0383a21d rust: clean Rust 1.88.0's `clippy::uninlined_format_args` lint
| * 1c25723831 rust: allow Rust 1.87.0's `clippy::ptr_eq` lint
| * 6aac2c5476 Revert "um: work around sched_yield not yielding in time-travel mode"
| * cd010271a9 do_umount(): add missing barrier before refcount checks in sync case
| * 3edac2949e io_uring/sqpoll: Increase task_work submission batch size
| * 944af45bb7 drm/xe/tests/mocs: Hold XE_FORCEWAKE_ALL for LNCF regs
| * 95a75ed2b0 drm/xe/tests/mocs: Update xe_force_wake_get() return handling
| * d6b013b44e riscv: misaligned: enable IRQs while handling misaligned accesses
| * 45a0697cee riscv: misaligned: factorize trap handling
| * 19fa2a4830 nvme: unblock ctrl state transition for firmware update
| * 7798edcc5b drm/panel: simple: Update timings for AUO G101EVN010
| * 184b147b9f loop: Add sanity check for read/write_iter
* | d2f3f294cf Merge a781ffe410 ("loop: factor out a loop_assign_backing_file helper") into android16-6.12-lts
|\|
| * a781ffe410 loop: factor out a loop_assign_backing_file helper
* | f6f856e093 Merge 5e1470b276 ("loop: refactor queue limits updates") into android16-6.12-lts
|\|
| * 5e1470b276 loop: refactor queue limits updates
* | b9315b0505 Merge 0558ce095b ("loop: Fix ABBA locking race") into android16-6.12-lts
|\|
| * 0558ce095b loop: Fix ABBA locking race
* | abbbbed768 Merge 722f6dece7 ("loop: Simplify discard granularity calc") into android16-6.12-lts
|\|
| * 722f6dece7 loop: Simplify discard granularity calc
* | f3c6606676 Merge 02a77b3020 ("loop: Use bdev limit helpers for configuring discard") into android16-6.12-lts
|\|
| * 02a77b3020 loop: Use bdev limit helpers for configuring discard
* | 6a0454f040 Merge 126be03494 ("riscv: misaligned: Add handling for ZCB instructions") into android16-6.12-lts
|\|
| * 126be03494 riscv: misaligned: Add handling for ZCB instructions
| * eaa30e1d0e MIPS: Fix MAX_REG_OFFSET
| * fb98c9e584 iio: adc: dln2: Use aligned_s64 for timestamp
| * ef5d6a4096 iio: accel: adxl355: Make timestamp 64-bit aligned using aligned_s64
| * afe8849597 types: Complement the aligned types with signed 64-bit one
| * 245e319019 iio: temp: maxim-thermocouple: Fix potential lack of DMA safe buffer.
| * e9bf391a9b iio: accel: adxl367: fix setting odr for activity time update
| * a2ad060643 usb: usbtmc: Fix erroneous generic_read ioctl return
| * 2073913776 usb: usbtmc: Fix erroneous wait_srq ioctl return
| * 29e1773746 usb: usbtmc: Fix erroneous get_stb ioctl error returns
| * 9d90c283ea USB: usbtmc: use interruptible sleep in usbtmc_read
| * 5ad298d6d4 usb: typec: ucsi: displayport: Fix NULL pointer access
| * 3366a19948 usb: typec: tcpm: delay SNK_TRY_WAIT_DEBOUNCE to SRC_TRYWAIT transition
| * 1c001b6dde usb: misc: onboard_usb_dev: fix support for Cypress HX3 hubs
| * 08eca452a6 usb: host: tegra: Prevent host controller crash when OTG port is used
| * d1c8fa4c6e usb: gadget: Use get_status callback to set remote wakeup capability
| * 43ae91f561 usb: gadget: tegra-xudc: ACK ST_RC after clearing CTRL_RUN
| * 75f23e49ad usb: gadget: f_ecm: Add get_status callback
| * fae7f44601 usb: cdnsp: fix L1 resume issue for RTL_REVISION_NEW_LPM version
| * 88d92cffc9 usb: cdnsp: Fix issue with resuming from L1
| * f6fdbe4d54 usb: dwc3: gadget: Make gadget_wakeup asynchronous
* | 23a88a6ad8 Merge d133023c9a ("ocfs2: stop quota recovery before disabling quotas") into android16-6.12-lts
|\|
| * d133023c9a ocfs2: stop quota recovery before disabling quotas
| * fe3d752a7a ocfs2: implement handshaking with ocfs2 recovery thread
| * f96041a959 ocfs2: switch osb->disable_recovery to enum
| * 1b3b915852 ocfs2: fix the issue with discontiguous allocation in the global_bitmap
| * b76eaef983 x86/microcode: Consolidate the loader enablement checking
| * d63851049f module: ensure that kobject_put() is safe for module type kobjects
| * d66a22f6a4 memblock: Accept allocated memory before use in memblock_double_array()
| * ed45af6841 clocksource/i8253: Use raw_spinlock_irqsave() in clockevent_i8253_disable()
| * abbc99e898 arm64: cpufeature: Move arm64_use_ng_mappings to the .data section to prevent wrong idmap generation
| * 55701e992b accel/ivpu: Increase state dump msg timeout
| * 8e9c8a0393 xenbus: Use kref to track req lifetime
| * 54dd5d6af7 xen: swiotlb: Use swiotlb bouncing if kmalloc allocation demands it
| * 571dcf3d27 smb: client: Avoid race in open_cached_dir with lease breaks
| * a9f28dbfdd usb: uhci-platform: Make the clock really optional
| * 92d0a28afb drm/amdgpu/hdp7: use memcfg register to post the write for HDP flush
| * df04418262 drm/amdgpu/hdp6: use memcfg register to post the write for HDP flush
| * 0a776c3054 drm/amdgpu/hdp5: use memcfg register to post the write for HDP flush
| * b6f0f3e6c7 drm/amdgpu/hdp5.2: use memcfg register to post the write for HDP flush
| * 4872de413e drm/amdgpu/hdp4: use memcfg register to post the write for HDP flush
| * a13f9ac569 drm/amd/display: Copy AUX read reply data whenever length > 0
| * 2d63e66f7b drm/amd/display: Fix wrong handling for AUX_DEFER case
| * 0e225bdba3 drm/amd/display: Remove incorrect checking in dmub aux handler
| * fc7ac4ad1d drm/amd/display: Fix the checking condition in dmub aux handling
| * 468034a06a drm/amd/display: more liberal vmin/vmax update for freesync
| * d8c4afe783 drm/amd/display: Fix invalid context error in dml helper
| * 19323f414b drm/amdgpu/vcn: using separate VCN1_AON_SOC offset
| * 206569cbf7 drm/xe: Add page queue multiplier
| * a5f162727b drm/v3d: Add job to pending list if the reset was skipped
| * dadf911610 iio: imu: st_lsm6dsx: fix possible lockup in st_lsm6dsx_read_tagged_fifo
| * a1cad8a3bc iio: imu: st_lsm6dsx: fix possible lockup in st_lsm6dsx_read_fifo
| * 82f6334a0b iio: imu: inv_mpu6050: align buffer for timestamp
| * c4dfff960b iio: adis16201: Correct inclinometer channel resolution
| * 4cbd37a12a iio: adc: rockchip: Fix clock initialization sequence
| * c9f8413b78 iio: adc: ad7606: fix serial register access
| * 7f37e31483 io_uring: ensure deferred completions are flushed for multishot
| * 4d41b9e4c9 drm/amd/display: Shift DMUB AUX reply command if necessary
| * d362b21fef KVM: SVM: Forcibly leave SMM mode on SHUTDOWN interception
| * 5156f7c484 selftests/mm: fix a build failure on powerpc
| * b21ec0726a selftests/mm: compaction_test: support platform with huge mount of memory
| * b543a5a73b mm/userfaultfd: fix uninitialized output field for -EAGAIN race
| * 6166c3cf40 mm/huge_memory: fix dereferencing invalid pmd migration entry
* | 8c70afee5a Revert "mm: vmalloc: support more granular vrealloc() sizing"
* | f6204ce2cd Merge 2910019b04 ("mm: vmalloc: support more granular vrealloc() sizing") into android16-6.12-lts
|\|
| * 2910019b04 mm: vmalloc: support more granular vrealloc() sizing
* | 9649374a04 Merge efb5973459 ("mm: fix folio_pte_batch() on XEN PV") into android16-6.12-lts
|\|
| * efb5973459 mm: fix folio_pte_batch() on XEN PV
| * d87392094f x86/mm: Eliminate window where TLB flushes may be inadvertently skipped
| * e8b1d65f0a staging: axis-fifo: Correct handling of tx_fifo_depth for size validation
| * 38a8982ca0 staging: axis-fifo: Remove hardware resets for user errors
| * 06753f4933 staging: bcm2835-camera: Initialise dev in v4l2_dev
| * 215e42e2f1 staging: iio: adc: ad7816: Correct conditional logic for store mode
| * 5bb112f160 rust: clean Rust 1.88.0's warning about `clippy::disallowed_macros` configuration
| * a85d8aed0c objtool/rust: add one more `noreturn` Rust function for Rust 1.87.0
| * 376b73292a rust: clean Rust 1.88.0's `unnecessary_transmutes` lint
| * 2943297acf Input: synaptics - enable InterTouch on TUXEDO InfinityBook Pro 14 v5
| * a82f4f5563 Input: synaptics - enable SMBus for HP Elitebook 850 G1
| * bbb5081015 Input: synaptics - enable InterTouch on Dell Precision M3800
| * bc4556bba1 Input: synaptics - enable InterTouch on Dynabook Portege X30L-G
| * 9d9074af50 Input: synaptics - enable InterTouch on Dynabook Portege X30-D
| * 38bb0170d6 Input: xpad - fix two controller table values
| * bf239d3835 Input: xpad - add support for 8BitDo Ultimate 2 Wireless Controller
| * 302a0cd0bb Input: xpad - fix Share button on Xbox One controllers
| * 619c05fb17 Input: mtk-pmic-keys - fix possible null pointer dereference
| * f36230dacd Input: cyttsp5 - fix power control issue on wakeup
| * ee25256789 Input: cyttsp5 - ensure minimum reset pulse width
* | 75d972f987 ANDROID: GKI: add netdev_stat_queue_sum to the virtual symbol list
* | 388a174371 Merge de02eb727f ("virtio-net: fix total qstat values") into android16-6.12-lts
|\|
| * de02eb727f virtio-net: fix total qstat values
* | ccbcf35213 Merge bb8f86f40e ("net: export a helper for adding up queue stats") into android16-6.12-lts
|\|
| * bb8f86f40e net: export a helper for adding up queue stats
| * 7eea40818e fbnic: Do not allow mailbox to toggle to ready outside fbnic_mbx_poll_tx_ready
| * 650e283b4c fbnic: Pull fbnic_fw_xmit_cap_msg use out of interrupt context
| * 9d9010879d fbnic: Improve responsiveness of fbnic_mbx_poll_tx_ready
| * 612a05c9f2 fbnic: Actually flush_tx instead of stalling out
| * fea860a2a6 fbnic: Gate AXI read/write enabling on FW mailbox
| * cd25fc4c56 fbnic: Fix initialization of mailbox descriptor rings
| * ce97489864 net: dsa: b53: do not set learning and unicast/multicast on up
| * e5b40f4a2b net: dsa: b53: fix learning on VLAN unaware bridges
| * ce1a289bf2 net: dsa: b53: fix toggling vlan_filtering
| * 2407c98a1b net: dsa: b53: do not program vlans when vlan filtering is off
| * 7dac025829 net: dsa: b53: do not allow to configure VLAN 0
| * 11c427a869 net: dsa: b53: always rejoin default untagged VLAN on bridge leave
| * 90b65bc357 net: dsa: b53: fix VLAN ID for untagged vlan on bridge leave
| * 42ab1f2b6f net: dsa: b53: fix flushing old pvid VLAN on pvid change
| * 4ed7e60313 net: dsa: b53: fix clearing PVID of a port
| * 46de8f2aa3 net: dsa: b53: keep CPU port always tagged again
| * 11dbd4e0a8 net: dsa: b53: allow leaky reserved multicast
| * b37e54259c bpf: Scrub packet on bpf_redirect_peer
| * e2ab67672b netfilter: ipset: fix region locking in hash types
| * 0160ac84fb ipvs: fix uninit-value for saddr in do_output_route4
| * 64385c0d02 erofs: ensure the extra temporary copy is valid for shortened bvecs
* | bca3c97937 Merge 574686c807 ("ice: use DSN instead of PCI BDF for ice_adapter index") into android16-6.12-lts
|\|
| * 574686c807 ice: use DSN instead of PCI BDF for ice_adapter index
| * 62946989e6 ice: Initial support for E825C hardware in ice_adapter
| * 4555c4a13a wifi: mac80211: fix the type of status_code for negotiated TID to Link Mapping
| * c33927f385 can: gw: fix RCU/BH usage in cgw_create_job()
| * 8f24cc6a72 can: mcp251xfd: fix TDC setting for low data bit rates
| * 2ecce25ea2 can: m_can: m_can_class_allocate_dev(): initialize spin lock on device probe
| * 79a6945e3d net: ethernet: mtk_eth_soc: do not reset PSE when setting FE
| * aac9d5fa53 net: ethernet: mtk_eth_soc: reset all TX queues on DMA free
| * 35be4c0cdf gre: Fix again IPv6 link-local address generation.
| * 94a6f6c204 virtio-net: free xsk_buffs on error in virtnet_xsk_pool_enable()
| * edd53ee790 virtio_net: xsk: bind/unbind xsk for tx
| * 98cd7ed927 sch_htb: make htb_deactivate() idempotent
| * 5c3b8f0575 s390/entry: Fix last breaking event handling in case of stack corruption
| * 2148d34371 ksmbd: fix memory leak in parse_lease_state()
| * ec334aaab7 openvswitch: Fix unsafe attribute parsing in output_userspace()
| * 9e9841e232 ksmbd: Fix UAF in __close_file_table_ids
| * d62ba16563 ksmbd: prevent out-of-bounds stream writes by validating *pos
| * c57301e332 ksmbd: prevent rename with empty string
| * 1b7b1cbc6e can: rockchip_canfd: rkcanfd_remove(): fix order of unregistration calls
| * 12ef60f1b9 can: mcp251xfd: mcp251xfd_remove(): fix order of unregistration calls
| * c488f8b53e s390/pci: Fix duplicate pci_dev_put() in disable_slot() when PF has child VFs
| * afa5cdce06 vfio/pci: Align huge faults to order
| * 9423f6da82 wifi: cfg80211: fix out-of-bounds access during multi-link element defragmentation
| * be54b750c3 s390/pci: Fix missing check for zpci_create_device() error return
| * e0a8e3ca07 can: mcan: m_can_class_unregister(): fix order of unregistration calls
| * 14ee85b748 firmware: arm_scmi: Fix timeout checks on polling path
| * fe3da1bfd8 arm64: dts: imx8mm-verdin: Link reg_usdhc2_vqmmc to usdhc2
| * ff7d691921 Revert "btrfs: canonicalize the device path before adding it"
| * 61e0fc3312 fs/erofs/fileio: call erofs_onlinefolio_split() after bio_add_folio()
| * b32411f045 dm: add missing unlock on in dm_keyslot_evict()
* | 26bd1ac1ad Merge android16-6.12 into android16-6.12-lts
* | ad2b007ef4 Revert "cpufreq: Fix setting policy limits when frequency tables are used"
* | 834bfca137 Revert "xsk: Fix race condition in AF_XDP generic RX path"
* | 62cd1edf4d Merge 6.12.28 into android16-6.12-lts
|\|
| * f08cdc6cc9 Linux 6.12.28
| * db62809197 dm: fix copying after src array boundaries
| * dd329f04dd drm/amd/display: Fix slab-use-after-free in hdcp
| * 75096780a4 drm/amd/display: Add scoped mutexes for amdgpu_dm_dhcp
| * e1eea69858 drivers: base: handle module_kobject creation
| * 69113bf740 kernel: globalize lookup_or_create_module_kobject()
| * 3b41b5efae kernel: param: rename locate_module_kobject
| * 7509810606 Revert "drm/meson: vclk: fix calculation of 59.94 fractional rates"
| * e993398cbd arm64: dts: st: Use 128kB size for aliased GIC400 register access on stm32mp25 SoCs
| * aa4ea53554 arm64: dts: st: Adjust interrupt-controller for stm32mp25 SoCs
| * 7ac0df4f35 ARM: dts: opos6ul: add ksz8081 phy properties
| * a3ab5c9443 arm64: dts: imx95: Correct the range of PCIe app-reg region
| * cc67657f63 firmware: arm_ffa: Skip Rx buffer ownership release if not acquired
| * 969d8beaa2 firmware: arm_scmi: Balance device refcount when destroying devices
| * 752600f1ac drm/xe: Ensure fixed_slice_mode gets set after ccs_mode change
| * 0e6325c183 sch_ets: make est_qlen_notify() idempotent
| * 15fa905db2 sch_qfq: make qfq_qlen_notify() idempotent
| * d06476714d sch_hfsc: make hfsc_qlen_notify() idempotent
| * 353add4cad sch_drr: make drr_qlen_notify() idempotent
| * 0a188c0e19 sch_htb: make htb_qlen_notify() idempotent
| * bccc7df3ce accel/ivpu: Add handling of VPU_JSM_STATUS_MVNCI_CONTEXT_VIOLATION_HW
| * 079d2622f8 accel/ivpu: Fix locking order in ivpu_job_submit
| * 3e3062be7d accel/ivpu: Abort all jobs after command queue unregister
| * a39b5b6a6e accel/ivpu: Update VPU FW API headers
| * 1ebbfee889 accel/ivpu: Fix a typo
| * a735c9205d accel/ivpu: Use xa_alloc_cyclic() instead of custom function
| * aaba59961d accel/ivpu: Make DB_ID and JOB_ID allocations incremental
| * f4ae68eae9 net: Fix the devmem sock opts and msgs for parisc
| * 6b6cd38910 bcachefs: Remove incorrect __counted_by annotation
| * dab2a13059 mm, slab: clean up slab->obj_exts always
| * e10ec6e32b blk-mq: create correct map for fallback case
| * 1e15804c04 net: vertexcom: mse102x: Fix RX error handling
| * 2e5b8eb6b4 net: vertexcom: mse102x: Add range check for CMD_RTS
| * 98abf83672 net: vertexcom: mse102x: Fix LEN_MASK
| * 6abbffa736 net: vertexcom: mse102x: Fix possible stuck of SPI interrupt
| * 7f9c3e2213 net: hns3: defer calling ptp_clock_register()
| * 6a6d547a7f net: hns3: fixed debugfs tm_qset size
| * ee2642bbae net: hns3: fix an interrupt residual problem
| * d4cd766731 net: hns3: store rx VLAN tag offload state for VF
| * c8d788f800 octeon_ep: Fix host hang issue during device reboot
| * bcb9d6a222 net: fec: ERR007885 Workaround for conventional TX
| * 189b05f189 net: lan743x: Fix memleak issue when GSO enabled
| * 8a543d825e ptp: ocp: Fix NULL dereference in Adva board SMA sysfs operations
| * c0dba059b1 net: use sock_gen_put() when sk_state is TCP_TIME_WAIT
| * a90146b73c bnxt_en: fix module unload sequence
| * b41a49d543 ASoC: simple-card-utils: Fix pointer check in graph_util_parse_link_direction
| * 9b552c84cd nvmet-tcp: select CONFIG_TLS from CONFIG_NVME_TARGET_TCP_TLS
| * 15ea0b6164 nvme-tcp: select CONFIG_TLS from CONFIG_NVME_TCP_TLS
| * 60331309e7 nvme-tcp: fix premature queue removal and I/O failover
| * 2da8fe5a10 bnxt_en: Fix ethtool -d byte order for 32-bit values
| * 44807af79e bnxt_en: Fix out-of-bound memcpy() during ethtool -w
| * 454a4450b0 bnxt_en: Fix coredump logic to free allocated buffer
| * 626af9b8e8 bnxt_en: call pci_alloc_irq_vectors() after bnxt_reserve_rings()
| * aa15f389fc bnxt_en: Add missing skb_mark_for_recycle() in bnxt_rx_vlan()
| * 808a7304b5 bnxt_en: Fix ethtool selftest output in one of the failure cases
| * e039b00ddb bnxt_en: Fix error handling path in bnxt_init_chip()
| * 9bc347854d ALSA: hda/realtek: Fix built-mic regression on other ASUS models
| * 6effe1c0fa net: ipv6: fix UDPv6 GSO segmentation with NAT
| * dcb5a2b961 net: dsa: felix: fix broken taprio gate states after clock jump
| * 317013d1ad net: ethernet: mtk_eth_soc: fix SER panic with 4GB+ RAM
| * 56b958a5b5 igc: fix lock order in igc_ptp_reset
| * df1ff481fa idpf: protect shutdown from reset
| * bf0ec3aac1 idpf: fix potential memory leak on kcalloc() failure
| * d206ea7681 net: mdio: mux-meson-gxl: set reversed bit when using internal phy
| * e9b65c9561 net: dlink: Correct endianness handling of led_mode
| * 7fc2c784dd drm/mipi-dbi: Fix blanking for non-16 bit formats
| * d0d7c93b4b drm/tests: shmem: Fix memleak
| * 5ad0b1b554 nvme-pci: fix queue unquiesce check on slot_reset
| * 226beac560 ALSA: ump: Fix buffer overflow at UMP SysEx message conversion
| * 6b1355860d scsi: ufs: core: Remove redundant query_complete trace
| * d14f88bd0f idpf: fix offloads support for encapsulated packets
| * 073791e9cf ice: Check VF VSI Pointer Value in ice_vc_add_fdir_fltr()
| * 53bc0b5517 net_sched: qfq: Fix double list add in class with netem as child qdisc
| * 1f01e9f961 net_sched: ets: Fix double list add in class with netem as child qdisc
| * 2e7093c7a8 net_sched: hfsc: Fix a UAF vulnerability in class with netem as child qdisc
| * 26e75716b9 net_sched: drr: Fix double list add in class with netem as child qdisc
| * c649b9653e pds_core: remove write-after-free of client_id
| * f41e27b746 pds_core: specify auxiliary_device to be created
| * 1d69ab8503 pds_core: make pdsc_auxbus_dev_del() void
| * aea3ca60fa net: ethernet: mtk_eth_soc: sync mtk_clks_source_name array
| * 5257a0f1ec net: ethernet: mtk-star-emac: rearm interrupts in rx_poll only when advised
| * 8d40bf73fa net: ethernet: mtk-star-emac: fix spinlock recursion issues on rx/tx poll
| * 950832771e rtase: Modify the condition used to detect overflow in rtase_calc_time_mitigation
| * 4911412efd bnxt_en: improve TX timestamping FIFO configuration
| * ddc1e64c29 octeon_ep_vf: Resolve netdevice usage count issue
| * 6e6325d487 net: mscc: ocelot: delete PVID VLAN when readding it as non-PVID
| * 432572d536 Bluetooth: L2CAP: copy RX timestamp to new fragments
| * cfe006c8a6 Bluetooth: btintel_pcie: Add additional to checks to clear TX/RX paths
| * b70b41591e Bluetooth: btusb: avoid NULL pointer dereference in skb_dequeue()
| * c7bd5c9ba1 Bluetooth: btintel_pcie: Avoid redundant buffer allocation
| * 620810ac1f Bluetooth: hci_conn: Fix not setting timeout for BIG Create Sync
| * eb8b860e87 Bluetooth: hci_conn: Fix not setting conn_timeout for Broadcast Receiver
| * fe81c26d2d Bluetooth: hci_conn: Remove alloc from critical section
| * 3104b7d559 ASoC: amd: acp: Fix NULL pointer deref in acp_i2s_set_tdm_slot
| * 92d812df3b accel/ivpu: Correct DCT interrupt handling
| * 174161d6f0 net/mlx5: E-switch, Fix error handling for enabling roce
| * 488ab6d41f net/mlx5e: Fix lock order in mlx5e_tx_reporter_ptpsq_unhealthy_recover
| * c022830c2a net/mlx5e: TC, Continue the attr process even if encap entry is invalid
| * 51599d07c7 net/mlx5: E-Switch, Initialize MAC Address for Default GID
| * b67fee5837 net/mlx5e: Use custom tunnel header for vxlan gbp
| * 65d3c57061 xsk: Fix race condition in AF_XDP generic RX path
| * 5cb9e07f84 vxlan: vnifilter: Fix unlocked deletion of default FDB entry
| * ec1643d1ba powerpc/boot: Fix dash warning
| * 791a2d9e87 wifi: plfxlc: Remove erroneous assert in plfxlc_mac_release
| * 50d1982dba wifi: iwlwifi: fix the check for the SCRATCH register upon resume
| * 33bf992088 wifi: iwlwifi: don't warn if the NIC is gone in resume
| * bb0d602899 drm/i915/pxp: fix undefined reference to `intel_pxp_gsccs_is_ready_for_sessions'
| * f7dc50604c ALSA: hda/realtek - Enable speaker for HP platform
| * 7867992c3e ASoC: Intel: sof_sdw: Add NULL check in asoc_sdw_rt_dmic_rtd_init()
| * ae462ead89 powerpc/boot: Check for ld-option support
| * fcf36f6ed4 pinctrl: imx: Return NULL if no group is matched and found
| * 7f5476d80f book3s64/radix : Align section vmemmap start address to PAGE_SIZE
| * 29a4a29112 ASoC: soc-pcm: Fix hw_params() and DAPM widget sequence
| * 2029a38b6c ASoC: cs-amp-lib-test: Don't select SND_SOC_CS_AMP_LIB
| * 220395054c ASoC: soc-core: Stop using of_property_read_bool() for non-boolean properties
| * b93e1cad05 drm/amd/display: Default IPS to RCG_IN_ACTIVE_IPS2_IN_OFF
| * 1f27a3e93b tracing: Fix oob write in trace_seq_to_buffer()
| * 962d88304c cpufreq: Fix setting policy limits when frequency tables are used
| * 573b047229 cpufreq: Avoid using inconsistent policy->min and policy->max
| * 553d723e1a smb: client: fix zero length for mkdir POSIX create context
| * d5ec1d7950 ksmbd: fix use-after-free in session logoff
| * e18c616718 ksmbd: fix use-after-free in kerberos authentication
| * 8fb3b6c85b ksmbd: fix use-after-free in ksmbd_session_rpc_open
| * d211757918 platform/x86/intel-uncore-freq: Fix missing uncore sysfs during CPU hotplug
| * 2fcb183768 platform/x86/amd: pmc: Require at least 2.5 seconds between HW sleep cycles
| * 2e303d0107 iommu: Fix two issues in iommu_copy_struct_from_user()
| * 677714d779 iommu/vt-d: Apply quirk_iommu_igfx for 8086:0044 (QM57/QS57)
| * ccc50fcba3 iommu/arm-smmu-v3: Fix pgsize_bit for sva domains
| * 98e634aa4b iommu/arm-smmu-v3: Fix iommu_device_probe bug due to duplicated stream ids
| * 10d901a95f iommu/amd: Fix potential buffer overflow in parse_ivrs_acpihid
| * 43eb647e84 drm: Select DRM_KMS_HELPER from DRM_DEBUG_DP_MST_TOPOLOGY_REFS
| * 989f9c6a61 drm/amdgpu: Fix offset for HDP remap in nbio v7.11
| * 510aea4ef0 dm: always update the array size in realloc_argv on success
| * af2a88817f dm-integrity: fix a warning on invalid table line
| * f451082572 dm-bufio: don't schedule in atomic context
| * efebca5970 x86/boot/sev: Support memory acceptance in the EFI stub under SVSM
| * bdb435ef98 wifi: brcm80211: fmac: Add error handling for brcmf_usb_dl_writeimage()
| * 0988dd0263 tracing: Do not take trace_event_sem in print_event_fields()
| * da77a7594f spi: tegra114: Don't fail set_cs_timing when delays are zero
| * 20a28e0ece mmc: renesas_sdhi: Fix error handling in renesas_sdhi_probe
| * 9c4ddea497 mm/memblock: repeat setting reserved region nid if array is doubled
| * eb9b72e4fe mm/memblock: pass size instead of end to memblock_set_node()
| * f102342360 irqchip/qcom-mpm: Prevent crash when trying to handle non-wake GPIOs
| * 6569501c70 amd-xgbe: Fix to ensure dependent features are toggled with RX checksum offload
| * 44ee0afc9d perf/x86/intel: KVM: Mask PEBS_ENABLE loaded for guest with vCPU's value.
| * 6dcf83f504 perf/x86/intel: Only check the group flag for X86 leader
| * cf21e890f5 parisc: Fix double SIGFPE crash
| * 090c8714ef arm64: errata: Add missing sentinels to Spectre-BHB MIDR arrays
| * 4f4388a550 i2c: imx-lpi2c: Fix clock count when probe defers
| * 833ef30f01 EDAC/altera: Set DDR and SDMMC interrupt mask before registration
| * 349dac4052 EDAC/altera: Test the correct error reg offset
| * b771b20172 drm/nouveau: Fix WARN_ON in nouveau_fence_context_kill()
| * f1dfc94584 drm/fdinfo: Protect against driver unbind
| * d31806f14c cpufreq: intel_pstate: Unchecked MSR aceess in legacy mode
| * f46fd2f024 btrfs: fix COW handling in run_delalloc_nocow()
| * b80db09b61 btrfs: adjust subpage bit start based on sectorsize
| * 38d9ca7405 binder: fix offset calculation in debug log
| * fdf0ae5e9e ALSA: usb-audio: Add second USB ID for Jabra Evolve 65 headset
| * 0aaae77be5 ALSA: usb-audio: Add retry on -EPROTO from usb_set_interface()
| * 222b6685ef Revert "rndis_host: Flag RNDIS modems as WWAN devices"
| * 351378ae7b Bluetooth: btusb: Add 13 USB device IDs for Qualcomm WCN785x
| * 78945de256 Bluetooth: btusb: Add new VID/PID for WCN785x
| * 5ab19c342f Bluetooth: btusb: Add ID 0x2c7c:0x0130 for Qualcomm WCN785x
| * c6e1913e76 Bluetooth: btusb: Add one more ID 0x13d3:0x3623 for Qualcomm WCN785x
| * 8ee592df65 Bluetooth: btusb: Add one more ID 0x0489:0xe0f3 for Qualcomm WCN785x
| * a9bfc823d0 Bluetooth: btusb: add Foxconn 0xe0fc for Qualcomm WCN785x
* | 7ef2a3c257 Merge 6.12.27 into android16-6.12-lts
|\|
| * b801eaa96a Linux 6.12.27
| * 92c6f8c577 bpf: Fix BPF_INTERNAL namespace import
* | 4268a279b0 Merge branch 'android16-6.12' into android16-6.12-lts
* | 2348274c38 ANDROID: GKI: fix up new enum ABI break for PERR_REMOTE
* | 54ab26576b ANDROID: GKI: fix up CRC issue with msi.c
* | edd5c4a4db ANDROID: GKI: fix up crc issue in crypto_get_default_null_skcipher()
* | 5562e5e9bc Revert "usb: typec: class: Fix NULL pointer access"
* | 9bc73ad3e8 Revert "usb: typec: class: Invalidate USB device pointers on partner unregistration"
* | f382226159 Revert "usb: typec: class: Unlocked on error in typec_register_partner()"
* | d21d9b7966 Revert "xhci: Handle spurious events on Etron host isoc enpoints"
* | afca077cf3 Revert "usb: xhci: Fix Short Packet handling rework ignoring errors"
* | 51b29671f8 Revert "block: remove the write_hint field from struct request"
* | 69db030430 Revert "block: remove the ioprio field from struct request"
* | 0051f90803 Revert "block: make sure ->nr_integrity_segments is cloned in blk_rq_prep_clone"
* | c03fd6f483 Revert "module: sign with sha512 instead of sha1 by default"
* | 452a0ec59d ANDROID: GKI: Remove CONFIG_UBSAN_SIGNED_WRAP from gki_defconfig
* | db596bb60e Merge 6.12.26 into android16-6.12-lts
|\|
| * c72e4daa7a Linux 6.12.26
| * 6b9ebcbd31 mq-deadline: don't call req_get_ioprio from the I/O completion handler
| * ccc4e973fd arm64: dts: ti: k3-j784s4-j742s2-main-common: Correct the GICD size
| * 4b814a1c0c crypto: Kconfig - Select LIB generic option
| * ab5281d21e usb: typec: class: Unlocked on error in typec_register_partner()
| * ff4226252c objtool: Silence more KCOV warnings, part 2
| * 4dc5c03fbd objtool: Ignore end-of-section jumps for KCOV/GCOV
| * 1b7647efad usb: xhci: Fix Short Packet handling rework ignoring errors
| * 1042d22942 nvme: fixup scan failure for non-ANA multipath controllers
| * 8bfe4f02b6 MIPS: cm: Fix warning if MIPS_CM is disabled
| * 62bf68561d media: i2c: imx214: Fix uninitialized variable in imx214_set_ctrl()
| * 67727c5764 crypto: lib/Kconfig - Hide arch options from user
| * 4833d0a92b iommu: Handle race with default domain setup
| * 49d628cb24 net: dsa: mv88e6xxx: enable STU methods for 6320 family
| * ff83998b6f net: dsa: mv88e6xxx: enable .port_set_policy() for 6320 family
| * 7dd0c1b86e net: dsa: mv88e6xxx: enable PVT for 6321 switch
| * f4106753ae net: dsa: mv88e6xxx: fix atu_move_port_mask for 6341 family
| * 324fd0ba93 Revert "net: dsa: mv88e6xxx: fix internal PHYs for 6320 family"
| * 40966fc993 usb: typec: class: Invalidate USB device pointers on partner unregistration
| * 45314999f9 ext4: goto right label 'out_mmap_sem' in ext4_setattr()
| * 9f609f04c2 comedi: jr3_pci: Fix synchronous deletion of timer
| * 33e131a104 vmxnet3: Fix malformed packet sizing in vmxnet3_process_xdp
| * de7c24febd usb: typec: class: Fix NULL pointer access
| * 543e0f8765 selftests/bpf: Adjust data size to have ETH_HLEN
| * a9b0b9421e selftests/bpf: check program redirect in xdp_cpumap_attach
| * b84e7bc488 selftests/bpf: make xdp_cpumap_attach keep redirect prog attached
| * f8ed4bfb03 selftests/bpf: fix bpf_map_redirect call for cpu map test
| * 94d9c3366e xfs: flush inodegc before swapon
| * d6989af0cb xfs: rename xfs_iomap_swapfile_activate to xfs_vm_swap_activate
| * 8185e3ba71 xfs: Do not allow norecovery mount with quotacheck
| * 94c5584f36 xfs: do not check NEEDSREPAIR if ro,norecovery mount.
| * 2b344e779d driver core: fix potential NULL pointer dereference in dev_uevent()
| * 4f43c1bf2b driver core: introduce device_set_driver() helper
| * bfc66c4c28 Revert "drivers: core: synchronize really_probe() and dev_uevent()"
| * 185d376875 spi: spi-imx: Add check for spi_imx_setupxfer()
| * 54cbce4fe0 drm/amdgpu: Use the right function for hdp flush
| * 0fd149c262 drm/amdgpu: use a dummy owner for sysfs triggered cleaner shaders v4
| * 387461fba3 md/raid1: Add check for missing source disk in process_checks()
| * cd0d49958c x86/cpu: Add CPU model number for Bartlett Lake CPUs with Raptor Cove cores
| * 3027e5d811 ubsan: Fix panic from test_ubsan_out_of_bounds
| * 33903ad627 spi: tegra210-quad: add rate limiting and simplify timeout error message
| * 1b4cf6873a spi: tegra210-quad: use WARN_ON_ONCE instead of WARN_ON for timeouts
| * 8f805b3746 ksmbd: fix WARNING "do not call blocking ops when !TASK_RUNNING"
| * c9ffbc0792 riscv: Provide all alternative macros all the time
| * d53b2d49a8 iomap: skip unnecessary ifs_block_is_uptodate check
| * 2ef6eea2ef netfs: Only create /proc/fs/netfs with CONFIG_PROC_FS
| * 2d097dc242 x86/i8253: Call clockevent_i8253_disable() with interrupts disabled
| * 40216dc239 ASoC: fsl_asrc_dma: get codec or cpu dai from backend
| * 0f9802f174 scsi: pm80xx: Set phy_attached to zero when device is gone
| * acf1610d8b scsi: ufs: exynos: gs101: Put UFS device in reset on .suspend()
| * b7a05edb28 scsi: ufs: exynos: Move phy calls to .exit() callback
| * c0724ac138 scsi: ufs: exynos: Enable PRDT pre-fetching with UFSHCD_CAP_CRYPTO
| * 09c7a06928 scsi: ufs: exynos: Ensure pre_link() executes before exynos_ufs_phy_init()
| * 731047980d scsi: hisi_sas: Fix I/O errors caused by hardware port ID changes
| * b626bc3c1d ext4: make block validity check resistent to sb bh corruption
| * b14d986413 iommu: Clear iommu-dma ops on cleanup
| * 71c3d43c8f cifs: Fix querying of WSL CHR and BLK reparse points over SMB1
| * 9f8eeac3a6 timekeeping: Add a lockdep override in tick_freeze()
| * 1776d6d019 cifs: Fix encoding of SMB1 Session Setup Kerberos Request in non-UNICODE mode
| * f4cb2c042a nvmet-fc: put ref when assoc->del_work is already scheduled
| * 9635d486b6 nvmet-fc: take tgtport reference only once
| * bb4b487bbd x86/bugs: Don't fill RSB on context switch with eIBRS
| * 3b4fc0785a x86/bugs: Don't fill RSB on VMEXIT with eIBRS+retpoline
| * 5c41b7913f x86/bugs: Use SBPB in write_ibpb() if applicable
| * 6f3e9b2566 selftests/mincore: Allow read-ahead pages to reach the end of the file
| * f1e28d46a0 x86/xen: disable CPU idle and frequency drivers for PVH dom0
| * 5e58b93a12 gpiolib: of: Move Atmel HSMCI quirk up out of the regulator comment
| * fecf44d473 objtool: Stop UNRET validation on UD2
| * ee5521176a nvme: multipath: fix return value of nvme_available_path
| * b9c89c97d7 nvme: re-read ANA log page after ns scan completes
| * 5f3f3087a2 drm/xe/xe3lpg: Apply Wa_14022293748, Wa_22019794406
| * bbf2d06052 drm/amdgpu: Increase KIQ invalidate_tlbs timeout
| * bd12979c19 ACPI PPTT: Fix coding mistakes in a couple of sizeof() calls
| * bff38d184b ACPI: EC: Set ec_no_wakeup for Lenovo Go S
| * 24ede35eb2 nvme: requeue namespace scan on missed AENs
| * 781c870bdc xen: Change xen-acpi-processor dom0 dependency
| * 90dc6c1e3b perf/core: Fix WARN_ON(!ctx) in __free_event() for partial init
| * d6b66c20d5 selftests: ublk: fix test_stripe_04
| * a4e99cd415 cgroup/cpuset: Don't allow creation of local partition over a remote one
| * daed646d3c KVM: s390: Don't use %pK through debug printing
| * 5e7c90294e KVM: s390: Don't use %pK through tracepoints
| * c6c8afdcf8 sched/isolation: Make CONFIG_CPU_ISOLATION depend on CONFIG_SMP
| * e5902d7ec7 kbuild: add dependency from vmlinux to sorttable
| * 3568fd9e44 io_uring: always do atomic put from iowq
| * 2dc0e5ceb3 rtc: pcf85063: do a SW reset if POR failed
| * 18296b5951 9p/trans_fd: mark concurrent read and writes to p9_conn->err
| * c548f95688 9p/net: fix improper handling of bogus negative read/write replies
| * a3b8d8cf51 ntb_hw_amd: Add NTB PCI ID for new gen CPU
| * b5f8b03af5 ntb: reduce stack usage in idt_scan_mws
| * 47ab2caba4 qibfs: fix _another_ leak
| * 69578c7d02 objtool, lkdtm: Obfuscate the do_nothing() pointer
| * 03bb66ede7 objtool, regulator: rk808: Remove potential undefined behavior in rk806_set_mode_dcdc()
| * 777e6735fe objtool, ASoC: codecs: wcd934x: Remove potential undefined behavior in wcd934x_slim_irq_handler()
| * 0485bdf88f objtool, panic: Disable SMAP in __stack_chk_fail()
| * 8b4f2b6389 objtool: Silence more KCOV warnings
| * da780c4a07 um: work around sched_yield not yielding in time-travel mode
| * 0a205fdbb3 thunderbolt: Scan retimers after device router has been enumerated
| * 7fb9a9d2e3 usb: host: xhci-plat: mvebu: use ->quirks instead of ->init_quirk() func
| * 052fb65335 usb: gadget: aspeed: Add NULL pointer check in ast_vhub_init_dev()
| * 2c97354037 phy: rockchip: usbdp: Avoid call hpd_event_trigger in dp_phy_init
| * 9ff59cb815 usb: xhci: Avoid Stop Endpoint retry loop if the endpoint seems Running
| * 2ef4b0e911 dmaengine: dmatest: Fix dmatest waiting less when interrupted
| * 69bb5d420d i3c: master: svc: Add support for Nuvoton npcm845 i3c
| * 635be13606 xhci: Handle spurious events on Etron host isoc enpoints
| * 16a7a8e6c4 usb: xhci: Fix isochronous Ring Underrun/Overrun event handling
| * cbfa55bda1 usb: xhci: Complete 'error mid TD' transfers when handling Missed Service
| * 66046b586c sound/virtio: Fix cancel_sync warnings on uninitialized work_structs
| * f045fd7d46 usb: dwc3: gadget: Avoid using reserved endpoints on Intel Merrifield
| * 2ecae00138 usb: dwc3: gadget: Refactor loop to avoid NULL endpoints
| * 8a5e1d32c6 fs/ntfs3: Fix WARNING in ntfs_extend_initialized_size
| * 8db49e89a7 fs/ntfs3: Keep write operations atomic
| * 523bcab993 usb: host: max3421-hcd: Add missing spi_device_id table
| * 8b7b088925 mailbox: pcc: Always clear the platform ack interrupt first
| * a32ebfa7d8 mailbox: pcc: Fix the possible race in updation of chan_in_use flag
| * b817d2bfd6 bpf: Reject attaching fexit/fmod_ret to __noreturn functions
| * 4131411f42 bpf: Only fails the busy counter check in bpf_cgrp_storage_get if it creates storage
| * 46df1fe944 bpf: bpftool: Setting error code in do_loader()
| * ab57877603 s390/tty: Fix a potential memory leak bug
| * 3b3aa72636 s390/sclp: Add check for get_zeroed_page()
| * 6e026e6050 parisc: PDT: Fix missing prototype warning
| * 4139072087 clk: check for disabled clock-provider in of_clk_get_hw_from_clkspec()
| * c5c833f637 bpf: Fix deadlock between rcu_tasks_trace and event_mutex.
| * 7758e308ae bpf: Fix kmemleak warning for percpu hashmap
| * 0486de3c1b crypto: null - Use spin lock instead of mutex
| * 0195abab4a crypto: lib/Kconfig - Fix lib built-in failure when arch is modular
| * fbea0efa8a crypto: ccp - Add support for PCI device 0x1134
| * eea7d57c4a MIPS: cm: Detect CM quirks from device tree
| * 3da0371494 pinctrl: mcp23s08: Get rid of spurious level interrupts
| * d00d598027 pinctrl: renesas: rza2: Fix potential NULL pointer dereference
| * 1badc279b4 selftests/bpf: Fix stdout race condition in traffic monitor
| * caa559d3f7 USB: wdm: add annotation
| * b8bf49f3f6 USB: wdm: wdm_wwan_port_tx_complete mutex in atomic context
| * 52ae15c665 USB: wdm: close race between wdm_open and wdm_wwan_port_stop
| * eb4973cf6b USB: wdm: handle IO errors in wdm_wwan_port_start
| * 3e52ae347e USB: VLI disk crashes if LPM is used
| * d85b7af3bd usb: quirks: Add delay init quirk for SanDisk 3.2Gen1 Flash Drive
| * 9924ee1bcd usb: quirks: add DELAY_INIT quirk for Silicon Motion Flash Drive
| * 694fdc6a9c usb: dwc3: xilinx: Prevent spike in reset signal
| * 52a7c9d930 usb: dwc3: gadget: check that event count does not exceed event buffer length
| * 17c3984a44 USB: OHCI: Add quirk for LS7A OHCI controller (rev 0x02)
| * 7fb632a131 usb: chipidea: ci_hdrc_imx: implement usb_phy_init() error handling
| * c99ace5965 usb: chipidea: ci_hdrc_imx: fix call balance of regulator routines
| * 887902ca73 usb: chipidea: ci_hdrc_imx: fix usbmisc handling
| * 74cd6e408a usb: cdns3: Fix deadlock when using NCM gadget
| * bce3055b08 usb: xhci: Fix invalid pointer dereference in Etron workaround
| * 1777714865 xhci: Limit time spent with xHC interrupts disabled during bus resume
| * 54c66c7030 USB: serial: simple: add OWON HDS200 series oscilloscope support
| * 2eff976819 USB: serial: option: add Sierra Wireless EM9291
| * ea0d806b94 USB: serial: ftdi_sio: add support for Abacus Electrics Optical Probe
| * 5d29f884fe serial: sifive: lock port in startup()/shutdown() callbacks
| * f6ae572683 serial: msm: Configure correct working mode before starting earlycon
| * 6f021bc008 tty: Require CAP_SYS_ADMIN for all usages of TIOCL_SELMOUSEREPORT
| * f650009358 firmware: stratix10-svc: Add of_platform_default_populate()
| * 4fb75c0ccc misc: microchip: pci1xxxx: Fix incorrect IRQ status handling during ack
| * 12cc2193f2 misc: microchip: pci1xxxx: Fix Kernel panic during IRQ handler registration
| * 3670dee376 char: misc: register chrdev region with all possible minors
| * 26df754de5 KVM: x86: Take irqfds.lock when adding/deleting IRQ bypass producer
| * b5de7ac74f KVM: x86: Reset IRTE to host control if *new* route isn't postable
| * a22fe6f843 KVM: x86: Explicitly treat routing entry type changes as changes
| * 3e243378f2 mei: vsc: Fix fortify-panic caused by invalid counted_by() use
| * 34fafded1c mei: me: add panther lake H DID
| * 1f439fe4d8 scsi: Improve CDL control
| * b39bb3b4eb USB: storage: quirk for ADATA Portable HDD CH94
| * 40554c0f74 ata: libata-scsi: Fix ata_msense_control_ata_feature()
| * aa5778d06a ata: libata-scsi: Fix ata_mselect_control_ata_feature() return type
| * ef2d6c6346 ata: libata-scsi: Improve CDL control
| * df1a5d5c61 mcb: fix a double free bug in chameleon_parse_gdd()
| * 4c5f6925e2 cxl/core/regs.c: Skip Memory Space Enable check for RCD and RCH Ports
| * f3cd533c3a KVM: SVM: Allocate IR data using atomic allocation
| * 7a8a6b627f io_uring: fix 'sync' handling of io_fallback_tw()
| * 74d9e20187 LoongArch: KVM: Fix PMU pass-through issue if VM exits to host finally
| * be83fd71ac LoongArch: KVM: Fully clear some CSRs when VM reboot
| * 3b7f341eee LoongArch: Remove a bogus reference to ZONE_DMA
| * 51424fd171 LoongArch: Return NULL from huge_pte_offset() for invalid PMD
| * 93b7872d33 LoongArch: Handle fp, lsx, lasx and lbt assembly symbols
| * 3939d6f29d irqchip/gic-v2m: Prevent use after free of gicv2m_get_fwnode()
| * 140f05cbbf x86/insn: Fix CTEST instruction decoding
| * 1ae30272b9 drm/amd/display: Force full update in gpu reset
| * 3ff83378b6 drm/amd/display: Fix gpu reset in multidisplay config
| * 92b58c671b drm: panel: jd9365da: fix reset signal polarity in unprepare
| * ea532ba5e1 rust: firmware: Use `ffi::c_char` type in `FwFunc`
| * 1909540037 scsi: mpi3mr: Fix pending I/O counter
| * 9c31ac7819 net: phy: microchip: force IRQ polling mode for lan88xx
| * c2a6b4d78c net: selftests: initialize TCP header and skb payload with zero
| * d6a9c4e6f9 xen-netfront: handle NULL returned by xdp_convert_buff_to_frame()
| * 64b816a6c4 crypto: atmel-sha204a - Set hwrng quality to lowest possible
| * 28401a63c0 sched_ext: Use kvzalloc for large exit_dump allocation
| * 30c0d6e778 virtio_console: fix missing byte order handling for cols and rows
| * e17bc10bf3 netfilter: fib: avoid lookup if socket is available
| * f33b678543 KVM: SVM: Disable AVIC on SNP-enabled system without HvInUseWrAllowed feature
| * 9b34dffcd9 LoongArch: Make do_xyz() exception handlers more robust
| * a556bb5178 LoongArch: Make regs_irqs_disabled() more clear
| * 08bbdcb35c LoongArch: Select ARCH_USE_MEMTEST
| * 8d37031464 perf/x86: Fix non-sampling (counting) events on certain x86 platforms
| * 955f9ede52 bpf: Add namespace to BPF internal symbols
| * 3decda1a3c splice: remove duplicate noinline from pipe_clear_nowait
| * bcf6d3158c riscv: uprobes: Add missing fence.i after building the XOL buffer
| * 4715ab8435 riscv: Replace function-like macro by static inline function
| * e22010c3b8 iommu/amd: Return an error if vCPU affinity is set for non-vCPU IRTE
| * 7f24ea6a46 block: never reduce ra_pages in blk_apply_bdi_limits
| * 66d7702b42 pds_core: make wait_context part of q_info
| * ff207e83da pds_core: Remove unnecessary check in pds_client_adminq_cmd()
| * 6702f5c6b2 pds_core: handle unsupported PDS_CORE_CMD_FW_CONTROL result
| * 2982e07ad7 pds_core: Prevent possible adminq overflow/stuck condition
| * dd6c299390 net: dsa: mt7530: sync driver-specific behavior of MT7531 variants
| * c6f0350441 net_sched: hfsc: Fix a potential UAF in hfsc_dequeue() too
| * 86cd4641c7 net_sched: hfsc: Fix a UAF vulnerability in class handling
| * a61afd5482 fix a couple of races in MNT_TREE_BENEATH handling by do_move_mount()
| * 4fb743ee21 net: ethernet: mtk_eth_soc: net: revise NETSYSv3 hardware configuration
| * 0ceef62a32 tipc: fix NULL pointer dereference in tipc_mon_reinit_self()
| * 41143e7105 net: phy: leds: fix memory leak
| * 3340654bbf net: lwtunnel: disable BHs when required
| * eeab661803 scsi: ufs: core: Add NULL check in ufshcd_mcq_compl_pending_transfer()
| * 29daa63f2c scsi: core: Clear flags for scsi_cmnd that did not complete
| * fdd2a03561 net/mlx5: Move ttc allocation after switch case to prevent leaks
| * 0b682680b1 net/mlx5: Fix null-ptr-deref in mlx5_create_{inner_,}ttc_table()
| * ef258a15e7 vhost-scsi: Fix vhost_scsi_send_status()
| * 0ac4643bf2 vhost-scsi: Fix vhost_scsi_send_bad_target()
| * 461c258ba7 vhost-scsi: Add better resource allocation failure handling
| * 5d92e582d1 cgroup/cpuset-v1: Add missing support for cpuset_v2_mode
| * 9a447f748f btrfs: zoned: return EIO on RAID1 block group write pointer mismatch
| * c8a0c38beb btrfs: avoid page_lockend underflow in btrfs_punch_hole_lock_range()
| * 6c1c665805 cpufreq: fix compile-test defaults
| * ef56c130f6 cpufreq: Do not enable by default during compile testing
| * dbe413a8cd cpufreq: cppc: Fix invalid return value in .get() callback
| * 7d002f5914 scsi: ufs: mcq: Add NULL check in ufshcd_mcq_abort()
| * 28fbd7b13b cpufreq: scpi: Fix null-ptr-deref in scpi_cpufreq_get_rate()
| * 7ccfadfb25 cpufreq: scmi: Fix null-ptr-deref in scmi_cpufreq_get_rate()
| * fbdba5f374 cpufreq: apple-soc: Fix null-ptr-deref in apple_soc_cpufreq_get_rate()
| * 16c8aa5de1 dma/contiguous: avoid warning about unused size_bytes
| * 40bf7f560c cpufreq: sun50i: prevent out-of-bounds access
| * aef37505c4 ceph: Fix incorrect flush end position calculation
| * 984830d902 lib/Kconfig.ubsan: Remove 'default UBSAN' from UBSAN_INTEGER_WRAP
| * b26ac56370 drm/amd/display/dml2: use vzalloc rather than kzalloc
| * 50ec8c2428 drm/amd/display: Fix unnecessary cast warnings from checkpatch
| * 0fdb612c20 drm/xe/bmg: Add one additional PCI ID
| * c187aaa9e7 net/niu: Niu requires MSIX ENTRY_DATA fields touch before entry reads
| * 869749e481 scsi: ufs: exynos: Disable iocc if dma-coherent property isn't set
| * 56f3327cdd scsi: ufs: exynos: Move UFS shareability value to drvdata
| * 661380d982 scsi: ufs: exynos: Add gs101_ufs_drv_init() hook and enable WriteBooster
| * 0e76176edc scsi: ufs: exynos: Remove superfluous function parameter
| * ffcdfaecd4 scsi: ufs: exynos: Remove empty drv_init method
| * 1aec4d14cf ksmbd: fix use-after-free in __smb2_lease_break_noti()
| * 0fc403192d ksmbd: browse interfaces list on FSCTL_QUERY_INTERFACE_INFO IOCTL
| * 8d2c1acc88 ksmbd: add netdev-up/down event debug print
| * 0772765ac8 ksmbd: use __GFP_RETRY_MAYFAIL
| * 60cb4dfcf7 accel/ivpu: Fix the NPU's DPU frequency calculation
| * 27fcf64781 accel/ivpu: Add auto selection logic for job scheduler
| * 35ba7b2d4d PCI/MSI: Add an option to write MSIX ENTRY_DATA before any reads
| * 46d3575209 PCI/MSI: Handle the NOMASK flag correctly for all PCI/MSI backends
| * aad1246896 PCI/MSI: Convert pci_msi_ignore_mask to per MSI domain flag
| * 8fe536f102 scsi: ufs: qcom: fix dev reference leaked through of_qcom_ice_get
| * a122b3b1f5 of: resolver: Fix device node refcount leakage in of_resolve_phandles()
| * 05576e1304 of: resolver: Simplify of_resolve_phandles() using __free()
| * 56ddf0023b arm64: dts: ti: k3-j784s4-j742s2-main-common: Fix serdes_ln_ctrl reg-masks
| * 107b05f540 arm64: dts: ti: Refactor J784s4 SoC files to a common file
| * bde067b82a iio: adc: ad7768-1: Fix conversion result sign
| * 68565706b5 iio: adc: ad7768-1: Move setting of val a bit later to avoid unnecessary return value check
| * 8f229785c5 net: dsa: mv88e6xxx: fix VTU methods for 6320 family
| * 2afa5ea7c4 block: make sure ->nr_integrity_segments is cloned in blk_rq_prep_clone
| * ed7535b141 block: remove the ioprio field from struct request
| * 3e12e8c273 block: remove the write_hint field from struct request
| * 575601d08a media: ov08x40: Add missing ov08x40_identify_module() call on stream-start
| * 9c00d54454 media: ov08x40: Move ov08x40_identify_module() function up
| * fc96a720d8 media: i2c: imx214: Fix link frequency validation
| * 5a5ab62e4a media: i2c: imx214: Check number of lanes from device tree
| * 2a60b6bef4 media: i2c: imx214: Replace register addresses with macros
| * 694d85794a media: i2c: imx214: Convert to CCI register access helpers
| * a9aa210989 media: i2c: imx214: Simplify with dev_err_probe()
| * d3a38834b2 media: i2c: imx214: Use subdev active state
| * 9d5752b853 PM: EM: Address RCU-related sparse warnings
| * db3b3964af PM: EM: use kfree_rcu() to simplify the code
| * 27ce35d80a mmc: sdhci-msm: fix dev reference leaked through of_qcom_ice_get
| * 311a651fbb soc: qcom: ice: introduce devm_of_qcom_ice_get
| * 1c9798bf81 mm/vmscan: don't try to reclaim hwpoison folio
| * 0312735402 tracing: Verify event formats that have "%*p.."
| * 0b603e7759 tracing: Add __print_dynamic_array() helper
| * e62c31802d module: sign with sha512 instead of sha1 by default
* | a4f1e3a7a1 Revert "bpf: track changes_pkt_data property for global functions"
* | d9ca1c7ed5 Revert "selftests/bpf: test for changing packet data from global functions"
* | c7d660d083 Revert "bpf: check changes_pkt_data property for extension programs"
* | 551fd048d4 Revert "selftests/bpf: freplace tests for tracking of changes_packet_data"
* | 9876f5d506 Revert "selftests/bpf: validate that tail call invalidates packet pointers"
* | 40e8b9169b Revert "bpf: fix null dereference when computing changes_pkt_data of prog w/o subprogs"
* | c63e815d06 Revert "selftests/bpf: extend changes_pkt_data with cases w/o subprograms"
* | b5fe9d591c Revert "driver core: bus: add irq_get_affinity callback to bus_type"
* | d22fe9eaa4 Revert "blk-mq: introduce blk_mq_map_hw_queues"
* | cbab53e120 Revert "scsi: replace blk_mq_pci_map_queues with blk_mq_map_hw_queues"
* | 38f1a2afb6 Revert "scsi: smartpqi: Use is_kdump_kernel() to check for kdump"
* | ee0d567613 Merge 6.12.25 into android16-6.12-lts
|\|
| * ef4999852d Linux 6.12.25
| * f78507c1ef block: make struct rq_list available for !CONFIG_BLOCK
| * 473c534735 selftests/bpf: extend changes_pkt_data with cases w/o subprograms
| * f0946dcccb bpf: fix null dereference when computing changes_pkt_data of prog w/o subprogs
| * 1062b7612c selftests/bpf: validate that tail call invalidates packet pointers
| * d0e94a5bb9 selftests/bpf: freplace tests for tracking of changes_packet_data
| * 3846e2bea5 bpf: check changes_pkt_data property for extension programs
| * fa1fbb67e0 selftests/bpf: test for changing packet data from global functions
| * 1d572c6048 bpf: track changes_pkt_data property for global functions
| * d30b9c5950 bpf: add find_containing_subprog() utility function
| * ab7edf42ce wifi: ath12k: Fix invalid entry fetch in ath12k_dp_mon_srng_process
| * cec26d6bf3 MIPS: ds1287: Match ds1287_set_base_clock() function types
| * 305dd911de MIPS: cevt-ds1287: Add missing ds1287.h include
| * 21c6a0ed6f MIPS: dec: Declare which_prom() as static
| * 45e19beb96 Revert "wifi: ath12k: Fix invalid entry fetch in ath12k_dp_mon_srng_process"
| * b906c1ad25 mm/vma: add give_up_on_oom option on modify/merge, use in uffd release
| * 7e2d224939 block: don't reorder requests in blk_add_rq_to_plug
| * 2ad0f19a4e block: add a rq_list type
| * 5b34f40cda block: remove rq_list_move
| * 3dd1af8ce3 nvmet-fc: Remove unused functions
| * 29b2d6f53c drm/amd/display: Temporarily disable hostvm on DCN31
| * 628e6c4521 LoongArch: Eliminate superfluous get_numa_distances_cnt()
| * 66d182770f efi/libstub: Bump up EFI_MMAP_NR_SLACK_SLOTS to 32
| * 59a30b981a misc: pci_endpoint_test: Fix 'irq_type' to convey the correct type
| * 0557e70e2a misc: pci_endpoint_test: Avoid issue of interrupts remaining after request_irq error
| * deee01acc6 selftests/bpf: Fix raw_tp null handling test
| * e2a9f73ee4 md: fix mddev uaf while iterating all_mddevs list
| * 6ea2e8743e platform/x86: msi-wmi-platform: Workaround a ACPI firmware bug
| * 1c9e272f98 platform/x86: msi-wmi-platform: Rename "data" variable
| * 3802df8552 kbuild: Add '-fno-builtin-wcslen'
| * 0f1ee79b0f scripts: generate_rust_analyzer: Add ffi crate
| * c1a485c46c cpufreq: Reference count policy in cpufreq_update_limits()
| * 686d8f7b59 arm64/boot: Enable EL2 requirements for FEAT_PMUv3p9
| * 14eacc808e arm64/sysreg: Add register fields for HFGWTR2_EL2
| * 2ef32d984d arm64/sysreg: Add register fields for HFGRTR2_EL2
| * c415127454 arm64/sysreg: Add register fields for HFGITR2_EL2
| * 051eccf717 arm64/sysreg: Add register fields for HDFGWTR2_EL2
| * 7403602616 arm64/sysreg: Add register fields for HDFGRTR2_EL2
| * e1a6acacf1 arm64/sysreg: Update register fields for ID_AA64MMFR0_EL1
| * effb4d79b3 drm/mgag200: Fix value in <VBLKSTR> register
| * 7f21bfd6fc drm/amdgpu: fix warning of drm_mm_clean
| * a43e53e310 drm/xe: Set LRC addresses before guc load
| * 65dc4e3d5b drm/xe/userptr: fix notifier vs folio deadlock
| * e4ed75e974 drm/xe/dma_buf: stop relying on placement in unmap
| * e97bf44115 drm/amd/display: Add HP Probook 445 and 465 to the quirk list for eDP on DP1
| * a5c9107a3e drm/amd/display: Protect FPU in dml2_init()/dml21_init()
| * 9cb744fbee drm/amd/display: Do not enable Replay and PSR while VRR is on in amdgpu_dm_commit_planes()
| * a53d959fe6 drm/amdgpu: immediately use GTT for new allocations
| * 4b171d4cbf drm/i915/gvt: fix unterminated-string-initialization warning
| * 28477f701b drm/xe: Fix an out-of-bounds shift when invalidating TLB
| * b2c11fea26 drm/sti: remove duplicate object names
| * c90b95e12e drm/imagination: take paired job reference
| * 490c30fd55 drm/imagination: fix firmware memory leaks
| * 6e2c805996 drm/nouveau: prime: fix ttm_bo_delayed_delete oops
| * 91b646a0b2 drm/amdgpu/dma_buf: fix page_link check
| * 228e98e202 drm/amdgpu/mes11: optimize MES pipe FW version fetching
| * 596284026c drm/amd/display: Protect FPU in dml21_copy()
| * 74d6fba60f drm/amd/display: Protect FPU in dml2_validate()/dml21_validate()
| * fe19e04cd9 drm/amd/display: Add HP Elitebook 645 to the quirk list for eDP on DP1
| * 2ac5f466f6 drm/xe: Use local fence in error path of xe_migrate_clear
| * a37e01fe60 drm/i915/vrr: Add vrr.vsync_{start, end} in vrr_params_changed
| * 2b00b32e61 drm/amdgpu/mes12: optimize MES pipe FW version fetching
| * 42f7b5d12c drm/amd/pm/powerplay/hwmgr/vega20_thermal: Prevent division by zero
| * fb803d4bb9 drm/amd/pm/swsmu/smu13/smu_v13_0: Prevent division by zero
| * 8e9c4f8d19 drm/amd/pm/powerplay/hwmgr/smu7_thermal: Prevent division by zero
| * 63a1504001 drm/amd/pm/smu11: Prevent division by zero
| * bd4d90adbc drm/amd/pm/powerplay: Prevent division by zero
| * 6413fed016 drm/amd/pm: Prevent division by zero
| * 2a2b7b6f90 drm/amd/display: Increase vblank offdelay for PSR panels
| * 776253d981 drm/amd/display: Actually do immediate vblank disable
| * b542559343 drm/amd: Handle being compiled without SI or CIK support better
| * 0363c03672 drm/amd/display: prevent hang on link training fail
| * 531d463364 drm/amdgpu: Prefer shadow rom when available
| * 68b591d64d drm/msm/a6xx: Fix stale rpmh votes from GPU
| * 359f6cffae drm/msm/dsi: Add check for devm_kstrdup()
| * 31efeca2ef drm/ast: Fix ast_dp connection status
| * b33386fabb drm/repaper: fix integer overflows in repeat functions
| * de67afd688 perf/x86/intel/uncore: Fix the scale of IIO free running counters on SPR
| * c5e1570322 perf/x86/intel/uncore: Fix the scale of IIO free running counters on ICX
| * 8d19c4a3b8 perf/x86/intel/uncore: Fix the scale of IIO free running counters on SNR
| * 56fdbc0912 perf/x86/intel: Allow to update user space GPRs from PEBS records
| * c7b43f09dd platform/x86: amd: pmf: Fix STT limits
| * 42ded70c1a RAS/AMD/FMPM: Get masked address
| * b2748ae609 RAS/AMD/ATL: Include row[13] bit in row retirement
| * d23fd7a539 RDMA/cma: Fix workqueue crash in cma_netevent_work_handler
| * 6dd9ede5c5 scsi: ufs: exynos: Ensure consistent phy reference counts
| * 80b2ad1215 scsi: megaraid_sas: Block zero-length ATA VPD inquiry
| * 6360e4f850 x86/boot/sev: Avoid shared GHCB page for early memory acceptance
| * 519718a338 x86/cpu/amd: Fix workaround for erratum 1054
| * a66b6b07d0 x86/microcode/AMD: Extend the SHA check to Zen5, block loading of any unreleased standalone Zen5 microcode patches
| * c3e31d6139 virtiofs: add filesystem context source name check
| * 5683eaf4ee tracing: Fix filter string testing
| * 5f878db827 string: Add load_unaligned_zeropad() code path to sized_strscpy()
| * 9042efa7f1 smb3 client: fix open hardlink on deferred close file error
| * 8baa747193 slab: ensure slab->obj_exts is clear in a newly allocated slab page
| * 824b7ad9cf selftests/mm: generate a temporary mountpoint for cgroup filesystem
| * 3f1c81ae13 riscv: Avoid fortify warning in syscall_get_arguments()
| * f761eeefd5 Revert "smb: client: fix TCP timers deadlock after rmmod"
| * 2aa10d26b6 Revert "smb: client: Fix netns refcount imbalance causing leaks and use-after-free"
| * 2a879da5c3 ksmbd: fix the warning from __kernel_write_iter
| * 396d6e4485 ksmbd: Prevent integer overflow in calculation of deadtime
| * d54ab1520d ksmbd: fix use-after-free in smb_break_all_levII_oplock()
| * 6e30c0e102 ksmbd: Fix dangling pointer in krb_authenticate
| * b9e3579213 ovl: don't allow datadir only
| * 029458063e mm: fix apply_to_existing_page_range()
| * 8338e0723f mm: fix filemap_get_folios_contig returning batches of identical folios
| * b609a60e31 mm/gup: fix wrongly calculated returned value in fault_in_safe_writeable()
| * 4f34d6f979 mm/compaction: fix bug in hugetlb handling pathway
| * c45ba83935 loop: LOOP_SET_FD: send uevents for partitions
| * 694521cb3f loop: properly send KOBJ_CHANGED uevent for disk device
| * 56dfffea9f isofs: Prevent the use of too small fid
| * 1355b5ca47 i2c: cros-ec-tunnel: defer probe if parent EC is not present
| * 84e8719c08 hfs/hfsplus: fix slab-out-of-bounds in hfs_bnode_read_key
| * 8132682856 crypto: caam/qi - Fix drv_ctx refcount bug
| * f73731983f cpufreq/sched: Explicitly synchronize limits_changed flag handling
| * d3995ff08c btrfs: correctly escape subvol in btrfs_show_options()
| * b62b1406bb Bluetooth: vhci: Avoid needless snprintf() calls
| * 569bbe2fc7 Bluetooth: l2cap: Process valid commands in too long frame
| * bde7abe8cf drm/msm/a6xx+: Don't let IB_SIZE overflow
| * 26d5e2377f ftrace: fix incorrect hash size in register_ftrace_direct()
| * 2665a3b1ab i2c: atr: Fix wrong include
| * a7fce086f6 nfsd: decrease sc_count directly if fail to queue dl_recall
| * 33c0f51f1a nfs: add missing selections of CONFIG_CRC32
| * e22c8b99c8 dma-buf/sw_sync: Decrement refcount on error in sw_sync_ioctl_get_deadline()
| * 81a566a920 drm/v3d: Fix Indirect Dispatch configuration for V3D 7.1.6 and later
| * c38a005e6e block: integrity: Do not call set_page_dirty_lock()
| * db42e6f28b asus-laptop: Fix an uninitialized variable
| * c0ce01e0ff ASoC: qcom: Fix sc7280 lpass potential buffer overflow
| * 2612d55482 ASoC: Intel: sof_sdw: Add quirk for Asus Zenbook S16
| * 2b72a9e327 ASoC: codecs:lpass-wsa-macro: Fix logic of enabling vi channels
| * 43da9eae1b ASoC: codecs:lpass-wsa-macro: Fix vi feedback rate
| * b2e56391f6 ASoC: fsl: fsl_qmc_audio: Reset audio data pointers on TRIGGER_START event
| * f2e2926e9e Revert "PCI: Avoid reset when disabled via sysfs"
| * 28da4dd840 writeback: fix false warning in inode_to_wb()
| * c1aa71716a rust: kbuild: use `pound` to support GNU Make < 4.3
| * baf02dd01e rust: disable `clippy::needless_continue`
| * 4c353fca62 rust: kasan/kbuild: fix missing flags on first build
| * e8980258c0 objtool/rust: add one more `noreturn` Rust function for Rust 1.86.0
| * 00a1bdb157 cpufreq/sched: Fix the usage of CPUFREQ_NEED_UPDATE_LIMITS
| * 27e0143f4d riscv: KGDB: Remove ".option norvc/.option rvc" for kgdb_compiled_break
| * 999bd7bb21 riscv: KGDB: Do not inline arch_kgdb_breakpoint()
| * 8533450211 kunit: qemu_configs: SH: Respect kunit cmdline
| * 3583394b85 riscv: module: Allocate PLT entries for R_RISCV_PLT32
| * a068ea0000 riscv: module: Fix out-of-bounds relocation access
| * 1d5a8e1fec riscv: Properly export reserved regions in /proc/iomem
| * c8c3f8e7a7 riscv: Use kvmalloc_array on relocation_hashtable
| * cfdcd213dd net: ethernet: mtk_eth_soc: revise QDMA packet scheduler settings
| * 7ec0265710 net: ethernet: mtk_eth_soc: correct the max weight of the queue limit for 100Mbps
| * b524a14ec1 net: ethernet: mtk_eth_soc: reapply mdc divider on reset
| * da5035d7ae net: ti: icss-iep: Fix possible NULL pointer dereference for perout request
| * d028c6a805 net: ti: icss-iep: Add phase offset configuration for perout signal
| * 352e5a6709 net: ti: icss-iep: Add pwidth configuration for perout signal
| * 62b795c22d ptp: ocp: fix start time alignment in ptp_ocp_signal_set
| * a3e4b6ad5f net: dsa: avoid refcount warnings when ds->ops->tag_8021q_vlan_del() fails
| * 5c8066fbdb net: dsa: free routing table on probe failure
| * 8fcc1e6f80 net: dsa: clean up FDB, MDB, VLAN entries on unbind
| * 9ee6d3a368 net: dsa: mv88e6xxx: fix -ENOENT when deleting VLANs and MST is unsupported
| * 3665695e35 net: dsa: mv88e6xxx: avoid unregistering devlink regions which were never registered
| * 635863d93d net: txgbe: fix memory leak in txgbe_probe() error path
| * d9ecaee617 net: bridge: switchdev: do not notify new brentries as changed
| * ad13e95cbc net: b53: enable BPDU reception for management port
| * 1f6916c554 netlink: specs: rt-link: adjust mctp attribute naming
| * 250a2fc77a netlink: specs: rt-link: add an attr layer around alt-ifname
| * dafb6e433a cxgb4: fix memory leak in cxgb4_init_ethtool_filters() error path
| * cb74d5b837 ata: libata-sata: Save all fields from sense data descriptor
| * 78253d44e9 loop: stop using vfs_iter_{read,write} for buffered I/O
| * 0175902f6e loop: aio inherit the ioprio of original request
| * 21e70f694b eth: bnxt: fix missing ring index trim on error path
| * cd64ae07c4 net: ethernet: ti: am65-cpsw: fix port_np reference counting
| * 8335a3feb9 net: ngbe: fix memory leak in ngbe_probe() error path
| * 0b7d94164d can: rockchip_canfd: fix broken quirks checks
| * be80768d4f net: openvswitch: fix nested key length validation in the set() action
| * 15baba1095 netlink: specs: ovs_vport: align with C codegen capabilities
| * 41e43134dd block: fix resource leak in blk_register_queue() error path
| * 3f899bd6dd net: mctp: Set SOCK_RCU_FREE
| * 61765e1b41 ethtool: cmis_cdb: use correct rpl size in ethtool_cmis_module_poll()
| * 01ad16ddf9 pds_core: fix memory leak in pdsc_debugfs_add_qcq()
| * 45300268e5 test suite: use %zu to print size_t
| * 86d5243ea6 smc: Fix lockdep false-positive for IPPROTO_SMC.
| * 688f85d1ba dt-bindings: soc: fsl: fsl,ls1028a-reset: Fix maintainer entry
| * 724d26215e igc: add lock preventing multiple simultaneous PTM transactions
| * c15065acc1 igc: cleanup PTP module if probe fails
| * 698182f03f igc: handle the IGC_PTP_ENABLED flag correctly
| * 8058c895c7 igc: move ktime snapshot into PTM retry loop
| * b74137e277 igc: increase wait time before retrying PTM
| * f3516229cd igc: fix PTM cycle trigger logic
| * 5a3ff97d12 Revert "wifi: mac80211: Update skb's control block key in ieee80211_tx_dequeue()"
| * fa0d99648c xen: fix multicall debug feature
| * b02c2ac2f3 ipv6: add exception routes to GC list in rt6_insert_exception
| * d49798ecd2 Bluetooth: l2cap: Check encryption key size on incoming connection
| * aaf356f872 Bluetooth: btrtl: Prevent potential NULL dereference
| * 6ad0acb56b Bluetooth: hci_event: Fix sending MGMT_EV_DEVICE_FOUND for invalid address
| * 0d81bb58a2 RDMA/core: Silence oversized kvmalloc() warning
| * 0ba76fb628 ASoC: cs42l43: Reset clamp override on jack removal
| * 36e0ea1f96 ALSA: hda/realtek - Fixed ASUS platform headset Mic issue
| * c01f3741d1 ALSA: hda/realtek: Workaround for resume on Dell Venue 11 Pro 7130
| * 34875b7a5d ALSA: hda: improve bass speaker support for ASUS Zenbook UM5606WA
| * 9b019be589 ALSA: hda/cirrus_scodec_test: Don't select dependencies
| * 7060bf9100 RDMA/hns: Fix wrong maximum DMA segment size
| * 48e5aa2225 RDMA/usnic: Fix passing zero to PTR_ERR in usnic_ib_pci_probe()
| * 6104cc65fe ovl: remove unused forward declaration
| * bbad32b836 crypto: tegra - Fix IV usage for AES ECB
| * 9ebc2053b8 crypto: tegra - Do not use fixed size buffers
| * 28ec10e58d crypto: tegra - remove redundant error check on ret
| * 23fde311ea ASoC: Intel: avs: Fix null-ptr-deref in avs_component_probe()
| * dcba15ed08 ASoC: dwc: always enable/disable i2s irqs
| * eeeba7f43a md/md-bitmap: fix stats collection for external bitmaps
| * 54e106047f md/raid10: fix missing discard IO accounting
| * 7cc670e8eb scsi: smartpqi: Use is_kdump_kernel() to check for kdump
| * 5e8438fd7f scsi: replace blk_mq_pci_map_queues with blk_mq_map_hw_queues
| * fe2bdefe86 blk-mq: introduce blk_mq_map_hw_queues
| * 5ec9039702 driver core: bus: add irq_get_affinity callback to bus_type
| * 6884cb2f3b scsi: iscsi: Fix missing scsi_host_put() in error path
| * 52f224009c wifi: wl1251: fix memory leak in wl1251_tx_work
| * a8df245b5b wifi: mac80211: Purge vif txq in ieee80211_do_stop()
| * 159499c134 wifi: mac80211: Update skb's control block key in ieee80211_tx_dequeue()
| * a9682bfef2 wifi: at76c50x: fix use after free access in at76_disconnect
| * 1773fbf7c0 scsi: hisi_sas: Enable force phy when SATA disk directly connected
* | 72655c8488 Merge branch 'android16-6.12' into branch 'android16-6.12-lts'
* | a23d20a6c2 UPSTREAM: arm64: errata: Add missing sentinels to Spectre-BHB MIDR arrays
* | f56453cbd7 Merge 6.12.24 into android16-6.12-lts
|\|
| * b6efa8ce22 Linux 6.12.24
| * ae5a6a0b42 HSI: ssi_protocol: Fix use after free vulnerability in ssi_protocol Driver Due to Race Condition
| * bdbecb2bf5 s390/cpumf: Fix double free on error in cpumf_pmu_event_init()
| * 281782d2c6 Bluetooth: hci_uart: Fix another race during initialization
| * f87626a55c media: mediatek: vcodec: mark vdec_vp9_slice_map_counts_eob_coef noinline
| * 9c03f6194e kbuild: Add '-fno-builtin-wcslen'
| * 5f494f4823 libbpf: Prevent compiler warnings/errors
| * bd6eae1f30 x86/e820: Fix handling of subpage regions when calculating nosave ranges in e820__register_nosave_regions()
| * 6a59b70fe7 nfsd: don't ignore the return code of svc_proc_register()
| * b2b18a9f68 NFSD: Fix CB_GETATTR status fix
| * 560c031896 NFSD: fix decoding in nfs4_xdr_dec_cb_getattr
| * 7005fdceff ACPI: platform-profile: Fix CFI violation when accessing sysfs files
| * 20867f0948 x86/paravirt: Move halt paravirt calls under CONFIG_PARAVIRT
| * 5d9484cd37 iommufd: Fail replace if device has not been attached
| * 6d11543bf3 iommufd: Make attach_handle generic than fault specific
| * 9ca4fe3574 arm64: errata: Add newer ARM cores to the spectre_bhb_loop_affected() lists
| * d25a240c5a thermal/drivers/mediatek/lvts: Disable Stage 3 thermal threshold
| * 0131251d93 thermal/drivers/mediatek/lvts: Disable monitor mode during suspend
| * 9580b60365 selftests: mptcp: fix incorrect fd checks in main_loop
| * 2f1b4d6725 selftests: mptcp: close fd_in before returning in main_loop
| * 0f91e4f69f sched_ext: create_dsq: Return -EEXIST on duplicate request
| * 7a30bbd36c s390: Fix linker error when -no-pie option is unavailable
| * f268ee2fbb s390/virtio_ccw: Don't allocate/assign airqs for non-existing queues
| * 05a0f9c407 s390/pci: Fix zpci_bus_is_isolated_vf() for non-VFs
| * 92ca7270fe ring-buffer: Use flush_kernel_vmap_range() over flush_dcache_folio()
| * de08212061 pinctrl: samsung: add support for eint_fltcon_offset
| * c1368383cd pinctrl: qcom: Clear latched interrupt status when changing IRQ type
| * beb9a5cb7a phy: freescale: imx8m-pcie: assert phy reset and perst in power off
| * 869202291a PCI: Fix wrong length of devres array
| * 9707d0c932 PCI: Fix reference leak in pci_register_host_bridge()
| * d69ad6e1a5 PCI: Fix reference leak in pci_alloc_child_bus()
| * e4a1d7defb PCI: pciehp: Avoid unnecessary device replacement check
| * ce9643a541 PCI: j721e: Fix the value of .linkdown_irq_regfield for J784S4
| * 71bf0769a6 PCI: brcmstb: Fix missing of_node_put() in brcm_pcie_probe()
| * 712d84459a of/irq: Fix device node refcount leakages in of_irq_init()
| * d0f25a9977 of/irq: Fix device node refcount leakage in API irq_of_parse_and_map()
| * 29cb94963c of/irq: Fix device node refcount leakages in of_irq_count()
| * 3540164c75 of/irq: Fix device node refcount leakage in API of_irq_parse_raw()
| * dc83eccc93 of/irq: Fix device node refcount leakage in API of_irq_parse_one()
| * 60faeef98b ntb: use 64-bit arithmetic for the MSI doorbell mask
| * 34baf1cfd6 net: mana: Switch to page pool for jumbo frames
| * a2acc67d61 misc: pci_endpoint_test: Fix displaying 'irq_type' after 'request_irq' error
| * e98f77f74c selftests/landlock: Add a new test for setuid()
| * 76ab50fa6e selftests/landlock: Split signal_scoping_threads tests
| * b017f2846a landlock: Prepare to add second errata
| * 332facfa80 landlock: Always allow signals between threads of the same process
| * 7dd7f87e07 landlock: Add erratum for TCP fix
| * ea980ea4d1 landlock: Add the errata interface
| * 9b0d24fa64 landlock: Move code to ease future backports
| * 7bc5c36037 KVM: x86: Acquire SRCU in KVM_GET_MP_STATE to protect guest memory accesses
| * bbf821c35d KVM: x86: Explicitly zero-initialize on-stack CPUID unions
| * 99b99032a8 KVM: PPC: Enable CAP_SPAPR_TCE_VFIO on pSeries KVM guests
| * fae0a8796c KVM: Allow building irqbypass.ko as as module when kvm.ko is a module
| * 3bc2208c74 gve: handle overflow when reporting TX consumed descriptors
| * 62024ad4c5 gpio: zynq: Fix wakeup source leaks on device unbind
| * 2d66517135 gpio: tegra186: fix resource handling in ACPI probe path
| * e66fb9b4e9 ftrace: Properly merge notrace hashes
| * 1fce9574b9 ftrace: Add cond_resched() to ftrace_graph_set_hash()
| * 3e467f1c74 dt-bindings: coresight: qcom,coresight-tpdm: Fix too many 'reg'
| * 58c453801b dt-bindings: coresight: qcom,coresight-tpda: Fix too many 'reg'
| * 74f01c2ca8 dm-verity: fix prefetch-vs-suspend race
| * dd91458a84 dm-integrity: fix non-constant-time tag verification
| * ba42f98f09 dm-integrity: set ti->error on memory allocation failure
| * a1a4fdc33d dm-ebs: fix prefetch-vs-suspend race
| * 08deafddfc dlm: fix error if active rsb is not hashed
| * b77f8a17ef dlm: fix error if inactive rsb is not hashed
| * eaa7014aec crypto: ccp - Fix uAPI definitions of PSP errors
| * 5116b340cf crypto: ccp - Fix check for the primary ASP device
| * 1f9648e246 clk: qcom: gdsc: Set retain_ff before moving to HW CTRL
| * 4d6fb2a43f clk: qcom: gdsc: Capture pm_genpd_add_subdomain result code
| * 12ef07c4bf clk: qcom: gdsc: Release pm subdomains in reverse add order
| * 809e83a575 clk: qcom: clk-branch: Fix invert halt status bit check for votable clocks
| * 56c29847bc clk: renesas: r9a07g043: Fix HP clock source for RZ/Five
| * 4ed194d9bb cifs: Ensure that all non-client-specific reparse points are processed by the server
| * 2a24040597 cifs: fix integer overflow in match_server()
| * e0717385f5 cifs: avoid NULL pointer dereference in dbg call
| * 2eb6e5e094 CIFS: Propagate min offload along with other parameters from primary to secondary channels.
| * 63d71ae010 thermal/drivers/rockchip: Add missing rk3328 mapping entry
| * 474b3194c8 tracing: Do not add length to print format in synthetic events
| * 868df4eb78 tracing: fprobe events: Fix possible UAF on modules
| * a7fda1fd6d x86/xen: fix balloon target initialization for PVH dom0
| * 9e7c37fadb sctp: detect and prevent references to a freed transport in sendmsg
| * 65b259e3e0 mm/hwpoison: introduce folio_contain_hwpoisoned_page() helper
| * 1fd89407d7 mm/hugetlb: move hugetlb_sysctl_init() to the __init section
| * 73d17d48df mm/hwpoison: do not send SIGBUS to processes with recovered clean pages
| * 14936034de mm/userfaultfd: fix release hang over concurrent GUP
| * cc98577f91 mm: add missing release barrier on PGDAT_RECLAIM_LOCKED unlock
| * 2532df0a9b mm/mremap: correctly handle partial mremap() of VMA starting at 0
| * 6dd8d9440f mm: fix lazy mmu docs and usage
| * 83b6b5061e mm: make page_mapped_in_vma() hugetlb walk aware
| * 53dc6b00c0 mm/rmap: reject hugetlb folios in folio_make_device_exclusive()
| * ab0af01260 mm/damon/ops: have damon_get_folio return folio even for tail pages
* | 7e9686596c Merge 5f7f6abd92 ("net: Fix null-ptr-deref by sock_lock_init_class_and_name() and rmmod.") into android16-6.12-lts
|\|
| * 5f7f6abd92 net: Fix null-ptr-deref by sock_lock_init_class_and_name() and rmmod.
* | fbffc72bf0 Merge fba396b799 ("sparc/mm: avoid calling arch_enter/leave_lazy_mmu() in set_ptes") into android16-6.12-lts
|\|
| * fba396b799 sparc/mm: avoid calling arch_enter/leave_lazy_mmu() in set_ptes
| * 690446dc72 sparc/mm: disable preemption in lazy mmu mode
| * cb6b9bd661 iommu/vt-d: Wire up irq_ack() to irq_move_irq() for posted MSIs
| * 6722a0cb81 iommu/vt-d: Fix possible circular locking dependency
| * e953e11123 iommu/vt-d: Don't clobber posted vCPU IRTE when host IRQ affinity changes
| * c95a438d2c iommu/vt-d: Put IRTE back into posted MSI mode if vCPU posting is disabled
| * e5dd974d6e iommu/tegra241-cmdqv: Fix warnings due to dmam_free_coherent()
| * b8b41eac70 iommufd: Fix uninitialized rc in iommufd_access_rw()
| * 327e6b8b28 btrfs: zoned: fix zone finishing with missing devices
| * 380ba38801 btrfs: zoned: fix zone activation with missing devices
| * b9af27d020 btrfs: tests: fix chunk map leak after failure to add it to the tree
| * 601db4e8bf btrfs: fix non-empty delayed iputs list on unmount due to compressed write workers
| * 61a5c565fd backlight: led_bl: Hold led_access lock when calling led_sysfs_disable()
| * a3b36c9da3 arm64: dts: exynos: gs101: disable pinctrl_gsacore node
| * ac45d49df9 arm64: dts: mediatek: mt8173: Fix disp-pwm compatible string
| * 1dd288783d arm64: mm: Correct the update of max_pfn
| * 21c5124304 arm64: tegra: Remove the Orin NX/Nano suspend key
| * eec737e17e arm64: mops: Do not dereference src reg for a set operation
| * 52f251dbfb mtd: rawnand: Add status chack in r852_ready()
| * 5479a6af3c mtd: inftlcore: Add error check for inftl_read_oob()
| * 6554491b4a mptcp: only inc MPJoinAckHMacFailure for HMAC failures
| * dc81e41a30 mptcp: fix NULL pointer in can_accept_new_subflow
| * c7f611e711 lib: scatterlist: fix sg_split_phys to preserve original scatterlist offsets
| * 95f0958240 locking/lockdep: Decrease nr_unused_locks if lock unused in zap_class()
| * 008b90d36d mailbox: tegra-hsp: Define dimensioning masks in SoC data
| * 7b47df6498 mfd: ene-kb3930: Fix a potential NULL pointer dereference
| * 4b037851ed leds: rgb: leds-qcom-lpg: Fix calculation of best period Hi-Res PWMs
| * 5ae9e361e2 leds: rgb: leds-qcom-lpg: Fix pwm resolution max for Hi-Res PWMs
| * e94314b727 kbuild: exclude .rodata.(cst|str)* when building ranges
| * 9eaec071f1 jbd2: remove wrong sb->s_sequence check
| * e6bba32857 i3c: Add NULL pointer check in i3c_master_queue_ibi()
| * 34aaf448e2 i3c: master: svc: Use readsb helper for reading MDB
| * 0327683c55 ima: limit the number of ToMToU integrity violations
| * 48085ab823 ima: limit the number of open-writers integrity violations
| * 9a264e4a59 smb311 client: fix missing tcon check when mounting with linux/posix extensions
| * 44a2572a0f soc: samsung: exynos-chipid: Add NULL pointer check in exynos_chipid_probe()
| * fbda9cac1b svcrdma: do not unregister device for listeners
| * f3cb81cb96 tpm: do not start chip while suspended
| * 76cc21a9a4 udf: Fix inode_getblk() return value
| * 8fd217a99d vdpa/mlx5: Fix oversized null mkey longer than 32bit
| * a1dde7457d f2fs: fix to avoid atomicity corruption of atomic file
| * 16d9067f00 ext4: fix off-by-one error in do_split
| * a77955f770 bus: mhi: host: Fix race between unprepare and queue_buf
| * 7d12a7d43c accel/ivpu: Fix deadlock in ivpu_ms_cleanup()
| * 5c200b7ebd accel/ivpu: Fix warning in ivpu_ipc_send_receive_internal()
| * 7022946773 ALSA: hda/realtek: Enable Mute LED on HP OMEN 16 Laptop xd000xx
| * d2a2076d9c ASoC: qdsp6: q6asm-dai: fix q6asm_dai_compr_set_params error path
| * 17f1e42131 ASoC: qdsp6: q6apm-dai: fix capture pipeline overruns.
| * aa7e9eabe6 ASoC: qdsp6: q6apm-dai: set 10 ms period and buffer alignment.
| * a28217b064 ASoC: q6apm-dai: make use of q6apm_get_hw_pointer
| * f5891f204d ASoC: q6apm-dai: schedule all available frames to avoid dsp under-runs
| * d383051f82 ASoC: q6apm: add q6apm_get_hw_pointer helper
| * acadb2e2b3 ASoC: codecs: wcd937x: fix a potential memory leak in wcd937x_soc_codec_probe()
| * 3e0356857e io_uring/kbuf: reject zero sized provided buffers
| * b7c6d081c1 io_uring/net: fix io_req_post_cqe abuse by send bundle
| * 0828d6e9ad io_uring/net: fix accept multishot handling
| * 00026f80c4 wifi: mt76: mt7925: fix the wrong simultaneous cap for MLO
| * 374f2bf7b3 wifi: mt76: mt7925: fix the wrong link_idx when a p2p_device is present
| * 0dd6c62c13 wifi: mt76: mt7925: fix country count limitation for CLC
| * 1706a07b38 wifi: mt76: mt7925: ensure wow pattern command align fw format
| * eb434adf79 wifi: mac80211: fix integer overflow in hwmp_route_info_get()
| * ef44c9e811 wifi: mt76: Add check for devm_kstrdup()
| * 9d6b789a8f clocksource/drivers/stm32-lptimer: Use wakeup capable instead of init wakeup
| * 9d99358349 mtd: Replace kcalloc() with devm_kcalloc()
| * 2b27df6852 net: dsa: mv88e6xxx: fix internal PHYs for 6320 family
| * 020404265b net: dsa: mv88e6xxx: workaround RGMII transmit delay erratum for 6320 family
| * 39fc127422 mtd: Add check for devm_kcalloc()
| * 91e1405088 mptcp: sockopt: fix getting freebind & transparent
| * 1b4ecd033e mptcp: sockopt: fix getting IPV6_V6ONLY
| * c59dc7c425 media: chips-media: wave5: Fix timeout while testing 10bit hevc fluster
| * d595713de7 media: chips-media: wave5: Fix a hang after seeking
| * 76cab9f540 media: chips-media: wave5: Avoid race condition in the interrupt handler
| * 7fafaf00cc media: chips-media: wave5: Fix gray color on screen
| * 6f77a6d2ea media: i2c: imx214: Rectify probe error handling related to runtime PM
| * 8dd2d1561c media: i2c: imx219: Rectify runtime PM handling in probe and remove
| * 99f9299147 media: i2c: imx319: Rectify runtime PM handling probe and remove
| * bb3fd8b790 media: venus: hfi_parser: refactor hfi packet parsing logic
| * 53e376178c media: venus: hfi_parser: add check to avoid out of bound access
| * 3da0d73187 media: nuvoton: Fix reference handling of ece_pdev
| * 4b1bdaadbf media: nuvoton: Fix reference handling of ece_node
| * e22fa60bcd media: i2c: ov7251: Introduce 1 ms delay between regulators and en GPIO
| * b155aecd7f media: i2c: ov7251: Set enable GPIO low in probe
| * ad466aacb1 media: i2c: ccs: Set the device's runtime PM status correctly in probe
| * 983b5434a6 media: i2c: ccs: Set the device's runtime PM status correctly in remove
| * 3ff4feef7a Revert "media: imx214: Fix the error handling in imx214_probe()"
| * baea1762cd media: v4l2-dv-timings: prevent possible overflow in v4l2_detect_gtf()
| * b933486f6b media: imx219: Adjust PLL settings based on the number of MIPI lanes
| * dd0d323b47 media: platform: stm32: Add check for clk_enable()
| * 3f1f712f80 media: visl: Fix ERANGE error when setting enum controls
| * f67c3f8452 media: hi556: Fix memory leak (on error) in hi556_check_hwcfg()
| * df6ef66cc3 media: streamzap: prevent processing IR data on URB failure
| * afada73000 accel/ivpu: Fix PM related deadlocks in MS IOCTLs
| * 4c8056fbb1 tpm, tpm_tis: Fix timeout handling when waiting for TPM status
| * 7266066b94 mtd: rawnand: brcmnand: fix PM resume warning
| * 33607e9240 spi: cadence-qspi: Fix probe on AM62A LP SK
| * c322789613 KVM: arm64: Tear down vGIC on failed vCPU creation
| * 20c105f587 arm64: errata: Add KRYO 2XX/3XX/4XX silver cores to Spectre BHB safe list
| * 3b0f2526c8 arm64: errata: Assume that unknown CPUs _are_ vulnerable to Spectre BHB
| * 4af2858435 arm64: errata: Add QCOM_KRYO_4XX_GOLD to the spectre_bhb_k24_list
| * 2ff58c5b26 arm64: cputype: Add MIDR_CORTEX_A76AE
| * 7e619d4d27 xenfs/xensyms: respect hypervisor's "next" indication
| * 88962f1978 media: rockchip: rga: fix rga offset lookup
| * ceb23f66ef media: siano: Fix error handling in smsdvb_module_init()
| * 7631d17608 media: vim2m: print device name after registering device
| * 679424f8b3 media: venus: hfi: add check to handle incorrect queue size
| * 530f623f56 media: venus: hfi: add a check to handle OOB in sfr region
| * 72629a582d media: intel/ipu6: set the dev_parent of video device to pdev
| * f598940803 media: mgb4: Fix switched CMT frequency range "magic values" sets
| * 66e35600f7 media: i2c: adv748x: Fix test pattern selection mask
| * 1c673fa888 media: mgb4: Fix CMT registers update logic
| * ced0ddecc0 media: uapi: rkisp1-config: Fix typo in extensible params example
| * 8c64a2cfdb media: mtk-vcodec: venc: avoid -Wenum-compare-conditional warning
| * 9f009fa823 media: mediatek: vcodec: Fix a resource leak related to the scp device in FW initialization
| * 956c5e4965 dt-bindings: media: st,stmipid02: correct lane-polarities maxItems
| * a9a73da6e0 auxdisplay: hd44780: Fix an API misuse in hd44780.c
| * bdbc38bd12 HID: pidff: Fix set_device_control()
| * 1565ead12f HID: pidff: Fix 90 degrees direction name North -> East
| * 5318556ed3 HID: pidff: Compute INFINITE value instead of using hardcoded 0xffff
| * b15301f289 HID: pidff: Clamp effect playback LOOP_COUNT value
| * 42ec3b5bf7 HID: pidff: Rename two functions to align them with naming convention
| * b782892cd2 HID: pidff: Remove redundant call to pidff_find_special_keys
| * 239c8ac58c HID: pidff: Support device error response from PID_BLOCK_LOAD
| * 2d698115f9 HID: pidff: Comment and code style update
| * 35ebc643af HID: hid-universal-pidff: Add Asetek wheelbases support
| * 2118618697 HID: pidff: Make sure to fetch pool before checking SIMULTANEOUS_MAX
| * 13d15dd617 HID: pidff: Factor out pool report fetch and remove excess declaration
| * 6fbf2ac6d5 HID: pidff: Use macros instead of hardcoded min/max values for shorts
| * 87783d301e HID: pidff: Simplify pidff_rescale_signed
| * 61e4de1728 HID: pidff: Move all hid-pidff definitions to a dedicated header
| * 8f0b2d791e HID: pidff: Factor out code for setting gain
| * 5243ca2a5c HID: pidff: Rescale time values to match field units
| * 7009a060ff HID: pidff: Define values used in pidff_find_special_fields
| * 9cdd95f9a4 HID: pidff: Simplify pidff_upload_effect function
| * 433c4234ff HID: pidff: Completely rework and fix pidff_reset function
| * 2b1e13ed29 HID: pidff: Stop all effects before enabling actuators
| * 629405d185 HID: pidff: Clamp PERIODIC effect period to device's logical range
* | 44229c2d55 Revert "PCI: Check BAR index for validity"
* | 4e0cc11458 Merge 43e5e2879d ("s390/pci: Fix s390_mmio_read/write syscall page fault handling") into android16-6.12-lts
|\|
| * 43e5e2879d s390/pci: Fix s390_mmio_read/write syscall page fault handling
| * dd3edffae8 ext4: don't treat fhandle lookup of ea_inode as FS corruption
| * 806908d5d9 bpf: support SKF_NET_OFF and SKF_LL_OFF on skb frags
| * 7b9bdd7059 erofs: set error to bio if file-backed IO fails
| * 61f590c677 pwm: fsl-ftm: Handle clk_get_rate() returning 0
| * a2786a82de pwm: rcar: Improve register calculation
| * 4cb15042b5 pwm: mediatek: Prevent divide-by-zero in pwm_mediatek_config()
| * 2bef78f962 tpm: End any active auth session before shutdown
| * 01c2ed3f7d tpm, tpm_tis: Workaround failed command reception on Infineon devices
| * a4e3c80cec ktest: Fix Test Failures Due to Missing LOG_FILE Directories
| * 9a6be23eb0 tracing: probe-events: Add comments about entry data storing code
| * 52eafaa56f fbdev: omapfb: Add 'plane' value check
| * fb4c507bf2 drm/amdgpu: grab an additional reference on the gang fence v2
| * 5c3cfcf0b4 PCI: vmd: Make vmd_dev::cfg_lock a raw_spinlock_t type
| * 73d2b96250 PCI: Check BAR index for validity
| * e64be12f84 drm/amdgpu: Fix the race condition for draining retry fault
| * 8feefd106a PCI: Enable Configuration RRS SV early
| * dc4380f346 drm/amdgpu: handle amdgpu_cgs_create_device() errors in amd_powerplay_create()
| * 7a872981c6 PCI: Add Rockchip Vendor ID
| * 6e415cb823 drm/mediatek: mtk_dpi: Explicitly manage TVD clock in power on/off
| * 39a7576d11 drm/mediatek: mtk_dpi: Move the input_2p_en bit to platform data
| * 831c4017f4 drm/xe/xelp: Move Wa_16011163337 from tunings to workarounds
| * 1a322b330d drm/amdkfd: debugfs hang_hws skip GPU with MES
| * 10ce36501f drm/amdkfd: Fix pqm_destroy_queue race with GPU reset
| * ffd37d7d44 drm/amdkfd: Fix mode1 reset crash issue
| * 96757c085b drm/amdkfd: clamp queue size to minimum
| * 1c38108a49 drivers: base: devres: Allow to release group on device release
| * c9323cbc94 drm/amd/display: stop DML2 from removing pipes based on planes
| * b22cb42a5e drm/bridge: panel: forbid initializing a panel with unknown connector type
| * f04612890c drm/debugfs: fix printk format for bridge index
| * ba5a998f84 drm: panel-orientation-quirks: Add quirk for OneXPlayer Mini (Intel)
| * a64e097426 drm: panel-orientation-quirks: Add new quirk for GPD Win 2
| * 5dd6fdb889 drm: panel-orientation-quirks: Add quirk for AYA NEO Slide
| * 6fe4ed94ee drm: panel-orientation-quirks: Add quirks for AYA NEO Flip DS and KB
| * df33b535f0 drm: panel-orientation-quirks: Add support for AYANEO 2S
| * 357ba4ed69 drm/amdgpu: Unlocked unmap only clear page table leaves
| * c15a9c8449 drm/amd/display: Update Cursor request mode to the beginning prefetch always
| * 2eec2fa866 drm/xe/vf: Don't try to trigger a full GT reset if VF
| * 4a5f14246b drm/xe/bmg: Add new PCI IDs
| * 044c1b3528 drm: allow encoder mode_set even when connectors change for crtc
| * 09246dfb5c Bluetooth: Add quirk for broken READ_PAGE_SCAN_TYPE
| * 035e1bffc0 Bluetooth: Add quirk for broken READ_VOICE_SETTING
| * feed98579d Bluetooth: qca: simplify WCN399x NVM loading
| * fe6f1f349d Bluetooth: hci_qca: use the power sequencer for wcn6750
| * a4d49212e3 Bluetooth: btusb: Add 2 HWIDs for MT7922
| * 6b7a32fa9b Bluetooth: hci_uart: fix race during initialization
| * 082ae971a1 Bluetooth: btintel_pcie: Add device id of Whale Peak
| * 40c70ff44b tracing: fix return value in __ftrace_event_enable_disable for TRACE_REG_UNREGISTER
| * 299d7d27af net: vlan: don't propagate flags on open
| * fe51630ba2 wifi: mt76: mt76x2u: add TP-Link TL-WDN6200 ID to device table
| * bf089c4d11 btrfs: harden block_group::bg_list against list_del() races
| * 0519ba030c ahci: Marvell 88SE9215 controllers prefer DMA for ATAPI
| * 7fe3b4deed scsi: st: Fix array overflow in st_setup()
| * a8a8076210 cdc_ether|r8152: ThinkPad Hybrid USB-C/A Dock quirk
| * eb59cc31b6 ext4: ignore xattrs past end
| * aa39d45071 Revert "f2fs: rebuild nat_bits during umount"
| * 5f815757e6 ext4: protect ext4_release_dquot against freezing
| * 202ba2f483 ahci: add PCI ID for Marvell 88SE9215 SATA Controller
| * 163e8c1083 net: sfp: add quirk for FS SFP-10GM-T copper SFP+ module
| * ecc4613316 f2fs: fix to avoid out-of-bounds access in f2fs_truncate_inode_blocks()
| * 3abe15e756 wifi: ath12k: Fix invalid data access in ath12k_dp_rx_h_undecap_nwifi
| * 1833e16500 net: sfp: add quirk for 2.5G OEM BX SFP
| * 04c0c55504 ata: libata-eh: Do not use ATAPI DMA for a device limited to PIO mode
| * ccd97c8a4f jfs: add sanity check for agwidth in dbMount
| * aeb926e605 jfs: Prevent copying of nlink with value 0 from disk inode
| * c802a6a400 fs/jfs: Prevent integer overflow in AG size calculation
| * 319877db0a fs/jfs: cast inactags to s64 to prevent potential overflow
| * 63148ce490 jfs: Fix uninit-value access of imap allocated in the diMount() function
* | 7934407f6a ANDROID: GKI: db845c: add dma_alloc/free_pages to the symbol list
* | 5b889365dc Revert "perf/core: Add aux_pause, aux_resume, aux_start_paused"
* | 1f8271add4 Revert "perf/core: Simplify the perf_event_alloc() error path"
* | f4efd677fe Revert "perf: Fix hang while freeing sigtrap event"
* | 195e9f73e5 Merge 8e7bb66360 ("can: flexcan: add NXP S32G2/S32G3 SoC support") into android16-6.12-lts
|\|
| * 8e7bb66360 can: flexcan: add NXP S32G2/S32G3 SoC support
| * fba5f41f15 can: flexcan: Add quirk to handle separate interrupt lines for mailboxes
| * 7204335d19 page_pool: avoid infinite loop to schedule delayed worker
| * de94d0ca9e net: usb: asix_devices: add FiberGecko DeviceID
| * 93a562eedc scsi: target: spc: Fix RSOC parameter data header size
| * 4ae2c7c7d3 wifi: mac80211: ensure sdata->work is canceled before initialized.
| * cca16fbd17 wifi: mac80211: add strict mode disabling workarounds
| * c6e50cb8bf f2fs: don't retry IO for corrupted data scenario
| * a6bf0fd322 net: page_pool: don't cast mp param to devmem
| * 65ba18c84d scsi: mpi3mr: Synchronous access b/w reset and tm thread for reply queue
| * 6a35449df8 scsi: mpi3mr: Avoid reply queue full condition
| * b1e0b4f494 ata: libata-core: Add 'external' to the libata.force kernel parameter
| * 535b666118 wifi: ath12k: Fix invalid entry fetch in ath12k_dp_mon_srng_process
| * 3cb47b5092 wifi: ath12k: fix memory leak in ath12k_pci_remove()
| * a3981850f1 wifi: ath11k: fix memory leak in ath11k_xxx_remove()
| * b92c5179db wifi: ath11k: Fix DMA buffer allocation to resolve SWIOTLB issues
| * 90a5892d85 platform/x86: x86-android-tablets: Add select POWER_SUPPLY to Kconfig
| * 7f04c9e8ff ASoC: amd: yc: update quirk data for new Lenovo model
| * 3a03a7f0f8 ASoC: amd: Add DMI quirk for ACP6X mic support
| * cb1c6cb110 ALSA: usb-audio: Fix CME quirk for UF series keyboards
| * fe74885e36 mmc: dw_mmc: add a quirk for accessing 64-bit FIFOs in two halves
| * 6d32a30fa1 media: s5p-mfc: Corrected NV12M/NV21M plane-sizes
| * 3c057a4904 media: uvcvideo: Add quirk for Actions UVC05
| * d4fcd06e12 ASoC: fsl_audmix: register card device depends on 'dais' property
| * d981c3d298 ALSA: hda: intel: Add Lenovo IdeaPad Z570 to probe denylist
| * 97ae1d5080 ALSA: hda: intel: Fix Optimus when GPU has no sound
| * 25490b45d1 ASoC: amd: ps: use macro for ACP6.3 pci revision id
| * f8f4d77710 HID: pidff: Fix null pointer dereference in pidff_find_fields
| * 0301b85fe6 HID: pidff: Add PERIODIC_SINE_ONLY quirk
| * f45f26a6b3 HID: Add hid-universal-pidff driver and supported device ids
| * 116d4f67ae HID: pidff: Add FIX_WHEEL_DIRECTION quirk
| * ed806fd80e HID: pidff: Add hid_pidff_init_with_quirks and export as GPL symbol
| * 6a20fae104 HID: pidff: Add PERMISSIVE_CONTROL quirk
| * fd608e2a06 HID: pidff: Add MISSING_PBO quirk and its detection
| * fab3dbb604 HID: pidff: Add MISSING_DELAY quirk and its detection
| * d21ccf544c HID: pidff: Do not send effect envelope if it's empty
| * 1c0785f164 HID: pidff: Convert infinite length from Linux API to PID standard
| * 5330ce1ee2 ASoC: SOF: topology: Use krealloc_array() to replace krealloc()
| * 377b041c22 platform/chrome: cros_ec_lpc: Match on Framework ACPI device
| * 97f68e7287 zstd: Increase DYNAMIC_BMI2 GCC version cutoff from 4.8 to 11.0 to work around compiler segfault
| * 8d0f280e7a xen/mcelog: Add __nonstring annotations for unterminated strings
| * cb58e90920 arm64: cputype: Add QCOM_CPU_PART_KRYO_3XX_GOLD
| * ead1fc9f93 Flush console log from kernel_power_off()
| * 11ae4fec1f PM: hibernate: Avoid deadlock in hibernate_compressor_param_set()
| * 89a4db7a67 perf/dwc_pcie: fix some unreleased resources
| * 1b3ebfb15d perf: arm_pmu: Don't disable counter in armpmu_add()
| * f48625eeeb x86/cpu: Don't clear X86_FEATURE_LAHF_LM flag in init_amd_k8() on AMD when running in a virtual machine
| * 48e705652d x86/ia32: Leave NULL selector values 0~3 unchanged
| * 640bb22521 x86/percpu: Disable named address spaces for UBSAN_BOOL with KASAN for GCC < 14.2
| * 837f5cb7be x86/mm: Clear _PAGE_DIRTY for kernel mappings when we clear _PAGE_RW
| * f8d28fa305 pm: cpupower: bench: Prevent NULL dereference on malloc failure
| * 67e85cfa95 umount: Allow superblock owners to force umount
| * 52535688c2 fs: consistently deref the files table with rcu_dereference_raw()
| * fa1827fa96 perf: Fix hang while freeing sigtrap event
| * 7ef5aa081f perf/core: Simplify the perf_event_alloc() error path
| * c61feda373 perf/core: Add aux_pause, aux_resume, aux_start_paused
| * a0842539e8 iommu/mediatek: Fix NULL pointer deference in mtk_iommu_device_group
| * 5efd53900a iommu/exynos: Fix suspend/resume with IDENTITY domain
| * 7640c2abb6 nft_set_pipapo: fix incorrect avx2 match of 5th field octet
| * b4c836d33c net: ppp: Add bound checking for skb data on ppp_sync_txmung
* | 4485f579eb Revert "cgroup/cpuset: Fix race between newly created partition and dying one"
* | 4aefb4fba6 Merge cc16f7402a ("ipv6: Align behavior across nexthops during path selection") into android16-6.12-lts
|\|
| * cc16f7402a ipv6: Align behavior across nexthops during path selection
| * a6ed6f8ec8 net: phy: allow MDIO bus PM ops to start/stop state machine for phylink-controlled PHY
| * 6d98cd6342 net: phy: move phy_link_change() prior to mdio_bus_phy_may_suspend()
| * aa5a1e4b88 smb: client: fix UAF in decryption with multichannel
| * f86293adce net_sched: sch_sfq: move the limit validation
| * 70449ca406 net_sched: sch_sfq: use a temporary work area for validating configuration
| * ec12da4bcc nvmet-fcloop: swap list_add_tail arguments
| * c5a9068061 drm/i915/huc: Fix fence not released on early probe errors
| * 0ae84adbc9 ata: sata_sx4: Add error handling in pdc20621_i2c_read()
| * ad81d666e1 net: libwx: handle page_pool_dev_alloc_pages error
| * c81306c9d6 drm/tests: probe-helper: Fix drm_display_mode memory leak
| * 80f4dc6e1f drm/tests: modes: Fix drm_display_mode memory leak
| * c7a0a32e6c drm/tests: cmdline: Fix drm_display_mode memory leak
| * f951d643bc drm/tests: helpers: Create kunit helper to destroy a drm_display_mode
| * 71dd750a08 drm/tests: modeset: Fix drm_display_mode memory leak
| * a065b99605 net: ethtool: Don't call .cleanup_data when prepare_data fails
| * b2f3c3d57a tc: Ensure we have enough buffer space when sending filter netlink notifications
| * f0bb06b9f1 octeontx2-pf: qos: fix VF root node parent queue index
| * 9fcbca0f80 net: tls: explicitly disallow disconnect
| * 4d55144b12 codel: remove sch->q.qlen check before qdisc_tree_reduce_backlog()
| * 7c5957f790 tipc: fix memory leak in tipc_link_xmit
| * 1b7685256d objtool: Fix INSN_CONTEXT_SWITCH handling in validate_unret()
| * ee2b0301d6 ata: pata_pxa: Fix potential NULL pointer dereference in pxa_ata_probe()
| * 9e0bdc1557 drm/xe/hw_engine: define sysfs_ops on all directories
| * 857e9432da x86/acpi: Don't limit CPUs to 1 for Xen PV guests due to disabled ACPI
| * 9ddc7edc55 drm/i915: Disable RPG during live selftest
| * caa5c8a235 ublk: fix handling recovery & reissue in ublk_abort_queue()
| * cb8372e54f ublk: refactor recovery configuration flag helpers
| * 206d0df7b6 selftests/futex: futex_waitv wouldblock test should fail
| * 179ef2f810 gpiolib: of: Fix the choice for Ingenic NAND quirk
| * cdb6e724e7 cgroup/cpuset: Fix race between newly created partition and dying one
| * 1b06f00eda cgroup/cpuset: Further optimize code if CONFIG_CPUSETS_V1 not set
| * 6b145f8b22 cgroup/cpuset: Enforce at most one rebuild_sched_domains_locked() call per operation
| * 2dbd1b1660 cgroup/cpuset: Revert "Allow suppression of sched domain rebuild in update_cpumasks_hier()"
| * 9701dcbf5f cgroup/cpuset: Fix error handling in remote_partition_disable()
| * 40bc55e4fc cgroup/cpuset: Fix incorrect isolated_cpus update in update_parent_effective_cpumask()
| * b980b83231 ASoC: Intel: adl: add 2xrt1316 audio configuration
* 4c1ccdf129 Merge branch 'android16-6.12' into android16-6.12-lts

Change-Id: I240b43fe2c84aa7ddb06a06cbc68edc1d53b709a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman
2025-06-16 06:46:53 +00:00
1204 changed files with 18697 additions and 10194 deletions

View File

@@ -5,5 +5,5 @@ check-private-items = true
disallowed-macros = [
# The `clippy::dbg_macro` lint only works with `std::dbg!`, thus we simulate
# it here, see: https://github.com/rust-lang/rust-clippy/issues/11303.
{ path = "kernel::dbg", reason = "the `dbg!` macro is intended as a debugging tool" },
{ path = "kernel::dbg", reason = "the `dbg!` macro is intended as a debugging tool", allow-invalid = true },
]

View File

@@ -511,6 +511,7 @@ Description: information about CPUs heterogeneity.
What: /sys/devices/system/cpu/vulnerabilities
/sys/devices/system/cpu/vulnerabilities/gather_data_sampling
/sys/devices/system/cpu/vulnerabilities/indirect_target_selection
/sys/devices/system/cpu/vulnerabilities/itlb_multihit
/sys/devices/system/cpu/vulnerabilities/l1tf
/sys/devices/system/cpu/vulnerabilities/mds

View File

@@ -22,3 +22,4 @@ are configurable at compile, boot or run time.
srso
gather_data_sampling
reg-file-data-sampling
indirect-target-selection

View File

@@ -0,0 +1,168 @@
.. SPDX-License-Identifier: GPL-2.0
Indirect Target Selection (ITS)
===============================
ITS is a vulnerability in some Intel CPUs that support Enhanced IBRS and were
released before Alder Lake. ITS may allow an attacker to control the prediction
of indirect branches and RETs located in the lower half of a cacheline.
ITS is assigned CVE-2024-28956 with a CVSS score of 4.7 (Medium).
Scope of Impact
---------------
- **eIBRS Guest/Host Isolation**: Indirect branches in KVM/kernel may still be
predicted with unintended target corresponding to a branch in the guest.
- **Intra-Mode BTI**: In-kernel training such as through cBPF or other native
gadgets.
- **Indirect Branch Prediction Barrier (IBPB)**: After an IBPB, indirect
branches may still be predicted with targets corresponding to direct branches
executed prior to the IBPB. This is fixed by the IPU 2025.1 microcode, which
should be available via distro updates. Alternatively microcode can be
obtained from Intel's github repository [#f1]_.
Affected CPUs
-------------
Below is the list of ITS affected CPUs [#f2]_ [#f3]_:
======================== ============ ==================== ===============
Common name Family_Model eIBRS Intra-mode BTI
Guest/Host Isolation
======================== ============ ==================== ===============
SKYLAKE_X (step >= 6) 06_55H Affected Affected
ICELAKE_X 06_6AH Not affected Affected
ICELAKE_D 06_6CH Not affected Affected
ICELAKE_L 06_7EH Not affected Affected
TIGERLAKE_L 06_8CH Not affected Affected
TIGERLAKE 06_8DH Not affected Affected
KABYLAKE_L (step >= 12) 06_8EH Affected Affected
KABYLAKE (step >= 13) 06_9EH Affected Affected
COMETLAKE 06_A5H Affected Affected
COMETLAKE_L 06_A6H Affected Affected
ROCKETLAKE 06_A7H Not affected Affected
======================== ============ ==================== ===============
- All affected CPUs enumerate Enhanced IBRS feature.
- IBPB isolation is affected on all ITS affected CPUs, and need a microcode
update for mitigation.
- None of the affected CPUs enumerate BHI_CTRL which was introduced in Golden
Cove (Alder Lake and Sapphire Rapids). This can help guests to determine the
host's affected status.
- Intel Atom CPUs are not affected by ITS.
Mitigation
----------
As only the indirect branches and RETs that have their last byte of instruction
in the lower half of the cacheline are vulnerable to ITS, the basic idea behind
the mitigation is to not allow indirect branches in the lower half.
This is achieved by relying on existing retpoline support in the kernel, and in
compilers. ITS-vulnerable retpoline sites are runtime patched to point to newly
added ITS-safe thunks. These safe thunks consists of indirect branch in the
second half of the cacheline. Not all retpoline sites are patched to thunks, if
a retpoline site is evaluated to be ITS-safe, it is replaced with an inline
indirect branch.
Dynamic thunks
~~~~~~~~~~~~~~
From a dynamically allocated pool of safe-thunks, each vulnerable site is
replaced with a new thunk, such that they get a unique address. This could
improve the branch prediction accuracy. Also, it is a defense-in-depth measure
against aliasing.
Note, for simplicity, indirect branches in eBPF programs are always replaced
with a jump to a static thunk in __x86_indirect_its_thunk_array. If required,
in future this can be changed to use dynamic thunks.
All vulnerable RETs are replaced with a static thunk, they do not use dynamic
thunks. This is because RETs get their prediction from RSB mostly that does not
depend on source address. RETs that underflow RSB may benefit from dynamic
thunks. But, RETs significantly outnumber indirect branches, and any benefit
from a unique source address could be outweighed by the increased icache
footprint and iTLB pressure.
Retpoline
~~~~~~~~~
Retpoline sequence also mitigates ITS-unsafe indirect branches. For this
reason, when retpoline is enabled, ITS mitigation only relocates the RETs to
safe thunks. Unless user requested the RSB-stuffing mitigation.
RSB Stuffing
~~~~~~~~~~~~
RSB-stuffing via Call Depth Tracking is a mitigation for Retbleed RSB-underflow
attacks. And it also mitigates RETs that are vulnerable to ITS.
Mitigation in guests
^^^^^^^^^^^^^^^^^^^^
All guests deploy ITS mitigation by default, irrespective of eIBRS enumeration
and Family/Model of the guest. This is because eIBRS feature could be hidden
from a guest. One exception to this is when a guest enumerates BHI_DIS_S, which
indicates that the guest is running on an unaffected host.
To prevent guests from unnecessarily deploying the mitigation on unaffected
platforms, Intel has defined ITS_NO bit(62) in MSR IA32_ARCH_CAPABILITIES. When
a guest sees this bit set, it should not enumerate the ITS bug. Note, this bit
is not set by any hardware, but is **intended for VMMs to synthesize** it for
guests as per the host's affected status.
Mitigation options
^^^^^^^^^^^^^^^^^^
The ITS mitigation can be controlled using the "indirect_target_selection"
kernel parameter. The available options are:
======== ===================================================================
on (default) Deploy the "Aligned branch/return thunks" mitigation.
If spectre_v2 mitigation enables retpoline, aligned-thunks are only
deployed for the affected RET instructions. Retpoline mitigates
indirect branches.
off Disable ITS mitigation.
vmexit Equivalent to "=on" if the CPU is affected by guest/host isolation
part of ITS. Otherwise, mitigation is not deployed. This option is
useful when host userspace is not in the threat model, and only
attacks from guest to host are considered.
stuff Deploy RSB-fill mitigation when retpoline is also deployed.
Otherwise, deploy the default mitigation. When retpoline mitigation
is enabled, RSB-stuffing via Call-Depth-Tracking also mitigates
ITS.
force Force the ITS bug and deploy the default mitigation.
======== ===================================================================
Sysfs reporting
---------------
The sysfs file showing ITS mitigation status is:
/sys/devices/system/cpu/vulnerabilities/indirect_target_selection
Note, microcode mitigation status is not reported in this file.
The possible values in this file are:
.. list-table::
* - Not affected
- The processor is not vulnerable.
* - Vulnerable
- System is vulnerable and no mitigation has been applied.
* - Vulnerable, KVM: Not affected
- System is vulnerable to intra-mode BTI, but not affected by eIBRS
guest/host isolation.
* - Mitigation: Aligned branch/return thunks
- The mitigation is enabled, affected indirect branches and RETs are
relocated to safe thunks.
* - Mitigation: Retpolines, Stuffing RSB
- The mitigation is enabled using retpoline and RSB stuffing.
References
----------
.. [#f1] Microcode repository - https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files
.. [#f2] Affected Processors list - https://www.intel.com/content/www/us/en/developer/topic-technology/software-security-guidance/processors-affected-consolidated-product-cpu-model.html
.. [#f3] Affected Processors list (machine readable) - https://github.com/intel/Intel-affected-processor-list

View File

@@ -2160,6 +2160,23 @@
different crypto accelerators. This option can be used
to achieve best performance for particular HW.
indirect_target_selection= [X86,Intel] Mitigation control for Indirect
Target Selection(ITS) bug in Intel CPUs. Updated
microcode is also required for a fix in IBPB.
on: Enable mitigation (default).
off: Disable mitigation.
force: Force the ITS bug and deploy default
mitigation.
vmexit: Only deploy mitigation if CPU is affected by
guest/host isolation part of ITS.
stuff: Deploy RSB-fill mitigation when retpoline is
also deployed. Otherwise, deploy the default
mitigation.
For details see:
Documentation/admin-guide/hw-vuln/indirect-target-selection.rst
init= [KNL]
Format: <full_path>
Run specified binary instead of /sbin/init as init
@@ -3057,6 +3074,8 @@
* max_sec_lba48: Set or clear transfer size limit to
65535 sectors.
* external: Mark port as external (hotplug-capable).
* [no]lpm: Enable or disable link power management.
* [no]setxfer: Indicate if transfer speed mode setting
@@ -3537,6 +3556,7 @@
expose users to several CPU vulnerabilities.
Equivalent to: if nokaslr then kpti=0 [ARM64]
gather_data_sampling=off [X86]
indirect_target_selection=off [X86]
kvm.nx_huge_pages=off [X86]
l1tf=off [X86]
mds=off [X86]

View File

@@ -285,6 +285,12 @@ Before jumping into the kernel, the following conditions must be met:
- SCR_EL3.FGTEn (bit 27) must be initialised to 0b1.
For CPUs with the Fine Grained Traps 2 (FEAT_FGT2) extension present:
- If EL3 is present and the kernel is entered at EL2:
- SCR_EL3.FGTEn2 (bit 59) must be initialised to 0b1.
For CPUs with support for HCRX_EL2 (FEAT_HCX) present:
- If EL3 is present and the kernel is entered at EL2:
@@ -379,6 +385,22 @@ Before jumping into the kernel, the following conditions must be met:
- SMCR_EL2.EZT0 (bit 30) must be initialised to 0b1.
For CPUs with the Performance Monitors Extension (FEAT_PMUv3p9):
- If EL3 is present:
- MDCR_EL3.EnPM2 (bit 7) must be initialised to 0b1.
- If the kernel is entered at EL1 and EL2 is present:
- HDFGRTR2_EL2.nPMICNTR_EL0 (bit 2) must be initialised to 0b1.
- HDFGRTR2_EL2.nPMICFILTR_EL0 (bit 3) must be initialised to 0b1.
- HDFGRTR2_EL2.nPMUACR_EL1 (bit 4) must be initialised to 0b1.
- HDFGWTR2_EL2.nPMICNTR_EL0 (bit 2) must be initialised to 0b1.
- HDFGWTR2_EL2.nPMICFILTR_EL0 (bit 3) must be initialised to 0b1.
- HDFGWTR2_EL2.nPMUACR_EL1 (bit 4) must be initialised to 0b1.
For CPUs with Memory Copy and Memory Set instructions (FEAT_MOPS):
- If the kernel is entered at EL1 and EL2 is present:

View File

@@ -382,6 +382,14 @@ In case of new BPF instructions, once the changes have been accepted
into the Linux kernel, please implement support into LLVM's BPF back
end. See LLVM_ section below for further information.
Q: What "BPF_INTERNAL" symbol namespace is for?
-----------------------------------------------
A: Symbols exported as BPF_INTERNAL can only be used by BPF infrastructure
like preload kernel modules with light skeleton. Most symbols outside
of BPF_INTERNAL are not expected to be used by code outside of BPF either.
Symbols may lack the designation because they predate the namespaces,
or due to an oversight.
Stable submission
=================

View File

@@ -55,8 +55,7 @@ properties:
- const: arm,primecell
reg:
minItems: 1
maxItems: 2
maxItems: 1
clocks:
maxItems: 1

View File

@@ -41,8 +41,7 @@ properties:
- const: arm,primecell
reg:
minItems: 1
maxItems: 2
maxItems: 1
qcom,dsb-element-bits:
description:

View File

@@ -71,7 +71,7 @@ properties:
description:
Any lane can be inverted or not.
minItems: 1
maxItems: 2
maxItems: 3
required:
- data-lanes

View File

@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale Layerscape Reset Registers Module
maintainers:
- Frank Li
- Frank Li <Frank.Li@nxp.com>
description:
Reset Module includes chip reset, service processor control and Reset Control

View File

@@ -123,12 +123,12 @@ attribute-sets:
operations:
name-prefix: ovs-vport-cmd-
fixed-header: ovs-header
list:
-
name: new
doc: Create a new OVS vport
attribute-set: vport
fixed-header: ovs-header
do:
request:
attributes:
@@ -141,7 +141,6 @@ operations:
name: del
doc: Delete existing OVS vport from a data path
attribute-set: vport
fixed-header: ovs-header
do:
request:
attributes:
@@ -152,7 +151,6 @@ operations:
name: get
doc: Get / dump OVS vport configuration and state
attribute-set: vport
fixed-header: ovs-header
do: &vport-get-op
request:
attributes:

View File

@@ -1094,11 +1094,10 @@ attribute-sets:
-
name: prop-list
type: nest
nested-attributes: link-attrs
nested-attributes: prop-list-link-attrs
-
name: alt-ifname
type: string
multi-attr: true
-
name: perm-address
type: binary
@@ -1137,6 +1136,13 @@ attribute-sets:
name: dpll-pin
type: nest
nested-attributes: link-dpll-pin-attrs
-
name: prop-list-link-attrs
subset-of: link-attrs
attributes:
-
name: alt-ifname
multi-attr: true
-
name: af-spec-attrs
attributes:
@@ -2071,9 +2077,10 @@ attribute-sets:
type: u32
-
name: mctp-attrs
name-prefix: ifla-mctp-
attributes:
-
name: mctp-net
name: net
type: u32
-
name: stats-attrs
@@ -2319,7 +2326,6 @@ operations:
- min-mtu
- max-mtu
- prop-list
- alt-ifname
- perm-address
- proto-down-reason
- parent-dev-name

View File

@@ -2017,7 +2017,8 @@ attribute-sets:
attributes:
-
name: act
type: nest
type: indexed-array
sub-type: nest
nested-attributes: tc-act-attrs
-
name: police
@@ -2250,7 +2251,8 @@ attribute-sets:
attributes:
-
name: act
type: nest
type: indexed-array
sub-type: nest
nested-attributes: tc-act-attrs
-
name: police
@@ -2745,7 +2747,7 @@ attribute-sets:
type: u16
byte-order: big-endian
-
name: key-l2-tpv3-sid
name: key-l2tpv3-sid
type: u32
byte-order: big-endian
-
@@ -3504,7 +3506,7 @@ attribute-sets:
name: rate64
type: u64
-
name: prate4
name: prate64
type: u64
-
name: burst

View File

@@ -138,6 +138,10 @@ input data, the meaning of which depends on the subfeature being accessed.
The output buffer contains a single byte which signals success or failure (``0x00`` on failure)
and 31 bytes of output data, the meaning if which depends on the subfeature being accessed.
.. note::
The ACPI control method responsible for handling the WMI method calls is not thread-safe.
This is a firmware bug that needs to be handled inside the driver itself.
WMI method Get_EC()
-------------------

View File

@@ -17563,7 +17563,7 @@ F: include/uapi/linux/ppdev.h
PARAVIRT_OPS INTERFACE
M: Juergen Gross <jgross@suse.com>
R: Ajay Kaher <ajay.kaher@broadcom.com>
R: Alexey Makhalov <alexey.amakhalov@broadcom.com>
R: Alexey Makhalov <alexey.makhalov@broadcom.com>
R: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
L: virtualization@lists.linux.dev
L: x86@kernel.org
@@ -24790,7 +24790,7 @@ F: drivers/misc/vmw_balloon.c
VMWARE HYPERVISOR INTERFACE
M: Ajay Kaher <ajay.kaher@broadcom.com>
M: Alexey Makhalov <alexey.amakhalov@broadcom.com>
M: Alexey Makhalov <alexey.makhalov@broadcom.com>
R: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
L: virtualization@lists.linux.dev
L: x86@kernel.org
@@ -24818,7 +24818,7 @@ F: drivers/scsi/vmw_pvscsi.h
VMWARE VIRTUAL PTP CLOCK DRIVER
M: Nick Shi <nick.shi@broadcom.com>
R: Ajay Kaher <ajay.kaher@broadcom.com>
R: Alexey Makhalov <alexey.amakhalov@broadcom.com>
R: Alexey Makhalov <alexey.makhalov@broadcom.com>
R: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
L: netdev@vger.kernel.org
S: Supported

View File

@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 6
PATCHLEVEL = 12
SUBLEVEL = 23
SUBLEVEL = 30
EXTRAVERSION =
NAME = Baby Opossum Posse
@@ -473,7 +473,6 @@ export rust_common_flags := --edition=2021 \
-Wclippy::ignored_unit_patterns \
-Wclippy::mut_mut \
-Wclippy::needless_bitwise_bool \
-Wclippy::needless_continue \
-Aclippy::needless_lifetimes \
-Wclippy::no_mangle_with_rust_abi \
-Wclippy::undocumented_unsafe_blocks \
@@ -1045,6 +1044,12 @@ ifdef CONFIG_CC_IS_GCC
KBUILD_CFLAGS += -fconserve-stack
endif
# Ensure compilers do not transform certain loops into calls to wcslen()
KBUILD_CFLAGS += -fno-builtin-wcslen
# Ensure compilers do not transform certain loops into calls to wcslen()
KBUILD_CFLAGS += -fno-builtin-wcslen
# change __FILE__ to the relative path from the srctree
KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)

View File

@@ -40,6 +40,9 @@
reg = <1>;
interrupt-parent = <&gpio4>;
interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
micrel,led-mode = <1>;
clocks = <&clks IMX6UL_CLK_ENET_REF>;
clock-names = "rmii-ref";
status = "okay";
};
};

View File

@@ -3,10 +3,12 @@
menu "Accelerated Cryptographic Algorithms for CPU (arm)"
config CRYPTO_CURVE25519_NEON
tristate "Public key crypto: Curve25519 (NEON)"
tristate
depends on KERNEL_MODE_NEON
select CRYPTO_KPP
select CRYPTO_LIB_CURVE25519_GENERIC
select CRYPTO_ARCH_HAVE_LIB_CURVE25519
default CRYPTO_LIB_CURVE25519_INTERNAL
help
Curve25519 algorithm
@@ -45,9 +47,10 @@ config CRYPTO_NHPOLY1305_NEON
- NEON (Advanced SIMD) extensions
config CRYPTO_POLY1305_ARM
tristate "Hash functions: Poly1305 (NEON)"
tristate
select CRYPTO_HASH
select CRYPTO_ARCH_HAVE_LIB_POLY1305
default CRYPTO_LIB_POLY1305_INTERNAL
help
Poly1305 authenticator algorithm (RFC7539)
@@ -212,9 +215,10 @@ config CRYPTO_AES_ARM_CE
- ARMv8 Crypto Extensions
config CRYPTO_CHACHA20_NEON
tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (NEON)"
tristate
select CRYPTO_SKCIPHER
select CRYPTO_ARCH_HAVE_LIB_CHACHA
default CRYPTO_LIB_CHACHA_INTERNAL
help
Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
stream cipher algorithms

View File

@@ -116,6 +116,10 @@
status = "okay";
};
&clkc_audio {
status = "okay";
};
&frddr_a {
status = "okay";
};

View File

@@ -1451,6 +1451,7 @@
/* TODO: update once support for this CMU exists */
clocks = <0>;
clock-names = "pclk";
status = "disabled";
};
cmu_top: clock-controller@1e080000 {

View File

@@ -165,6 +165,19 @@
startup-delay-us = <20000>;
};
reg_usdhc2_vqmmc: regulator-usdhc2-vqmmc {
compatible = "regulator-gpio";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc2_vsel>;
gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <1800000>;
states = <1800000 0x1>,
<3300000 0x0>;
regulator-name = "PMIC_USDHC_VSELECT";
vin-supply = <&reg_nvcc_sd>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
@@ -290,7 +303,7 @@
"SODIMM_19",
"",
"",
"",
"PMIC_USDHC_VSELECT",
"",
"",
"",
@@ -801,6 +814,7 @@
pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_cd>;
pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_cd_sleep>;
vmmc-supply = <&reg_usdhc2_vmmc>;
vqmmc-supply = <&reg_usdhc2_vqmmc>;
};
&wdog1 {
@@ -1222,13 +1236,17 @@
<MX8MM_IOMUXC_NAND_CLE_GPIO3_IO5 0x6>; /* SODIMM 76 */
};
pinctrl_usdhc2_vsel: usdhc2vselgrp {
fsl,pins =
<MX8MM_IOMUXC_GPIO1_IO04_GPIO1_IO4 0x10>; /* PMIC_USDHC_VSELECT */
};
/*
* Note: Due to ERR050080 we use discrete external on-module resistors pulling-up to the
* on-module +V3.3_1.8_SD (LDO5) rail and explicitly disable the internal pull-ups here.
*/
pinctrl_usdhc2: usdhc2grp {
fsl,pins =
<MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x10>,
<MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x90>, /* SODIMM 78 */
<MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x90>, /* SODIMM 74 */
<MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x90>, /* SODIMM 80 */
@@ -1239,7 +1257,6 @@
pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
fsl,pins =
<MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x10>,
<MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x94>,
<MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x94>,
<MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x94>,
@@ -1250,7 +1267,6 @@
pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
fsl,pins =
<MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x10>,
<MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x96>,
<MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x96>,
<MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x96>,
@@ -1262,7 +1278,6 @@
/* Avoid backfeeding with removed card power */
pinctrl_usdhc2_sleep: usdhc2slpgrp {
fsl,pins =
<MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x0>,
<MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x0>,
<MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x0>,
<MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x0>,

View File

@@ -35,7 +35,6 @@
<0x1 0x00000000 0 0xc0000000>;
};
reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
compatible = "regulator-fixed";
regulator-name = "VSD_3V3";
@@ -46,6 +45,16 @@
startup-delay-us = <100>;
off-on-delay-us = <12000>;
};
reg_usdhc2_vqmmc: regulator-usdhc2-vqmmc {
compatible = "regulator-gpio";
regulator-name = "VSD_VSEL";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
states = <3300000 0x0 1800000 0x1>;
vin-supply = <&ldo5>;
};
};
&A53_0 {
@@ -205,6 +214,7 @@
pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
cd-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
vmmc-supply = <&reg_usdhc2_vmmc>;
vqmmc-supply = <&reg_usdhc2_vqmmc>;
bus-width = <4>;
status = "okay";
};

View File

@@ -1478,7 +1478,7 @@
reg = <0 0x4c300000 0 0x10000>,
<0 0x60100000 0 0xfe00000>,
<0 0x4c360000 0 0x10000>,
<0 0x4c340000 0 0x2000>;
<0 0x4c340000 0 0x4000>;
reg-names = "dbi", "config", "atu", "app";
ranges = <0x81000000 0x0 0x00000000 0x0 0x6ff00000 0 0x00100000>,
<0x82000000 0x0 0x10000000 0x9 0x10000000 0 0x10000000>;
@@ -1518,7 +1518,7 @@
reg = <0 0x4c300000 0 0x10000>,
<0 0x4c360000 0 0x1000>,
<0 0x4c320000 0 0x1000>,
<0 0x4c340000 0 0x2000>,
<0 0x4c340000 0 0x4000>,
<0 0x4c370000 0 0x10000>,
<0x9 0 1 0>;
reg-names = "dbi","atu", "dbi2", "app", "dma", "addr_space";
@@ -1545,7 +1545,7 @@
reg = <0 0x4c380000 0 0x10000>,
<8 0x80100000 0 0xfe00000>,
<0 0x4c3e0000 0 0x10000>,
<0 0x4c3c0000 0 0x2000>;
<0 0x4c3c0000 0 0x4000>;
reg-names = "dbi", "config", "atu", "app";
ranges = <0x81000000 0 0x00000000 0x8 0x8ff00000 0 0x00100000>,
<0x82000000 0 0x10000000 0xa 0x10000000 0 0x10000000>;
@@ -1585,7 +1585,7 @@
reg = <0 0x4c380000 0 0x10000>,
<0 0x4c3e0000 0 0x1000>,
<0 0x4c3a0000 0 0x1000>,
<0 0x4c3c0000 0 0x2000>,
<0 0x4c3c0000 0 0x4000>,
<0 0x4c3f0000 0 0x10000>,
<0xa 0 1 0>;
reg-names = "dbi", "atu", "dbi2", "app", "dma", "addr_space";

View File

@@ -1255,8 +1255,7 @@
};
pwm0: pwm@1401e000 {
compatible = "mediatek,mt8173-disp-pwm",
"mediatek,mt6595-disp-pwm";
compatible = "mediatek,mt8173-disp-pwm";
reg = <0 0x1401e000 0 0x1000>;
#pwm-cells = <2>;
clocks = <&mmsys CLK_MM_DISP_PWM026M>,
@@ -1266,8 +1265,7 @@
};
pwm1: pwm@1401f000 {
compatible = "mediatek,mt8173-disp-pwm",
"mediatek,mt6595-disp-pwm";
compatible = "mediatek,mt8173-disp-pwm";
reg = <0 0x1401f000 0 0x1000>;
#pwm-cells = <2>;
clocks = <&mmsys CLK_MM_DISP_PWM126M>,

View File

@@ -227,13 +227,6 @@
wakeup-event-action = <EV_ACT_ASSERTED>;
wakeup-source;
};
key-suspend {
label = "Suspend";
gpios = <&gpio TEGRA234_MAIN_GPIO(G, 2) GPIO_ACTIVE_LOW>;
linux,input-type = <EV_KEY>;
linux,code = <KEY_SLEEP>;
};
};
fan: pwm-fan {

View File

@@ -222,6 +222,10 @@
compatible = "realtek,rt5616";
reg = <0x1b>;
#sound-dai-cells = <0>;
assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
assigned-clock-rates = <12288000>;
clocks = <&cru I2S0_8CH_MCLKOUT>;
clock-names = "mclk";
};
};

View File

@@ -11,20 +11,15 @@
compatible = "operating-points-v2";
opp-shared;
opp-1416000000 {
opp-hz = /bits/ 64 <1416000000>;
opp-1200000000 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <750000 750000 950000>;
clock-latency-ns = <40000>;
opp-suspend;
};
opp-1608000000 {
opp-hz = /bits/ 64 <1608000000>;
opp-microvolt = <887500 887500 950000>;
clock-latency-ns = <40000>;
};
opp-1704000000 {
opp-hz = /bits/ 64 <1704000000>;
opp-microvolt = <937500 937500 950000>;
opp-1296000000 {
opp-hz = /bits/ 64 <1296000000>;
opp-microvolt = <775000 775000 950000>;
clock-latency-ns = <40000>;
};
};
@@ -33,9 +28,14 @@
compatible = "operating-points-v2";
opp-shared;
opp-1200000000{
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <750000 750000 950000>;
clock-latency-ns = <40000>;
};
opp-1416000000 {
opp-hz = /bits/ 64 <1416000000>;
opp-microvolt = <750000 750000 950000>;
opp-microvolt = <762500 762500 950000>;
clock-latency-ns = <40000>;
};
opp-1608000000 {
@@ -43,25 +43,20 @@
opp-microvolt = <787500 787500 950000>;
clock-latency-ns = <40000>;
};
opp-1800000000 {
opp-hz = /bits/ 64 <1800000000>;
opp-microvolt = <875000 875000 950000>;
clock-latency-ns = <40000>;
};
opp-2016000000 {
opp-hz = /bits/ 64 <2016000000>;
opp-microvolt = <950000 950000 950000>;
clock-latency-ns = <40000>;
};
};
cluster2_opp_table: opp-table-cluster2 {
compatible = "operating-points-v2";
opp-shared;
opp-1200000000{
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <750000 750000 950000>;
clock-latency-ns = <40000>;
};
opp-1416000000 {
opp-hz = /bits/ 64 <1416000000>;
opp-microvolt = <750000 750000 950000>;
opp-microvolt = <762500 762500 950000>;
clock-latency-ns = <40000>;
};
opp-1608000000 {
@@ -69,16 +64,6 @@
opp-microvolt = <787500 787500 950000>;
clock-latency-ns = <40000>;
};
opp-1800000000 {
opp-hz = /bits/ 64 <1800000000>;
opp-microvolt = <875000 875000 950000>;
clock-latency-ns = <40000>;
};
opp-2016000000 {
opp-hz = /bits/ 64 <2016000000>;
opp-microvolt = <950000 950000 950000>;
clock-latency-ns = <40000>;
};
};
gpu_opp_table: opp-table {
@@ -104,10 +89,6 @@
opp-hz = /bits/ 64 <700000000>;
opp-microvolt = <750000 750000 850000>;
};
opp-850000000 {
opp-hz = /bits/ 64 <800000000>;
opp-microvolt = <787500 787500 850000>;
};
};
};

View File

@@ -114,14 +114,13 @@
};
intc: interrupt-controller@4ac00000 {
compatible = "arm,cortex-a7-gic";
compatible = "arm,gic-400";
#interrupt-cells = <3>;
#address-cells = <1>;
interrupt-controller;
reg = <0x0 0x4ac10000 0x0 0x1000>,
<0x0 0x4ac20000 0x0 0x2000>,
<0x0 0x4ac40000 0x0 0x2000>,
<0x0 0x4ac60000 0x0 0x2000>;
<0x0 0x4ac20000 0x0 0x20000>,
<0x0 0x4ac40000 0x0 0x20000>,
<0x0 0x4ac60000 0x0 0x20000>;
};
psci {

View File

@@ -0,0 +1,148 @@
// SPDX-License-Identifier: GPL-2.0-only OR MIT
/*
* Device Tree Source for J784S4 and J742S2 SoC Family
*
* TRM (j784s4) (SPRUJ43 JULY 2022): https://www.ti.com/lit/zip/spruj52
* TRM (j742s2): https://www.ti.com/lit/pdf/spruje3
*
* Copyright (C) 2022-2024 Texas Instruments Incorporated - https://www.ti.com/
*
*/
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/soc/ti,sci_pm_domain.h>
#include "k3-pinctrl.h"
/ {
interrupt-parent = <&gic500>;
#address-cells = <2>;
#size-cells = <2>;
L2_0: l2-cache0 {
compatible = "cache";
cache-level = <2>;
cache-unified;
cache-size = <0x200000>;
cache-line-size = <64>;
cache-sets = <1024>;
next-level-cache = <&msmc_l3>;
};
L2_1: l2-cache1 {
compatible = "cache";
cache-level = <2>;
cache-unified;
cache-size = <0x200000>;
cache-line-size = <64>;
cache-sets = <1024>;
next-level-cache = <&msmc_l3>;
};
msmc_l3: l3-cache0 {
compatible = "cache";
cache-level = <3>;
cache-unified;
};
firmware {
optee {
compatible = "linaro,optee-tz";
method = "smc";
};
psci: psci {
compatible = "arm,psci-1.0";
method = "smc";
};
};
a72_timer0: timer-cl0-cpu0 {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* cntpsirq */
<GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* cntpnsirq */
<GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* cntvirq */
<GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* cnthpirq */
};
pmu: pmu {
compatible = "arm,cortex-a72-pmu";
/* Recommendation from GIC500 TRM Table A.3 */
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
};
cbass_main: bus@100000 {
bootph-all;
compatible = "simple-bus";
#address-cells = <2>;
#size-cells = <2>;
ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */
<0x00 0x00600000 0x00 0x00600000 0x00 0x00031100>, /* GPIO */
<0x00 0x00700000 0x00 0x00700000 0x00 0x00001000>, /* ESM */
<0x00 0x01000000 0x00 0x01000000 0x00 0x0d000000>, /* Most peripherals */
<0x00 0x04210000 0x00 0x04210000 0x00 0x00010000>, /* VPU0 */
<0x00 0x04220000 0x00 0x04220000 0x00 0x00010000>, /* VPU1 */
<0x00 0x0d000000 0x00 0x0d000000 0x00 0x00800000>, /* PCIe0 Core*/
<0x00 0x0d800000 0x00 0x0d800000 0x00 0x00800000>, /* PCIe1 Core*/
<0x00 0x0e000000 0x00 0x0e000000 0x00 0x00800000>, /* PCIe2 Core*/
<0x00 0x0e800000 0x00 0x0e800000 0x00 0x00800000>, /* PCIe3 Core*/
<0x00 0x10000000 0x00 0x10000000 0x00 0x08000000>, /* PCIe0 DAT0 */
<0x00 0x18000000 0x00 0x18000000 0x00 0x08000000>, /* PCIe1 DAT0 */
<0x00 0x64800000 0x00 0x64800000 0x00 0x0070c000>, /* C71_1 */
<0x00 0x65800000 0x00 0x65800000 0x00 0x0070c000>, /* C71_2 */
<0x00 0x66800000 0x00 0x66800000 0x00 0x0070c000>, /* C71_3 */
<0x00 0x67800000 0x00 0x67800000 0x00 0x0070c000>, /* C71_4 */
<0x00 0x6f000000 0x00 0x6f000000 0x00 0x00310000>, /* A72 PERIPHBASE */
<0x00 0x70000000 0x00 0x70000000 0x00 0x00400000>, /* MSMC RAM */
<0x00 0x30000000 0x00 0x30000000 0x00 0x0c400000>, /* MAIN NAVSS */
<0x40 0x00000000 0x40 0x00000000 0x01 0x00000000>, /* PCIe0 DAT1 */
<0x41 0x00000000 0x41 0x00000000 0x01 0x00000000>, /* PCIe1 DAT1 */
<0x42 0x00000000 0x42 0x00000000 0x01 0x00000000>, /* PCIe2 DAT1 */
<0x43 0x00000000 0x43 0x00000000 0x01 0x00000000>, /* PCIe3 DAT1 */
<0x44 0x00000000 0x44 0x00000000 0x00 0x08000000>, /* PCIe2 DAT0 */
<0x44 0x10000000 0x44 0x10000000 0x00 0x08000000>, /* PCIe3 DAT0 */
<0x4e 0x20000000 0x4e 0x20000000 0x00 0x00080000>, /* GPU */
/* MCUSS_WKUP Range */
<0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>,
<0x00 0x40200000 0x00 0x40200000 0x00 0x00998400>,
<0x00 0x40f00000 0x00 0x40f00000 0x00 0x00020000>,
<0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>,
<0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>,
<0x00 0x41c00000 0x00 0x41c00000 0x00 0x00100000>,
<0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>,
<0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>,
<0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>,
<0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>,
<0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>,
<0x04 0x00000000 0x04 0x00000000 0x04 0x00000000>;
cbass_mcu_wakeup: bus@28380000 {
bootph-all;
compatible = "simple-bus";
#address-cells = <2>;
#size-cells = <2>;
ranges = <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>, /* MCU NAVSS*/
<0x00 0x40200000 0x00 0x40200000 0x00 0x00998400>, /* First peripheral window */
<0x00 0x40f00000 0x00 0x40f00000 0x00 0x00020000>, /* CTRL_MMR0 */
<0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>, /* MCU R5F Core0 */
<0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>, /* MCU R5F Core1 */
<0x00 0x41c00000 0x00 0x41c00000 0x00 0x00100000>, /* MCU SRAM */
<0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, /* WKUP peripheral window */
<0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */
<0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, /* CPSW */
<0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>, /* OSPI register space */
<0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, /* FSS data region 1 */
<0x04 0x00000000 0x04 0x00000000 0x04 0x00000000>; /* FSS data region 0/3 */
};
};
thermal_zones: thermal-zones {
#include "k3-j784s4-j742s2-thermal-common.dtsi"
};
};
/* Now include peripherals from each bus segment */
#include "k3-j784s4-j742s2-main-common.dtsi"
#include "k3-j784s4-j742s2-mcu-wakeup-common.dtsi"

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only OR MIT
/*
* Device Tree Source for J784S4 SoC Family MCU/WAKEUP Domain peripherals
* Device Tree Source for J784S4 and J742S2 SoC Family MCU/WAKEUP Domain peripherals
*
* Copyright (C) 2022-2024 Texas Instruments Incorporated - https://www.ti.com/
*/

File diff suppressed because it is too large Load Diff

View File

@@ -8,18 +8,11 @@
*
*/
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/soc/ti,sci_pm_domain.h>
#include "k3-pinctrl.h"
#include "k3-j784s4-j742s2-common.dtsi"
/ {
model = "Texas Instruments K3 J784S4 SoC";
compatible = "ti,j784s4";
interrupt-parent = <&gic500>;
#address-cells = <2>;
#size-cells = <2>;
cpus {
#address-cells = <1>;
@@ -174,130 +167,6 @@
next-level-cache = <&L2_1>;
};
};
L2_0: l2-cache0 {
compatible = "cache";
cache-level = <2>;
cache-unified;
cache-size = <0x200000>;
cache-line-size = <64>;
cache-sets = <1024>;
next-level-cache = <&msmc_l3>;
};
L2_1: l2-cache1 {
compatible = "cache";
cache-level = <2>;
cache-unified;
cache-size = <0x200000>;
cache-line-size = <64>;
cache-sets = <1024>;
next-level-cache = <&msmc_l3>;
};
msmc_l3: l3-cache0 {
compatible = "cache";
cache-level = <3>;
cache-unified;
};
firmware {
optee {
compatible = "linaro,optee-tz";
method = "smc";
};
psci: psci {
compatible = "arm,psci-1.0";
method = "smc";
};
};
a72_timer0: timer-cl0-cpu0 {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* cntpsirq */
<GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* cntpnsirq */
<GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* cntvirq */
<GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* cnthpirq */
};
pmu: pmu {
compatible = "arm,cortex-a72-pmu";
/* Recommendation from GIC500 TRM Table A.3 */
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
};
cbass_main: bus@100000 {
bootph-all;
compatible = "simple-bus";
#address-cells = <2>;
#size-cells = <2>;
ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */
<0x00 0x00600000 0x00 0x00600000 0x00 0x00031100>, /* GPIO */
<0x00 0x00700000 0x00 0x00700000 0x00 0x00001000>, /* ESM */
<0x00 0x01000000 0x00 0x01000000 0x00 0x0d000000>, /* Most peripherals */
<0x00 0x04210000 0x00 0x04210000 0x00 0x00010000>, /* VPU0 */
<0x00 0x04220000 0x00 0x04220000 0x00 0x00010000>, /* VPU1 */
<0x00 0x0d000000 0x00 0x0d000000 0x00 0x00800000>, /* PCIe0 Core*/
<0x00 0x0d800000 0x00 0x0d800000 0x00 0x00800000>, /* PCIe1 Core*/
<0x00 0x0e000000 0x00 0x0e000000 0x00 0x00800000>, /* PCIe2 Core*/
<0x00 0x0e800000 0x00 0x0e800000 0x00 0x00800000>, /* PCIe3 Core*/
<0x00 0x10000000 0x00 0x10000000 0x00 0x08000000>, /* PCIe0 DAT0 */
<0x00 0x18000000 0x00 0x18000000 0x00 0x08000000>, /* PCIe1 DAT0 */
<0x00 0x64800000 0x00 0x64800000 0x00 0x0070c000>, /* C71_1 */
<0x00 0x65800000 0x00 0x65800000 0x00 0x0070c000>, /* C71_2 */
<0x00 0x66800000 0x00 0x66800000 0x00 0x0070c000>, /* C71_3 */
<0x00 0x67800000 0x00 0x67800000 0x00 0x0070c000>, /* C71_4 */
<0x00 0x6f000000 0x00 0x6f000000 0x00 0x00310000>, /* A72 PERIPHBASE */
<0x00 0x70000000 0x00 0x70000000 0x00 0x00400000>, /* MSMC RAM */
<0x00 0x30000000 0x00 0x30000000 0x00 0x0c400000>, /* MAIN NAVSS */
<0x40 0x00000000 0x40 0x00000000 0x01 0x00000000>, /* PCIe0 DAT1 */
<0x41 0x00000000 0x41 0x00000000 0x01 0x00000000>, /* PCIe1 DAT1 */
<0x42 0x00000000 0x42 0x00000000 0x01 0x00000000>, /* PCIe2 DAT1 */
<0x43 0x00000000 0x43 0x00000000 0x01 0x00000000>, /* PCIe3 DAT1 */
<0x44 0x00000000 0x44 0x00000000 0x00 0x08000000>, /* PCIe2 DAT0 */
<0x44 0x10000000 0x44 0x10000000 0x00 0x08000000>, /* PCIe3 DAT0 */
<0x4e 0x20000000 0x4e 0x20000000 0x00 0x00080000>, /* GPU */
/* MCUSS_WKUP Range */
<0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>,
<0x00 0x40200000 0x00 0x40200000 0x00 0x00998400>,
<0x00 0x40f00000 0x00 0x40f00000 0x00 0x00020000>,
<0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>,
<0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>,
<0x00 0x41c00000 0x00 0x41c00000 0x00 0x00100000>,
<0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>,
<0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>,
<0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>,
<0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>,
<0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>,
<0x04 0x00000000 0x04 0x00000000 0x04 0x00000000>;
cbass_mcu_wakeup: bus@28380000 {
bootph-all;
compatible = "simple-bus";
#address-cells = <2>;
#size-cells = <2>;
ranges = <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>, /* MCU NAVSS*/
<0x00 0x40200000 0x00 0x40200000 0x00 0x00998400>, /* First peripheral window */
<0x00 0x40f00000 0x00 0x40f00000 0x00 0x00020000>, /* CTRL_MMR0 */
<0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>, /* MCU R5F Core0 */
<0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>, /* MCU R5F Core1 */
<0x00 0x41c00000 0x00 0x41c00000 0x00 0x00100000>, /* MCU SRAM */
<0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, /* WKUP peripheral window */
<0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */
<0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, /* CPSW */
<0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>, /* OSPI register space */
<0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, /* FSS data region 1 */
<0x04 0x00000000 0x04 0x00000000 0x04 0x00000000>; /* FSS data region 0/3 */
};
};
thermal_zones: thermal-zones {
#include "k3-j784s4-thermal.dtsi"
};
};
/* Now include peripherals from each bus segment */
#include "k3-j784s4-main.dtsi"
#include "k3-j784s4-mcu-wakeup.dtsi"

View File

@@ -786,7 +786,6 @@ CONFIG_HEADERS_INSTALL=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_UBSAN=y
CONFIG_UBSAN_TRAP=y
# CONFIG_UBSAN_SIGNED_WRAP is not set
# CONFIG_UBSAN_BOOL is not set
# CONFIG_UBSAN_ENUM is not set
CONFIG_PAGE_OWNER=y

View File

@@ -26,10 +26,11 @@ config CRYPTO_NHPOLY1305_NEON
- NEON (Advanced SIMD) extensions
config CRYPTO_POLY1305_NEON
tristate "Hash functions: Poly1305 (NEON)"
tristate
depends on KERNEL_MODE_NEON
select CRYPTO_HASH
select CRYPTO_ARCH_HAVE_LIB_POLY1305
default CRYPTO_LIB_POLY1305_INTERNAL
help
Poly1305 authenticator algorithm (RFC7539)
@@ -186,11 +187,12 @@ config CRYPTO_AES_ARM64_NEON_BLK
- NEON (Advanced SIMD) extensions
config CRYPTO_CHACHA20_NEON
tristate "Ciphers: ChaCha (NEON)"
tristate
depends on KERNEL_MODE_NEON
select CRYPTO_SKCIPHER
select CRYPTO_LIB_CHACHA_GENERIC
select CRYPTO_ARCH_HAVE_LIB_CHACHA
default CRYPTO_LIB_CHACHA_INTERNAL
help
Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
stream cipher algorithms

View File

@@ -75,11 +75,13 @@
#define ARM_CPU_PART_CORTEX_A76 0xD0B
#define ARM_CPU_PART_NEOVERSE_N1 0xD0C
#define ARM_CPU_PART_CORTEX_A77 0xD0D
#define ARM_CPU_PART_CORTEX_A76AE 0xD0E
#define ARM_CPU_PART_NEOVERSE_V1 0xD40
#define ARM_CPU_PART_CORTEX_A78 0xD41
#define ARM_CPU_PART_CORTEX_A78AE 0xD42
#define ARM_CPU_PART_CORTEX_X1 0xD44
#define ARM_CPU_PART_CORTEX_A510 0xD46
#define ARM_CPU_PART_CORTEX_X1C 0xD4C
#define ARM_CPU_PART_CORTEX_A520 0xD80
#define ARM_CPU_PART_CORTEX_A710 0xD47
#define ARM_CPU_PART_CORTEX_A715 0xD4D
@@ -119,6 +121,7 @@
#define QCOM_CPU_PART_KRYO 0x200
#define QCOM_CPU_PART_KRYO_2XX_GOLD 0x800
#define QCOM_CPU_PART_KRYO_2XX_SILVER 0x801
#define QCOM_CPU_PART_KRYO_3XX_GOLD 0x802
#define QCOM_CPU_PART_KRYO_3XX_SILVER 0x803
#define QCOM_CPU_PART_KRYO_4XX_GOLD 0x804
#define QCOM_CPU_PART_KRYO_4XX_SILVER 0x805
@@ -158,11 +161,13 @@
#define MIDR_CORTEX_A76 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76)
#define MIDR_NEOVERSE_N1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N1)
#define MIDR_CORTEX_A77 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A77)
#define MIDR_CORTEX_A76AE MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76AE)
#define MIDR_NEOVERSE_V1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V1)
#define MIDR_CORTEX_A78 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78)
#define MIDR_CORTEX_A78AE MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78AE)
#define MIDR_CORTEX_X1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X1)
#define MIDR_CORTEX_A510 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A510)
#define MIDR_CORTEX_X1C MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X1C)
#define MIDR_CORTEX_A520 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A520)
#define MIDR_CORTEX_A710 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A710)
#define MIDR_CORTEX_A715 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A715)
@@ -195,6 +200,7 @@
#define MIDR_QCOM_KRYO MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO)
#define MIDR_QCOM_KRYO_2XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_2XX_GOLD)
#define MIDR_QCOM_KRYO_2XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_2XX_SILVER)
#define MIDR_QCOM_KRYO_3XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_3XX_GOLD)
#define MIDR_QCOM_KRYO_3XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_3XX_SILVER)
#define MIDR_QCOM_KRYO_4XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_GOLD)
#define MIDR_QCOM_KRYO_4XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_SILVER)

View File

@@ -215,6 +215,30 @@
.Lskip_fgt_\@:
.endm
.macro __init_el2_fgt2
mrs x1, id_aa64mmfr0_el1
ubfx x1, x1, #ID_AA64MMFR0_EL1_FGT_SHIFT, #4
cmp x1, #ID_AA64MMFR0_EL1_FGT_FGT2
b.lt .Lskip_fgt2_\@
mov x0, xzr
mrs x1, id_aa64dfr0_el1
ubfx x1, x1, #ID_AA64DFR0_EL1_PMUVer_SHIFT, #4
cmp x1, #ID_AA64DFR0_EL1_PMUVer_V3P9
b.lt .Lskip_pmuv3p9_\@
orr x0, x0, #HDFGRTR2_EL2_nPMICNTR_EL0
orr x0, x0, #HDFGRTR2_EL2_nPMICFILTR_EL0
orr x0, x0, #HDFGRTR2_EL2_nPMUACR_EL1
.Lskip_pmuv3p9_\@:
msr_s SYS_HDFGRTR2_EL2, x0
msr_s SYS_HDFGWTR2_EL2, x0
msr_s SYS_HFGRTR2_EL2, xzr
msr_s SYS_HFGWTR2_EL2, xzr
msr_s SYS_HFGITR2_EL2, xzr
.Lskip_fgt2_\@:
.endm
.macro __init_el2_nvhe_prepare_eret
mov x0, #INIT_PSTATE_EL1
msr spsr_el2, x0
@@ -240,6 +264,7 @@
__init_el2_nvhe_idregs
__init_el2_cptr
__init_el2_fgt
__init_el2_fgt2
.endm
#ifndef __KVM_NVHE_HYPERVISOR__

View File

@@ -693,6 +693,7 @@ u32 aarch64_insn_gen_cas(enum aarch64_insn_register result,
}
#endif
u32 aarch64_insn_gen_dmb(enum aarch64_insn_mb_type type);
u32 aarch64_insn_gen_dsb(enum aarch64_insn_mb_type type);
u32 aarch64_insn_gen_mrs(enum aarch64_insn_register result,
enum aarch64_insn_system_register sysreg);

View File

@@ -97,7 +97,9 @@ enum mitigation_state arm64_get_meltdown_state(void);
enum mitigation_state arm64_get_spectre_bhb_state(void);
bool is_spectre_bhb_affected(const struct arm64_cpu_capabilities *entry, int scope);
u8 spectre_bhb_loop_affected(int scope);
extern bool __nospectre_bhb;
u8 get_spectre_bhb_loop_value(void);
bool is_spectre_bhb_fw_mitigated(void);
void spectre_bhb_enable_mitigation(const struct arm64_cpu_capabilities *__unused);
bool try_emulate_el1_ssbs(struct pt_regs *regs, u32 instr);

View File

@@ -111,7 +111,14 @@ static struct arm64_cpu_capabilities const __ro_after_init *cpucap_ptrs[ARM64_NC
DECLARE_BITMAP(boot_cpucaps, ARM64_NCAPS);
bool arm64_use_ng_mappings = false;
/*
* arm64_use_ng_mappings must be placed in the .data section, otherwise it
* ends up in the .bss section where it is initialized in early_map_kernel()
* after the MMU (with the idmap) was enabled. create_init_idmap() - which
* runs before early_map_kernel() and reads the variable via PTE_MAYBE_NG -
* may end up generating an incorrect idmap page table attributes.
*/
bool arm64_use_ng_mappings __read_mostly = false;
EXPORT_SYMBOL(arm64_use_ng_mappings);
DEFINE_PER_CPU_READ_MOSTLY(const char *, this_cpu_vector) = vectors;

View File

@@ -845,52 +845,89 @@ static unsigned long system_bhb_mitigations;
* This must be called with SCOPE_LOCAL_CPU for each type of CPU, before any
* SCOPE_SYSTEM call will give the right answer.
*/
u8 spectre_bhb_loop_affected(int scope)
static bool is_spectre_bhb_safe(int scope)
{
static const struct midr_range spectre_bhb_safe_list[] = {
MIDR_ALL_VERSIONS(MIDR_CORTEX_A35),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A53),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A55),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A510),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A520),
MIDR_ALL_VERSIONS(MIDR_BRAHMA_B53),
MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_2XX_SILVER),
MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_3XX_SILVER),
MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_4XX_SILVER),
{},
};
static bool all_safe = true;
if (scope != SCOPE_LOCAL_CPU)
return all_safe;
if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_safe_list))
return true;
all_safe = false;
return false;
}
static u8 spectre_bhb_loop_affected(void)
{
u8 k = 0;
static u8 max_bhb_k;
if (scope == SCOPE_LOCAL_CPU) {
static const struct midr_range spectre_bhb_k32_list[] = {
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78AE),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78C),
MIDR_ALL_VERSIONS(MIDR_CORTEX_X1),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
MIDR_ALL_VERSIONS(MIDR_CORTEX_X2),
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V1),
{},
};
static const struct midr_range spectre_bhb_k24_list[] = {
MIDR_ALL_VERSIONS(MIDR_CORTEX_A76),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A77),
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1),
{},
};
static const struct midr_range spectre_bhb_k11_list[] = {
MIDR_ALL_VERSIONS(MIDR_AMPERE1),
{},
};
static const struct midr_range spectre_bhb_k8_list[] = {
MIDR_ALL_VERSIONS(MIDR_CORTEX_A72),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A57),
{},
};
static const struct midr_range spectre_bhb_k132_list[] = {
MIDR_ALL_VERSIONS(MIDR_CORTEX_X3),
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V2),
{},
};
static const struct midr_range spectre_bhb_k38_list[] = {
MIDR_ALL_VERSIONS(MIDR_CORTEX_A715),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A720),
{},
};
static const struct midr_range spectre_bhb_k32_list[] = {
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78AE),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78C),
MIDR_ALL_VERSIONS(MIDR_CORTEX_X1),
MIDR_ALL_VERSIONS(MIDR_CORTEX_X1C),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
MIDR_ALL_VERSIONS(MIDR_CORTEX_X2),
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V1),
{},
};
static const struct midr_range spectre_bhb_k24_list[] = {
MIDR_ALL_VERSIONS(MIDR_CORTEX_A76),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A76AE),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A77),
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1),
MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_4XX_GOLD),
{},
};
static const struct midr_range spectre_bhb_k11_list[] = {
MIDR_ALL_VERSIONS(MIDR_AMPERE1),
{},
};
static const struct midr_range spectre_bhb_k8_list[] = {
MIDR_ALL_VERSIONS(MIDR_CORTEX_A72),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A57),
{},
};
if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k32_list))
k = 32;
else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k24_list))
k = 24;
else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k11_list))
k = 11;
else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k8_list))
k = 8;
max_bhb_k = max(max_bhb_k, k);
} else {
k = max_bhb_k;
}
if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k132_list))
k = 132;
else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k38_list))
k = 38;
else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k32_list))
k = 32;
else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k24_list))
k = 24;
else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k11_list))
k = 11;
else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k8_list))
k = 8;
return k;
}
@@ -916,29 +953,13 @@ static enum mitigation_state spectre_bhb_get_cpu_fw_mitigation_state(void)
}
}
static bool is_spectre_bhb_fw_affected(int scope)
static bool has_spectre_bhb_fw_mitigation(void)
{
static bool system_affected;
enum mitigation_state fw_state;
bool has_smccc = arm_smccc_1_1_get_conduit() != SMCCC_CONDUIT_NONE;
static const struct midr_range spectre_bhb_firmware_mitigated_list[] = {
MIDR_ALL_VERSIONS(MIDR_CORTEX_A73),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A75),
{},
};
bool cpu_in_list = is_midr_in_range_list(read_cpuid_id(),
spectre_bhb_firmware_mitigated_list);
if (scope != SCOPE_LOCAL_CPU)
return system_affected;
fw_state = spectre_bhb_get_cpu_fw_mitigation_state();
if (cpu_in_list || (has_smccc && fw_state == SPECTRE_MITIGATED)) {
system_affected = true;
return true;
}
return false;
return has_smccc && fw_state == SPECTRE_MITIGATED;
}
static bool supports_ecbhb(int scope)
@@ -954,6 +975,8 @@ static bool supports_ecbhb(int scope)
ID_AA64MMFR1_EL1_ECBHB_SHIFT);
}
static u8 max_bhb_k;
bool is_spectre_bhb_affected(const struct arm64_cpu_capabilities *entry,
int scope)
{
@@ -962,16 +985,23 @@ bool is_spectre_bhb_affected(const struct arm64_cpu_capabilities *entry,
if (supports_csv2p3(scope))
return false;
if (supports_clearbhb(scope))
return true;
if (is_spectre_bhb_safe(scope))
return false;
if (spectre_bhb_loop_affected(scope))
return true;
/*
* At this point the core isn't known to be "safe" so we're going to
* assume it's vulnerable. We still need to update `max_bhb_k` though,
* but only if we aren't mitigating with clearbhb though.
*/
if (scope == SCOPE_LOCAL_CPU && !supports_clearbhb(SCOPE_LOCAL_CPU))
max_bhb_k = max(max_bhb_k, spectre_bhb_loop_affected());
if (is_spectre_bhb_fw_affected(scope))
return true;
return true;
}
return false;
u8 get_spectre_bhb_loop_value(void)
{
return max_bhb_k;
}
static void this_cpu_set_vectors(enum arm64_bp_harden_el1_vectors slot)
@@ -991,7 +1021,7 @@ static void this_cpu_set_vectors(enum arm64_bp_harden_el1_vectors slot)
isb();
}
static bool __read_mostly __nospectre_bhb;
bool __read_mostly __nospectre_bhb;
static int __init parse_spectre_bhb_param(char *str)
{
__nospectre_bhb = true;
@@ -1002,7 +1032,7 @@ early_param("nospectre_bhb", parse_spectre_bhb_param);
void spectre_bhb_enable_mitigation(const struct arm64_cpu_capabilities *entry)
{
bp_hardening_cb_t cpu_cb;
enum mitigation_state fw_state, state = SPECTRE_VULNERABLE;
enum mitigation_state state = SPECTRE_VULNERABLE;
struct bp_hardening_data *data = this_cpu_ptr(&bp_hardening_data);
if (!is_spectre_bhb_affected(entry, SCOPE_LOCAL_CPU))
@@ -1028,7 +1058,7 @@ void spectre_bhb_enable_mitigation(const struct arm64_cpu_capabilities *entry)
this_cpu_set_vectors(EL1_VECTOR_BHB_CLEAR_INSN);
state = SPECTRE_MITIGATED;
set_bit(BHB_INSN, &system_bhb_mitigations);
} else if (spectre_bhb_loop_affected(SCOPE_LOCAL_CPU)) {
} else if (spectre_bhb_loop_affected()) {
/*
* Ensure KVM uses the indirect vector which will have the
* branchy-loop added. A57/A72-r0 will already have selected
@@ -1041,37 +1071,39 @@ void spectre_bhb_enable_mitigation(const struct arm64_cpu_capabilities *entry)
this_cpu_set_vectors(EL1_VECTOR_BHB_LOOP);
state = SPECTRE_MITIGATED;
set_bit(BHB_LOOP, &system_bhb_mitigations);
} else if (is_spectre_bhb_fw_affected(SCOPE_LOCAL_CPU)) {
fw_state = spectre_bhb_get_cpu_fw_mitigation_state();
if (fw_state == SPECTRE_MITIGATED) {
/*
* Ensure KVM uses one of the spectre bp_hardening
* vectors. The indirect vector doesn't include the EL3
* call, so needs upgrading to
* HYP_VECTOR_SPECTRE_INDIRECT.
*/
if (!data->slot || data->slot == HYP_VECTOR_INDIRECT)
data->slot += 1;
} else if (has_spectre_bhb_fw_mitigation()) {
/*
* Ensure KVM uses one of the spectre bp_hardening
* vectors. The indirect vector doesn't include the EL3
* call, so needs upgrading to
* HYP_VECTOR_SPECTRE_INDIRECT.
*/
if (!data->slot || data->slot == HYP_VECTOR_INDIRECT)
data->slot += 1;
this_cpu_set_vectors(EL1_VECTOR_BHB_FW);
this_cpu_set_vectors(EL1_VECTOR_BHB_FW);
/*
* The WA3 call in the vectors supersedes the WA1 call
* made during context-switch. Uninstall any firmware
* bp_hardening callback.
*/
cpu_cb = spectre_v2_get_sw_mitigation_cb();
if (__this_cpu_read(bp_hardening_data.fn) != cpu_cb)
__this_cpu_write(bp_hardening_data.fn, NULL);
/*
* The WA3 call in the vectors supersedes the WA1 call
* made during context-switch. Uninstall any firmware
* bp_hardening callback.
*/
cpu_cb = spectre_v2_get_sw_mitigation_cb();
if (__this_cpu_read(bp_hardening_data.fn) != cpu_cb)
__this_cpu_write(bp_hardening_data.fn, NULL);
state = SPECTRE_MITIGATED;
set_bit(BHB_FW, &system_bhb_mitigations);
}
state = SPECTRE_MITIGATED;
set_bit(BHB_FW, &system_bhb_mitigations);
}
update_mitigation_state(&spectre_bhb_state, state);
}
bool is_spectre_bhb_fw_mitigated(void)
{
return test_bit(BHB_FW, &system_bhb_mitigations);
}
/* Patched to NOP when enabled */
void noinstr spectre_bhb_patch_loop_mitigation_enable(struct alt_instr *alt,
__le32 *origptr,
@@ -1100,7 +1132,6 @@ void noinstr spectre_bhb_patch_loop_iter(struct alt_instr *alt,
{
u8 rd;
u32 insn;
u16 loop_count = spectre_bhb_loop_affected(SCOPE_SYSTEM);
BUG_ON(nr_inst != 1); /* MOV -> MOV */
@@ -1109,7 +1140,7 @@ void noinstr spectre_bhb_patch_loop_iter(struct alt_instr *alt,
insn = le32_to_cpu(*origptr);
rd = aarch64_insn_decode_register(AARCH64_INSN_REGTYPE_RD, insn);
insn = aarch64_insn_gen_movewide(rd, loop_count, 0,
insn = aarch64_insn_gen_movewide(rd, max_bhb_k, 0,
AARCH64_INSN_VARIANT_64BIT,
AARCH64_INSN_MOVEWIDE_ZERO);
*updptr++ = cpu_to_le32(insn);

View File

@@ -5,6 +5,7 @@
*
* Copyright (C) 2014-2016 Zi Shen Lim <zlim.lnx@gmail.com>
*/
#include <linux/bitfield.h>
#include <linux/bitops.h>
#include <linux/bug.h>
#include <linux/printk.h>
@@ -1471,43 +1472,41 @@ u32 aarch64_insn_gen_extr(enum aarch64_insn_variant variant,
return aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RM, insn, Rm);
}
static u32 __get_barrier_crm_val(enum aarch64_insn_mb_type type)
{
switch (type) {
case AARCH64_INSN_MB_SY:
return 0xf;
case AARCH64_INSN_MB_ST:
return 0xe;
case AARCH64_INSN_MB_LD:
return 0xd;
case AARCH64_INSN_MB_ISH:
return 0xb;
case AARCH64_INSN_MB_ISHST:
return 0xa;
case AARCH64_INSN_MB_ISHLD:
return 0x9;
case AARCH64_INSN_MB_NSH:
return 0x7;
case AARCH64_INSN_MB_NSHST:
return 0x6;
case AARCH64_INSN_MB_NSHLD:
return 0x5;
default:
pr_err("%s: unknown barrier type %d\n", __func__, type);
return AARCH64_BREAK_FAULT;
}
}
u32 aarch64_insn_gen_dmb(enum aarch64_insn_mb_type type)
{
u32 opt;
u32 insn;
switch (type) {
case AARCH64_INSN_MB_SY:
opt = 0xf;
break;
case AARCH64_INSN_MB_ST:
opt = 0xe;
break;
case AARCH64_INSN_MB_LD:
opt = 0xd;
break;
case AARCH64_INSN_MB_ISH:
opt = 0xb;
break;
case AARCH64_INSN_MB_ISHST:
opt = 0xa;
break;
case AARCH64_INSN_MB_ISHLD:
opt = 0x9;
break;
case AARCH64_INSN_MB_NSH:
opt = 0x7;
break;
case AARCH64_INSN_MB_NSHST:
opt = 0x6;
break;
case AARCH64_INSN_MB_NSHLD:
opt = 0x5;
break;
default:
pr_err("%s: unknown dmb type %d\n", __func__, type);
opt = __get_barrier_crm_val(type);
if (opt == AARCH64_BREAK_FAULT)
return AARCH64_BREAK_FAULT;
}
insn = aarch64_insn_get_dmb_value();
insn &= ~GENMASK(11, 8);
@@ -1516,6 +1515,21 @@ u32 aarch64_insn_gen_dmb(enum aarch64_insn_mb_type type)
return insn;
}
u32 aarch64_insn_gen_dsb(enum aarch64_insn_mb_type type)
{
u32 opt, insn;
opt = __get_barrier_crm_val(type);
if (opt == AARCH64_BREAK_FAULT)
return AARCH64_BREAK_FAULT;
insn = aarch64_insn_get_dsb_base_value();
insn &= ~GENMASK(11, 8);
insn |= (opt << 8);
return insn;
}
u32 aarch64_insn_gen_mrs(enum aarch64_insn_register result,
enum aarch64_insn_system_register sysreg)
{

View File

@@ -1361,7 +1361,8 @@ int arch_add_memory(int nid, u64 start, u64 size,
__remove_pgd_mapping(swapper_pg_dir,
__phys_to_virt(start), size);
else {
max_pfn = PFN_UP(start + size);
/* Address of hotplugged memory can be smaller */
max_pfn = max(max_pfn, PFN_UP(start + size));
max_low_pfn = max_pfn;
}

View File

@@ -7,6 +7,7 @@
#define pr_fmt(fmt) "bpf_jit: " fmt
#include <linux/arm-smccc.h>
#include <linux/bitfield.h>
#include <linux/bpf.h>
#include <linux/filter.h>
@@ -18,6 +19,7 @@
#include <asm/byteorder.h>
#include <asm/cacheflush.h>
#include <asm/cfi.h>
#include <asm/cpufeature.h>
#include <asm/debug-monitors.h>
#include <asm/insn.h>
#include <asm/patching.h>
@@ -866,7 +868,51 @@ static void build_plt(struct jit_ctx *ctx)
plt->target = (u64)&dummy_tramp;
}
static void build_epilogue(struct jit_ctx *ctx)
/* Clobbers BPF registers 1-4, aka x0-x3 */
static void __maybe_unused build_bhb_mitigation(struct jit_ctx *ctx)
{
const u8 r1 = bpf2a64[BPF_REG_1]; /* aka x0 */
u8 k = get_spectre_bhb_loop_value();
if (!IS_ENABLED(CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY) ||
cpu_mitigations_off() || __nospectre_bhb ||
arm64_get_spectre_v2_state() == SPECTRE_VULNERABLE)
return;
if (capable(CAP_SYS_ADMIN))
return;
if (supports_clearbhb(SCOPE_SYSTEM)) {
emit(aarch64_insn_gen_hint(AARCH64_INSN_HINT_CLEARBHB), ctx);
return;
}
if (k) {
emit_a64_mov_i64(r1, k, ctx);
emit(A64_B(1), ctx);
emit(A64_SUBS_I(true, r1, r1, 1), ctx);
emit(A64_B_(A64_COND_NE, -2), ctx);
emit(aarch64_insn_gen_dsb(AARCH64_INSN_MB_ISH), ctx);
emit(aarch64_insn_get_isb_value(), ctx);
}
if (is_spectre_bhb_fw_mitigated()) {
emit(A64_ORR_I(false, r1, AARCH64_INSN_REG_ZR,
ARM_SMCCC_ARCH_WORKAROUND_3), ctx);
switch (arm_smccc_1_1_get_conduit()) {
case SMCCC_CONDUIT_HVC:
emit(aarch64_insn_get_hvc_value(), ctx);
break;
case SMCCC_CONDUIT_SMC:
emit(aarch64_insn_get_smc_value(), ctx);
break;
default:
pr_err_once("Firmware mitigation enabled with unknown conduit\n");
}
}
}
static void build_epilogue(struct jit_ctx *ctx, bool was_classic)
{
const u8 r0 = bpf2a64[BPF_REG_0];
const u8 ptr = bpf2a64[TCCNT_PTR];
@@ -879,10 +925,13 @@ static void build_epilogue(struct jit_ctx *ctx)
emit(A64_POP(A64_ZR, ptr, A64_SP), ctx);
if (was_classic)
build_bhb_mitigation(ctx);
/* Restore FP/LR registers */
emit(A64_POP(A64_FP, A64_LR, A64_SP), ctx);
/* Set return value */
/* Move the return value from bpf:r0 (aka x7) to x0 */
emit(A64_MOV(1, A64_R(0), r0), ctx);
/* Authenticate lr */
@@ -1826,7 +1875,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
}
ctx.epilogue_offset = ctx.idx;
build_epilogue(&ctx);
build_epilogue(&ctx, was_classic);
build_plt(&ctx);
extable_align = __alignof__(struct exception_table_entry);
@@ -1889,7 +1938,7 @@ skip_init_ctx:
goto out_free_hdr;
}
build_epilogue(&ctx);
build_epilogue(&ctx, was_classic);
build_plt(&ctx);
/* Extra pass to validate JITed code. */

View File

@@ -1238,6 +1238,7 @@ UnsignedEnum 11:8 PMUVer
0b0110 V3P5
0b0111 V3P7
0b1000 V3P8
0b1001 V3P9
0b1111 IMP_DEF
EndEnum
UnsignedEnum 7:4 TraceVer
@@ -1556,6 +1557,7 @@ EndEnum
UnsignedEnum 59:56 FGT
0b0000 NI
0b0001 IMP
0b0010 FGT2
EndEnum
Res0 55:48
UnsignedEnum 47:44 EXS
@@ -1617,6 +1619,7 @@ Enum 3:0 PARANGE
0b0100 44
0b0101 48
0b0110 52
0b0111 56
EndEnum
EndSysreg
@@ -2463,6 +2466,101 @@ Field 1 ICIALLU
Field 0 ICIALLUIS
EndSysreg
Sysreg HDFGRTR2_EL2 3 4 3 1 0
Res0 63:25
Field 24 nPMBMAR_EL1
Field 23 nMDSTEPOP_EL1
Field 22 nTRBMPAM_EL1
Res0 21
Field 20 nTRCITECR_EL1
Field 19 nPMSDSFR_EL1
Field 18 nSPMDEVAFF_EL1
Field 17 nSPMID
Field 16 nSPMSCR_EL1
Field 15 nSPMACCESSR_EL1
Field 14 nSPMCR_EL0
Field 13 nSPMOVS
Field 12 nSPMINTEN
Field 11 nSPMCNTEN
Field 10 nSPMSELR_EL0
Field 9 nSPMEVTYPERn_EL0
Field 8 nSPMEVCNTRn_EL0
Field 7 nPMSSCR_EL1
Field 6 nPMSSDATA
Field 5 nMDSELR_EL1
Field 4 nPMUACR_EL1
Field 3 nPMICFILTR_EL0
Field 2 nPMICNTR_EL0
Field 1 nPMIAR_EL1
Field 0 nPMECR_EL1
EndSysreg
Sysreg HDFGWTR2_EL2 3 4 3 1 1
Res0 63:25
Field 24 nPMBMAR_EL1
Field 23 nMDSTEPOP_EL1
Field 22 nTRBMPAM_EL1
Field 21 nPMZR_EL0
Field 20 nTRCITECR_EL1
Field 19 nPMSDSFR_EL1
Res0 18:17
Field 16 nSPMSCR_EL1
Field 15 nSPMACCESSR_EL1
Field 14 nSPMCR_EL0
Field 13 nSPMOVS
Field 12 nSPMINTEN
Field 11 nSPMCNTEN
Field 10 nSPMSELR_EL0
Field 9 nSPMEVTYPERn_EL0
Field 8 nSPMEVCNTRn_EL0
Field 7 nPMSSCR_EL1
Res0 6
Field 5 nMDSELR_EL1
Field 4 nPMUACR_EL1
Field 3 nPMICFILTR_EL0
Field 2 nPMICNTR_EL0
Field 1 nPMIAR_EL1
Field 0 nPMECR_EL1
EndSysreg
Sysreg HFGRTR2_EL2 3 4 3 1 2
Res0 63:15
Field 14 nACTLRALIAS_EL1
Field 13 nACTLRMASK_EL1
Field 12 nTCR2ALIAS_EL1
Field 11 nTCRALIAS_EL1
Field 10 nSCTLRALIAS2_EL1
Field 9 nSCTLRALIAS_EL1
Field 8 nCPACRALIAS_EL1
Field 7 nTCR2MASK_EL1
Field 6 nTCRMASK_EL1
Field 5 nSCTLR2MASK_EL1
Field 4 nSCTLRMASK_EL1
Field 3 nCPACRMASK_EL1
Field 2 nRCWSMASK_EL1
Field 1 nERXGSR_EL1
Field 0 nPFAR_EL1
EndSysreg
Sysreg HFGWTR2_EL2 3 4 3 1 3
Res0 63:15
Field 14 nACTLRALIAS_EL1
Field 13 nACTLRMASK_EL1
Field 12 nTCR2ALIAS_EL1
Field 11 nTCRALIAS_EL1
Field 10 nSCTLRALIAS2_EL1
Field 9 nSCTLRALIAS_EL1
Field 8 nCPACRALIAS_EL1
Field 7 nTCR2MASK_EL1
Field 6 nTCRMASK_EL1
Field 5 nSCTLR2MASK_EL1
Field 4 nSCTLRMASK_EL1
Field 3 nCPACRMASK_EL1
Field 2 nRCWSMASK_EL1
Res0 1
Field 0 nPFAR_EL1
EndSysreg
Sysreg HDFGRTR_EL2 3 4 3 1 4
Field 63 PMBIDR_EL1
Field 62 nPMSNEVFR_EL1
@@ -2635,6 +2733,12 @@ Field 1 AMEVCNTR00_EL0
Field 0 AMCNTEN0
EndSysreg
Sysreg HFGITR2_EL2 3 4 3 1 7
Res0 63:2
Field 1 nDCCIVAPS
Field 0 TSBCSYNC
EndSysreg
Sysreg ZCR_EL2 3 4 1 2 0
Fields ZCR_ELx
EndSysreg

View File

@@ -68,6 +68,7 @@ config LOONGARCH
select ARCH_SUPPORTS_NUMA_BALANCING
select ARCH_USE_BUILTIN_BSWAP
select ARCH_USE_CMPXCHG_LOCKREF
select ARCH_USE_MEMTEST
select ARCH_USE_QUEUED_RWLOCKS
select ARCH_USE_QUEUED_SPINLOCKS
select ARCH_WANT_DEFAULT_BPF_JIT

View File

@@ -22,22 +22,29 @@
struct sigcontext;
#define kernel_fpu_available() cpu_has_fpu
extern void kernel_fpu_begin(void);
extern void kernel_fpu_end(void);
extern void _init_fpu(unsigned int);
extern void _save_fp(struct loongarch_fpu *);
extern void _restore_fp(struct loongarch_fpu *);
void kernel_fpu_begin(void);
void kernel_fpu_end(void);
extern void _save_lsx(struct loongarch_fpu *fpu);
extern void _restore_lsx(struct loongarch_fpu *fpu);
extern void _init_lsx_upper(void);
extern void _restore_lsx_upper(struct loongarch_fpu *fpu);
asmlinkage void _init_fpu(unsigned int);
asmlinkage void _save_fp(struct loongarch_fpu *);
asmlinkage void _restore_fp(struct loongarch_fpu *);
asmlinkage int _save_fp_context(void __user *fpregs, void __user *fcc, void __user *csr);
asmlinkage int _restore_fp_context(void __user *fpregs, void __user *fcc, void __user *csr);
extern void _save_lasx(struct loongarch_fpu *fpu);
extern void _restore_lasx(struct loongarch_fpu *fpu);
extern void _init_lasx_upper(void);
extern void _restore_lasx_upper(struct loongarch_fpu *fpu);
asmlinkage void _save_lsx(struct loongarch_fpu *fpu);
asmlinkage void _restore_lsx(struct loongarch_fpu *fpu);
asmlinkage void _init_lsx_upper(void);
asmlinkage void _restore_lsx_upper(struct loongarch_fpu *fpu);
asmlinkage int _save_lsx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
asmlinkage int _restore_lsx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
asmlinkage void _save_lasx(struct loongarch_fpu *fpu);
asmlinkage void _restore_lasx(struct loongarch_fpu *fpu);
asmlinkage void _init_lasx_upper(void);
asmlinkage void _restore_lasx_upper(struct loongarch_fpu *fpu);
asmlinkage int _save_lasx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
asmlinkage int _restore_lasx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
static inline void enable_lsx(void);
static inline void disable_lsx(void);

View File

@@ -12,9 +12,13 @@
#include <asm/loongarch.h>
#include <asm/processor.h>
extern void _init_lbt(void);
extern void _save_lbt(struct loongarch_lbt *);
extern void _restore_lbt(struct loongarch_lbt *);
asmlinkage void _init_lbt(void);
asmlinkage void _save_lbt(struct loongarch_lbt *);
asmlinkage void _restore_lbt(struct loongarch_lbt *);
asmlinkage int _save_lbt_context(void __user *regs, void __user *eflags);
asmlinkage int _restore_lbt_context(void __user *regs, void __user *eflags);
asmlinkage int _save_ftop_context(void __user *ftop);
asmlinkage int _restore_ftop_context(void __user *ftop);
static inline int is_lbt_enabled(void)
{

View File

@@ -33,9 +33,9 @@ struct pt_regs {
unsigned long __last[];
} __aligned(8);
static inline int regs_irqs_disabled(struct pt_regs *regs)
static __always_inline bool regs_irqs_disabled(struct pt_regs *regs)
{
return arch_irqs_disabled_flags(regs->csr_prmd);
return !(regs->csr_prmd & CSR_PRMD_PIE);
}
static inline unsigned long kernel_stack_pointer(struct pt_regs *regs)
@@ -55,7 +55,7 @@ static inline void instruction_pointer_set(struct pt_regs *regs, unsigned long v
/* Query offset/name of register from its name/offset */
extern int regs_query_register_offset(const char *name);
#define MAX_REG_OFFSET (offsetof(struct pt_regs, __last))
#define MAX_REG_OFFSET (offsetof(struct pt_regs, __last) - sizeof(unsigned long))
/**
* regs_get_register() - get register value from its offset

View File

@@ -15,7 +15,6 @@ typedef u32 uprobe_opcode_t;
#define UPROBE_XOLBP_INSN __emit_break(BRK_UPROBE_XOLBP)
struct arch_uprobe {
unsigned long resume_era;
u32 insn[2];
u32 ixol[2];
bool simulate;

View File

@@ -249,18 +249,6 @@ static __init int setup_node(int pxm)
return acpi_map_pxm_to_node(pxm);
}
/*
* Callback for SLIT parsing. pxm_to_node() returns NUMA_NO_NODE for
* I/O localities since SRAT does not list them. I/O localities are
* not supported at this point.
*/
unsigned int numa_distance_cnt;
static inline unsigned int get_numa_distances_cnt(struct acpi_table_slit *slit)
{
return slit->locality_count;
}
void __init numa_set_distance(int from, int to, int distance)
{
if ((u8)distance != distance || (from == to && distance != LOCAL_DISTANCE)) {

View File

@@ -458,6 +458,7 @@ SYM_FUNC_START(_save_fp_context)
li.w a0, 0 # success
jr ra
SYM_FUNC_END(_save_fp_context)
EXPORT_SYMBOL_GPL(_save_fp_context)
/*
* a0: fpregs
@@ -471,6 +472,7 @@ SYM_FUNC_START(_restore_fp_context)
li.w a0, 0 # success
jr ra
SYM_FUNC_END(_restore_fp_context)
EXPORT_SYMBOL_GPL(_restore_fp_context)
/*
* a0: fpregs
@@ -484,6 +486,7 @@ SYM_FUNC_START(_save_lsx_context)
li.w a0, 0 # success
jr ra
SYM_FUNC_END(_save_lsx_context)
EXPORT_SYMBOL_GPL(_save_lsx_context)
/*
* a0: fpregs
@@ -497,6 +500,7 @@ SYM_FUNC_START(_restore_lsx_context)
li.w a0, 0 # success
jr ra
SYM_FUNC_END(_restore_lsx_context)
EXPORT_SYMBOL_GPL(_restore_lsx_context)
/*
* a0: fpregs
@@ -510,6 +514,7 @@ SYM_FUNC_START(_save_lasx_context)
li.w a0, 0 # success
jr ra
SYM_FUNC_END(_save_lasx_context)
EXPORT_SYMBOL_GPL(_save_lasx_context)
/*
* a0: fpregs
@@ -523,6 +528,7 @@ SYM_FUNC_START(_restore_lasx_context)
li.w a0, 0 # success
jr ra
SYM_FUNC_END(_restore_lasx_context)
EXPORT_SYMBOL_GPL(_restore_lasx_context)
.L_fpu_fault:
li.w a0, -EFAULT # failure

View File

@@ -16,6 +16,7 @@
#include <asm/stackframe.h>
#include <asm/thread_info.h>
.section .cpuidle.text, "ax"
.align 5
SYM_FUNC_START(__arch_cpu_idle)
/* start of idle interrupt region */
@@ -31,14 +32,16 @@ SYM_FUNC_START(__arch_cpu_idle)
*/
idle 0
/* end of idle interrupt region */
1: jr ra
idle_exit:
jr ra
SYM_FUNC_END(__arch_cpu_idle)
.previous
SYM_CODE_START(handle_vint)
UNWIND_HINT_UNDEFINED
BACKUP_T0T1
SAVE_ALL
la_abs t1, 1b
la_abs t1, idle_exit
LONG_L t0, sp, PT_ERA
/* 3 instructions idle interrupt region */
ori t0, t0, 0b1100

View File

@@ -18,11 +18,28 @@ static unsigned int euen_mask = CSR_EUEN_FPEN;
static DEFINE_PER_CPU(bool, in_kernel_fpu);
static DEFINE_PER_CPU(unsigned int, euen_current);
static inline void fpregs_lock(void)
{
if (IS_ENABLED(CONFIG_PREEMPT_RT))
preempt_disable();
else
local_bh_disable();
}
static inline void fpregs_unlock(void)
{
if (IS_ENABLED(CONFIG_PREEMPT_RT))
preempt_enable();
else
local_bh_enable();
}
void kernel_fpu_begin(void)
{
unsigned int *euen_curr;
preempt_disable();
if (!irqs_disabled())
fpregs_lock();
WARN_ON(this_cpu_read(in_kernel_fpu));
@@ -73,7 +90,8 @@ void kernel_fpu_end(void)
this_cpu_write(in_kernel_fpu, false);
preempt_enable();
if (!irqs_disabled())
fpregs_unlock();
}
EXPORT_SYMBOL_GPL(kernel_fpu_end);

View File

@@ -90,6 +90,7 @@ SYM_FUNC_START(_save_lbt_context)
li.w a0, 0 # success
jr ra
SYM_FUNC_END(_save_lbt_context)
EXPORT_SYMBOL_GPL(_save_lbt_context)
/*
* a0: scr
@@ -110,6 +111,7 @@ SYM_FUNC_START(_restore_lbt_context)
li.w a0, 0 # success
jr ra
SYM_FUNC_END(_restore_lbt_context)
EXPORT_SYMBOL_GPL(_restore_lbt_context)
/*
* a0: ftop
@@ -120,6 +122,7 @@ SYM_FUNC_START(_save_ftop_context)
li.w a0, 0 # success
jr ra
SYM_FUNC_END(_save_ftop_context)
EXPORT_SYMBOL_GPL(_save_ftop_context)
/*
* a0: ftop
@@ -150,6 +153,7 @@ SYM_FUNC_START(_restore_ftop_context)
li.w a0, 0 # success
jr ra
SYM_FUNC_END(_restore_ftop_context)
EXPORT_SYMBOL_GPL(_restore_ftop_context)
.L_lbt_fault:
li.w a0, -EFAULT # failure

View File

@@ -51,27 +51,6 @@
#define lock_lbt_owner() ({ preempt_disable(); pagefault_disable(); })
#define unlock_lbt_owner() ({ pagefault_enable(); preempt_enable(); })
/* Assembly functions to move context to/from the FPU */
extern asmlinkage int
_save_fp_context(void __user *fpregs, void __user *fcc, void __user *csr);
extern asmlinkage int
_restore_fp_context(void __user *fpregs, void __user *fcc, void __user *csr);
extern asmlinkage int
_save_lsx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
extern asmlinkage int
_restore_lsx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
extern asmlinkage int
_save_lasx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
extern asmlinkage int
_restore_lasx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
#ifdef CONFIG_CPU_HAS_LBT
extern asmlinkage int _save_lbt_context(void __user *regs, void __user *eflags);
extern asmlinkage int _restore_lbt_context(void __user *regs, void __user *eflags);
extern asmlinkage int _save_ftop_context(void __user *ftop);
extern asmlinkage int _restore_ftop_context(void __user *ftop);
#endif
struct rt_sigframe {
struct siginfo rs_info;
struct ucontext rs_uctx;

View File

@@ -111,7 +111,7 @@ static unsigned long __init get_loops_per_jiffy(void)
return lpj;
}
static long init_offset __nosavedata;
static long init_offset;
void save_counter(void)
{

View File

@@ -553,9 +553,10 @@ asmlinkage void noinstr do_ale(struct pt_regs *regs)
die_if_kernel("Kernel ale access", regs);
force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *)regs->csr_badvaddr);
#else
bool pie = regs_irqs_disabled(regs);
unsigned int *pc;
if (regs->csr_prmd & CSR_PRMD_PIE)
if (!pie)
local_irq_enable();
perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS, 1, regs, regs->csr_badvaddr);
@@ -582,7 +583,7 @@ sigbus:
die_if_kernel("Kernel ale access", regs);
force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *)regs->csr_badvaddr);
out:
if (regs->csr_prmd & CSR_PRMD_PIE)
if (!pie)
local_irq_disable();
#endif
irqentry_exit(regs, state);
@@ -614,12 +615,13 @@ static void bug_handler(struct pt_regs *regs)
asmlinkage void noinstr do_bce(struct pt_regs *regs)
{
bool user = user_mode(regs);
bool pie = regs_irqs_disabled(regs);
unsigned long era = exception_era(regs);
u64 badv = 0, lower = 0, upper = ULONG_MAX;
union loongarch_instruction insn;
irqentry_state_t state = irqentry_enter(regs);
if (regs->csr_prmd & CSR_PRMD_PIE)
if (!pie)
local_irq_enable();
current->thread.trap_nr = read_csr_excode();
@@ -685,7 +687,7 @@ asmlinkage void noinstr do_bce(struct pt_regs *regs)
force_sig_bnderr((void __user *)badv, (void __user *)lower, (void __user *)upper);
out:
if (regs->csr_prmd & CSR_PRMD_PIE)
if (!pie)
local_irq_disable();
irqentry_exit(regs, state);
@@ -703,11 +705,12 @@ bad_era:
asmlinkage void noinstr do_bp(struct pt_regs *regs)
{
bool user = user_mode(regs);
bool pie = regs_irqs_disabled(regs);
unsigned int opcode, bcode;
unsigned long era = exception_era(regs);
irqentry_state_t state = irqentry_enter(regs);
if (regs->csr_prmd & CSR_PRMD_PIE)
if (!pie)
local_irq_enable();
if (__get_inst(&opcode, (u32 *)era, user))
@@ -773,7 +776,7 @@ asmlinkage void noinstr do_bp(struct pt_regs *regs)
}
out:
if (regs->csr_prmd & CSR_PRMD_PIE)
if (!pie)
local_irq_disable();
irqentry_exit(regs, state);
@@ -1008,6 +1011,7 @@ static void init_restore_lbt(void)
asmlinkage void noinstr do_lbt(struct pt_regs *regs)
{
bool pie = regs_irqs_disabled(regs);
irqentry_state_t state = irqentry_enter(regs);
/*
@@ -1017,7 +1021,7 @@ asmlinkage void noinstr do_lbt(struct pt_regs *regs)
* (including the user using 'MOVGR2GCSR' to turn on TM, which
* will not trigger the BTE), we need to check PRMD first.
*/
if (regs->csr_prmd & CSR_PRMD_PIE)
if (!pie)
local_irq_enable();
if (!cpu_has_lbt) {
@@ -1031,7 +1035,7 @@ asmlinkage void noinstr do_lbt(struct pt_regs *regs)
preempt_enable();
out:
if (regs->csr_prmd & CSR_PRMD_PIE)
if (!pie)
local_irq_disable();
irqentry_exit(regs, state);

View File

@@ -42,7 +42,6 @@ int arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs)
utask->autask.saved_trap_nr = current->thread.trap_nr;
current->thread.trap_nr = UPROBE_TRAP_NR;
instruction_pointer_set(regs, utask->xol_vaddr);
user_enable_single_step(current);
return 0;
}
@@ -53,13 +52,7 @@ int arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs)
WARN_ON_ONCE(current->thread.trap_nr != UPROBE_TRAP_NR);
current->thread.trap_nr = utask->autask.saved_trap_nr;
if (auprobe->simulate)
instruction_pointer_set(regs, auprobe->resume_era);
else
instruction_pointer_set(regs, utask->vaddr + LOONGARCH_INSN_SIZE);
user_disable_single_step(current);
instruction_pointer_set(regs, utask->vaddr + LOONGARCH_INSN_SIZE);
return 0;
}
@@ -70,7 +63,6 @@ void arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs)
current->thread.trap_nr = utask->autask.saved_trap_nr;
instruction_pointer_set(regs, utask->vaddr);
user_disable_single_step(current);
}
bool arch_uprobe_xol_was_trapped(struct task_struct *t)
@@ -90,7 +82,6 @@ bool arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs)
insn.word = auprobe->insn[0];
arch_simulate_insn(insn, regs);
auprobe->resume_era = regs->csr_era;
return true;
}

View File

@@ -294,6 +294,7 @@ static int kvm_pre_enter_guest(struct kvm_vcpu *vcpu)
vcpu->arch.aux_inuse &= ~KVM_LARCH_SWCSR_LATEST;
if (kvm_request_pending(vcpu) || xfer_to_guest_mode_work_pending()) {
kvm_lose_pmu(vcpu);
/* make sure the vcpu mode has been written */
smp_store_mb(vcpu->mode, OUTSIDE_GUEST_MODE);
local_irq_enable();
@@ -874,6 +875,13 @@ static int kvm_set_one_reg(struct kvm_vcpu *vcpu,
vcpu->arch.st.guest_addr = 0;
memset(&vcpu->arch.irq_pending, 0, sizeof(vcpu->arch.irq_pending));
memset(&vcpu->arch.irq_clear, 0, sizeof(vcpu->arch.irq_clear));
/*
* When vCPU reset, clear the ESTAT and GINTC registers
* Other CSR registers are cleared with function _kvm_setcsr().
*/
kvm_write_sw_gcsr(vcpu->arch.csr, LOONGARCH_CSR_GINTC, 0);
kvm_write_sw_gcsr(vcpu->arch.csr, LOONGARCH_CSR_ESTAT, 0);
break;
default:
ret = -EINVAL;

View File

@@ -47,7 +47,7 @@ pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr,
pmd = pmd_offset(pud, addr);
}
}
return (pte_t *) pmd;
return pmd_none(pmdp_get(pmd)) ? NULL : (pte_t *) pmd;
}
uint64_t pmd_to_entrylo(unsigned long pmd_val)

View File

@@ -65,9 +65,6 @@ void __init paging_init(void)
{
unsigned long max_zone_pfns[MAX_NR_ZONES];
#ifdef CONFIG_ZONE_DMA
max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
#endif
#ifdef CONFIG_ZONE_DMA32
max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
#endif

View File

@@ -2,6 +2,7 @@
#include <asm/fpu.h>
#include <asm/loongson.h>
#include <asm/sections.h>
#include <asm/time.h>
#include <asm/tlbflush.h>
#include <linux/suspend.h>
@@ -14,6 +15,7 @@ struct pt_regs saved_regs;
void save_processor_state(void)
{
save_counter();
saved_crmd = csr_read32(LOONGARCH_CSR_CRMD);
saved_prmd = csr_read32(LOONGARCH_CSR_PRMD);
saved_euen = csr_read32(LOONGARCH_CSR_EUEN);
@@ -26,6 +28,7 @@ void save_processor_state(void)
void restore_processor_state(void)
{
sync_counter();
csr_write32(saved_crmd, LOONGARCH_CSR_CRMD);
csr_write32(saved_prmd, LOONGARCH_CSR_PRMD);
csr_write32(saved_euen, LOONGARCH_CSR_EUEN);

View File

@@ -12,9 +12,11 @@ config CRYPTO_CRC32_MIPS
Architecture: mips
config CRYPTO_POLY1305_MIPS
tristate "Hash functions: Poly1305"
tristate
depends on MIPS
select CRYPTO_HASH
select CRYPTO_ARCH_HAVE_LIB_POLY1305
default CRYPTO_LIB_POLY1305_INTERNAL
help
Poly1305 authenticator algorithm (RFC7539)
@@ -61,10 +63,11 @@ config CRYPTO_SHA512_OCTEON
Architecture: mips OCTEON using crypto instructions, when available
config CRYPTO_CHACHA_MIPS
tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (MIPS32r2)"
tristate
depends on CPU_MIPS32_R2
select CRYPTO_SKCIPHER
select CRYPTO_ARCH_HAVE_LIB_CHACHA
default CRYPTO_LIB_CHACHA_INTERNAL
help
Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
stream cipher algorithms

View File

@@ -42,7 +42,7 @@ int (*__pmax_close)(int);
* Detect which PROM the DECSTATION has, and set the callback vectors
* appropriately.
*/
void __init which_prom(s32 magic, s32 *prom_vec)
static void __init which_prom(s32 magic, s32 *prom_vec)
{
/*
* No sign of the REX PROM's magic number means we assume a non-REX

View File

@@ -8,7 +8,7 @@
#define __ASM_DS1287_H
extern int ds1287_timer_state(void);
extern void ds1287_set_base_clock(unsigned int clock);
extern int ds1287_set_base_clock(unsigned int hz);
extern int ds1287_clockevent_init(int irq);
#endif

View File

@@ -59,6 +59,16 @@ extern phys_addr_t mips_cm_l2sync_phys_base(void);
*/
extern int mips_cm_is64;
/*
* mips_cm_is_l2_hci_broken - determine if HCI is broken
*
* Some CM reports show that Hardware Cache Initialization is
* complete, but in reality it's not the case. They also incorrectly
* indicate that Hardware Cache Initialization is supported. This
* flags allows warning about this broken feature.
*/
extern bool mips_cm_is_l2_hci_broken;
/**
* mips_cm_error_report - Report CM cache errors
*/
@@ -97,6 +107,18 @@ static inline bool mips_cm_present(void)
#endif
}
/**
* mips_cm_update_property - update property from the device tree
*
* Retrieve the properties from the device tree if a CM node exist and
* update the internal variable based on this.
*/
#ifdef CONFIG_MIPS_CM
extern void mips_cm_update_property(void);
#else
static inline void mips_cm_update_property(void) {}
#endif
/**
* mips_cm_has_l2sync - determine whether an L2-only sync region is present
*

View File

@@ -65,7 +65,8 @@ static inline void instruction_pointer_set(struct pt_regs *regs,
/* Query offset/name of register from its name/offset */
extern int regs_query_register_offset(const char *name);
#define MAX_REG_OFFSET (offsetof(struct pt_regs, __last))
#define MAX_REG_OFFSET \
(offsetof(struct pt_regs, __last) - sizeof(unsigned long))
/**
* regs_get_register() - get register value from its offset

View File

@@ -10,6 +10,7 @@
#include <linux/mc146818rtc.h>
#include <linux/irq.h>
#include <asm/ds1287.h>
#include <asm/time.h>
int ds1287_timer_state(void)

View File

@@ -5,6 +5,7 @@
*/
#include <linux/errno.h>
#include <linux/of.h>
#include <linux/percpu.h>
#include <linux/spinlock.h>
@@ -14,6 +15,7 @@
void __iomem *mips_gcr_base;
void __iomem *mips_cm_l2sync_base;
int mips_cm_is64;
bool mips_cm_is_l2_hci_broken;
static char *cm2_tr[8] = {
"mem", "gcr", "gic", "mmio",
@@ -237,6 +239,18 @@ static void mips_cm_probe_l2sync(void)
mips_cm_l2sync_base = ioremap(addr, MIPS_CM_L2SYNC_SIZE);
}
void mips_cm_update_property(void)
{
struct device_node *cm_node;
cm_node = of_find_compatible_node(of_root, NULL, "mobileye,eyeq6-cm");
if (!cm_node)
return;
pr_info("HCI (Hardware Cache Init for the L2 cache) in GCR_L2_RAM_CONFIG from the CM3 is broken");
mips_cm_is_l2_hci_broken = true;
of_node_put(cm_node);
}
int mips_cm_probe(void)
{
phys_addr_t addr;

View File

@@ -132,11 +132,15 @@
#define SO_PASSPIDFD 0x404A
#define SO_PEERPIDFD 0x404B
#define SO_DEVMEM_LINEAR 78
#define SCM_TS_OPT_ID 0x404C
#define SO_RCVPRIORITY 0x404D
#define SO_DEVMEM_LINEAR 0x404E
#define SCM_DEVMEM_LINEAR SO_DEVMEM_LINEAR
#define SO_DEVMEM_DMABUF 79
#define SO_DEVMEM_DMABUF 0x404F
#define SCM_DEVMEM_DMABUF SO_DEVMEM_DMABUF
#define SO_DEVMEM_DONTNEED 80
#define SO_DEVMEM_DONTNEED 0x4050
#if !defined(__KERNEL__)

View File

@@ -63,6 +63,7 @@ static unsigned long pdt_entry[MAX_PDT_ENTRIES] __page_aligned_bss;
#define PDT_ADDR_PERM_ERR (pdt_type != PDT_PDC ? 2UL : 0UL)
#define PDT_ADDR_SINGLE_ERR 1UL
#ifdef CONFIG_PROC_FS
/* report PDT entries via /proc/meminfo */
void arch_report_meminfo(struct seq_file *m)
{
@@ -74,6 +75,7 @@ void arch_report_meminfo(struct seq_file *m)
seq_printf(m, "PDT_cur_entries: %7lu\n",
pdt_status.pdt_entries);
}
#endif
static int get_info_pat_new(void)
{

View File

@@ -97,9 +97,19 @@ handle_fpe(struct pt_regs *regs)
memcpy(regs->fr, frcopy, sizeof regs->fr);
if (signalcode != 0) {
force_sig_fault(signalcode >> 24, signalcode & 0xffffff,
(void __user *) regs->iaoq[0]);
return -1;
int sig = signalcode >> 24;
if (sig == SIGFPE) {
/*
* Clear floating point trap bit to avoid trapping
* again on the first floating-point instruction in
* the userspace signal handler.
*/
regs->fr[0] &= ~(1ULL << 38);
}
force_sig_fault(sig, signalcode & 0xffffff,
(void __user *) regs->iaoq[0]);
return -1;
}
return signalcode ? -1 : 0;

View File

@@ -234,10 +234,8 @@ fi
# suppress some warnings in recent ld versions
nowarn="-z noexecstack"
if ! ld_is_lld; then
if [ "$LD_VERSION" -ge "$(echo 2.39 | ld_version)" ]; then
nowarn="$nowarn --no-warn-rwx-segments"
fi
if "${CROSS}ld" -v --no-warn-rwx-segments >/dev/null 2>&1; then
nowarn="$nowarn --no-warn-rwx-segments"
fi
platformo=$object/"$platform".o

View File

@@ -3,10 +3,12 @@
menu "Accelerated Cryptographic Algorithms for CPU (powerpc)"
config CRYPTO_CURVE25519_PPC64
tristate "Public key crypto: Curve25519 (PowerPC64)"
tristate
depends on PPC64 && CPU_LITTLE_ENDIAN
select CRYPTO_KPP
select CRYPTO_LIB_CURVE25519_GENERIC
select CRYPTO_ARCH_HAVE_LIB_CURVE25519
default CRYPTO_LIB_CURVE25519_INTERNAL
help
Curve25519 algorithm
@@ -124,11 +126,12 @@ config CRYPTO_AES_GCM_P10
later CPU. This module supports stitched acceleration for AES/GCM.
config CRYPTO_CHACHA20_P10
tristate "Ciphers: ChaCha20, XChacha20, XChacha12 (P10 or later)"
tristate
depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
select CRYPTO_SKCIPHER
select CRYPTO_LIB_CHACHA_GENERIC
select CRYPTO_ARCH_HAVE_LIB_CHACHA
default CRYPTO_LIB_CHACHA_INTERNAL
help
Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
stream cipher algorithms

View File

@@ -550,12 +550,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
#ifdef CONFIG_PPC_BOOK3S_64
case KVM_CAP_SPAPR_TCE:
fallthrough;
case KVM_CAP_SPAPR_TCE_64:
r = 1;
break;
case KVM_CAP_SPAPR_TCE_VFIO:
r = !!cpu_has_feature(CPU_FTR_HVMODE);
break;
case KVM_CAP_PPC_RTAS:
case KVM_CAP_PPC_FIXUP_HCALL:
case KVM_CAP_PPC_ENABLE_HCALL:

View File

@@ -1132,6 +1132,19 @@ int __meminit radix__vmemmap_populate(unsigned long start, unsigned long end, in
pmd_t *pmd;
pte_t *pte;
/*
* Make sure we align the start vmemmap addr so that we calculate
* the correct start_pfn in altmap boundary check to decided whether
* we should use altmap or RAM based backing memory allocation. Also
* the address need to be aligned for set_pte operation.
* If the start addr is already PMD_SIZE aligned we will try to use
* a pmd mapping. We don't want to be too aggressive here beacause
* that will cause more allocations in RAM. So only if the namespace
* vmemmap start addr is PMD_SIZE aligned we will use PMD mapping.
*/
start = ALIGN_DOWN(start, PAGE_SIZE);
for (addr = start; addr < end; addr = next) {
next = pmd_addr_end(addr, end);
@@ -1157,8 +1170,8 @@ int __meminit radix__vmemmap_populate(unsigned long start, unsigned long end, in
* in altmap block allocation failures, in which case
* we fallback to RAM for vmemmap allocation.
*/
if (altmap && (!IS_ALIGNED(addr, PMD_SIZE) ||
altmap_cross_boundary(altmap, addr, PMD_SIZE))) {
if (!IS_ALIGNED(addr, PMD_SIZE) || (altmap &&
altmap_cross_boundary(altmap, addr, PMD_SIZE))) {
/*
* make sure we don't create altmap mappings
* covering things outside the device.

View File

@@ -309,7 +309,7 @@
1024 1024 1024 1024>;
snps,priority = <0 1 2 3 4 5 6 7>;
snps,dma-masters = <2>;
snps,data-width = <4>;
snps,data-width = <2>;
status = "disabled";
};

View File

@@ -22,7 +22,6 @@ config CRYPTO_CHACHA_RISCV64
tristate "Ciphers: ChaCha"
depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO
select CRYPTO_SKCIPHER
select CRYPTO_LIB_CHACHA_GENERIC
help
Length-preserving ciphers: ChaCha20 stream cipher algorithm

View File

@@ -115,24 +115,19 @@
\old_c
.endm
#define _ALTERNATIVE_CFG(old_c, ...) \
ALTERNATIVE_CFG old_c
#define _ALTERNATIVE_CFG_2(old_c, ...) \
ALTERNATIVE_CFG old_c
#define __ALTERNATIVE_CFG(old_c, ...) ALTERNATIVE_CFG old_c
#define __ALTERNATIVE_CFG_2(old_c, ...) ALTERNATIVE_CFG old_c
#else /* !__ASSEMBLY__ */
#define __ALTERNATIVE_CFG(old_c) \
old_c "\n"
#define _ALTERNATIVE_CFG(old_c, ...) \
__ALTERNATIVE_CFG(old_c)
#define _ALTERNATIVE_CFG_2(old_c, ...) \
__ALTERNATIVE_CFG(old_c)
#define __ALTERNATIVE_CFG(old_c, ...) old_c "\n"
#define __ALTERNATIVE_CFG_2(old_c, ...) old_c "\n"
#endif /* __ASSEMBLY__ */
#define _ALTERNATIVE_CFG(old_c, ...) __ALTERNATIVE_CFG(old_c)
#define _ALTERNATIVE_CFG_2(old_c, ...) __ALTERNATIVE_CFG_2(old_c)
#endif /* CONFIG_RISCV_ALTERNATIVE */
/*

View File

@@ -34,11 +34,6 @@ static inline void flush_dcache_page(struct page *page)
flush_dcache_folio(page_folio(page));
}
/*
* RISC-V doesn't have an instruction to flush parts of the instruction cache,
* so instead we just flush the whole thing.
*/
#define flush_icache_range(start, end) flush_icache_all()
#define flush_icache_user_page(vma, pg, addr, len) \
do { \
if (vma->vm_flags & VM_EXEC) \
@@ -78,6 +73,16 @@ void flush_icache_mm(struct mm_struct *mm, bool local);
#endif /* CONFIG_SMP */
/*
* RISC-V doesn't have an instruction to flush parts of the instruction cache,
* so instead we just flush the whole thing.
*/
#define flush_icache_range flush_icache_range
static inline void flush_icache_range(unsigned long start, unsigned long end)
{
flush_icache_all();
}
extern unsigned int riscv_cbom_block_size;
extern unsigned int riscv_cboz_block_size;
void riscv_init_cbo_blocksizes(void);

View File

@@ -19,16 +19,9 @@
#ifndef __ASSEMBLY__
void arch_kgdb_breakpoint(void);
extern unsigned long kgdb_compiled_break;
static inline void arch_kgdb_breakpoint(void)
{
asm(".global kgdb_compiled_break\n"
".option norvc\n"
"kgdb_compiled_break: ebreak\n"
".option rvc\n");
}
#endif /* !__ASSEMBLY__ */
#define DBG_REG_ZERO "zero"

View File

@@ -62,8 +62,11 @@ static inline void syscall_get_arguments(struct task_struct *task,
unsigned long *args)
{
args[0] = regs->orig_a0;
args++;
memcpy(args, &regs->a1, 5 * sizeof(args[0]));
args[1] = regs->a1;
args[2] = regs->a2;
args[3] = regs->a3;
args[4] = regs->a4;
args[5] = regs->a5;
}
static inline int syscall_get_arch(struct task_struct *task)

View File

@@ -254,6 +254,12 @@ void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc)
regs->epc = pc;
}
noinline void arch_kgdb_breakpoint(void)
{
asm(".global kgdb_compiled_break\n"
"kgdb_compiled_break: ebreak\n");
}
void kgdb_arch_handle_qxfer_pkt(char *remcom_in_buffer,
char *remcom_out_buffer)
{

View File

@@ -73,16 +73,17 @@ static bool duplicate_rela(const Elf_Rela *rela, int idx)
static void count_max_entries(Elf_Rela *relas, int num,
unsigned int *plts, unsigned int *gots)
{
unsigned int type, i;
for (i = 0; i < num; i++) {
type = ELF_RISCV_R_TYPE(relas[i].r_info);
if (type == R_RISCV_CALL_PLT) {
for (int i = 0; i < num; i++) {
switch (ELF_R_TYPE(relas[i].r_info)) {
case R_RISCV_CALL_PLT:
case R_RISCV_PLT32:
if (!duplicate_rela(relas, i))
(*plts)++;
} else if (type == R_RISCV_GOT_HI20) {
break;
case R_RISCV_GOT_HI20:
if (!duplicate_rela(relas, i))
(*gots)++;
break;
}
}
}

View File

@@ -648,7 +648,7 @@ process_accumulated_relocations(struct module *me,
kfree(bucket_iter);
}
kfree(*relocation_hashtable);
kvfree(*relocation_hashtable);
}
static int add_relocation_to_accumulate(struct module *me, int type,
@@ -752,9 +752,10 @@ initialize_relocation_hashtable(unsigned int num_relocations,
hashtable_size <<= should_double_size;
*relocation_hashtable = kmalloc_array(hashtable_size,
sizeof(**relocation_hashtable),
GFP_KERNEL);
/* Number of relocations may be large, so kvmalloc it */
*relocation_hashtable = kvmalloc_array(hashtable_size,
sizeof(**relocation_hashtable),
GFP_KERNEL);
if (!*relocation_hashtable)
return 0;
@@ -859,7 +860,7 @@ int apply_relocate_add(Elf_Shdr *sechdrs, const char *strtab,
}
j++;
if (j > sechdrs[relsec].sh_size / sizeof(*rel))
if (j == num_relocations)
j = 0;
} while (j_idx != j);

View File

@@ -167,6 +167,7 @@ void arch_uprobe_copy_ixol(struct page *page, unsigned long vaddr,
/* Initialize the slot */
void *kaddr = kmap_atomic(page);
void *dst = kaddr + (vaddr & ~PAGE_MASK);
unsigned long start = (unsigned long)dst;
memcpy(dst, src, len);
@@ -176,13 +177,6 @@ void arch_uprobe_copy_ixol(struct page *page, unsigned long vaddr,
*(uprobe_opcode_t *)dst = __BUG_INSN_32;
}
flush_icache_range(start, start + len);
kunmap_atomic(kaddr);
/*
* We probably need flush_icache_user_page() but it needs vma.
* This should work on most of architectures by default. If
* architecture needs to do something different it can define
* its own version of the function.
*/
flush_dcache_page(page);
}

View File

@@ -66,6 +66,9 @@ static struct resource bss_res = { .name = "Kernel bss", };
static struct resource elfcorehdr_res = { .name = "ELF Core hdr", };
#endif
static int num_standard_resources;
static struct resource *standard_resources;
static int __init add_resource(struct resource *parent,
struct resource *res)
{
@@ -139,7 +142,7 @@ static void __init init_resources(void)
struct resource *res = NULL;
struct resource *mem_res = NULL;
size_t mem_res_sz = 0;
int num_resources = 0, res_idx = 0;
int num_resources = 0, res_idx = 0, non_resv_res = 0;
int ret = 0;
/* + 1 as memblock_alloc() might increase memblock.reserved.cnt */
@@ -195,6 +198,7 @@ static void __init init_resources(void)
/* Add /memory regions to the resource tree */
for_each_mem_region(region) {
res = &mem_res[res_idx--];
non_resv_res++;
if (unlikely(memblock_is_nomap(region))) {
res->name = "Reserved";
@@ -212,6 +216,9 @@ static void __init init_resources(void)
goto error;
}
num_standard_resources = non_resv_res;
standard_resources = &mem_res[res_idx + 1];
/* Clean-up any unused pre-allocated resources */
if (res_idx >= 0)
memblock_free(mem_res, (res_idx + 1) * sizeof(*mem_res));
@@ -223,6 +230,33 @@ static void __init init_resources(void)
memblock_free(mem_res, mem_res_sz);
}
static int __init reserve_memblock_reserved_regions(void)
{
u64 i, j;
for (i = 0; i < num_standard_resources; i++) {
struct resource *mem = &standard_resources[i];
phys_addr_t r_start, r_end, mem_size = resource_size(mem);
if (!memblock_is_region_reserved(mem->start, mem_size))
continue;
for_each_reserved_mem_range(j, &r_start, &r_end) {
resource_size_t start, end;
start = max(PFN_PHYS(PFN_DOWN(r_start)), mem->start);
end = min(PFN_PHYS(PFN_UP(r_end)) - 1, mem->end);
if (start > mem->end || end < mem->start)
continue;
reserve_region_with_split(mem, start, end, "Reserved");
}
}
return 0;
}
arch_initcall(reserve_memblock_reserved_regions);
static void __init parse_dtb(void)
{

View File

@@ -198,47 +198,57 @@ asmlinkage __visible __trap_section void do_trap_insn_illegal(struct pt_regs *re
DO_ERROR_INFO(do_trap_load_fault,
SIGSEGV, SEGV_ACCERR, "load access fault");
asmlinkage __visible __trap_section void do_trap_load_misaligned(struct pt_regs *regs)
enum misaligned_access_type {
MISALIGNED_STORE,
MISALIGNED_LOAD,
};
static const struct {
const char *type_str;
int (*handler)(struct pt_regs *regs);
} misaligned_handler[] = {
[MISALIGNED_STORE] = {
.type_str = "Oops - store (or AMO) address misaligned",
.handler = handle_misaligned_store,
},
[MISALIGNED_LOAD] = {
.type_str = "Oops - load address misaligned",
.handler = handle_misaligned_load,
},
};
static void do_trap_misaligned(struct pt_regs *regs, enum misaligned_access_type type)
{
irqentry_state_t state;
if (user_mode(regs)) {
irqentry_enter_from_user_mode(regs);
local_irq_enable();
} else {
state = irqentry_nmi_enter(regs);
}
if (handle_misaligned_load(regs))
do_trap_error(regs, SIGBUS, BUS_ADRALN, regs->epc,
"Oops - load address misaligned");
if (misaligned_handler[type].handler(regs))
do_trap_error(regs, SIGBUS, BUS_ADRALN, regs->epc,
misaligned_handler[type].type_str);
if (user_mode(regs)) {
local_irq_disable();
irqentry_exit_to_user_mode(regs);
} else {
irqentry_state_t state = irqentry_nmi_enter(regs);
if (handle_misaligned_load(regs))
do_trap_error(regs, SIGBUS, BUS_ADRALN, regs->epc,
"Oops - load address misaligned");
irqentry_nmi_exit(regs, state);
}
}
asmlinkage __visible __trap_section void do_trap_load_misaligned(struct pt_regs *regs)
{
do_trap_misaligned(regs, MISALIGNED_LOAD);
}
asmlinkage __visible __trap_section void do_trap_store_misaligned(struct pt_regs *regs)
{
if (user_mode(regs)) {
irqentry_enter_from_user_mode(regs);
if (handle_misaligned_store(regs))
do_trap_error(regs, SIGBUS, BUS_ADRALN, regs->epc,
"Oops - store (or AMO) address misaligned");
irqentry_exit_to_user_mode(regs);
} else {
irqentry_state_t state = irqentry_nmi_enter(regs);
if (handle_misaligned_store(regs))
do_trap_error(regs, SIGBUS, BUS_ADRALN, regs->epc,
"Oops - store (or AMO) address misaligned");
irqentry_nmi_exit(regs, state);
}
do_trap_misaligned(regs, MISALIGNED_STORE);
}
DO_ERROR_INFO(do_trap_store_fault,
SIGSEGV, SEGV_ACCERR, "store (or AMO) access fault");
DO_ERROR_INFO(do_trap_ecall_s,

View File

@@ -87,6 +87,13 @@
#define INSN_MATCH_C_FSWSP 0xe002
#define INSN_MASK_C_FSWSP 0xe003
#define INSN_MATCH_C_LHU 0x8400
#define INSN_MASK_C_LHU 0xfc43
#define INSN_MATCH_C_LH 0x8440
#define INSN_MASK_C_LH 0xfc43
#define INSN_MATCH_C_SH 0x8c00
#define INSN_MASK_C_SH 0xfc43
#define INSN_LEN(insn) ((((insn) & 0x3) < 0x3) ? 2 : 4)
#if defined(CONFIG_64BIT)
@@ -405,6 +412,13 @@ int handle_misaligned_load(struct pt_regs *regs)
fp = 1;
len = 4;
#endif
} else if ((insn & INSN_MASK_C_LHU) == INSN_MATCH_C_LHU) {
len = 2;
insn = RVC_RS2S(insn) << SH_RD;
} else if ((insn & INSN_MASK_C_LH) == INSN_MATCH_C_LH) {
len = 2;
shift = 8 * (sizeof(ulong) - len);
insn = RVC_RS2S(insn) << SH_RD;
} else {
regs->epc = epc;
return -1;
@@ -504,6 +518,9 @@ int handle_misaligned_store(struct pt_regs *regs)
len = 4;
val.data_ulong = GET_F32_RS2C(insn, regs);
#endif
} else if ((insn & INSN_MASK_C_SH) == INSN_MATCH_C_SH) {
len = 2;
val.data_ulong = GET_RS2S(insn, regs);
} else {
regs->epc = epc;
return -1;

View File

@@ -15,7 +15,7 @@ KBUILD_CFLAGS_MODULE += -fPIC
KBUILD_AFLAGS += -m64
KBUILD_CFLAGS += -m64
KBUILD_CFLAGS += -fPIC
LDFLAGS_vmlinux := -no-pie --emit-relocs --discard-none
LDFLAGS_vmlinux := $(call ld-option,-no-pie) --emit-relocs --discard-none
extra_tools := relocs
aflags_dwarf := -Wa,-gdwarf-2
KBUILD_AFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -D__ASSEMBLY__

View File

@@ -120,11 +120,12 @@ config CRYPTO_DES_S390
As of z196 the CTR mode is hardware accelerated.
config CRYPTO_CHACHA_S390
tristate "Ciphers: ChaCha20"
tristate
depends on S390
select CRYPTO_SKCIPHER
select CRYPTO_LIB_CHACHA_GENERIC
select CRYPTO_ARCH_HAVE_LIB_CHACHA
default CRYPTO_LIB_CHACHA_INTERNAL
help
Length-preserving cipher: ChaCha20 stream cipher (RFC 7539)

View File

@@ -636,7 +636,8 @@ SYM_CODE_START(stack_overflow)
stmg %r0,%r7,__PT_R0(%r11)
stmg %r8,%r9,__PT_PSW(%r11)
mvc __PT_R8(64,%r11),0(%r14)
stg %r10,__PT_ORIG_GPR2(%r11) # store last break to orig_gpr2
GET_LC %r2
mvc __PT_ORIG_GPR2(8,%r11),__LC_PGM_LAST_BREAK(%r2)
xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
lgr %r2,%r11 # pass pointer to pt_regs
jg kernel_stack_overflow

View File

@@ -858,18 +858,13 @@ static int cpumf_pmu_event_type(struct perf_event *event)
static int cpumf_pmu_event_init(struct perf_event *event)
{
unsigned int type = event->attr.type;
int err;
int err = -ENOENT;
if (type == PERF_TYPE_HARDWARE || type == PERF_TYPE_RAW)
err = __hw_perf_event_init(event, type);
else if (event->pmu->type == type)
/* Registered as unknown PMU */
err = __hw_perf_event_init(event, cpumf_pmu_event_type(event));
else
return -ENOENT;
if (unlikely(err) && event->destroy)
event->destroy(event);
return err;
}
@@ -1819,8 +1814,6 @@ static int cfdiag_event_init(struct perf_event *event)
event->destroy = hw_perf_event_destroy;
err = cfdiag_event_init2(event);
if (unlikely(err))
event->destroy(event);
out:
return err;
}

View File

@@ -898,9 +898,6 @@ static int cpumsf_pmu_event_init(struct perf_event *event)
event->attr.exclude_idle = 0;
err = __hw_perf_event_init(event);
if (unlikely(err))
if (event->destroy)
event->destroy(event);
return err;
}

View File

@@ -94,7 +94,7 @@ static int handle_validity(struct kvm_vcpu *vcpu)
vcpu->stat.exit_validity++;
trace_kvm_s390_intercept_validity(vcpu, viwhy);
KVM_EVENT(3, "validity intercept 0x%x for pid %u (kvm 0x%pK)", viwhy,
KVM_EVENT(3, "validity intercept 0x%x for pid %u (kvm 0x%p)", viwhy,
current->pid, vcpu->kvm);
/* do not warn on invalid runtime instrumentation mode */

View File

@@ -3161,7 +3161,7 @@ void kvm_s390_gisa_clear(struct kvm *kvm)
if (!gi->origin)
return;
gisa_clear_ipm(gi->origin);
VM_EVENT(kvm, 3, "gisa 0x%pK cleared", gi->origin);
VM_EVENT(kvm, 3, "gisa 0x%p cleared", gi->origin);
}
void kvm_s390_gisa_init(struct kvm *kvm)
@@ -3178,7 +3178,7 @@ void kvm_s390_gisa_init(struct kvm *kvm)
gi->timer.function = gisa_vcpu_kicker;
memset(gi->origin, 0, sizeof(struct kvm_s390_gisa));
gi->origin->next_alert = (u32)virt_to_phys(gi->origin);
VM_EVENT(kvm, 3, "gisa 0x%pK initialized", gi->origin);
VM_EVENT(kvm, 3, "gisa 0x%p initialized", gi->origin);
}
void kvm_s390_gisa_enable(struct kvm *kvm)
@@ -3219,7 +3219,7 @@ void kvm_s390_gisa_destroy(struct kvm *kvm)
process_gib_alert_list();
hrtimer_cancel(&gi->timer);
gi->origin = NULL;
VM_EVENT(kvm, 3, "gisa 0x%pK destroyed", gisa);
VM_EVENT(kvm, 3, "gisa 0x%p destroyed", gisa);
}
void kvm_s390_gisa_disable(struct kvm *kvm)
@@ -3468,7 +3468,7 @@ int __init kvm_s390_gib_init(u8 nisc)
}
}
KVM_EVENT(3, "gib 0x%pK (nisc=%d) initialized", gib, gib->nisc);
KVM_EVENT(3, "gib 0x%p (nisc=%d) initialized", gib, gib->nisc);
goto out;
out_unreg_gal:

View File

@@ -998,7 +998,7 @@ static int kvm_s390_set_mem_control(struct kvm *kvm, struct kvm_device_attr *att
}
mutex_unlock(&kvm->lock);
VM_EVENT(kvm, 3, "SET: max guest address: %lu", new_limit);
VM_EVENT(kvm, 3, "New guest asce: 0x%pK",
VM_EVENT(kvm, 3, "New guest asce: 0x%p",
(void *) kvm->arch.gmap->asce);
break;
}
@@ -3421,7 +3421,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
kvm_s390_gisa_init(kvm);
INIT_LIST_HEAD(&kvm->arch.pv.need_cleanup);
kvm->arch.pv.set_aside = NULL;
KVM_EVENT(3, "vm 0x%pK created by pid %u", kvm, current->pid);
KVM_EVENT(3, "vm 0x%p created by pid %u", kvm, current->pid);
return 0;
out_err:
@@ -3484,7 +3484,7 @@ void kvm_arch_destroy_vm(struct kvm *kvm)
kvm_s390_destroy_adapters(kvm);
kvm_s390_clear_float_irqs(kvm);
kvm_s390_vsie_destroy(kvm);
KVM_EVENT(3, "vm 0x%pK destroyed", kvm);
KVM_EVENT(3, "vm 0x%p destroyed", kvm);
}
/* Section: vcpu related */
@@ -3605,7 +3605,7 @@ static int sca_switch_to_extended(struct kvm *kvm)
free_page((unsigned long)old_sca);
VM_EVENT(kvm, 2, "Switched to ESCA (0x%pK -> 0x%pK)",
VM_EVENT(kvm, 2, "Switched to ESCA (0x%p -> 0x%p)",
old_sca, kvm->arch.sca);
return 0;
}
@@ -3978,7 +3978,7 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
goto out_free_sie_block;
}
VM_EVENT(vcpu->kvm, 3, "create cpu %d at 0x%pK, sie block at 0x%pK",
VM_EVENT(vcpu->kvm, 3, "create cpu %d at 0x%p, sie block at 0x%p",
vcpu->vcpu_id, vcpu, vcpu->arch.sie_block);
trace_kvm_s390_create_vcpu(vcpu->vcpu_id, vcpu, vcpu->arch.sie_block);

Some files were not shown because too many files have changed in this diff Show More