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: *398edeaf7eMerge android16-6.12 into android16-6.12-lts *360b34f1a9FROMGIT: mm: page_alloc: tighten up find_suitable_fallback() *4e89551038UPSTREAM: mm/page_alloc: clarify should_claim_block() commentary *2505a76e67UPSTREAM: mm/page_alloc: clarify terminology in migratetype fallback code *9407ed7ee3BACKPORT: mm: page_alloc: group fallback functions together *fc396aefadUPSTREAM: mm: page_alloc: remove remnants of unlocked migratetype updates *f87e594933UPSTREAM: mm/page_alloc: add some detailed comments in can_steal_fallback *a3db058b64Merge android16-6.12 into android16-6.12-lts *60eb68c4d8Revert "virtio_ring: add a func argument 'recycle_done' to virtqueue_reset()" *81930ac28aRevert "virtio_net: ensure netdev_tx_reset_queue is called on bind xsk for tx" *dba4f359fcMerge 6.12.30 into android16-6.12-lts |\ | *e0e2f78243Linux 6.12.30 | *25e07c8403drm/amdgpu: fix pm notifier handling | *8e7583fb85phy: tegra: xusb: remove a stray unlock | *5924b32446usb: typec: ucsi: displayport: Fix deadlock | *bca94cc345drm/tiny: panel-mipi-dbi: Use drm_client_setup_with_fourcc() | *5ed066083fdrm/panel-mipi-dbi: Run DRM default client setup | *25998ed87fdrm/fbdev-dma: Support struct drm_driver.fbdev_probe | *d22496de50Bluetooth: btnxpuart: Fix kernel panic during FW release | *7ca84f6a22iio: light: opt3001: fix deadlock due to concurrent flag access | *58517eae32accel/ivpu: Fix fw log printing | *0923a7d55aaccel/ivpu: Refactor functions in ivpu_fw_log.c | *1516c55872accel/ivpu: Reset fw log on cold boot | *1c302f64eaaccel/ivpu: Rename ivpu_log_level to fw_log_level | *74953f93f4mm/page_alloc: fix race condition in unaccepted memory handling | *260ca2e961drm/xe/gsc: do not flush the GSC worker from the reset path | *6b2d1fbd41CIFS: New mount option for cifs.upcall namespace resolution | *23dc14c52ddmaengine: idxd: Refactor remove call with idxd_cleanup() helper | *017d4012dcdmaengine: idxd: fix memory leak in error handling path of idxd_pci_probe | *868dbce755dmaengine: idxd: fix memory leak in error handling path of idxd_alloc | *21f9f5cd9admaengine: idxd: Add missing idxd cleanup to fix memory leak in remove call | *e0ba67b10ddmaengine: idxd: Add missing cleanups in cleanup internals | *80b0260227dmaengine: idxd: Add missing cleanup for early error out in idxd_setup_internals | *56e2f09083dmaengine: idxd: fix memory leak in error handling path of idxd_setup_groups | *4958737c42dmaengine: idxd: fix memory leak in error handling path of idxd_setup_engines | *5fcd392daedmaengine: idxd: fix memory leak in error handling path of idxd_setup_wqs | *6b5d770e45dmaengine: ti: k3-udma: Use cap_mask directly from dma_device structure instead of a local copy | *26e63b2fe3dmaengine: ti: k3-udma: Add missing locking | *fe0756daadmm: userfaultfd: correct dirty flags set for both present and swap pte | *d005c81665net: qede: Initialize qede_ll_ops with designated initializer | *20d6e621bering-buffer: Fix persistent buffer when commit page is the reader page | *2b81e76db3wifi: mt76: disable napi on driver removal | *ec5d9a750etpm: Mask TPM RC in tpm2_start_auth_session() | *cac03fecbcspi: tegra114: Use value to check for invalid delays | *d0df124437smb: client: fix memory leak during error handling for POSIX mkdir | *bffc3038a2scsi: sd_zbc: block: Respect bio vector limits for REPORT ZONES buffer | *c450f648d0phy: renesas: rcar-gen3-usb2: Set timing registers only once | *c78a5693bdphy: renesas: rcar-gen3-usb2: Fix role detection on unbind/bind | *ed0e7d31d0phy: Fix error handling in tegra_xusb_port_init | *1db527f0cbphy: tegra: xusb: Use a bitmask for UTMI pad power state tracking | *ce14aa00ddtracing: samples: Initialize trace_array_printk() with the correct function | *589c9e66bdftrace: Fix preemption accounting for stacktrace filter command | *7d353da580ftrace: Fix preemption accounting for stacktrace trigger command | *511ceee899kbuild: Disable -Wdefault-const-init-unsafe | *899e014e68Drivers: hv: vmbus: Remove vmbus_sendpacket_pagebuffer() | *4400b05ffaDrivers: hv: Allow vmbus_sendpacket_mpb_desc() to create multiple ranges | *02a68f11baarm64: dts: rockchip: Remove overdrive-mode OPPs from RK3588J SoC dtsi | *7f2e784f27arm64: dts: amlogic: dreambox: fix missing clkc_audio node | *b1d6694b39hv_netvsc: Remove rmsg_pgcnt | *7a508c604chv_netvsc: Preserve contiguous PFN grouping in the page buffer array | *24f05522c1hv_netvsc: Use vmbus_sendpacket_mpb_desc() to send VMBus messages | *fe1bebd0eddma-buf: insert memory barrier before updating num_fences | *93152dac0bALSA: usb-audio: Add sample rate quirk for Microdia JP001 USB Camera | *c88f4ff535ALSA: usb-audio: Add sample rate quirk for Audioengine D1 | *f8302100f4ALSA: es1968: Add error handling for snd_pcm_hw_constraint_pow2() | *7f8d77f654ACPI: PPTT: Fix processor subtable walk | *a348ff3f5bgpio: pca953x: fix IRQ storm on system wake up | *f0c0b8e6bcMAINTAINERS: Update Alexey Makhalov's email address | *64a33088addrm/amd/display: Avoid flooding unnecessary info messages | *2d125a1f0ddrm/amd/display: Correct the reply value when AUX write incomplete | *8d71c3231bdrm/amdgpu: csa unmap use uninterruptible lock | *e54f20c5a1drm/amdgpu: fix incorrect MALL size for GFX1151 | *c75f3f9cbfRevert "drm/amd/display: Hardware cursor changes color when switched to software cursor" | *3ee6399854btrfs: add back warning for mount option commit values exceeding 300 | *bf804f34adbtrfs: fix folio leak in submit_one_async_extent() | *6ea6cea17fbtrfs: fix discard worker infinite loop after disabling discard | *12f69c4e30LoongArch: uprobes: Remove redundant code about resume_era | *88650dde2eLoongArch: uprobes: Remove user_{en,dis}able_single_step() | *c92b99c4c0LoongArch: Fix MAX_REG_OFFSET calculation | *2135336574LoongArch: Save and restore CSR.CNTC for hibernation | *66a309b4d5LoongArch: Move __arch_cpu_idle() to .cpuidle.text section | *111e55db3cLoongArch: Prevent cond_resched() occurring within kernel-fpu | *f8544be7e8HID: bpf: abort dispatch if device destroyed | *d32c1880b3udf: Make sure i_lenExtents is uptodate on inode eviction | *0102989af4sched_ext: bpf_iter_scx_dsq_new() should always initialize iterator | *a0c2478218dmaengine: Revert "dmaengine: dmatest: Fix dmatest waiting less when interrupted" | *1533677267NFSv4/pnfs: Reset the layout state after a layoutreturn | *6dbf38159dtsnep: fix timestamping with a stacked DSA driver | *a11b8c0be6net/tls: fix kernel panic when alloc_page failed | *abc43c1ffdmlxsw: spectrum_router: Fix use-after-free when deleting GRE net devices | *07c737d9abwifi: mac80211: Set n_channels after allocating struct cfg80211_scan_request | *7db81acae0octeontx2-pf: Do not reallocate all ntuple filters | *1977cec5beocteontx2-af: Fix CGX Receive counters | *256adb2da5net: ethernet: mtk_eth_soc: fix typo for declaration MT7988 ESW capability | *bf85a27605octeontx2-pf: macsec: Fix incorrect max transmit size in TX secy | *38a2fdd3e9netlink: specs: tc: all actions are indexed arrays | *be64ab9c17netlink: specs: tc: fix a couple of attribute names | *3f16340071drm/xe: Save CTX_TIMESTAMP mmio value instead of LRC value | *d2a9a92bb4regulator: max20086: fix invalid memory access | *5451b834b3qlcnic: fix memory leak in qlcnic_sriov_channel_cfg_cmd() | *1f80e6ff02net/mlx5e: Disable MACsec offload for uplink representor profile | *462e224381vsock/test: Fix occasional failure in SIOCOUTQ tests | *225e29465anet: dsa: b53: prevent standalone from trying to forward to other ports | *bd99372178ALSA: sh: SND_AICA should depend on SH_DMA_API | *a3c147040bnvme-pci: acquire cq_poll_lock in nvme_poll_irqdisable | *ddfa034da3nvme-pci: make nvme_pci_npages_prp() __always_inline | *0251e13f3fnet: dsa: sja1105: discard incoming frames in BR_STATE_LISTENING | *3e64d35475net: cadence: macb: Fix a possible deadlock in macb_halt_tx. | *5ee626e473ALSA: ump: Fix a typo of snd_ump_stream_msg_device_info | *caac5761a6ALSA: seq: Fix delivery of UMP events to group ports | *8ee6ec20ddnet: mctp: Ensure keys maintain only one ref to corresponding dev | *d308312acdtests/ncdevmem: Fix double-free of queue array | *38c937dbd4selftests: ncdevmem: Switch to AF_INET6 | *04db681f3cselftests: ncdevmem: Make client_ip optional | *0738648a7dselftests: ncdevmem: Unify error handling | *eb15f4f380selftests: ncdevmem: Separate out dmabuf provider | *f3380d119fselftests: ncdevmem: Redirect all non-payload output to stderr | *d4d1561d17net: mctp: Don't access ifa_index when missing | *9e5efcff49mctp: no longer rely on net->dev_index_head[] | *37050be74etools/net/ynl: ethtool: fix crash when Hardware Clock info is missing | *d1365ca80bnet_sched: Flush gso_skb list too during ->change() | *28826a89fdBluetooth: MGMT: Fix MGMT_OP_ADD_DEVICE invalid device flags | *10c7f1c647RDMA/core: Fix "KASAN: slab-use-after-free Read in ib_register_device" problem | *de7acdb462spi: loopback-test: Do not split 1024-byte hexdumps | *da824f1271nfs: handle failure of nfs_get_lock_context in unlock path | *94e7272b63HID: uclogic: Add NULL check in uclogic_input_configured() | *a699995370HID: thrustmaster: fix memory leak in thrustmaster_interrupts() | *336edd6b0fRDMA/rxe: Fix slab-use-after-free Read in rxe_queue_cleanup bug | *c43b0a185fvirtio_net: ensure netdev_tx_reset_queue is called on bind xsk for tx | *343a77562cvirtio_ring: add a func argument 'recycle_done' to virtqueue_reset() | *1cf8bdd596iio: chemical: sps30: use aligned_s64 for timestamp | *7b16d3c361iio: adc: ad7768-1: Fix insufficient alignment of timestamp. | *b9e0997f2exhci: dbc: Avoid event polling busyloop if pending rx transfers are inactive. | *651eaaae6bxhci: dbc: Improve performance by removing delay in transfer event polling. | *5d9d62323eRevert "drm/amd: Stop evicting resources on APUs in suspend" | *4d45a5f1e2drm/amd: Add Suspend/Hibernate notification callback support | *ea0153e065iio: pressure: mprls0025pa: use aligned_s64 for timestamp | *039681d656iio: chemical: pms7003: use aligned_s64 for timestamp | *b37c112ef2iio: adc: ad7266: Fix potential timestamp alignment issue. | *a065f78ebaKVM: x86/mmu: Prevent installing hugepages when mem attributes are changing | *3d962ec543KVM: Add member to struct kvm_gfn_range to indicate private/shared | *54401e29abuio_hv_generic: Fix sysfs creation path for ring buffer | *7bf64cd0cctpm: tis: Double the timeout B to 4s | *517c11fe4ftracing: probes: Fix a possible race in trace_probe_log APIs | *f0d70d8dcacgroup/cpuset: Extend kthread_is_per_cpu() check to all PF_NO_SETAFFINITY tasks | *220444d209arm64: dts: imx8mp-var-som: Fix LDO5 shutdown causing SD card timeout | *48fff1267eplatform/x86: asus-wmi: Fix wlan_ctrl_by_user detection | *03e4ee3a9aplatform/x86/amd/pmc: Declare quirk_spurious_8042 for MECHREVO Wujie 14XA (GX4HRXL) | *bc4c54cbb4binfmt_elf: Move brk for static PIE even if ASLR disabled | *97dd8c19f2riscv: dts: sophgo: fix DMA data-width configuration for CV18xx | *a0bde67526drivers/platform/x86/amd: pmf: Check for invalid Smart PC Policies | *5022d7a392drivers/platform/x86/amd: pmf: Check for invalid sideloaded Smart PC Policies | *10d1496f85fs/xattr.c: fix simple_xattr_list to always include security.* xattrs | *61f489ca99arm64: dts: rockchip: Assign RT5616 MCLK rate on rk3588-friendlyelec-cm3588 * |bdd44337d5UPSTREAM: loop: don't require ->write_iter for writable files in loop_configure * |651f2e4fcaMerge 6.12.29 into android16-6.12-lts |\| | *5be5dbf91eLinux 6.12.29 | *7e78061be7x86/its: FineIBT-paranoid vs ITS | *bb85c3abbfx86/its: Fix build errors when CONFIG_MODULES=n | *2a6194e124selftest/x86/bugs: Add selftests for ITS | *88a817e60dx86/its: Use dynamic thunks for indirect branches | *15335117c5x86/ibt: Keep IBT disabled during alternative patching | *bd57853b86x86/its: Align RETs in BHB clear sequence to avoid thunking | *9f132c0397x86/its: Add support for RSB stuffing mitigation | *4dc1902fdex86/its: Add "vmexit" option to skip mitigation on some CPUs | *68d59e9ba3x86/its: Enable Indirect Target Selection mitigation | *5100004723x86/its: Add support for ITS-safe return thunk | *16a7d5b7a4x86/its: Add support for ITS-safe indirect thunk | *a6f2a436e9x86/its: Enumerate Indirect Target Selection (ITS) bug | *76f847655bDocumentation: x86/bugs/its: Add ITS documentation | *f23d4f4aebx86/speculation: Remove the extra #ifdef around CALL_NOSPEC | *9ebe6f1bd2x86/speculation: Add a conditional CS prefix to CALL_NOSPEC | *d2498bbb54x86/speculation: Simplify and make CALL_NOSPEC consistent | *9d8295dcf2x86/bhi: Do not set BHI_DIS_S in 32-bit mode | *b86349f326x86/bpf: Add IBHF call at end of classic BPF | *87a12b9b38x86/bpf: Call branch history clearing sequence on exit | *2176530849arm64: proton-pack: Add new CPUs 'k' values for branch mitigation | *e5f5100f1carm64: bpf: Only mitigate cBPF programs loaded by unprivileged users | *38c345fd54arm64: bpf: Add BHB mitigation to the epilogue for cBPF programs | *f2aebb8ec6arm64: proton-pack: Expose whether the branchy loop k value | *ec5bca57afarm64: proton-pack: Expose whether the platform is mitigated by firmware | *2a3915e861arm64: insn: Add support for encoding DSB | *86b37810fasched/eevdf: Fix se->slice being set to U64_MAX and resulting crash | *16bae58f73mm: page_alloc: speed up fallbacks in rmqueue_bulk() | *564d25b1a6mm: page_alloc: don't steal single pages from biggest buddy | *12abefb8c8Bluetooth: btmtk: Remove the resetting step before downloading the fw | *c7a9df4ef4Bluetooth: btmtk: Remove resetting mt7921 before downloading the fw | *2482f7705bio_uring: always arm linked timeouts prior to issue | *6b0383a21drust: clean Rust 1.88.0's `clippy::uninlined_format_args` lint | *1c25723831rust: allow Rust 1.87.0's `clippy::ptr_eq` lint | *6aac2c5476Revert "um: work around sched_yield not yielding in time-travel mode" | *cd010271a9do_umount(): add missing barrier before refcount checks in sync case | *3edac2949eio_uring/sqpoll: Increase task_work submission batch size | *944af45bb7drm/xe/tests/mocs: Hold XE_FORCEWAKE_ALL for LNCF regs | *95a75ed2b0drm/xe/tests/mocs: Update xe_force_wake_get() return handling | *d6b013b44eriscv: misaligned: enable IRQs while handling misaligned accesses | *45a0697ceeriscv: misaligned: factorize trap handling | *19fa2a4830nvme: unblock ctrl state transition for firmware update | *7798edcc5bdrm/panel: simple: Update timings for AUO G101EVN010 | *184b147b9floop: Add sanity check for read/write_iter * |d2f3f294cfMergea781ffe410("loop: factor out a loop_assign_backing_file helper") into android16-6.12-lts |\| | *a781ffe410loop: factor out a loop_assign_backing_file helper * |f6f856e093Merge5e1470b276("loop: refactor queue limits updates") into android16-6.12-lts |\| | *5e1470b276loop: refactor queue limits updates * |b9315b0505Merge0558ce095b("loop: Fix ABBA locking race") into android16-6.12-lts |\| | *0558ce095bloop: Fix ABBA locking race * |abbbbed768Merge722f6dece7("loop: Simplify discard granularity calc") into android16-6.12-lts |\| | *722f6dece7loop: Simplify discard granularity calc * |f3c6606676Merge02a77b3020("loop: Use bdev limit helpers for configuring discard") into android16-6.12-lts |\| | *02a77b3020loop: Use bdev limit helpers for configuring discard * |6a0454f040Merge126be03494("riscv: misaligned: Add handling for ZCB instructions") into android16-6.12-lts |\| | *126be03494riscv: misaligned: Add handling for ZCB instructions | *eaa30e1d0eMIPS: Fix MAX_REG_OFFSET | *fb98c9e584iio: adc: dln2: Use aligned_s64 for timestamp | *ef5d6a4096iio: accel: adxl355: Make timestamp 64-bit aligned using aligned_s64 | *afe8849597types: Complement the aligned types with signed 64-bit one | *245e319019iio: temp: maxim-thermocouple: Fix potential lack of DMA safe buffer. | *e9bf391a9biio: accel: adxl367: fix setting odr for activity time update | *a2ad060643usb: usbtmc: Fix erroneous generic_read ioctl return | *2073913776usb: usbtmc: Fix erroneous wait_srq ioctl return | *29e1773746usb: usbtmc: Fix erroneous get_stb ioctl error returns | *9d90c283eaUSB: usbtmc: use interruptible sleep in usbtmc_read | *5ad298d6d4usb: typec: ucsi: displayport: Fix NULL pointer access | *3366a19948usb: typec: tcpm: delay SNK_TRY_WAIT_DEBOUNCE to SRC_TRYWAIT transition | *1c001b6ddeusb: misc: onboard_usb_dev: fix support for Cypress HX3 hubs | *08eca452a6usb: host: tegra: Prevent host controller crash when OTG port is used | *d1c8fa4c6eusb: gadget: Use get_status callback to set remote wakeup capability | *43ae91f561usb: gadget: tegra-xudc: ACK ST_RC after clearing CTRL_RUN | *75f23e49adusb: gadget: f_ecm: Add get_status callback | *fae7f44601usb: cdnsp: fix L1 resume issue for RTL_REVISION_NEW_LPM version | *88d92cffc9usb: cdnsp: Fix issue with resuming from L1 | *f6fdbe4d54usb: dwc3: gadget: Make gadget_wakeup asynchronous * |23a88a6ad8Merged133023c9a("ocfs2: stop quota recovery before disabling quotas") into android16-6.12-lts |\| | *d133023c9aocfs2: stop quota recovery before disabling quotas | *fe3d752a7aocfs2: implement handshaking with ocfs2 recovery thread | *f96041a959ocfs2: switch osb->disable_recovery to enum | *1b3b915852ocfs2: fix the issue with discontiguous allocation in the global_bitmap | *b76eaef983x86/microcode: Consolidate the loader enablement checking | *d63851049fmodule: ensure that kobject_put() is safe for module type kobjects | *d66a22f6a4memblock: Accept allocated memory before use in memblock_double_array() | *ed45af6841clocksource/i8253: Use raw_spinlock_irqsave() in clockevent_i8253_disable() | *abbc99e898arm64: cpufeature: Move arm64_use_ng_mappings to the .data section to prevent wrong idmap generation | *55701e992baccel/ivpu: Increase state dump msg timeout | *8e9c8a0393xenbus: Use kref to track req lifetime | *54dd5d6af7xen: swiotlb: Use swiotlb bouncing if kmalloc allocation demands it | *571dcf3d27smb: client: Avoid race in open_cached_dir with lease breaks | *a9f28dbfddusb: uhci-platform: Make the clock really optional | *92d0a28afbdrm/amdgpu/hdp7: use memcfg register to post the write for HDP flush | *df04418262drm/amdgpu/hdp6: use memcfg register to post the write for HDP flush | *0a776c3054drm/amdgpu/hdp5: use memcfg register to post the write for HDP flush | *b6f0f3e6c7drm/amdgpu/hdp5.2: use memcfg register to post the write for HDP flush | *4872de413edrm/amdgpu/hdp4: use memcfg register to post the write for HDP flush | *a13f9ac569drm/amd/display: Copy AUX read reply data whenever length > 0 | *2d63e66f7bdrm/amd/display: Fix wrong handling for AUX_DEFER case | *0e225bdba3drm/amd/display: Remove incorrect checking in dmub aux handler | *fc7ac4ad1ddrm/amd/display: Fix the checking condition in dmub aux handling | *468034a06adrm/amd/display: more liberal vmin/vmax update for freesync | *d8c4afe783drm/amd/display: Fix invalid context error in dml helper | *19323f414bdrm/amdgpu/vcn: using separate VCN1_AON_SOC offset | *206569cbf7drm/xe: Add page queue multiplier | *a5f162727bdrm/v3d: Add job to pending list if the reset was skipped | *dadf911610iio: imu: st_lsm6dsx: fix possible lockup in st_lsm6dsx_read_tagged_fifo | *a1cad8a3bciio: imu: st_lsm6dsx: fix possible lockup in st_lsm6dsx_read_fifo | *82f6334a0biio: imu: inv_mpu6050: align buffer for timestamp | *c4dfff960biio: adis16201: Correct inclinometer channel resolution | *4cbd37a12aiio: adc: rockchip: Fix clock initialization sequence | *c9f8413b78iio: adc: ad7606: fix serial register access | *7f37e31483io_uring: ensure deferred completions are flushed for multishot | *4d41b9e4c9drm/amd/display: Shift DMUB AUX reply command if necessary | *d362b21fefKVM: SVM: Forcibly leave SMM mode on SHUTDOWN interception | *5156f7c484selftests/mm: fix a build failure on powerpc | *b21ec0726aselftests/mm: compaction_test: support platform with huge mount of memory | *b543a5a73bmm/userfaultfd: fix uninitialized output field for -EAGAIN race | *6166c3cf40mm/huge_memory: fix dereferencing invalid pmd migration entry * |8c70afee5aRevert "mm: vmalloc: support more granular vrealloc() sizing" * |f6204ce2cdMerge2910019b04("mm: vmalloc: support more granular vrealloc() sizing") into android16-6.12-lts |\| | *2910019b04mm: vmalloc: support more granular vrealloc() sizing * |9649374a04Mergeefb5973459("mm: fix folio_pte_batch() on XEN PV") into android16-6.12-lts |\| | *efb5973459mm: fix folio_pte_batch() on XEN PV | *d87392094fx86/mm: Eliminate window where TLB flushes may be inadvertently skipped | *e8b1d65f0astaging: axis-fifo: Correct handling of tx_fifo_depth for size validation | *38a8982ca0staging: axis-fifo: Remove hardware resets for user errors | *06753f4933staging: bcm2835-camera: Initialise dev in v4l2_dev | *215e42e2f1staging: iio: adc: ad7816: Correct conditional logic for store mode | *5bb112f160rust: clean Rust 1.88.0's warning about `clippy::disallowed_macros` configuration | *a85d8aed0cobjtool/rust: add one more `noreturn` Rust function for Rust 1.87.0 | *376b73292arust: clean Rust 1.88.0's `unnecessary_transmutes` lint | *2943297acfInput: synaptics - enable InterTouch on TUXEDO InfinityBook Pro 14 v5 | *a82f4f5563Input: synaptics - enable SMBus for HP Elitebook 850 G1 | *bbb5081015Input: synaptics - enable InterTouch on Dell Precision M3800 | *bc4556bba1Input: synaptics - enable InterTouch on Dynabook Portege X30L-G | *9d9074af50Input: synaptics - enable InterTouch on Dynabook Portege X30-D | *38bb0170d6Input: xpad - fix two controller table values | *bf239d3835Input: xpad - add support for 8BitDo Ultimate 2 Wireless Controller | *302a0cd0bbInput: xpad - fix Share button on Xbox One controllers | *619c05fb17Input: mtk-pmic-keys - fix possible null pointer dereference | *f36230dacdInput: cyttsp5 - fix power control issue on wakeup | *ee25256789Input: cyttsp5 - ensure minimum reset pulse width * |75d972f987ANDROID: GKI: add netdev_stat_queue_sum to the virtual symbol list * |388a174371Mergede02eb727f("virtio-net: fix total qstat values") into android16-6.12-lts |\| | *de02eb727fvirtio-net: fix total qstat values * |ccbcf35213Mergebb8f86f40e("net: export a helper for adding up queue stats") into android16-6.12-lts |\| | *bb8f86f40enet: export a helper for adding up queue stats | *7eea40818efbnic: Do not allow mailbox to toggle to ready outside fbnic_mbx_poll_tx_ready | *650e283b4cfbnic: Pull fbnic_fw_xmit_cap_msg use out of interrupt context | *9d9010879dfbnic: Improve responsiveness of fbnic_mbx_poll_tx_ready | *612a05c9f2fbnic: Actually flush_tx instead of stalling out | *fea860a2a6fbnic: Gate AXI read/write enabling on FW mailbox | *cd25fc4c56fbnic: Fix initialization of mailbox descriptor rings | *ce97489864net: dsa: b53: do not set learning and unicast/multicast on up | *e5b40f4a2bnet: dsa: b53: fix learning on VLAN unaware bridges | *ce1a289bf2net: dsa: b53: fix toggling vlan_filtering | *2407c98a1bnet: dsa: b53: do not program vlans when vlan filtering is off | *7dac025829net: dsa: b53: do not allow to configure VLAN 0 | *11c427a869net: dsa: b53: always rejoin default untagged VLAN on bridge leave | *90b65bc357net: dsa: b53: fix VLAN ID for untagged vlan on bridge leave | *42ab1f2b6fnet: dsa: b53: fix flushing old pvid VLAN on pvid change | *4ed7e60313net: dsa: b53: fix clearing PVID of a port | *46de8f2aa3net: dsa: b53: keep CPU port always tagged again | *11dbd4e0a8net: dsa: b53: allow leaky reserved multicast | *b37e54259cbpf: Scrub packet on bpf_redirect_peer | *e2ab67672bnetfilter: ipset: fix region locking in hash types | *0160ac84fbipvs: fix uninit-value for saddr in do_output_route4 | *64385c0d02erofs: ensure the extra temporary copy is valid for shortened bvecs * |bca3c97937Merge574686c807("ice: use DSN instead of PCI BDF for ice_adapter index") into android16-6.12-lts |\| | *574686c807ice: use DSN instead of PCI BDF for ice_adapter index | *62946989e6ice: Initial support for E825C hardware in ice_adapter | *4555c4a13awifi: mac80211: fix the type of status_code for negotiated TID to Link Mapping | *c33927f385can: gw: fix RCU/BH usage in cgw_create_job() | *8f24cc6a72can: mcp251xfd: fix TDC setting for low data bit rates | *2ecce25ea2can: m_can: m_can_class_allocate_dev(): initialize spin lock on device probe | *79a6945e3dnet: ethernet: mtk_eth_soc: do not reset PSE when setting FE | *aac9d5fa53net: ethernet: mtk_eth_soc: reset all TX queues on DMA free | *35be4c0cdfgre: Fix again IPv6 link-local address generation. | *94a6f6c204virtio-net: free xsk_buffs on error in virtnet_xsk_pool_enable() | *edd53ee790virtio_net: xsk: bind/unbind xsk for tx | *98cd7ed927sch_htb: make htb_deactivate() idempotent | *5c3b8f0575s390/entry: Fix last breaking event handling in case of stack corruption | *2148d34371ksmbd: fix memory leak in parse_lease_state() | *ec334aaab7openvswitch: Fix unsafe attribute parsing in output_userspace() | *9e9841e232ksmbd: Fix UAF in __close_file_table_ids | *d62ba16563ksmbd: prevent out-of-bounds stream writes by validating *pos | *c57301e332ksmbd: prevent rename with empty string | *1b7b1cbc6ecan: rockchip_canfd: rkcanfd_remove(): fix order of unregistration calls | *12ef60f1b9can: mcp251xfd: mcp251xfd_remove(): fix order of unregistration calls | *c488f8b53es390/pci: Fix duplicate pci_dev_put() in disable_slot() when PF has child VFs | *afa5cdce06vfio/pci: Align huge faults to order | *9423f6da82wifi: cfg80211: fix out-of-bounds access during multi-link element defragmentation | *be54b750c3s390/pci: Fix missing check for zpci_create_device() error return | *e0a8e3ca07can: mcan: m_can_class_unregister(): fix order of unregistration calls | *14ee85b748firmware: arm_scmi: Fix timeout checks on polling path | *fe3da1bfd8arm64: dts: imx8mm-verdin: Link reg_usdhc2_vqmmc to usdhc2 | *ff7d691921Revert "btrfs: canonicalize the device path before adding it" | *61e0fc3312fs/erofs/fileio: call erofs_onlinefolio_split() after bio_add_folio() | *b32411f045dm: add missing unlock on in dm_keyslot_evict() * |26bd1ac1adMerge android16-6.12 into android16-6.12-lts * |ad2b007ef4Revert "cpufreq: Fix setting policy limits when frequency tables are used" * |834bfca137Revert "xsk: Fix race condition in AF_XDP generic RX path" * |62cd1edf4dMerge 6.12.28 into android16-6.12-lts |\| | *f08cdc6cc9Linux 6.12.28 | *db62809197dm: fix copying after src array boundaries | *dd329f04dddrm/amd/display: Fix slab-use-after-free in hdcp | *75096780a4drm/amd/display: Add scoped mutexes for amdgpu_dm_dhcp | *e1eea69858drivers: base: handle module_kobject creation | *69113bf740kernel: globalize lookup_or_create_module_kobject() | *3b41b5efaekernel: param: rename locate_module_kobject | *7509810606Revert "drm/meson: vclk: fix calculation of 59.94 fractional rates" | *e993398cbdarm64: dts: st: Use 128kB size for aliased GIC400 register access on stm32mp25 SoCs | *aa4ea53554arm64: dts: st: Adjust interrupt-controller for stm32mp25 SoCs | *7ac0df4f35ARM: dts: opos6ul: add ksz8081 phy properties | *a3ab5c9443arm64: dts: imx95: Correct the range of PCIe app-reg region | *cc67657f63firmware: arm_ffa: Skip Rx buffer ownership release if not acquired | *969d8beaa2firmware: arm_scmi: Balance device refcount when destroying devices | *752600f1acdrm/xe: Ensure fixed_slice_mode gets set after ccs_mode change | *0e6325c183sch_ets: make est_qlen_notify() idempotent | *15fa905db2sch_qfq: make qfq_qlen_notify() idempotent | *d06476714dsch_hfsc: make hfsc_qlen_notify() idempotent | *353add4cadsch_drr: make drr_qlen_notify() idempotent | *0a188c0e19sch_htb: make htb_qlen_notify() idempotent | *bccc7df3ceaccel/ivpu: Add handling of VPU_JSM_STATUS_MVNCI_CONTEXT_VIOLATION_HW | *079d2622f8accel/ivpu: Fix locking order in ivpu_job_submit | *3e3062be7daccel/ivpu: Abort all jobs after command queue unregister | *a39b5b6a6eaccel/ivpu: Update VPU FW API headers | *1ebbfee889accel/ivpu: Fix a typo | *a735c9205daccel/ivpu: Use xa_alloc_cyclic() instead of custom function | *aaba59961daccel/ivpu: Make DB_ID and JOB_ID allocations incremental | *f4ae68eae9net: Fix the devmem sock opts and msgs for parisc | *6b6cd38910bcachefs: Remove incorrect __counted_by annotation | *dab2a13059mm, slab: clean up slab->obj_exts always | *e10ec6e32bblk-mq: create correct map for fallback case | *1e15804c04net: vertexcom: mse102x: Fix RX error handling | *2e5b8eb6b4net: vertexcom: mse102x: Add range check for CMD_RTS | *98abf83672net: vertexcom: mse102x: Fix LEN_MASK | *6abbffa736net: vertexcom: mse102x: Fix possible stuck of SPI interrupt | *7f9c3e2213net: hns3: defer calling ptp_clock_register() | *6a6d547a7fnet: hns3: fixed debugfs tm_qset size | *ee2642bbaenet: hns3: fix an interrupt residual problem | *d4cd766731net: hns3: store rx VLAN tag offload state for VF | *c8d788f800octeon_ep: Fix host hang issue during device reboot | *bcb9d6a222net: fec: ERR007885 Workaround for conventional TX | *189b05f189net: lan743x: Fix memleak issue when GSO enabled | *8a543d825eptp: ocp: Fix NULL dereference in Adva board SMA sysfs operations | *c0dba059b1net: use sock_gen_put() when sk_state is TCP_TIME_WAIT | *a90146b73cbnxt_en: fix module unload sequence | *b41a49d543ASoC: simple-card-utils: Fix pointer check in graph_util_parse_link_direction | *9b552c84cdnvmet-tcp: select CONFIG_TLS from CONFIG_NVME_TARGET_TCP_TLS | *15ea0b6164nvme-tcp: select CONFIG_TLS from CONFIG_NVME_TCP_TLS | *60331309e7nvme-tcp: fix premature queue removal and I/O failover | *2da8fe5a10bnxt_en: Fix ethtool -d byte order for 32-bit values | *44807af79ebnxt_en: Fix out-of-bound memcpy() during ethtool -w | *454a4450b0bnxt_en: Fix coredump logic to free allocated buffer | *626af9b8e8bnxt_en: call pci_alloc_irq_vectors() after bnxt_reserve_rings() | *aa15f389fcbnxt_en: Add missing skb_mark_for_recycle() in bnxt_rx_vlan() | *808a7304b5bnxt_en: Fix ethtool selftest output in one of the failure cases | *e039b00ddbbnxt_en: Fix error handling path in bnxt_init_chip() | *9bc347854dALSA: hda/realtek: Fix built-mic regression on other ASUS models | *6effe1c0fanet: ipv6: fix UDPv6 GSO segmentation with NAT | *dcb5a2b961net: dsa: felix: fix broken taprio gate states after clock jump | *317013d1adnet: ethernet: mtk_eth_soc: fix SER panic with 4GB+ RAM | *56b958a5b5igc: fix lock order in igc_ptp_reset | *df1ff481faidpf: protect shutdown from reset | *bf0ec3aac1idpf: fix potential memory leak on kcalloc() failure | *d206ea7681net: mdio: mux-meson-gxl: set reversed bit when using internal phy | *e9b65c9561net: dlink: Correct endianness handling of led_mode | *7fc2c784dddrm/mipi-dbi: Fix blanking for non-16 bit formats | *d0d7c93b4bdrm/tests: shmem: Fix memleak | *5ad0b1b554nvme-pci: fix queue unquiesce check on slot_reset | *226beac560ALSA: ump: Fix buffer overflow at UMP SysEx message conversion | *6b1355860dscsi: ufs: core: Remove redundant query_complete trace | *d14f88bd0fidpf: fix offloads support for encapsulated packets | *073791e9cfice: Check VF VSI Pointer Value in ice_vc_add_fdir_fltr() | *53bc0b5517net_sched: qfq: Fix double list add in class with netem as child qdisc | *1f01e9f961net_sched: ets: Fix double list add in class with netem as child qdisc | *2e7093c7a8net_sched: hfsc: Fix a UAF vulnerability in class with netem as child qdisc | *26e75716b9net_sched: drr: Fix double list add in class with netem as child qdisc | *c649b9653epds_core: remove write-after-free of client_id | *f41e27b746pds_core: specify auxiliary_device to be created | *1d69ab8503pds_core: make pdsc_auxbus_dev_del() void | *aea3ca60fanet: ethernet: mtk_eth_soc: sync mtk_clks_source_name array | *5257a0f1ecnet: ethernet: mtk-star-emac: rearm interrupts in rx_poll only when advised | *8d40bf73fanet: ethernet: mtk-star-emac: fix spinlock recursion issues on rx/tx poll | *950832771ertase: Modify the condition used to detect overflow in rtase_calc_time_mitigation | *4911412efdbnxt_en: improve TX timestamping FIFO configuration | *ddc1e64c29octeon_ep_vf: Resolve netdevice usage count issue | *6e6325d487net: mscc: ocelot: delete PVID VLAN when readding it as non-PVID | *432572d536Bluetooth: L2CAP: copy RX timestamp to new fragments | *cfe006c8a6Bluetooth: btintel_pcie: Add additional to checks to clear TX/RX paths | *b70b41591eBluetooth: btusb: avoid NULL pointer dereference in skb_dequeue() | *c7bd5c9ba1Bluetooth: btintel_pcie: Avoid redundant buffer allocation | *620810ac1fBluetooth: hci_conn: Fix not setting timeout for BIG Create Sync | *eb8b860e87Bluetooth: hci_conn: Fix not setting conn_timeout for Broadcast Receiver | *fe81c26d2dBluetooth: hci_conn: Remove alloc from critical section | *3104b7d559ASoC: amd: acp: Fix NULL pointer deref in acp_i2s_set_tdm_slot | *92d812df3baccel/ivpu: Correct DCT interrupt handling | *174161d6f0net/mlx5: E-switch, Fix error handling for enabling roce | *488ab6d41fnet/mlx5e: Fix lock order in mlx5e_tx_reporter_ptpsq_unhealthy_recover | *c022830c2anet/mlx5e: TC, Continue the attr process even if encap entry is invalid | *51599d07c7net/mlx5: E-Switch, Initialize MAC Address for Default GID | *b67fee5837net/mlx5e: Use custom tunnel header for vxlan gbp | *65d3c57061xsk: Fix race condition in AF_XDP generic RX path | *5cb9e07f84vxlan: vnifilter: Fix unlocked deletion of default FDB entry | *ec1643d1bapowerpc/boot: Fix dash warning | *791a2d9e87wifi: plfxlc: Remove erroneous assert in plfxlc_mac_release | *50d1982dbawifi: iwlwifi: fix the check for the SCRATCH register upon resume | *33bf992088wifi: iwlwifi: don't warn if the NIC is gone in resume | *bb0d602899drm/i915/pxp: fix undefined reference to `intel_pxp_gsccs_is_ready_for_sessions' | *f7dc50604cALSA: hda/realtek - Enable speaker for HP platform | *7867992c3eASoC: Intel: sof_sdw: Add NULL check in asoc_sdw_rt_dmic_rtd_init() | *ae462ead89powerpc/boot: Check for ld-option support | *fcf36f6ed4pinctrl: imx: Return NULL if no group is matched and found | *7f5476d80fbook3s64/radix : Align section vmemmap start address to PAGE_SIZE | *29a4a29112ASoC: soc-pcm: Fix hw_params() and DAPM widget sequence | *2029a38b6cASoC: cs-amp-lib-test: Don't select SND_SOC_CS_AMP_LIB | *220395054cASoC: soc-core: Stop using of_property_read_bool() for non-boolean properties | *b93e1cad05drm/amd/display: Default IPS to RCG_IN_ACTIVE_IPS2_IN_OFF | *1f27a3e93btracing: Fix oob write in trace_seq_to_buffer() | *962d88304ccpufreq: Fix setting policy limits when frequency tables are used | *573b047229cpufreq: Avoid using inconsistent policy->min and policy->max | *553d723e1asmb: client: fix zero length for mkdir POSIX create context | *d5ec1d7950ksmbd: fix use-after-free in session logoff | *e18c616718ksmbd: fix use-after-free in kerberos authentication | *8fb3b6c85bksmbd: fix use-after-free in ksmbd_session_rpc_open | *d211757918platform/x86/intel-uncore-freq: Fix missing uncore sysfs during CPU hotplug | *2fcb183768platform/x86/amd: pmc: Require at least 2.5 seconds between HW sleep cycles | *2e303d0107iommu: Fix two issues in iommu_copy_struct_from_user() | *677714d779iommu/vt-d: Apply quirk_iommu_igfx for 8086:0044 (QM57/QS57) | *ccc50fcba3iommu/arm-smmu-v3: Fix pgsize_bit for sva domains | *98e634aa4biommu/arm-smmu-v3: Fix iommu_device_probe bug due to duplicated stream ids | *10d901a95fiommu/amd: Fix potential buffer overflow in parse_ivrs_acpihid | *43eb647e84drm: Select DRM_KMS_HELPER from DRM_DEBUG_DP_MST_TOPOLOGY_REFS | *989f9c6a61drm/amdgpu: Fix offset for HDP remap in nbio v7.11 | *510aea4ef0dm: always update the array size in realloc_argv on success | *af2a88817fdm-integrity: fix a warning on invalid table line | *f451082572dm-bufio: don't schedule in atomic context | *efebca5970x86/boot/sev: Support memory acceptance in the EFI stub under SVSM | *bdb435ef98wifi: brcm80211: fmac: Add error handling for brcmf_usb_dl_writeimage() | *0988dd0263tracing: Do not take trace_event_sem in print_event_fields() | *da77a7594fspi: tegra114: Don't fail set_cs_timing when delays are zero | *20a28e0ecemmc: renesas_sdhi: Fix error handling in renesas_sdhi_probe | *9c4ddea497mm/memblock: repeat setting reserved region nid if array is doubled | *eb9b72e4femm/memblock: pass size instead of end to memblock_set_node() | *f102342360irqchip/qcom-mpm: Prevent crash when trying to handle non-wake GPIOs | *6569501c70amd-xgbe: Fix to ensure dependent features are toggled with RX checksum offload | *44ee0afc9dperf/x86/intel: KVM: Mask PEBS_ENABLE loaded for guest with vCPU's value. | *6dcf83f504perf/x86/intel: Only check the group flag for X86 leader | *cf21e890f5parisc: Fix double SIGFPE crash | *090c8714efarm64: errata: Add missing sentinels to Spectre-BHB MIDR arrays | *4f4388a550i2c: imx-lpi2c: Fix clock count when probe defers | *833ef30f01EDAC/altera: Set DDR and SDMMC interrupt mask before registration | *349dac4052EDAC/altera: Test the correct error reg offset | *b771b20172drm/nouveau: Fix WARN_ON in nouveau_fence_context_kill() | *f1dfc94584drm/fdinfo: Protect against driver unbind | *d31806f14ccpufreq: intel_pstate: Unchecked MSR aceess in legacy mode | *f46fd2f024btrfs: fix COW handling in run_delalloc_nocow() | *b80db09b61btrfs: adjust subpage bit start based on sectorsize | *38d9ca7405binder: fix offset calculation in debug log | *fdf0ae5e9eALSA: usb-audio: Add second USB ID for Jabra Evolve 65 headset | *0aaae77be5ALSA: usb-audio: Add retry on -EPROTO from usb_set_interface() | *222b6685efRevert "rndis_host: Flag RNDIS modems as WWAN devices" | *351378ae7bBluetooth: btusb: Add 13 USB device IDs for Qualcomm WCN785x | *78945de256Bluetooth: btusb: Add new VID/PID for WCN785x | *5ab19c342fBluetooth: btusb: Add ID 0x2c7c:0x0130 for Qualcomm WCN785x | *c6e1913e76Bluetooth: btusb: Add one more ID 0x13d3:0x3623 for Qualcomm WCN785x | *8ee592df65Bluetooth: btusb: Add one more ID 0x0489:0xe0f3 for Qualcomm WCN785x | *a9bfc823d0Bluetooth: btusb: add Foxconn 0xe0fc for Qualcomm WCN785x * |7ef2a3c257Merge 6.12.27 into android16-6.12-lts |\| | *b801eaa96aLinux 6.12.27 | *92c6f8c577bpf: Fix BPF_INTERNAL namespace import * |4268a279b0Merge branch 'android16-6.12' into android16-6.12-lts * |2348274c38ANDROID: GKI: fix up new enum ABI break for PERR_REMOTE * |54ab26576bANDROID: GKI: fix up CRC issue with msi.c * |edd5c4a4dbANDROID: GKI: fix up crc issue in crypto_get_default_null_skcipher() * |5562e5e9bcRevert "usb: typec: class: Fix NULL pointer access" * |9bc73ad3e8Revert "usb: typec: class: Invalidate USB device pointers on partner unregistration" * |f382226159Revert "usb: typec: class: Unlocked on error in typec_register_partner()" * |d21d9b7966Revert "xhci: Handle spurious events on Etron host isoc enpoints" * |afca077cf3Revert "usb: xhci: Fix Short Packet handling rework ignoring errors" * |51b29671f8Revert "block: remove the write_hint field from struct request" * |69db030430Revert "block: remove the ioprio field from struct request" * |0051f90803Revert "block: make sure ->nr_integrity_segments is cloned in blk_rq_prep_clone" * |c03fd6f483Revert "module: sign with sha512 instead of sha1 by default" * |452a0ec59dANDROID: GKI: Remove CONFIG_UBSAN_SIGNED_WRAP from gki_defconfig * |db596bb60eMerge 6.12.26 into android16-6.12-lts |\| | *c72e4daa7aLinux 6.12.26 | *6b9ebcbd31mq-deadline: don't call req_get_ioprio from the I/O completion handler | *ccc4e973fdarm64: dts: ti: k3-j784s4-j742s2-main-common: Correct the GICD size | *4b814a1c0ccrypto: Kconfig - Select LIB generic option | *ab5281d21eusb: typec: class: Unlocked on error in typec_register_partner() | *ff4226252cobjtool: Silence more KCOV warnings, part 2 | *4dc5c03fbdobjtool: Ignore end-of-section jumps for KCOV/GCOV | *1b7647efadusb: xhci: Fix Short Packet handling rework ignoring errors | *1042d22942nvme: fixup scan failure for non-ANA multipath controllers | *8bfe4f02b6MIPS: cm: Fix warning if MIPS_CM is disabled | *62bf68561dmedia: i2c: imx214: Fix uninitialized variable in imx214_set_ctrl() | *67727c5764crypto: lib/Kconfig - Hide arch options from user | *4833d0a92biommu: Handle race with default domain setup | *49d628cb24net: dsa: mv88e6xxx: enable STU methods for 6320 family | *ff83998b6fnet: dsa: mv88e6xxx: enable .port_set_policy() for 6320 family | *7dd0c1b86enet: dsa: mv88e6xxx: enable PVT for 6321 switch | *f4106753aenet: dsa: mv88e6xxx: fix atu_move_port_mask for 6341 family | *324fd0ba93Revert "net: dsa: mv88e6xxx: fix internal PHYs for 6320 family" | *40966fc993usb: typec: class: Invalidate USB device pointers on partner unregistration | *45314999f9ext4: goto right label 'out_mmap_sem' in ext4_setattr() | *9f609f04c2comedi: jr3_pci: Fix synchronous deletion of timer | *33e131a104vmxnet3: Fix malformed packet sizing in vmxnet3_process_xdp | *de7c24febdusb: typec: class: Fix NULL pointer access | *543e0f8765selftests/bpf: Adjust data size to have ETH_HLEN | *a9b0b9421eselftests/bpf: check program redirect in xdp_cpumap_attach | *b84e7bc488selftests/bpf: make xdp_cpumap_attach keep redirect prog attached | *f8ed4bfb03selftests/bpf: fix bpf_map_redirect call for cpu map test | *94d9c3366exfs: flush inodegc before swapon | *d6989af0cbxfs: rename xfs_iomap_swapfile_activate to xfs_vm_swap_activate | *8185e3ba71xfs: Do not allow norecovery mount with quotacheck | *94c5584f36xfs: do not check NEEDSREPAIR if ro,norecovery mount. | *2b344e779ddriver core: fix potential NULL pointer dereference in dev_uevent() | *4f43c1bf2bdriver core: introduce device_set_driver() helper | *bfc66c4c28Revert "drivers: core: synchronize really_probe() and dev_uevent()" | *185d376875spi: spi-imx: Add check for spi_imx_setupxfer() | *54cbce4fe0drm/amdgpu: Use the right function for hdp flush | *0fd149c262drm/amdgpu: use a dummy owner for sysfs triggered cleaner shaders v4 | *387461fba3md/raid1: Add check for missing source disk in process_checks() | *cd0d49958cx86/cpu: Add CPU model number for Bartlett Lake CPUs with Raptor Cove cores | *3027e5d811ubsan: Fix panic from test_ubsan_out_of_bounds | *33903ad627spi: tegra210-quad: add rate limiting and simplify timeout error message | *1b4cf6873aspi: tegra210-quad: use WARN_ON_ONCE instead of WARN_ON for timeouts | *8f805b3746ksmbd: fix WARNING "do not call blocking ops when !TASK_RUNNING" | *c9ffbc0792riscv: Provide all alternative macros all the time | *d53b2d49a8iomap: skip unnecessary ifs_block_is_uptodate check | *2ef6eea2efnetfs: Only create /proc/fs/netfs with CONFIG_PROC_FS | *2d097dc242x86/i8253: Call clockevent_i8253_disable() with interrupts disabled | *40216dc239ASoC: fsl_asrc_dma: get codec or cpu dai from backend | *0f9802f174scsi: pm80xx: Set phy_attached to zero when device is gone | *acf1610d8bscsi: ufs: exynos: gs101: Put UFS device in reset on .suspend() | *b7a05edb28scsi: ufs: exynos: Move phy calls to .exit() callback | *c0724ac138scsi: ufs: exynos: Enable PRDT pre-fetching with UFSHCD_CAP_CRYPTO | *09c7a06928scsi: ufs: exynos: Ensure pre_link() executes before exynos_ufs_phy_init() | *731047980dscsi: hisi_sas: Fix I/O errors caused by hardware port ID changes | *b626bc3c1dext4: make block validity check resistent to sb bh corruption | *b14d986413iommu: Clear iommu-dma ops on cleanup | *71c3d43c8fcifs: Fix querying of WSL CHR and BLK reparse points over SMB1 | *9f8eeac3a6timekeeping: Add a lockdep override in tick_freeze() | *1776d6d019cifs: Fix encoding of SMB1 Session Setup Kerberos Request in non-UNICODE mode | *f4cb2c042anvmet-fc: put ref when assoc->del_work is already scheduled | *9635d486b6nvmet-fc: take tgtport reference only once | *bb4b487bbdx86/bugs: Don't fill RSB on context switch with eIBRS | *3b4fc0785ax86/bugs: Don't fill RSB on VMEXIT with eIBRS+retpoline | *5c41b7913fx86/bugs: Use SBPB in write_ibpb() if applicable | *6f3e9b2566selftests/mincore: Allow read-ahead pages to reach the end of the file | *f1e28d46a0x86/xen: disable CPU idle and frequency drivers for PVH dom0 | *5e58b93a12gpiolib: of: Move Atmel HSMCI quirk up out of the regulator comment | *fecf44d473objtool: Stop UNRET validation on UD2 | *ee5521176anvme: multipath: fix return value of nvme_available_path | *b9c89c97d7nvme: re-read ANA log page after ns scan completes | *5f3f3087a2drm/xe/xe3lpg: Apply Wa_14022293748, Wa_22019794406 | *bbf2d06052drm/amdgpu: Increase KIQ invalidate_tlbs timeout | *bd12979c19ACPI PPTT: Fix coding mistakes in a couple of sizeof() calls | *bff38d184bACPI: EC: Set ec_no_wakeup for Lenovo Go S | *24ede35eb2nvme: requeue namespace scan on missed AENs | *781c870bdcxen: Change xen-acpi-processor dom0 dependency | *90dc6c1e3bperf/core: Fix WARN_ON(!ctx) in __free_event() for partial init | *d6b66c20d5selftests: ublk: fix test_stripe_04 | *a4e99cd415cgroup/cpuset: Don't allow creation of local partition over a remote one | *daed646d3cKVM: s390: Don't use %pK through debug printing | *5e7c90294eKVM: s390: Don't use %pK through tracepoints | *c6c8afdcf8sched/isolation: Make CONFIG_CPU_ISOLATION depend on CONFIG_SMP | *e5902d7ec7kbuild: add dependency from vmlinux to sorttable | *3568fd9e44io_uring: always do atomic put from iowq | *2dc0e5ceb3rtc: pcf85063: do a SW reset if POR failed | *18296b59519p/trans_fd: mark concurrent read and writes to p9_conn->err | *c548f956889p/net: fix improper handling of bogus negative read/write replies | *a3b8d8cf51ntb_hw_amd: Add NTB PCI ID for new gen CPU | *b5f8b03af5ntb: reduce stack usage in idt_scan_mws | *47ab2caba4qibfs: fix _another_ leak | *69578c7d02objtool, lkdtm: Obfuscate the do_nothing() pointer | *03bb66ede7objtool, regulator: rk808: Remove potential undefined behavior in rk806_set_mode_dcdc() | *777e6735feobjtool, ASoC: codecs: wcd934x: Remove potential undefined behavior in wcd934x_slim_irq_handler() | *0485bdf88fobjtool, panic: Disable SMAP in __stack_chk_fail() | *8b4f2b6389objtool: Silence more KCOV warnings | *da780c4a07um: work around sched_yield not yielding in time-travel mode | *0a205fdbb3thunderbolt: Scan retimers after device router has been enumerated | *7fb9a9d2e3usb: host: xhci-plat: mvebu: use ->quirks instead of ->init_quirk() func | *052fb65335usb: gadget: aspeed: Add NULL pointer check in ast_vhub_init_dev() | *2c97354037phy: rockchip: usbdp: Avoid call hpd_event_trigger in dp_phy_init | *9ff59cb815usb: xhci: Avoid Stop Endpoint retry loop if the endpoint seems Running | *2ef4b0e911dmaengine: dmatest: Fix dmatest waiting less when interrupted | *69bb5d420di3c: master: svc: Add support for Nuvoton npcm845 i3c | *635be13606xhci: Handle spurious events on Etron host isoc enpoints | *16a7a8e6c4usb: xhci: Fix isochronous Ring Underrun/Overrun event handling | *cbfa55bda1usb: xhci: Complete 'error mid TD' transfers when handling Missed Service | *66046b586csound/virtio: Fix cancel_sync warnings on uninitialized work_structs | *f045fd7d46usb: dwc3: gadget: Avoid using reserved endpoints on Intel Merrifield | *2ecae00138usb: dwc3: gadget: Refactor loop to avoid NULL endpoints | *8a5e1d32c6fs/ntfs3: Fix WARNING in ntfs_extend_initialized_size | *8db49e89a7fs/ntfs3: Keep write operations atomic | *523bcab993usb: host: max3421-hcd: Add missing spi_device_id table | *8b7b088925mailbox: pcc: Always clear the platform ack interrupt first | *a32ebfa7d8mailbox: pcc: Fix the possible race in updation of chan_in_use flag | *b817d2bfd6bpf: Reject attaching fexit/fmod_ret to __noreturn functions | *4131411f42bpf: Only fails the busy counter check in bpf_cgrp_storage_get if it creates storage | *46df1fe944bpf: bpftool: Setting error code in do_loader() | *ab57877603s390/tty: Fix a potential memory leak bug | *3b3aa72636s390/sclp: Add check for get_zeroed_page() | *6e026e6050parisc: PDT: Fix missing prototype warning | *4139072087clk: check for disabled clock-provider in of_clk_get_hw_from_clkspec() | *c5c833f637bpf: Fix deadlock between rcu_tasks_trace and event_mutex. | *7758e308aebpf: Fix kmemleak warning for percpu hashmap | *0486de3c1bcrypto: null - Use spin lock instead of mutex | *0195abab4acrypto: lib/Kconfig - Fix lib built-in failure when arch is modular | *fbea0efa8acrypto: ccp - Add support for PCI device 0x1134 | *eea7d57c4aMIPS: cm: Detect CM quirks from device tree | *3da0371494pinctrl: mcp23s08: Get rid of spurious level interrupts | *d00d598027pinctrl: renesas: rza2: Fix potential NULL pointer dereference | *1badc279b4selftests/bpf: Fix stdout race condition in traffic monitor | *caa559d3f7USB: wdm: add annotation | *b8bf49f3f6USB: wdm: wdm_wwan_port_tx_complete mutex in atomic context | *52ae15c665USB: wdm: close race between wdm_open and wdm_wwan_port_stop | *eb4973cf6bUSB: wdm: handle IO errors in wdm_wwan_port_start | *3e52ae347eUSB: VLI disk crashes if LPM is used | *d85b7af3bdusb: quirks: Add delay init quirk for SanDisk 3.2Gen1 Flash Drive | *9924ee1bcdusb: quirks: add DELAY_INIT quirk for Silicon Motion Flash Drive | *694fdc6a9cusb: dwc3: xilinx: Prevent spike in reset signal | *52a7c9d930usb: dwc3: gadget: check that event count does not exceed event buffer length | *17c3984a44USB: OHCI: Add quirk for LS7A OHCI controller (rev 0x02) | *7fb632a131usb: chipidea: ci_hdrc_imx: implement usb_phy_init() error handling | *c99ace5965usb: chipidea: ci_hdrc_imx: fix call balance of regulator routines | *887902ca73usb: chipidea: ci_hdrc_imx: fix usbmisc handling | *74cd6e408ausb: cdns3: Fix deadlock when using NCM gadget | *bce3055b08usb: xhci: Fix invalid pointer dereference in Etron workaround | *1777714865xhci: Limit time spent with xHC interrupts disabled during bus resume | *54c66c7030USB: serial: simple: add OWON HDS200 series oscilloscope support | *2eff976819USB: serial: option: add Sierra Wireless EM9291 | *ea0d806b94USB: serial: ftdi_sio: add support for Abacus Electrics Optical Probe | *5d29f884feserial: sifive: lock port in startup()/shutdown() callbacks | *f6ae572683serial: msm: Configure correct working mode before starting earlycon | *6f021bc008tty: Require CAP_SYS_ADMIN for all usages of TIOCL_SELMOUSEREPORT | *f650009358firmware: stratix10-svc: Add of_platform_default_populate() | *4fb75c0cccmisc: microchip: pci1xxxx: Fix incorrect IRQ status handling during ack | *12cc2193f2misc: microchip: pci1xxxx: Fix Kernel panic during IRQ handler registration | *3670dee376char: misc: register chrdev region with all possible minors | *26df754de5KVM: x86: Take irqfds.lock when adding/deleting IRQ bypass producer | *b5de7ac74fKVM: x86: Reset IRTE to host control if *new* route isn't postable | *a22fe6f843KVM: x86: Explicitly treat routing entry type changes as changes | *3e243378f2mei: vsc: Fix fortify-panic caused by invalid counted_by() use | *34fafded1cmei: me: add panther lake H DID | *1f439fe4d8scsi: Improve CDL control | *b39bb3b4ebUSB: storage: quirk for ADATA Portable HDD CH94 | *40554c0f74ata: libata-scsi: Fix ata_msense_control_ata_feature() | *aa5778d06aata: libata-scsi: Fix ata_mselect_control_ata_feature() return type | *ef2d6c6346ata: libata-scsi: Improve CDL control | *df1a5d5c61mcb: fix a double free bug in chameleon_parse_gdd() | *4c5f6925e2cxl/core/regs.c: Skip Memory Space Enable check for RCD and RCH Ports | *f3cd533c3aKVM: SVM: Allocate IR data using atomic allocation | *7a8a6b627fio_uring: fix 'sync' handling of io_fallback_tw() | *74d9e20187LoongArch: KVM: Fix PMU pass-through issue if VM exits to host finally | *be83fd71acLoongArch: KVM: Fully clear some CSRs when VM reboot | *3b7f341eeeLoongArch: Remove a bogus reference to ZONE_DMA | *51424fd171LoongArch: Return NULL from huge_pte_offset() for invalid PMD | *93b7872d33LoongArch: Handle fp, lsx, lasx and lbt assembly symbols | *3939d6f29dirqchip/gic-v2m: Prevent use after free of gicv2m_get_fwnode() | *140f05cbbfx86/insn: Fix CTEST instruction decoding | *1ae30272b9drm/amd/display: Force full update in gpu reset | *3ff83378b6drm/amd/display: Fix gpu reset in multidisplay config | *92b58c671bdrm: panel: jd9365da: fix reset signal polarity in unprepare | *ea532ba5e1rust: firmware: Use `ffi::c_char` type in `FwFunc` | *1909540037scsi: mpi3mr: Fix pending I/O counter | *9c31ac7819net: phy: microchip: force IRQ polling mode for lan88xx | *c2a6b4d78cnet: selftests: initialize TCP header and skb payload with zero | *d6a9c4e6f9xen-netfront: handle NULL returned by xdp_convert_buff_to_frame() | *64b816a6c4crypto: atmel-sha204a - Set hwrng quality to lowest possible | *28401a63c0sched_ext: Use kvzalloc for large exit_dump allocation | *30c0d6e778virtio_console: fix missing byte order handling for cols and rows | *e17bc10bf3netfilter: fib: avoid lookup if socket is available | *f33b678543KVM: SVM: Disable AVIC on SNP-enabled system without HvInUseWrAllowed feature | *9b34dffcd9LoongArch: Make do_xyz() exception handlers more robust | *a556bb5178LoongArch: Make regs_irqs_disabled() more clear | *08bbdcb35cLoongArch: Select ARCH_USE_MEMTEST | *8d37031464perf/x86: Fix non-sampling (counting) events on certain x86 platforms | *955f9ede52bpf: Add namespace to BPF internal symbols | *3decda1a3csplice: remove duplicate noinline from pipe_clear_nowait | *bcf6d3158criscv: uprobes: Add missing fence.i after building the XOL buffer | *4715ab8435riscv: Replace function-like macro by static inline function | *e22010c3b8iommu/amd: Return an error if vCPU affinity is set for non-vCPU IRTE | *7f24ea6a46block: never reduce ra_pages in blk_apply_bdi_limits | *66d7702b42pds_core: make wait_context part of q_info | *ff207e83dapds_core: Remove unnecessary check in pds_client_adminq_cmd() | *6702f5c6b2pds_core: handle unsupported PDS_CORE_CMD_FW_CONTROL result | *2982e07ad7pds_core: Prevent possible adminq overflow/stuck condition | *dd6c299390net: dsa: mt7530: sync driver-specific behavior of MT7531 variants | *c6f0350441net_sched: hfsc: Fix a potential UAF in hfsc_dequeue() too | *86cd4641c7net_sched: hfsc: Fix a UAF vulnerability in class handling | *a61afd5482fix a couple of races in MNT_TREE_BENEATH handling by do_move_mount() | *4fb743ee21net: ethernet: mtk_eth_soc: net: revise NETSYSv3 hardware configuration | *0ceef62a32tipc: fix NULL pointer dereference in tipc_mon_reinit_self() | *41143e7105net: phy: leds: fix memory leak | *3340654bbfnet: lwtunnel: disable BHs when required | *eeab661803scsi: ufs: core: Add NULL check in ufshcd_mcq_compl_pending_transfer() | *29daa63f2cscsi: core: Clear flags for scsi_cmnd that did not complete | *fdd2a03561net/mlx5: Move ttc allocation after switch case to prevent leaks | *0b682680b1net/mlx5: Fix null-ptr-deref in mlx5_create_{inner_,}ttc_table() | *ef258a15e7vhost-scsi: Fix vhost_scsi_send_status() | *0ac4643bf2vhost-scsi: Fix vhost_scsi_send_bad_target() | *461c258ba7vhost-scsi: Add better resource allocation failure handling | *5d92e582d1cgroup/cpuset-v1: Add missing support for cpuset_v2_mode | *9a447f748fbtrfs: zoned: return EIO on RAID1 block group write pointer mismatch | *c8a0c38bebbtrfs: avoid page_lockend underflow in btrfs_punch_hole_lock_range() | *6c1c665805cpufreq: fix compile-test defaults | *ef56c130f6cpufreq: Do not enable by default during compile testing | *dbe413a8cdcpufreq: cppc: Fix invalid return value in .get() callback | *7d002f5914scsi: ufs: mcq: Add NULL check in ufshcd_mcq_abort() | *28fbd7b13bcpufreq: scpi: Fix null-ptr-deref in scpi_cpufreq_get_rate() | *7ccfadfb25cpufreq: scmi: Fix null-ptr-deref in scmi_cpufreq_get_rate() | *fbdba5f374cpufreq: apple-soc: Fix null-ptr-deref in apple_soc_cpufreq_get_rate() | *16c8aa5de1dma/contiguous: avoid warning about unused size_bytes | *40bf7f560ccpufreq: sun50i: prevent out-of-bounds access | *aef37505c4ceph: Fix incorrect flush end position calculation | *984830d902lib/Kconfig.ubsan: Remove 'default UBSAN' from UBSAN_INTEGER_WRAP | *b26ac56370drm/amd/display/dml2: use vzalloc rather than kzalloc | *50ec8c2428drm/amd/display: Fix unnecessary cast warnings from checkpatch | *0fdb612c20drm/xe/bmg: Add one additional PCI ID | *c187aaa9e7net/niu: Niu requires MSIX ENTRY_DATA fields touch before entry reads | *869749e481scsi: ufs: exynos: Disable iocc if dma-coherent property isn't set | *56f3327cddscsi: ufs: exynos: Move UFS shareability value to drvdata | *661380d982scsi: ufs: exynos: Add gs101_ufs_drv_init() hook and enable WriteBooster | *0e76176edcscsi: ufs: exynos: Remove superfluous function parameter | *ffcdfaecd4scsi: ufs: exynos: Remove empty drv_init method | *1aec4d14cfksmbd: fix use-after-free in __smb2_lease_break_noti() | *0fc403192dksmbd: browse interfaces list on FSCTL_QUERY_INTERFACE_INFO IOCTL | *8d2c1acc88ksmbd: add netdev-up/down event debug print | *0772765ac8ksmbd: use __GFP_RETRY_MAYFAIL | *60cb4dfcf7accel/ivpu: Fix the NPU's DPU frequency calculation | *27fcf64781accel/ivpu: Add auto selection logic for job scheduler | *35ba7b2d4dPCI/MSI: Add an option to write MSIX ENTRY_DATA before any reads | *46d3575209PCI/MSI: Handle the NOMASK flag correctly for all PCI/MSI backends | *aad1246896PCI/MSI: Convert pci_msi_ignore_mask to per MSI domain flag | *8fe536f102scsi: ufs: qcom: fix dev reference leaked through of_qcom_ice_get | *a122b3b1f5of: resolver: Fix device node refcount leakage in of_resolve_phandles() | *05576e1304of: resolver: Simplify of_resolve_phandles() using __free() | *56ddf0023barm64: dts: ti: k3-j784s4-j742s2-main-common: Fix serdes_ln_ctrl reg-masks | *107b05f540arm64: dts: ti: Refactor J784s4 SoC files to a common file | *bde067b82aiio: adc: ad7768-1: Fix conversion result sign | *68565706b5iio: adc: ad7768-1: Move setting of val a bit later to avoid unnecessary return value check | *8f229785c5net: dsa: mv88e6xxx: fix VTU methods for 6320 family | *2afa5ea7c4block: make sure ->nr_integrity_segments is cloned in blk_rq_prep_clone | *ed7535b141block: remove the ioprio field from struct request | *3e12e8c273block: remove the write_hint field from struct request | *575601d08amedia: ov08x40: Add missing ov08x40_identify_module() call on stream-start | *9c00d54454media: ov08x40: Move ov08x40_identify_module() function up | *fc96a720d8media: i2c: imx214: Fix link frequency validation | *5a5ab62e4amedia: i2c: imx214: Check number of lanes from device tree | *2a60b6bef4media: i2c: imx214: Replace register addresses with macros | *694d85794amedia: i2c: imx214: Convert to CCI register access helpers | *a9aa210989media: i2c: imx214: Simplify with dev_err_probe() | *d3a38834b2media: i2c: imx214: Use subdev active state | *9d5752b853PM: EM: Address RCU-related sparse warnings | *db3b3964afPM: EM: use kfree_rcu() to simplify the code | *27ce35d80ammc: sdhci-msm: fix dev reference leaked through of_qcom_ice_get | *311a651fbbsoc: qcom: ice: introduce devm_of_qcom_ice_get | *1c9798bf81mm/vmscan: don't try to reclaim hwpoison folio | *0312735402tracing: Verify event formats that have "%*p.." | *0b603e7759tracing: Add __print_dynamic_array() helper | *e62c31802dmodule: sign with sha512 instead of sha1 by default * |a4f1e3a7a1Revert "bpf: track changes_pkt_data property for global functions" * |d9ca1c7ed5Revert "selftests/bpf: test for changing packet data from global functions" * |c7d660d083Revert "bpf: check changes_pkt_data property for extension programs" * |551fd048d4Revert "selftests/bpf: freplace tests for tracking of changes_packet_data" * |9876f5d506Revert "selftests/bpf: validate that tail call invalidates packet pointers" * |40e8b9169bRevert "bpf: fix null dereference when computing changes_pkt_data of prog w/o subprogs" * |c63e815d06Revert "selftests/bpf: extend changes_pkt_data with cases w/o subprograms" * |b5fe9d591cRevert "driver core: bus: add irq_get_affinity callback to bus_type" * |d22fe9eaa4Revert "blk-mq: introduce blk_mq_map_hw_queues" * |cbab53e120Revert "scsi: replace blk_mq_pci_map_queues with blk_mq_map_hw_queues" * |38f1a2afb6Revert "scsi: smartpqi: Use is_kdump_kernel() to check for kdump" * |ee0d567613Merge 6.12.25 into android16-6.12-lts |\| | *ef4999852dLinux 6.12.25 | *f78507c1efblock: make struct rq_list available for !CONFIG_BLOCK | *473c534735selftests/bpf: extend changes_pkt_data with cases w/o subprograms | *f0946dcccbbpf: fix null dereference when computing changes_pkt_data of prog w/o subprogs | *1062b7612cselftests/bpf: validate that tail call invalidates packet pointers | *d0e94a5bb9selftests/bpf: freplace tests for tracking of changes_packet_data | *3846e2bea5bpf: check changes_pkt_data property for extension programs | *fa1fbb67e0selftests/bpf: test for changing packet data from global functions | *1d572c6048bpf: track changes_pkt_data property for global functions | *d30b9c5950bpf: add find_containing_subprog() utility function | *ab7edf42cewifi: ath12k: Fix invalid entry fetch in ath12k_dp_mon_srng_process | *cec26d6bf3MIPS: ds1287: Match ds1287_set_base_clock() function types | *305dd911deMIPS: cevt-ds1287: Add missing ds1287.h include | *21c6a0ed6fMIPS: dec: Declare which_prom() as static | *45e19beb96Revert "wifi: ath12k: Fix invalid entry fetch in ath12k_dp_mon_srng_process" | *b906c1ad25mm/vma: add give_up_on_oom option on modify/merge, use in uffd release | *7e2d224939block: don't reorder requests in blk_add_rq_to_plug | *2ad0f19a4eblock: add a rq_list type | *5b34f40cdablock: remove rq_list_move | *3dd1af8ce3nvmet-fc: Remove unused functions | *29b2d6f53cdrm/amd/display: Temporarily disable hostvm on DCN31 | *628e6c4521LoongArch: Eliminate superfluous get_numa_distances_cnt() | *66d182770fefi/libstub: Bump up EFI_MMAP_NR_SLACK_SLOTS to 32 | *59a30b981amisc: pci_endpoint_test: Fix 'irq_type' to convey the correct type | *0557e70e2amisc: pci_endpoint_test: Avoid issue of interrupts remaining after request_irq error | *deee01acc6selftests/bpf: Fix raw_tp null handling test | *e2a9f73ee4md: fix mddev uaf while iterating all_mddevs list | *6ea2e8743eplatform/x86: msi-wmi-platform: Workaround a ACPI firmware bug | *1c9e272f98platform/x86: msi-wmi-platform: Rename "data" variable | *3802df8552kbuild: Add '-fno-builtin-wcslen' | *0f1ee79b0fscripts: generate_rust_analyzer: Add ffi crate | *c1a485c46ccpufreq: Reference count policy in cpufreq_update_limits() | *686d8f7b59arm64/boot: Enable EL2 requirements for FEAT_PMUv3p9 | *14eacc808earm64/sysreg: Add register fields for HFGWTR2_EL2 | *2ef32d984darm64/sysreg: Add register fields for HFGRTR2_EL2 | *c415127454arm64/sysreg: Add register fields for HFGITR2_EL2 | *051eccf717arm64/sysreg: Add register fields for HDFGWTR2_EL2 | *7403602616arm64/sysreg: Add register fields for HDFGRTR2_EL2 | *e1a6acacf1arm64/sysreg: Update register fields for ID_AA64MMFR0_EL1 | *effb4d79b3drm/mgag200: Fix value in <VBLKSTR> register | *7f21bfd6fcdrm/amdgpu: fix warning of drm_mm_clean | *a43e53e310drm/xe: Set LRC addresses before guc load | *65dc4e3d5bdrm/xe/userptr: fix notifier vs folio deadlock | *e4ed75e974drm/xe/dma_buf: stop relying on placement in unmap | *e97bf44115drm/amd/display: Add HP Probook 445 and 465 to the quirk list for eDP on DP1 | *a5c9107a3edrm/amd/display: Protect FPU in dml2_init()/dml21_init() | *9cb744fbeedrm/amd/display: Do not enable Replay and PSR while VRR is on in amdgpu_dm_commit_planes() | *a53d959fe6drm/amdgpu: immediately use GTT for new allocations | *4b171d4cbfdrm/i915/gvt: fix unterminated-string-initialization warning | *28477f701bdrm/xe: Fix an out-of-bounds shift when invalidating TLB | *b2c11fea26drm/sti: remove duplicate object names | *c90b95e12edrm/imagination: take paired job reference | *490c30fd55drm/imagination: fix firmware memory leaks | *6e2c805996drm/nouveau: prime: fix ttm_bo_delayed_delete oops | *91b646a0b2drm/amdgpu/dma_buf: fix page_link check | *228e98e202drm/amdgpu/mes11: optimize MES pipe FW version fetching | *596284026cdrm/amd/display: Protect FPU in dml21_copy() | *74d6fba60fdrm/amd/display: Protect FPU in dml2_validate()/dml21_validate() | *fe19e04cd9drm/amd/display: Add HP Elitebook 645 to the quirk list for eDP on DP1 | *2ac5f466f6drm/xe: Use local fence in error path of xe_migrate_clear | *a37e01fe60drm/i915/vrr: Add vrr.vsync_{start, end} in vrr_params_changed | *2b00b32e61drm/amdgpu/mes12: optimize MES pipe FW version fetching | *42f7b5d12cdrm/amd/pm/powerplay/hwmgr/vega20_thermal: Prevent division by zero | *fb803d4bb9drm/amd/pm/swsmu/smu13/smu_v13_0: Prevent division by zero | *8e9c4f8d19drm/amd/pm/powerplay/hwmgr/smu7_thermal: Prevent division by zero | *63a1504001drm/amd/pm/smu11: Prevent division by zero | *bd4d90adbcdrm/amd/pm/powerplay: Prevent division by zero | *6413fed016drm/amd/pm: Prevent division by zero | *2a2b7b6f90drm/amd/display: Increase vblank offdelay for PSR panels | *776253d981drm/amd/display: Actually do immediate vblank disable | *b542559343drm/amd: Handle being compiled without SI or CIK support better | *0363c03672drm/amd/display: prevent hang on link training fail | *531d463364drm/amdgpu: Prefer shadow rom when available | *68b591d64ddrm/msm/a6xx: Fix stale rpmh votes from GPU | *359f6cffaedrm/msm/dsi: Add check for devm_kstrdup() | *31efeca2efdrm/ast: Fix ast_dp connection status | *b33386fabbdrm/repaper: fix integer overflows in repeat functions | *de67afd688perf/x86/intel/uncore: Fix the scale of IIO free running counters on SPR | *c5e1570322perf/x86/intel/uncore: Fix the scale of IIO free running counters on ICX | *8d19c4a3b8perf/x86/intel/uncore: Fix the scale of IIO free running counters on SNR | *56fdbc0912perf/x86/intel: Allow to update user space GPRs from PEBS records | *c7b43f09ddplatform/x86: amd: pmf: Fix STT limits | *42ded70c1aRAS/AMD/FMPM: Get masked address | *b2748ae609RAS/AMD/ATL: Include row[13] bit in row retirement | *d23fd7a539RDMA/cma: Fix workqueue crash in cma_netevent_work_handler | *6dd9ede5c5scsi: ufs: exynos: Ensure consistent phy reference counts | *80b2ad1215scsi: megaraid_sas: Block zero-length ATA VPD inquiry | *6360e4f850x86/boot/sev: Avoid shared GHCB page for early memory acceptance | *519718a338x86/cpu/amd: Fix workaround for erratum 1054 | *a66b6b07d0x86/microcode/AMD: Extend the SHA check to Zen5, block loading of any unreleased standalone Zen5 microcode patches | *c3e31d6139virtiofs: add filesystem context source name check | *5683eaf4eetracing: Fix filter string testing | *5f878db827string: Add load_unaligned_zeropad() code path to sized_strscpy() | *9042efa7f1smb3 client: fix open hardlink on deferred close file error | *8baa747193slab: ensure slab->obj_exts is clear in a newly allocated slab page | *824b7ad9cfselftests/mm: generate a temporary mountpoint for cgroup filesystem | *3f1c81ae13riscv: Avoid fortify warning in syscall_get_arguments() | *f761eeefd5Revert "smb: client: fix TCP timers deadlock after rmmod" | *2aa10d26b6Revert "smb: client: Fix netns refcount imbalance causing leaks and use-after-free" | *2a879da5c3ksmbd: fix the warning from __kernel_write_iter | *396d6e4485ksmbd: Prevent integer overflow in calculation of deadtime | *d54ab1520dksmbd: fix use-after-free in smb_break_all_levII_oplock() | *6e30c0e102ksmbd: Fix dangling pointer in krb_authenticate | *b9e3579213ovl: don't allow datadir only | *029458063emm: fix apply_to_existing_page_range() | *8338e0723fmm: fix filemap_get_folios_contig returning batches of identical folios | *b609a60e31mm/gup: fix wrongly calculated returned value in fault_in_safe_writeable() | *4f34d6f979mm/compaction: fix bug in hugetlb handling pathway | *c45ba83935loop: LOOP_SET_FD: send uevents for partitions | *694521cb3floop: properly send KOBJ_CHANGED uevent for disk device | *56dfffea9fisofs: Prevent the use of too small fid | *1355b5ca47i2c: cros-ec-tunnel: defer probe if parent EC is not present | *84e8719c08hfs/hfsplus: fix slab-out-of-bounds in hfs_bnode_read_key | *8132682856crypto: caam/qi - Fix drv_ctx refcount bug | *f73731983fcpufreq/sched: Explicitly synchronize limits_changed flag handling | *d3995ff08cbtrfs: correctly escape subvol in btrfs_show_options() | *b62b1406bbBluetooth: vhci: Avoid needless snprintf() calls | *569bbe2fc7Bluetooth: l2cap: Process valid commands in too long frame | *bde7abe8cfdrm/msm/a6xx+: Don't let IB_SIZE overflow | *26d5e2377fftrace: fix incorrect hash size in register_ftrace_direct() | *2665a3b1abi2c: atr: Fix wrong include | *a7fce086f6nfsd: decrease sc_count directly if fail to queue dl_recall | *33c0f51f1anfs: add missing selections of CONFIG_CRC32 | *e22c8b99c8dma-buf/sw_sync: Decrement refcount on error in sw_sync_ioctl_get_deadline() | *81a566a920drm/v3d: Fix Indirect Dispatch configuration for V3D 7.1.6 and later | *c38a005e6eblock: integrity: Do not call set_page_dirty_lock() | *db42e6f28basus-laptop: Fix an uninitialized variable | *c0ce01e0ffASoC: qcom: Fix sc7280 lpass potential buffer overflow | *2612d55482ASoC: Intel: sof_sdw: Add quirk for Asus Zenbook S16 | *2b72a9e327ASoC: codecs:lpass-wsa-macro: Fix logic of enabling vi channels | *43da9eae1bASoC: codecs:lpass-wsa-macro: Fix vi feedback rate | *b2e56391f6ASoC: fsl: fsl_qmc_audio: Reset audio data pointers on TRIGGER_START event | *f2e2926e9eRevert "PCI: Avoid reset when disabled via sysfs" | *28da4dd840writeback: fix false warning in inode_to_wb() | *c1aa71716arust: kbuild: use `pound` to support GNU Make < 4.3 | *baf02dd01erust: disable `clippy::needless_continue` | *4c353fca62rust: kasan/kbuild: fix missing flags on first build | *e8980258c0objtool/rust: add one more `noreturn` Rust function for Rust 1.86.0 | *00a1bdb157cpufreq/sched: Fix the usage of CPUFREQ_NEED_UPDATE_LIMITS | *27e0143f4driscv: KGDB: Remove ".option norvc/.option rvc" for kgdb_compiled_break | *999bd7bb21riscv: KGDB: Do not inline arch_kgdb_breakpoint() | *8533450211kunit: qemu_configs: SH: Respect kunit cmdline | *3583394b85riscv: module: Allocate PLT entries for R_RISCV_PLT32 | *a068ea0000riscv: module: Fix out-of-bounds relocation access | *1d5a8e1fecriscv: Properly export reserved regions in /proc/iomem | *c8c3f8e7a7riscv: Use kvmalloc_array on relocation_hashtable | *cfdcd213ddnet: ethernet: mtk_eth_soc: revise QDMA packet scheduler settings | *7ec0265710net: ethernet: mtk_eth_soc: correct the max weight of the queue limit for 100Mbps | *b524a14ec1net: ethernet: mtk_eth_soc: reapply mdc divider on reset | *da5035d7aenet: ti: icss-iep: Fix possible NULL pointer dereference for perout request | *d028c6a805net: ti: icss-iep: Add phase offset configuration for perout signal | *352e5a6709net: ti: icss-iep: Add pwidth configuration for perout signal | *62b795c22dptp: ocp: fix start time alignment in ptp_ocp_signal_set | *a3e4b6ad5fnet: dsa: avoid refcount warnings when ds->ops->tag_8021q_vlan_del() fails | *5c8066fbdbnet: dsa: free routing table on probe failure | *8fcc1e6f80net: dsa: clean up FDB, MDB, VLAN entries on unbind | *9ee6d3a368net: dsa: mv88e6xxx: fix -ENOENT when deleting VLANs and MST is unsupported | *3665695e35net: dsa: mv88e6xxx: avoid unregistering devlink regions which were never registered | *635863d93dnet: txgbe: fix memory leak in txgbe_probe() error path | *d9ecaee617net: bridge: switchdev: do not notify new brentries as changed | *ad13e95cbcnet: b53: enable BPDU reception for management port | *1f6916c554netlink: specs: rt-link: adjust mctp attribute naming | *250a2fc77anetlink: specs: rt-link: add an attr layer around alt-ifname | *dafb6e433acxgb4: fix memory leak in cxgb4_init_ethtool_filters() error path | *cb74d5b837ata: libata-sata: Save all fields from sense data descriptor | *78253d44e9loop: stop using vfs_iter_{read,write} for buffered I/O | *0175902f6eloop: aio inherit the ioprio of original request | *21e70f694beth: bnxt: fix missing ring index trim on error path | *cd64ae07c4net: ethernet: ti: am65-cpsw: fix port_np reference counting | *8335a3feb9net: ngbe: fix memory leak in ngbe_probe() error path | *0b7d94164dcan: rockchip_canfd: fix broken quirks checks | *be80768d4fnet: openvswitch: fix nested key length validation in the set() action | *15baba1095netlink: specs: ovs_vport: align with C codegen capabilities | *41e43134ddblock: fix resource leak in blk_register_queue() error path | *3f899bd6ddnet: mctp: Set SOCK_RCU_FREE | *61765e1b41ethtool: cmis_cdb: use correct rpl size in ethtool_cmis_module_poll() | *01ad16ddf9pds_core: fix memory leak in pdsc_debugfs_add_qcq() | *45300268e5test suite: use %zu to print size_t | *86d5243ea6smc: Fix lockdep false-positive for IPPROTO_SMC. | *688f85d1badt-bindings: soc: fsl: fsl,ls1028a-reset: Fix maintainer entry | *724d26215eigc: add lock preventing multiple simultaneous PTM transactions | *c15065acc1igc: cleanup PTP module if probe fails | *698182f03figc: handle the IGC_PTP_ENABLED flag correctly | *8058c895c7igc: move ktime snapshot into PTM retry loop | *b74137e277igc: increase wait time before retrying PTM | *f3516229cdigc: fix PTM cycle trigger logic | *5a3ff97d12Revert "wifi: mac80211: Update skb's control block key in ieee80211_tx_dequeue()" | *fa0d99648cxen: fix multicall debug feature | *b02c2ac2f3ipv6: add exception routes to GC list in rt6_insert_exception | *d49798ecd2Bluetooth: l2cap: Check encryption key size on incoming connection | *aaf356f872Bluetooth: btrtl: Prevent potential NULL dereference | *6ad0acb56bBluetooth: hci_event: Fix sending MGMT_EV_DEVICE_FOUND for invalid address | *0d81bb58a2RDMA/core: Silence oversized kvmalloc() warning | *0ba76fb628ASoC: cs42l43: Reset clamp override on jack removal | *36e0ea1f96ALSA: hda/realtek - Fixed ASUS platform headset Mic issue | *c01f3741d1ALSA: hda/realtek: Workaround for resume on Dell Venue 11 Pro 7130 | *34875b7a5dALSA: hda: improve bass speaker support for ASUS Zenbook UM5606WA | *9b019be589ALSA: hda/cirrus_scodec_test: Don't select dependencies | *7060bf9100RDMA/hns: Fix wrong maximum DMA segment size | *48e5aa2225RDMA/usnic: Fix passing zero to PTR_ERR in usnic_ib_pci_probe() | *6104cc65feovl: remove unused forward declaration | *bbad32b836crypto: tegra - Fix IV usage for AES ECB | *9ebc2053b8crypto: tegra - Do not use fixed size buffers | *28ec10e58dcrypto: tegra - remove redundant error check on ret | *23fde311eaASoC: Intel: avs: Fix null-ptr-deref in avs_component_probe() | *dcba15ed08ASoC: dwc: always enable/disable i2s irqs | *eeeba7f43amd/md-bitmap: fix stats collection for external bitmaps | *54e106047fmd/raid10: fix missing discard IO accounting | *7cc670e8ebscsi: smartpqi: Use is_kdump_kernel() to check for kdump | *5e8438fd7fscsi: replace blk_mq_pci_map_queues with blk_mq_map_hw_queues | *fe2bdefe86blk-mq: introduce blk_mq_map_hw_queues | *5ec9039702driver core: bus: add irq_get_affinity callback to bus_type | *6884cb2f3bscsi: iscsi: Fix missing scsi_host_put() in error path | *52f224009cwifi: wl1251: fix memory leak in wl1251_tx_work | *a8df245b5bwifi: mac80211: Purge vif txq in ieee80211_do_stop() | *159499c134wifi: mac80211: Update skb's control block key in ieee80211_tx_dequeue() | *a9682bfef2wifi: at76c50x: fix use after free access in at76_disconnect | *1773fbf7c0scsi: hisi_sas: Enable force phy when SATA disk directly connected * |72655c8488Merge branch 'android16-6.12' into branch 'android16-6.12-lts' * |a23d20a6c2UPSTREAM: arm64: errata: Add missing sentinels to Spectre-BHB MIDR arrays * |f56453cbd7Merge 6.12.24 into android16-6.12-lts |\| | *b6efa8ce22Linux 6.12.24 | *ae5a6a0b42HSI: ssi_protocol: Fix use after free vulnerability in ssi_protocol Driver Due to Race Condition | *bdbecb2bf5s390/cpumf: Fix double free on error in cpumf_pmu_event_init() | *281782d2c6Bluetooth: hci_uart: Fix another race during initialization | *f87626a55cmedia: mediatek: vcodec: mark vdec_vp9_slice_map_counts_eob_coef noinline | *9c03f6194ekbuild: Add '-fno-builtin-wcslen' | *5f494f4823libbpf: Prevent compiler warnings/errors | *bd6eae1f30x86/e820: Fix handling of subpage regions when calculating nosave ranges in e820__register_nosave_regions() | *6a59b70fe7nfsd: don't ignore the return code of svc_proc_register() | *b2b18a9f68NFSD: Fix CB_GETATTR status fix | *560c031896NFSD: fix decoding in nfs4_xdr_dec_cb_getattr | *7005fdceffACPI: platform-profile: Fix CFI violation when accessing sysfs files | *20867f0948x86/paravirt: Move halt paravirt calls under CONFIG_PARAVIRT | *5d9484cd37iommufd: Fail replace if device has not been attached | *6d11543bf3iommufd: Make attach_handle generic than fault specific | *9ca4fe3574arm64: errata: Add newer ARM cores to the spectre_bhb_loop_affected() lists | *d25a240c5athermal/drivers/mediatek/lvts: Disable Stage 3 thermal threshold | *0131251d93thermal/drivers/mediatek/lvts: Disable monitor mode during suspend | *9580b60365selftests: mptcp: fix incorrect fd checks in main_loop | *2f1b4d6725selftests: mptcp: close fd_in before returning in main_loop | *0f91e4f69fsched_ext: create_dsq: Return -EEXIST on duplicate request | *7a30bbd36cs390: Fix linker error when -no-pie option is unavailable | *f268ee2fbbs390/virtio_ccw: Don't allocate/assign airqs for non-existing queues | *05a0f9c407s390/pci: Fix zpci_bus_is_isolated_vf() for non-VFs | *92ca7270fering-buffer: Use flush_kernel_vmap_range() over flush_dcache_folio() | *de08212061pinctrl: samsung: add support for eint_fltcon_offset | *c1368383cdpinctrl: qcom: Clear latched interrupt status when changing IRQ type | *beb9a5cb7aphy: freescale: imx8m-pcie: assert phy reset and perst in power off | *869202291aPCI: Fix wrong length of devres array | *9707d0c932PCI: Fix reference leak in pci_register_host_bridge() | *d69ad6e1a5PCI: Fix reference leak in pci_alloc_child_bus() | *e4a1d7defbPCI: pciehp: Avoid unnecessary device replacement check | *ce9643a541PCI: j721e: Fix the value of .linkdown_irq_regfield for J784S4 | *71bf0769a6PCI: brcmstb: Fix missing of_node_put() in brcm_pcie_probe() | *712d84459aof/irq: Fix device node refcount leakages in of_irq_init() | *d0f25a9977of/irq: Fix device node refcount leakage in API irq_of_parse_and_map() | *29cb94963cof/irq: Fix device node refcount leakages in of_irq_count() | *3540164c75of/irq: Fix device node refcount leakage in API of_irq_parse_raw() | *dc83eccc93of/irq: Fix device node refcount leakage in API of_irq_parse_one() | *60faeef98bntb: use 64-bit arithmetic for the MSI doorbell mask | *34baf1cfd6net: mana: Switch to page pool for jumbo frames | *a2acc67d61misc: pci_endpoint_test: Fix displaying 'irq_type' after 'request_irq' error | *e98f77f74cselftests/landlock: Add a new test for setuid() | *76ab50fa6eselftests/landlock: Split signal_scoping_threads tests | *b017f2846alandlock: Prepare to add second errata | *332facfa80landlock: Always allow signals between threads of the same process | *7dd7f87e07landlock: Add erratum for TCP fix | *ea980ea4d1landlock: Add the errata interface | *9b0d24fa64landlock: Move code to ease future backports | *7bc5c36037KVM: x86: Acquire SRCU in KVM_GET_MP_STATE to protect guest memory accesses | *bbf821c35dKVM: x86: Explicitly zero-initialize on-stack CPUID unions | *99b99032a8KVM: PPC: Enable CAP_SPAPR_TCE_VFIO on pSeries KVM guests | *fae0a8796cKVM: Allow building irqbypass.ko as as module when kvm.ko is a module | *3bc2208c74gve: handle overflow when reporting TX consumed descriptors | *62024ad4c5gpio: zynq: Fix wakeup source leaks on device unbind | *2d66517135gpio: tegra186: fix resource handling in ACPI probe path | *e66fb9b4e9ftrace: Properly merge notrace hashes | *1fce9574b9ftrace: Add cond_resched() to ftrace_graph_set_hash() | *3e467f1c74dt-bindings: coresight: qcom,coresight-tpdm: Fix too many 'reg' | *58c453801bdt-bindings: coresight: qcom,coresight-tpda: Fix too many 'reg' | *74f01c2ca8dm-verity: fix prefetch-vs-suspend race | *dd91458a84dm-integrity: fix non-constant-time tag verification | *ba42f98f09dm-integrity: set ti->error on memory allocation failure | *a1a4fdc33ddm-ebs: fix prefetch-vs-suspend race | *08deafddfcdlm: fix error if active rsb is not hashed | *b77f8a17efdlm: fix error if inactive rsb is not hashed | *eaa7014aeccrypto: ccp - Fix uAPI definitions of PSP errors | *5116b340cfcrypto: ccp - Fix check for the primary ASP device | *1f9648e246clk: qcom: gdsc: Set retain_ff before moving to HW CTRL | *4d6fb2a43fclk: qcom: gdsc: Capture pm_genpd_add_subdomain result code | *12ef07c4bfclk: qcom: gdsc: Release pm subdomains in reverse add order | *809e83a575clk: qcom: clk-branch: Fix invert halt status bit check for votable clocks | *56c29847bcclk: renesas: r9a07g043: Fix HP clock source for RZ/Five | *4ed194d9bbcifs: Ensure that all non-client-specific reparse points are processed by the server | *2a24040597cifs: fix integer overflow in match_server() | *e0717385f5cifs: avoid NULL pointer dereference in dbg call | *2eb6e5e094CIFS: Propagate min offload along with other parameters from primary to secondary channels. | *63d71ae010thermal/drivers/rockchip: Add missing rk3328 mapping entry | *474b3194c8tracing: Do not add length to print format in synthetic events | *868df4eb78tracing: fprobe events: Fix possible UAF on modules | *a7fda1fd6dx86/xen: fix balloon target initialization for PVH dom0 | *9e7c37fadbsctp: detect and prevent references to a freed transport in sendmsg | *65b259e3e0mm/hwpoison: introduce folio_contain_hwpoisoned_page() helper | *1fd89407d7mm/hugetlb: move hugetlb_sysctl_init() to the __init section | *73d17d48dfmm/hwpoison: do not send SIGBUS to processes with recovered clean pages | *14936034demm/userfaultfd: fix release hang over concurrent GUP | *cc98577f91mm: add missing release barrier on PGDAT_RECLAIM_LOCKED unlock | *2532df0a9bmm/mremap: correctly handle partial mremap() of VMA starting at 0 | *6dd8d9440fmm: fix lazy mmu docs and usage | *83b6b5061emm: make page_mapped_in_vma() hugetlb walk aware | *53dc6b00c0mm/rmap: reject hugetlb folios in folio_make_device_exclusive() | *ab0af01260mm/damon/ops: have damon_get_folio return folio even for tail pages * |7e9686596cMerge5f7f6abd92("net: Fix null-ptr-deref by sock_lock_init_class_and_name() and rmmod.") into android16-6.12-lts |\| | *5f7f6abd92net: Fix null-ptr-deref by sock_lock_init_class_and_name() and rmmod. * |fbffc72bf0Mergefba396b799("sparc/mm: avoid calling arch_enter/leave_lazy_mmu() in set_ptes") into android16-6.12-lts |\| | *fba396b799sparc/mm: avoid calling arch_enter/leave_lazy_mmu() in set_ptes | *690446dc72sparc/mm: disable preemption in lazy mmu mode | *cb6b9bd661iommu/vt-d: Wire up irq_ack() to irq_move_irq() for posted MSIs | *6722a0cb81iommu/vt-d: Fix possible circular locking dependency | *e953e11123iommu/vt-d: Don't clobber posted vCPU IRTE when host IRQ affinity changes | *c95a438d2ciommu/vt-d: Put IRTE back into posted MSI mode if vCPU posting is disabled | *e5dd974d6eiommu/tegra241-cmdqv: Fix warnings due to dmam_free_coherent() | *b8b41eac70iommufd: Fix uninitialized rc in iommufd_access_rw() | *327e6b8b28btrfs: zoned: fix zone finishing with missing devices | *380ba38801btrfs: zoned: fix zone activation with missing devices | *b9af27d020btrfs: tests: fix chunk map leak after failure to add it to the tree | *601db4e8bfbtrfs: fix non-empty delayed iputs list on unmount due to compressed write workers | *61a5c565fdbacklight: led_bl: Hold led_access lock when calling led_sysfs_disable() | *a3b36c9da3arm64: dts: exynos: gs101: disable pinctrl_gsacore node | *ac45d49df9arm64: dts: mediatek: mt8173: Fix disp-pwm compatible string | *1dd288783darm64: mm: Correct the update of max_pfn | *21c5124304arm64: tegra: Remove the Orin NX/Nano suspend key | *eec737e17earm64: mops: Do not dereference src reg for a set operation | *52f251dbfbmtd: rawnand: Add status chack in r852_ready() | *5479a6af3cmtd: inftlcore: Add error check for inftl_read_oob() | *6554491b4amptcp: only inc MPJoinAckHMacFailure for HMAC failures | *dc81e41a30mptcp: fix NULL pointer in can_accept_new_subflow | *c7f611e711lib: scatterlist: fix sg_split_phys to preserve original scatterlist offsets | *95f0958240locking/lockdep: Decrease nr_unused_locks if lock unused in zap_class() | *008b90d36dmailbox: tegra-hsp: Define dimensioning masks in SoC data | *7b47df6498mfd: ene-kb3930: Fix a potential NULL pointer dereference | *4b037851edleds: rgb: leds-qcom-lpg: Fix calculation of best period Hi-Res PWMs | *5ae9e361e2leds: rgb: leds-qcom-lpg: Fix pwm resolution max for Hi-Res PWMs | *e94314b727kbuild: exclude .rodata.(cst|str)* when building ranges | *9eaec071f1jbd2: remove wrong sb->s_sequence check | *e6bba32857i3c: Add NULL pointer check in i3c_master_queue_ibi() | *34aaf448e2i3c: master: svc: Use readsb helper for reading MDB | *0327683c55ima: limit the number of ToMToU integrity violations | *48085ab823ima: limit the number of open-writers integrity violations | *9a264e4a59smb311 client: fix missing tcon check when mounting with linux/posix extensions | *44a2572a0fsoc: samsung: exynos-chipid: Add NULL pointer check in exynos_chipid_probe() | *fbda9cac1bsvcrdma: do not unregister device for listeners | *f3cb81cb96tpm: do not start chip while suspended | *76cc21a9a4udf: Fix inode_getblk() return value | *8fd217a99dvdpa/mlx5: Fix oversized null mkey longer than 32bit | *a1dde7457df2fs: fix to avoid atomicity corruption of atomic file | *16d9067f00ext4: fix off-by-one error in do_split | *a77955f770bus: mhi: host: Fix race between unprepare and queue_buf | *7d12a7d43caccel/ivpu: Fix deadlock in ivpu_ms_cleanup() | *5c200b7ebdaccel/ivpu: Fix warning in ivpu_ipc_send_receive_internal() | *7022946773ALSA: hda/realtek: Enable Mute LED on HP OMEN 16 Laptop xd000xx | *d2a2076d9cASoC: qdsp6: q6asm-dai: fix q6asm_dai_compr_set_params error path | *17f1e42131ASoC: qdsp6: q6apm-dai: fix capture pipeline overruns. | *aa7e9eabe6ASoC: qdsp6: q6apm-dai: set 10 ms period and buffer alignment. | *a28217b064ASoC: q6apm-dai: make use of q6apm_get_hw_pointer | *f5891f204dASoC: q6apm-dai: schedule all available frames to avoid dsp under-runs | *d383051f82ASoC: q6apm: add q6apm_get_hw_pointer helper | *acadb2e2b3ASoC: codecs: wcd937x: fix a potential memory leak in wcd937x_soc_codec_probe() | *3e0356857eio_uring/kbuf: reject zero sized provided buffers | *b7c6d081c1io_uring/net: fix io_req_post_cqe abuse by send bundle | *0828d6e9adio_uring/net: fix accept multishot handling | *00026f80c4wifi: mt76: mt7925: fix the wrong simultaneous cap for MLO | *374f2bf7b3wifi: mt76: mt7925: fix the wrong link_idx when a p2p_device is present | *0dd6c62c13wifi: mt76: mt7925: fix country count limitation for CLC | *1706a07b38wifi: mt76: mt7925: ensure wow pattern command align fw format | *eb434adf79wifi: mac80211: fix integer overflow in hwmp_route_info_get() | *ef44c9e811wifi: mt76: Add check for devm_kstrdup() | *9d6b789a8fclocksource/drivers/stm32-lptimer: Use wakeup capable instead of init wakeup | *9d99358349mtd: Replace kcalloc() with devm_kcalloc() | *2b27df6852net: dsa: mv88e6xxx: fix internal PHYs for 6320 family | *020404265bnet: dsa: mv88e6xxx: workaround RGMII transmit delay erratum for 6320 family | *39fc127422mtd: Add check for devm_kcalloc() | *91e1405088mptcp: sockopt: fix getting freebind & transparent | *1b4ecd033emptcp: sockopt: fix getting IPV6_V6ONLY | *c59dc7c425media: chips-media: wave5: Fix timeout while testing 10bit hevc fluster | *d595713de7media: chips-media: wave5: Fix a hang after seeking | *76cab9f540media: chips-media: wave5: Avoid race condition in the interrupt handler | *7fafaf00ccmedia: chips-media: wave5: Fix gray color on screen | *6f77a6d2eamedia: i2c: imx214: Rectify probe error handling related to runtime PM | *8dd2d1561cmedia: i2c: imx219: Rectify runtime PM handling in probe and remove | *99f9299147media: i2c: imx319: Rectify runtime PM handling probe and remove | *bb3fd8b790media: venus: hfi_parser: refactor hfi packet parsing logic | *53e376178cmedia: venus: hfi_parser: add check to avoid out of bound access | *3da0d73187media: nuvoton: Fix reference handling of ece_pdev | *4b1bdaadbfmedia: nuvoton: Fix reference handling of ece_node | *e22fa60bcdmedia: i2c: ov7251: Introduce 1 ms delay between regulators and en GPIO | *b155aecd7fmedia: i2c: ov7251: Set enable GPIO low in probe | *ad466aacb1media: i2c: ccs: Set the device's runtime PM status correctly in probe | *983b5434a6media: i2c: ccs: Set the device's runtime PM status correctly in remove | *3ff4feef7aRevert "media: imx214: Fix the error handling in imx214_probe()" | *baea1762cdmedia: v4l2-dv-timings: prevent possible overflow in v4l2_detect_gtf() | *b933486f6bmedia: imx219: Adjust PLL settings based on the number of MIPI lanes | *dd0d323b47media: platform: stm32: Add check for clk_enable() | *3f1f712f80media: visl: Fix ERANGE error when setting enum controls | *f67c3f8452media: hi556: Fix memory leak (on error) in hi556_check_hwcfg() | *df6ef66cc3media: streamzap: prevent processing IR data on URB failure | *afada73000accel/ivpu: Fix PM related deadlocks in MS IOCTLs | *4c8056fbb1tpm, tpm_tis: Fix timeout handling when waiting for TPM status | *7266066b94mtd: rawnand: brcmnand: fix PM resume warning | *33607e9240spi: cadence-qspi: Fix probe on AM62A LP SK | *c322789613KVM: arm64: Tear down vGIC on failed vCPU creation | *20c105f587arm64: errata: Add KRYO 2XX/3XX/4XX silver cores to Spectre BHB safe list | *3b0f2526c8arm64: errata: Assume that unknown CPUs _are_ vulnerable to Spectre BHB | *4af2858435arm64: errata: Add QCOM_KRYO_4XX_GOLD to the spectre_bhb_k24_list | *2ff58c5b26arm64: cputype: Add MIDR_CORTEX_A76AE | *7e619d4d27xenfs/xensyms: respect hypervisor's "next" indication | *88962f1978media: rockchip: rga: fix rga offset lookup | *ceb23f66efmedia: siano: Fix error handling in smsdvb_module_init() | *7631d17608media: vim2m: print device name after registering device | *679424f8b3media: venus: hfi: add check to handle incorrect queue size | *530f623f56media: venus: hfi: add a check to handle OOB in sfr region | *72629a582dmedia: intel/ipu6: set the dev_parent of video device to pdev | *f598940803media: mgb4: Fix switched CMT frequency range "magic values" sets | *66e35600f7media: i2c: adv748x: Fix test pattern selection mask | *1c673fa888media: mgb4: Fix CMT registers update logic | *ced0ddecc0media: uapi: rkisp1-config: Fix typo in extensible params example | *8c64a2cfdbmedia: mtk-vcodec: venc: avoid -Wenum-compare-conditional warning | *9f009fa823media: mediatek: vcodec: Fix a resource leak related to the scp device in FW initialization | *956c5e4965dt-bindings: media: st,stmipid02: correct lane-polarities maxItems | *a9a73da6e0auxdisplay: hd44780: Fix an API misuse in hd44780.c | *bdbc38bd12HID: pidff: Fix set_device_control() | *1565ead12fHID: pidff: Fix 90 degrees direction name North -> East | *5318556ed3HID: pidff: Compute INFINITE value instead of using hardcoded 0xffff | *b15301f289HID: pidff: Clamp effect playback LOOP_COUNT value | *42ec3b5bf7HID: pidff: Rename two functions to align them with naming convention | *b782892cd2HID: pidff: Remove redundant call to pidff_find_special_keys | *239c8ac58cHID: pidff: Support device error response from PID_BLOCK_LOAD | *2d698115f9HID: pidff: Comment and code style update | *35ebc643afHID: hid-universal-pidff: Add Asetek wheelbases support | *2118618697HID: pidff: Make sure to fetch pool before checking SIMULTANEOUS_MAX | *13d15dd617HID: pidff: Factor out pool report fetch and remove excess declaration | *6fbf2ac6d5HID: pidff: Use macros instead of hardcoded min/max values for shorts | *87783d301eHID: pidff: Simplify pidff_rescale_signed | *61e4de1728HID: pidff: Move all hid-pidff definitions to a dedicated header | *8f0b2d791eHID: pidff: Factor out code for setting gain | *5243ca2a5cHID: pidff: Rescale time values to match field units | *7009a060ffHID: pidff: Define values used in pidff_find_special_fields | *9cdd95f9a4HID: pidff: Simplify pidff_upload_effect function | *433c4234ffHID: pidff: Completely rework and fix pidff_reset function | *2b1e13ed29HID: pidff: Stop all effects before enabling actuators | *629405d185HID: pidff: Clamp PERIODIC effect period to device's logical range * |44229c2d55Revert "PCI: Check BAR index for validity" * |4e0cc11458Merge43e5e2879d("s390/pci: Fix s390_mmio_read/write syscall page fault handling") into android16-6.12-lts |\| | *43e5e2879ds390/pci: Fix s390_mmio_read/write syscall page fault handling | *dd3edffae8ext4: don't treat fhandle lookup of ea_inode as FS corruption | *806908d5d9bpf: support SKF_NET_OFF and SKF_LL_OFF on skb frags | *7b9bdd7059erofs: set error to bio if file-backed IO fails | *61f590c677pwm: fsl-ftm: Handle clk_get_rate() returning 0 | *a2786a82depwm: rcar: Improve register calculation | *4cb15042b5pwm: mediatek: Prevent divide-by-zero in pwm_mediatek_config() | *2bef78f962tpm: End any active auth session before shutdown | *01c2ed3f7dtpm, tpm_tis: Workaround failed command reception on Infineon devices | *a4e3c80cecktest: Fix Test Failures Due to Missing LOG_FILE Directories | *9a6be23eb0tracing: probe-events: Add comments about entry data storing code | *52eafaa56ffbdev: omapfb: Add 'plane' value check | *fb4c507bf2drm/amdgpu: grab an additional reference on the gang fence v2 | *5c3cfcf0b4PCI: vmd: Make vmd_dev::cfg_lock a raw_spinlock_t type | *73d2b96250PCI: Check BAR index for validity | *e64be12f84drm/amdgpu: Fix the race condition for draining retry fault | *8feefd106aPCI: Enable Configuration RRS SV early | *dc4380f346drm/amdgpu: handle amdgpu_cgs_create_device() errors in amd_powerplay_create() | *7a872981c6PCI: Add Rockchip Vendor ID | *6e415cb823drm/mediatek: mtk_dpi: Explicitly manage TVD clock in power on/off | *39a7576d11drm/mediatek: mtk_dpi: Move the input_2p_en bit to platform data | *831c4017f4drm/xe/xelp: Move Wa_16011163337 from tunings to workarounds | *1a322b330ddrm/amdkfd: debugfs hang_hws skip GPU with MES | *10ce36501fdrm/amdkfd: Fix pqm_destroy_queue race with GPU reset | *ffd37d7d44drm/amdkfd: Fix mode1 reset crash issue | *96757c085bdrm/amdkfd: clamp queue size to minimum | *1c38108a49drivers: base: devres: Allow to release group on device release | *c9323cbc94drm/amd/display: stop DML2 from removing pipes based on planes | *b22cb42a5edrm/bridge: panel: forbid initializing a panel with unknown connector type | *f04612890cdrm/debugfs: fix printk format for bridge index | *ba5a998f84drm: panel-orientation-quirks: Add quirk for OneXPlayer Mini (Intel) | *a64e097426drm: panel-orientation-quirks: Add new quirk for GPD Win 2 | *5dd6fdb889drm: panel-orientation-quirks: Add quirk for AYA NEO Slide | *6fe4ed94eedrm: panel-orientation-quirks: Add quirks for AYA NEO Flip DS and KB | *df33b535f0drm: panel-orientation-quirks: Add support for AYANEO 2S | *357ba4ed69drm/amdgpu: Unlocked unmap only clear page table leaves | *c15a9c8449drm/amd/display: Update Cursor request mode to the beginning prefetch always | *2eec2fa866drm/xe/vf: Don't try to trigger a full GT reset if VF | *4a5f14246bdrm/xe/bmg: Add new PCI IDs | *044c1b3528drm: allow encoder mode_set even when connectors change for crtc | *09246dfb5cBluetooth: Add quirk for broken READ_PAGE_SCAN_TYPE | *035e1bffc0Bluetooth: Add quirk for broken READ_VOICE_SETTING | *feed98579dBluetooth: qca: simplify WCN399x NVM loading | *fe6f1f349dBluetooth: hci_qca: use the power sequencer for wcn6750 | *a4d49212e3Bluetooth: btusb: Add 2 HWIDs for MT7922 | *6b7a32fa9bBluetooth: hci_uart: fix race during initialization | *082ae971a1Bluetooth: btintel_pcie: Add device id of Whale Peak | *40c70ff44btracing: fix return value in __ftrace_event_enable_disable for TRACE_REG_UNREGISTER | *299d7d27afnet: vlan: don't propagate flags on open | *fe51630ba2wifi: mt76: mt76x2u: add TP-Link TL-WDN6200 ID to device table | *bf089c4d11btrfs: harden block_group::bg_list against list_del() races | *0519ba030cahci: Marvell 88SE9215 controllers prefer DMA for ATAPI | *7fe3b4deedscsi: st: Fix array overflow in st_setup() | *a8a8076210cdc_ether|r8152: ThinkPad Hybrid USB-C/A Dock quirk | *eb59cc31b6ext4: ignore xattrs past end | *aa39d45071Revert "f2fs: rebuild nat_bits during umount" | *5f815757e6ext4: protect ext4_release_dquot against freezing | *202ba2f483ahci: add PCI ID for Marvell 88SE9215 SATA Controller | *163e8c1083net: sfp: add quirk for FS SFP-10GM-T copper SFP+ module | *ecc4613316f2fs: fix to avoid out-of-bounds access in f2fs_truncate_inode_blocks() | *3abe15e756wifi: ath12k: Fix invalid data access in ath12k_dp_rx_h_undecap_nwifi | *1833e16500net: sfp: add quirk for 2.5G OEM BX SFP | *04c0c55504ata: libata-eh: Do not use ATAPI DMA for a device limited to PIO mode | *ccd97c8a4fjfs: add sanity check for agwidth in dbMount | *aeb926e605jfs: Prevent copying of nlink with value 0 from disk inode | *c802a6a400fs/jfs: Prevent integer overflow in AG size calculation | *319877db0afs/jfs: cast inactags to s64 to prevent potential overflow | *63148ce490jfs: Fix uninit-value access of imap allocated in the diMount() function * |7934407f6aANDROID: GKI: db845c: add dma_alloc/free_pages to the symbol list * |5b889365dcRevert "perf/core: Add aux_pause, aux_resume, aux_start_paused" * |1f8271add4Revert "perf/core: Simplify the perf_event_alloc() error path" * |f4efd677feRevert "perf: Fix hang while freeing sigtrap event" * |195e9f73e5Merge8e7bb66360("can: flexcan: add NXP S32G2/S32G3 SoC support") into android16-6.12-lts |\| | *8e7bb66360can: flexcan: add NXP S32G2/S32G3 SoC support | *fba5f41f15can: flexcan: Add quirk to handle separate interrupt lines for mailboxes | *7204335d19page_pool: avoid infinite loop to schedule delayed worker | *de94d0ca9enet: usb: asix_devices: add FiberGecko DeviceID | *93a562eedcscsi: target: spc: Fix RSOC parameter data header size | *4ae2c7c7d3wifi: mac80211: ensure sdata->work is canceled before initialized. | *cca16fbd17wifi: mac80211: add strict mode disabling workarounds | *c6e50cb8bff2fs: don't retry IO for corrupted data scenario | *a6bf0fd322net: page_pool: don't cast mp param to devmem | *65ba18c84dscsi: mpi3mr: Synchronous access b/w reset and tm thread for reply queue | *6a35449df8scsi: mpi3mr: Avoid reply queue full condition | *b1e0b4f494ata: libata-core: Add 'external' to the libata.force kernel parameter | *535b666118wifi: ath12k: Fix invalid entry fetch in ath12k_dp_mon_srng_process | *3cb47b5092wifi: ath12k: fix memory leak in ath12k_pci_remove() | *a3981850f1wifi: ath11k: fix memory leak in ath11k_xxx_remove() | *b92c5179dbwifi: ath11k: Fix DMA buffer allocation to resolve SWIOTLB issues | *90a5892d85platform/x86: x86-android-tablets: Add select POWER_SUPPLY to Kconfig | *7f04c9e8ffASoC: amd: yc: update quirk data for new Lenovo model | *3a03a7f0f8ASoC: amd: Add DMI quirk for ACP6X mic support | *cb1c6cb110ALSA: usb-audio: Fix CME quirk for UF series keyboards | *fe74885e36mmc: dw_mmc: add a quirk for accessing 64-bit FIFOs in two halves | *6d32a30fa1media: s5p-mfc: Corrected NV12M/NV21M plane-sizes | *3c057a4904media: uvcvideo: Add quirk for Actions UVC05 | *d4fcd06e12ASoC: fsl_audmix: register card device depends on 'dais' property | *d981c3d298ALSA: hda: intel: Add Lenovo IdeaPad Z570 to probe denylist | *97ae1d5080ALSA: hda: intel: Fix Optimus when GPU has no sound | *25490b45d1ASoC: amd: ps: use macro for ACP6.3 pci revision id | *f8f4d77710HID: pidff: Fix null pointer dereference in pidff_find_fields | *0301b85fe6HID: pidff: Add PERIODIC_SINE_ONLY quirk | *f45f26a6b3HID: Add hid-universal-pidff driver and supported device ids | *116d4f67aeHID: pidff: Add FIX_WHEEL_DIRECTION quirk | *ed806fd80eHID: pidff: Add hid_pidff_init_with_quirks and export as GPL symbol | *6a20fae104HID: pidff: Add PERMISSIVE_CONTROL quirk | *fd608e2a06HID: pidff: Add MISSING_PBO quirk and its detection | *fab3dbb604HID: pidff: Add MISSING_DELAY quirk and its detection | *d21ccf544cHID: pidff: Do not send effect envelope if it's empty | *1c0785f164HID: pidff: Convert infinite length from Linux API to PID standard | *5330ce1ee2ASoC: SOF: topology: Use krealloc_array() to replace krealloc() | *377b041c22platform/chrome: cros_ec_lpc: Match on Framework ACPI device | *97f68e7287zstd: Increase DYNAMIC_BMI2 GCC version cutoff from 4.8 to 11.0 to work around compiler segfault | *8d0f280e7axen/mcelog: Add __nonstring annotations for unterminated strings | *cb58e90920arm64: cputype: Add QCOM_CPU_PART_KRYO_3XX_GOLD | *ead1fc9f93Flush console log from kernel_power_off() | *11ae4fec1fPM: hibernate: Avoid deadlock in hibernate_compressor_param_set() | *89a4db7a67perf/dwc_pcie: fix some unreleased resources | *1b3ebfb15dperf: arm_pmu: Don't disable counter in armpmu_add() | *f48625eeebx86/cpu: Don't clear X86_FEATURE_LAHF_LM flag in init_amd_k8() on AMD when running in a virtual machine | *48e705652dx86/ia32: Leave NULL selector values 0~3 unchanged | *640bb22521x86/percpu: Disable named address spaces for UBSAN_BOOL with KASAN for GCC < 14.2 | *837f5cb7bex86/mm: Clear _PAGE_DIRTY for kernel mappings when we clear _PAGE_RW | *f8d28fa305pm: cpupower: bench: Prevent NULL dereference on malloc failure | *67e85cfa95umount: Allow superblock owners to force umount | *52535688c2fs: consistently deref the files table with rcu_dereference_raw() | *fa1827fa96perf: Fix hang while freeing sigtrap event | *7ef5aa081fperf/core: Simplify the perf_event_alloc() error path | *c61feda373perf/core: Add aux_pause, aux_resume, aux_start_paused | *a0842539e8iommu/mediatek: Fix NULL pointer deference in mtk_iommu_device_group | *5efd53900aiommu/exynos: Fix suspend/resume with IDENTITY domain | *7640c2abb6nft_set_pipapo: fix incorrect avx2 match of 5th field octet | *b4c836d33cnet: ppp: Add bound checking for skb data on ppp_sync_txmung * |4485f579ebRevert "cgroup/cpuset: Fix race between newly created partition and dying one" * |4aefb4fba6Mergecc16f7402a("ipv6: Align behavior across nexthops during path selection") into android16-6.12-lts |\| | *cc16f7402aipv6: Align behavior across nexthops during path selection | *a6ed6f8ec8net: phy: allow MDIO bus PM ops to start/stop state machine for phylink-controlled PHY | *6d98cd6342net: phy: move phy_link_change() prior to mdio_bus_phy_may_suspend() | *aa5a1e4b88smb: client: fix UAF in decryption with multichannel | *f86293adcenet_sched: sch_sfq: move the limit validation | *70449ca406net_sched: sch_sfq: use a temporary work area for validating configuration | *ec12da4bccnvmet-fcloop: swap list_add_tail arguments | *c5a9068061drm/i915/huc: Fix fence not released on early probe errors | *0ae84adbc9ata: sata_sx4: Add error handling in pdc20621_i2c_read() | *ad81d666e1net: libwx: handle page_pool_dev_alloc_pages error | *c81306c9d6drm/tests: probe-helper: Fix drm_display_mode memory leak | *80f4dc6e1fdrm/tests: modes: Fix drm_display_mode memory leak | *c7a0a32e6cdrm/tests: cmdline: Fix drm_display_mode memory leak | *f951d643bcdrm/tests: helpers: Create kunit helper to destroy a drm_display_mode | *71dd750a08drm/tests: modeset: Fix drm_display_mode memory leak | *a065b99605net: ethtool: Don't call .cleanup_data when prepare_data fails | *b2f3c3d57atc: Ensure we have enough buffer space when sending filter netlink notifications | *f0bb06b9f1octeontx2-pf: qos: fix VF root node parent queue index | *9fcbca0f80net: tls: explicitly disallow disconnect | *4d55144b12codel: remove sch->q.qlen check before qdisc_tree_reduce_backlog() | *7c5957f790tipc: fix memory leak in tipc_link_xmit | *1b7685256dobjtool: Fix INSN_CONTEXT_SWITCH handling in validate_unret() | *ee2b0301d6ata: pata_pxa: Fix potential NULL pointer dereference in pxa_ata_probe() | *9e0bdc1557drm/xe/hw_engine: define sysfs_ops on all directories | *857e9432dax86/acpi: Don't limit CPUs to 1 for Xen PV guests due to disabled ACPI | *9ddc7edc55drm/i915: Disable RPG during live selftest | *caa5c8a235ublk: fix handling recovery & reissue in ublk_abort_queue() | *cb8372e54fublk: refactor recovery configuration flag helpers | *206d0df7b6selftests/futex: futex_waitv wouldblock test should fail | *179ef2f810gpiolib: of: Fix the choice for Ingenic NAND quirk | *cdb6e724e7cgroup/cpuset: Fix race between newly created partition and dying one | *1b06f00edacgroup/cpuset: Further optimize code if CONFIG_CPUSETS_V1 not set | *6b145f8b22cgroup/cpuset: Enforce at most one rebuild_sched_domains_locked() call per operation | *2dbd1b1660cgroup/cpuset: Revert "Allow suppression of sched domain rebuild in update_cpumasks_hier()" | *9701dcbf5fcgroup/cpuset: Fix error handling in remote_partition_disable() | *40bc55e4fccgroup/cpuset: Fix incorrect isolated_cpus update in update_parent_effective_cpumask() | *b980b83231ASoC: Intel: adl: add 2xrt1316 audio configuration *4c1ccdf129Merge 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:
@@ -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 },
|
||||
]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -22,3 +22,4 @@ are configurable at compile, boot or run time.
|
||||
srso
|
||||
gather_data_sampling
|
||||
reg-file-data-sampling
|
||||
indirect-target-selection
|
||||
|
||||
168
Documentation/admin-guide/hw-vuln/indirect-target-selection.rst
Normal file
168
Documentation/admin-guide/hw-vuln/indirect-target-selection.rst
Normal 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
|
||||
@@ -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]
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
=================
|
||||
|
||||
|
||||
@@ -55,8 +55,7 @@ properties:
|
||||
- const: arm,primecell
|
||||
|
||||
reg:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
@@ -41,8 +41,7 @@ properties:
|
||||
- const: arm,primecell
|
||||
|
||||
reg:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
maxItems: 1
|
||||
|
||||
qcom,dsb-element-bits:
|
||||
description:
|
||||
|
||||
@@ -71,7 +71,7 @@ properties:
|
||||
description:
|
||||
Any lane can be inverted or not.
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
maxItems: 3
|
||||
|
||||
required:
|
||||
- data-lanes
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
-------------------
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
9
Makefile
9
Makefile
@@ -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)/=)
|
||||
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -116,6 +116,10 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&clkc_audio {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&frddr_a {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -1451,6 +1451,7 @@
|
||||
/* TODO: update once support for this CMU exists */
|
||||
clocks = <0>;
|
||||
clock-names = "pclk";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
cmu_top: clock-controller@1e080000 {
|
||||
|
||||
@@ -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 = <®_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 = <®_usdhc2_vmmc>;
|
||||
vqmmc-supply = <®_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>,
|
||||
|
||||
@@ -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 = <®_usdhc2_vmmc>;
|
||||
vqmmc-supply = <®_usdhc2_vqmmc>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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>,
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
148
arch/arm64/boot/dts/ti/k3-j784s4-j742s2-common.dtsi
Normal file
148
arch/arm64/boot/dts/ti/k3-j784s4-j742s2-common.dtsi
Normal 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"
|
||||
2673
arch/arm64/boot/dts/ti/k3-j784s4-j742s2-main-common.dtsi
Normal file
2673
arch/arm64/boot/dts/ti/k3-j784s4-j742s2-main-common.dtsi
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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__
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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. */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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__)
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
/*
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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, ®s->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)
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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__
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user