Merge 6.1.121-lts branch changes into android14-6.1

Steps on the way to a final 6.1.124 lts merge into android14-6.1

Changes included in here are:

* 747746a3c9 Revert "net: defer final 'struct net' free in netns dismantle"
*   e31da5fb5c Merge 6.1.121 into android14-6.1-lts
|\
| * 29f02ec58a Linux 6.1.121
| * 5d16dd18bf x86/static-call: fix 32-bit build
| * b61f346fa0 ALSA: usb-audio: Fix a DMA to stack memory bug
| * 4c24703978 x86/xen: remove hypercall page
| * 1a2471af32 x86/xen: use new hypercall functions instead of hypercall page
| * 7e44e70652 x86/xen: add central hypercall functions
| * fa719857f6 x86/xen: don't do PV iret hypercall through hypercall page
| * f8b1f5472b x86/static-call: provide a way to do very early static-call updates
| * 054f07a204 objtool/x86: allow syscall instruction
| * 259550d6b0 x86: make get_cpu_vendor() accessible from Xen code
| * 8b41e6bccf xen/netfront: fix crash when removing device
| * b070291c83 tracing/kprobes: Skip symbol counting logic for module symbols in create_local_trace_kprobe()
| * 60fd3538d2 bpf: sync_linked_regs() must preserve subreg_def
| * 6fb69bb519 blk-iocost: Avoid using clamp() on inuse in __propagate_weights()
| * 0f40a04c2b Bluetooth: SCO: Add support for 16 bits transparent voice setting
| * 48b1de8156 Bluetooth: iso: Fix recursive locking warning
| * 5953891425 ACPICA: events/evxfregn: don't release the ContextMutex that was never acquired
| * 88f1014b5c team: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL
| * 4842df9528 bonding: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL
| * 10df49cfca net/sched: netem: account for backlog updates from child qdisc
| * 27a650a3d4 net: dsa: felix: fix stuck CPU-injected packets with short taprio windows
| * 4d25a292a7 Documentation: PM: Clarify pm_runtime_resume_and_get() return value
| * a52ac1d883 ASoC: amd: yc: Fix the wrong return value
| * 9721c398c8 qca_spi: Make driver probing reliable
| * c47ec91706 qca_spi: Fix clock speed for multiple QCA7000
| * dbb159c6cb cxgb4: use port number to set mac addr
| * 73d97072f6 ACPI: resource: Fix memory resource type union access
| * 32e2b0b796 net: sparx5: fix the maximum frame length register
| * 3860cc1f6a net: sparx5: fix FDMA performance issue
| * a0427b82d1 spi: aspeed: Fix an error handling path in aspeed_spi_[read|write]_user()
| * 1c765f5710 net: mscc: ocelot: perform error cleanup in ocelot_hwstamp_set()
| * da0732ef2a net: mscc: ocelot: be resilient to loss of PTP packets during transmission
| * ffd597b227 net: mscc: ocelot: ocelot->ts_id_lock and ocelot_port->tx_skbs.lock are IRQ-safe
| * 5422e628ae net: mscc: ocelot: improve handling of TX timestamp for unknown skb
| * 534ad1c380 net: mscc: ocelot: fix memory leak on ocelot_port_add_txtstamp_skb()
| * 3267b254dc net: defer final 'struct net' free in netns dismantle
| * f094919965 net: lapb: increase LAPB_HEADER_LEN
| * 9724cb1881 ptp: kvm: x86: Return EOPNOTSUPP instead of ENODEV from kvm_arch_ptp_init()
| * 5ea817f40d ptp: kvm: Use decrypted memory in confidential guest on x86
| * e9c208b290 selftests: mlxsw: sharedbuffer: Ensure no extra packets are counted
| * 4dcd14efb3 selftests: mlxsw: sharedbuffer: Remove duplicate test cases
| * f12b37e165 selftests: mlxsw: sharedbuffer: Remove h1 ingress test case
| * 61f720e801 net/mlx5: DR, prevent potential error pointer dereference
| * 754ec823ee tipc: fix NULL deref in cleanup_bearer()
| * a6b98dd546 batman-adv: Do not let TT changes list grows indefinitely
| * 0456f8de1c batman-adv: Remove uninitialized data in full table TT response
| * 38f007a96e batman-adv: Do not send uninitialized TT changes
| * 28e17d8e1a amdgpu/uvd: get ring reference from rq scheduler
| * 143f723e9e acpi: nfit: vmalloc-out-of-bounds Read in acpi_nfit_ctl
| * 3faaad820c wifi: mac80211: fix station NSS capability initialization order
| * 7df24b3a8c wifi: mac80211: clean up 'ret' in sta_link_apply_parameters()
| * 29e640ae64 wifi: nl80211: fix NL80211_ATTR_MLO_LINK_ID off-by-one
| * cd1c785864 exfat: fix potential deadlock on __exfat_get_dentry_set
| * d8fe01ad2d exfat: support dynamic allocate bh for exfat_entry_set_cache
| * 755fe68cd4 smb: client: fix UAF in smb2_reconnect_server()
| * 46fd10f458 bpf, sockmap: Fix update element with same
| * 842e5af282 bpf,perf: Fix invalid prog_array access in perf_event_detach_bpf_prog
| * ccab6aad13 xfs: only run precommits once per transaction object
| * 618d34fb8e xfs: fix scrub tracepoints when inode-rooted btrees are involved
| * c9a5e3a17c xfs: return from xfs_symlink_verify early on V4 filesystems
| * eca6418250 xfs: don't drop errno values when we fail to ficlone the entire range
| * 6b72c03ae5 xfs: update btree keys correctly when _insrec splits an inode root block
| * 2129c9d7ab drm/i915: Fix memory leak by correcting cache object name in error handler
| * 1c5902fa3e usb: dwc3: xilinx: make sure pipe clock is deselected in usb2 only mode
| * c83213b664 usb: gadget: u_serial: Fix the issue that gs_start_io crashed due to accessing null pointer
| * 569793fc68 usb: typec: anx7411: fix OF node reference leaks in anx7411_typec_switch_probe()
| * 3fa13f853d usb: typec: anx7411: fix fwnode_handle reference leak
| * 02ceda7f64 usb: ehci-hcd: fix call balance of clocks handling routines
| * e92f79d582 usb: dwc2: Fix HCD port connection race
| * 37927e3600 usb: dwc2: hcd: Fix GetPortStatus & SetPortFeature
| * 195eda3d06 usb: dwc2: Fix HCD resume
| * b8251050f5 ata: sata_highbank: fix OF node reference leak in highbank_initialize_phys()
| * 1a5b5f5b86 usb: host: max3421-hcd: Correctly abort a USB request.
| * cebf90c2d8 ALSA: usb-audio: Add implicit feedback quirk for Yamaha THR5
| * 64afc6fe24 blk-cgroup: Fix UAF in blkcg_unpin_online()
| * e681c5a824 tcp: check space before adding MPTCP SYN options
| * 37a0e2b362 ksmbd: fix racy issue from session lookup and expire
| * 9245459a99 bpf: Fix UAF via mismatching bpf_prog/attachment RCU flavors
* | 5a18c898dd ANDROID: GKI: fix CRC changes in ttm_tt.c
* | b59a4bd0cc Revert "net: Move {l,t,d}stats allocation to core and convert veth & vrf"
* | 0b4ff5581f Revert "veth: Use tstats per-CPU traffic counters"
* | 765e0bd4a4 Revert "bpf: Fix dev's rx stats for bpf_redirect_peer traffic"
* | a25df979f6 Revert "bpf: Fix helper writes to read-only maps"
* | 115fd6611e Revert "arm64: smccc: Remove broken support for SMCCCv1.3 SVE discard hint"
* | 4cf1dd1184 Merge 6.1.120 into android14-6.1-lts
|\|
| * 52f863f820 Linux 6.1.120
| * c3f594a347 Bluetooth: MGMT: Fix possible deadlocks
| * 56bddf543d i3c: master: svc: Fix use after free vulnerability in svc_i3c_master Driver Due to Race Condition
| * ec062a450c fs/ntfs3: Sequential field availability check in mi_enum_attr()
| * 746ed28a96 drm/msm: DEVFREQ_GOV_SIMPLE_ONDEMAND is no longer needed
| * 5446585e42 PM / devfreq: Fix build issues with devfreq disabled
| * a08c1f1268 i3c: master: svc: fix possible assignment of the same address to two devices
| * e9645cf5e0 i3c: master: Remove i3c_dev_disable_ibi_locked(olddev) on device hotjoin
| * 7f5c20b9fa serial: amba-pl011: fix build regression
| * 4cb99eeb1d usb: dwc3: ep0: Don't reset resource alloc flag
| * c807ab3a86 drm/amdgpu: rework resume handling for display (v2)
| * 77ab79b9e4 drm/ttm: Print the memory decryption status just once
| * ef7efa60a3 drm/ttm: Make sure the mapped tt pages are decrypted when needed
| * 7ca7b6649b veth: Use tstats per-CPU traffic counters
| * 8e7b5300a0 bpf: Fix dev's rx stats for bpf_redirect_peer traffic
| * 877c81faf0 net: Move {l,t,d}stats allocation to core and convert veth & vrf
| * 988e55abcf bpf: Fix helper writes to read-only maps
| * 0f910dbf2f mm: call the security_mmap_file() LSM hook in remap_file_pages()
| * 2c38ab25aa ASoC: Intel: avs: Fix return status of avs_pcm_hw_constraints_init()
| * bfcaffd4cc arm64: smccc: Remove broken support for SMCCCv1.3 SVE discard hint
| * de529504b3 arm64/sve: Discard stale CPU state when handling SVE traps
| * 7d687b9874 gve: Fixes for napi_poll when budget is 0
| * 6ec0b877d1 Revert "drm/amdgpu: add missing size check in amdgpu_debugfs_gprwave_read()"
| * 4ed23e9dd8 ocfs2: Revert "ocfs2: fix the la space leak when unmounting an ocfs2 volume"
| * eef7301e67 drm/amd/display: Check BIOS images before it is used
| * 40aed32594 mmc: mtk-sd: Fix error handle of probe function
| * ca5c9cb647 xhci: dbc: Fix STALL transfer event handling
| * 3ab9326f93 io_uring: wake up optimisations
| * 7d5c04d26d mm/damon/vaddr: fix issue in damon_va_evenly_split_region()
| * dd16397b47 jffs2: Fix rtime decompressor
| * 47c9a7f810 jffs2: Prevent rtime decompress memory corruption
* | 04df8ff9ab Merge 4118bd1834 ("KVM: x86/mmu: Ensure that kvm_release_pfn_clean() takes exact pfn from kvm_faultin_pfn()") into android14-6.1-lts
|\|
| * 4118bd1834 KVM: x86/mmu: Ensure that kvm_release_pfn_clean() takes exact pfn from kvm_faultin_pfn()
| * 21bc72eef0 KVM: arm64: vgic-its: Clear ITE when DISCARD frees an ITE
| * fe695bc157 KVM: arm64: vgic-its: Clear DTE when MAPD unmaps a device
| * cb35445052 KVM: arm64: vgic-its: Add a data length check in vgic_its_save_*
* | d61182f8b1 Revert "scsi: ufs: core: Make DMA mask configuration more flexible"
* | 9da7c09f0b Merge eed8395d94 ("udf: Fold udf_getblk() into udf_bread()") into android14-6.1-lts
|\|
| * eed8395d94 udf: Fold udf_getblk() into udf_bread()
| * 97c22fd510 vfio/mlx5: Align the page tracking max message size with the device capability
| * ca8e6a7369 Revert "unicode: Don't special case ignorable code points"
| * db774504be tracing/eprobe: Fix to release eprobe when failed to add dyn_event
| * b15437fb26 btrfs: fix missing snapshot drew unlock when root is dead during swap activation
| * 641e9638aa sched/core: Prevent wakeup of ksoftirqd during idle load balance
| * f4a4250cf5 sched/fair: Check idle_cpu() before need_resched() to detect ilb CPU turning busy
| * 7791249606 sched/core: Remove the unnecessary need_resched() check in nohz_csd_func()
| * 74b6d260cb kasan: make report_lock a raw spinlock
| * ac77fe0577 kasan: suppress recursive reports for HW_TAGS
| * 94ad56f61b io_uring/tctx: work around xa_store() allocation error issue
| * 3613d540c1 serial: 8250_dw: Add Sophgo SG2044 quirk
| * 2c9502ac83 rtc: cmos: avoid taking rtc_lock for extended period of time
| * 80be263f3f misc: eeprom: eeprom_93cx6: Add quirk for extra read clock cycle
| * 6d5f0453a2 powerpc/prom_init: Fixup missing powermac #size-cells
| * c239c3c004 ASoC: amd: yc: Add quirk for microphone on Lenovo Thinkpad T14s Gen 6 21M1CTO1WW
| * c8ee41fc35 MIPS: Loongson64: DTS: Really fix PCIe port nodes for ls7a
| * b41d8adfd0 iio: light: ltr501: Add LTER0303 to the supported devices
| * af1d1d3e4e usb: chipidea: udc: handle USB Error Interrupt if IOC not set
| * 08715b741f LoongArch: Fix sleeping in atomic context for PREEMPT_RT
| * 816187b183 i3c: Use i3cdev->desc->info instead of calling i3c_device_get_info() to avoid deadlock
| * d51345f75f PCI: Add ACS quirk for Wangxun FF5xxx NICs
| * 07911f8385 PCI: Add 'reset_subordinate' to reset hierarchy below bridge
| * 2dcaa24a00 PCI: Detect and trust built-in Thunderbolt chips
| * 9d745a56ae i3c: mipi-i3c-hci: Mask ring interrupts before ring stop request
| * ef517d2d21 f2fs: fix f2fs_bug_on when uninstalling filesystem call f2fs_evict_inode.
| * c6bdc33263 verification/dot2: Improve dot parser robustness
| * 08f3ca17c1 smb: client: memcpy() with surrounding object base address
| * 12433c87d2 nvdimm: rectify the illogical code within nd_dax_probe()
| * b859dd6702 pinctrl: qcom: spmi-mpp: Add PM8937 compatible
| * 3cc16b146d pinctrl: qcom-pmic-gpio: add support for PM8937
| * 0d63c36f03 scsi: st: Add MTIOCGET and MTLOAD to ioctls allowed after device reset
| * f3ffc7769f scsi: st: Don't modify unknown block number in MTIOCGET
| * 50d9f68e4a leds: class: Protect brightness_show() with led_cdev->led_access mutex
| * 6e8a13f27e scsi: ufs: core: Make DMA mask configuration more flexible
| * 2991a02389 scsi: hisi_sas: Add cond_resched() for no forced preemption model
| * 4e5a4e8d1b tools/rtla: fix collision with glibc sched_attr/sched_set_attr
| * 943a0c5fa4 tracing: Use atomic64_inc_return() in trace_clock_counter()
| * 69243255f2 tracing/ftrace: disable preemption in syscall probe
| * a9ca98ec15 pinctrl: freescale: fix COMPILE_TEST error with PINCTRL_IMX_SCU
| * 1a16deb517 netpoll: Use rcu_access_pointer() in __netpoll_setup
| * 3100034a2d net/neighbor: clear error in case strict check is not set
| * 84e49db5b3 rocker: fix link status detection in rocker_carrier_init()
| * 7c557ba828 ASoC: hdmi-codec: reorder channel allocation list
| * 559b1c7ac2 Bluetooth: hci_core: Fix not checking skb length on hci_acldata_packet
| * f2c3deaf20 Bluetooth: btusb: Add RTL8852BE device 0489:e123 to device tables
| * 7d9a095160 dsa: qca8k: Use nested lock to avoid splat
| * 67a25ea28f wifi: brcmfmac: Fix oops due to NULL pointer dereference in brcmf_sdiod_sglist_rw()
| * 4adc692826 wifi: ipw2x00: libipw_rx_any(): fix bad alignment
| * ff0346a746 drm/amdgpu: set the right AMDGPU sg segment limitation
| * 324a76b89f ALSA: usb-audio: Make mic volume workarounds globally applicable
| * 6f014c96a1 drm/amdgpu: skip amdgpu_device_cache_pci_state under sriov
| * 491487eedd jfs: add a check to prevent array-index-out-of-bounds in dbAdjTree
| * ff9fc48fab jfs: fix array-index-out-of-bounds in jfs_readdir
| * 51a203470f jfs: fix shift-out-of-bounds in dbSplit
| * 2eea5fda55 jfs: array-index-out-of-bounds fix in dtReadFirst
| * 8c1b4fea8d dma-debug: fix a possible deadlock on radix_lock
| * b295b197da drm/amdgpu: refine error handling in amdgpu_ttm_tt_pin_userptr
| * 8ffd84c694 drm/amdgpu: Dereference the ATCS ACPI buffer
| * 266a3354f7 drm/amdgpu: clear RB_OVERFLOW bit when enabling interrupts for vega20_ih
| * 166df51487 drm/sched: memset() 'job' in drm_sched_job_init()
| * 490f09dee8 net: sfp: change quirks for Alcatel Lucent G-010S-P
| * 8b0161589e drm/panel: simple: Add Microchip AC69T88A LVDS Display panel
| * 18e450fc83 wifi: ath5k: add PCI ID for Arcadyan devices
| * cc871a02a5 wifi: ath5k: add PCI ID for SX76X
| * 79e16a0d33 net: inet6: do not leave a dangling sk pointer in inet6_create()
| * b4513cfd3a net: inet: do not leave a dangling sk pointer in inet_create()
| * e8bd6c5f5d net: ieee802154: do not leave a dangling sk pointer in ieee802154_create()
| * 5947c9ac08 net: af_can: do not leave a dangling sk pointer in can_create()
| * ac3eaac4cf Bluetooth: RFCOMM: avoid leaving dangling sk pointer in rfcomm_sock_alloc()
| * bb2f2342a6 Bluetooth: L2CAP: do not leave dangling sk pointer on error in l2cap_sock_create()
| * a6cf750b73 af_packet: avoid erroring out after sock_init_data() in packet_create()
| * a478f3841e net/sched: cbs: Fix integer overflow in cbs_set_port_rate()
| * 9c3d8ed728 net: ethernet: fs_enet: Use %pa to format resource_size_t
| * ab716f7666 net: fec_mpc52xx_phy: Use %pa to format resource_size_t
| * 039daf6f02 samples/bpf: Fix a resource leak
| * 77f168247b r8169: don't apply UDP padding quirk on RTL8126A
| * c5648abf72 drm/display: Fix building with GCC 15
| * 578afcc9d9 drm/radeon/r600_cs: Fix possible int overflow in r600_packet3_check()
| * b2f6165aec drm/mcde: Enable module autoloading
| * 20baf71507 drm/bridge: it6505: Enable module autoloading
| * dd376b0e61 drm: panel-orientation-quirks: Add quirk for AYA NEO GEEK
| * 719497a715 drm: panel-orientation-quirks: Add quirk for AYA NEO Founder edition
| * dce37cb7f6 drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model
| * 09ba19adb9 drm/vc4: hvs: Set AXI panic modes for the HVS
| * 040299b28c drm/vc4: hdmi: Avoid log spam for audio start failure
| * 9459e166bc HID: magicmouse: Apple Magic Trackpad 2 USB-C driver support
| * ea2ff66feb soc: imx8m: Probe the SoC driver as platform driver
* | 87f1720a7f Revert "device property: Constify device child node APIs"
* | 8d0582984f Revert "device property: Add cleanup.h based fwnode_handle_put() scope based cleanup."
* | 872fb392d5 Revert "device property: Introduce device_for_each_child_node_scoped()"
* | f5e8852244 Revert "leds: flash: mt6360: Fix device_for_each_child_node() refcounting in error paths"
* | 3504076522 Revert "i3c: Make i3c_master_unregister() return void"
* | 86f0a42718 Revert "i3c: master: add enable(disable) hot join in sys entry"
* | b16f40cc36 Revert "i3c: master: svc: add hot join support"
* | ad10d48070 Revert "i3c: master: fix kernel-doc check warning"
* | 6e6b3eeb00 Revert "i3c: master: support to adjust first broadcast address speed"
* | efa48b6122 Revert "i3c: master: svc: use slow speed for first broadcast address"
* | efa3571a54 Revert "i3c: master: svc: Modify enabled_events bit 7:0 to act as IBI enable counter"
* | e8a4474f16 Revert "PCI: endpoint: Use a separate lock for protecting epc->pci_epf list"
* | 703a8674df Revert "PCI: endpoint: Clear secondary (not primary) EPC in pci_epc_remove_epf()"
* | 81df1c4551 Revert "i3c: master: Replace hard code 2 with macro I3C_ADDR_SLOT_STATUS_BITS"
* | fc7774be6b Revert "i3c: master: Extend address status bit to 4 and add I3C_ADDR_SLOT_EXT_DESIRED"
* | 77e519c5be Revert "i3c: master: Fix dynamic address leak when 'assigned-address' is present"
* | 059dc61b44 Merge 8379d0cbd5 ("mmc: core: Add SD card quirk for broken poweroff notification") into android14-6.1-lts
|\|
| * 8379d0cbd5 mmc: core: Add SD card quirk for broken poweroff notification
| * 8caec5e4a5 media: cx231xx: Add support for Dexatek USB Video Grabber 1d19:6108
| * 467d2d7ccb media: uvcvideo: Add a quirk for the Kaiweets KTI-W02 infrared camera
| * 1b36192357 perf/x86/amd: Warn only on new bits set
| * 0ab4951c14 kcsan: Turn report_filterlist_lock into a raw_spinlock
| * 2c0027dc17 kselftest/arm64: Don't leak pipe fds in pac.exec_sign_all()
| * bcea29dff6 btrfs: do not clear read-only when adding sprout device
| * 72c49143fb btrfs: avoid unnecessary device path update for the same device
| * b5be6a0bb6 s390/cpum_sf: Handle CPU hotplug remove during sampling
| * 670fc6d14f epoll: annotate racy check
| * f8f794f387 iommu/arm-smmu: Defer probe of clients after smmu device bound
| * 254abd3d87 lib: stackinit: hide never-taken branch from compiler
| * 5411aaa1d8 ocfs2: update seq_file index in ocfs2_dlm_seq_next
| * 74eb8dd0c5 mmc: core: Further prevent card detect during shutdown
| * 374914d90a mmc: sdhci-pci: Add DMI quirk for missing CD GPIO on Vexia Edu Atla 10 tablet
| * 48dc44f3c1 regmap: detach regmap from dev on regmap_exit
| * ed08c93d5a xsk: fix OOB map writes when deleting elements
| * 0af08132ee dma-fence: Use kernel's sort for merging fences
| * 033e49e92f dma-fence: Fix reference leak on fence merge failure path
| * 9dee6bfab0 dma-buf: fix dma_fence_array_signaled v4
| * 98c03d0593 bpf: fix OOB devmap writes when deleting elements
| * c23abcb314 modpost: Add .irqentry.text to OTHER_SECTIONS
| * f0cbcf1f77 drm/amdgpu/hdp5.2: do a posting read when flushing HDP
| * 94b33b2d76 drm/dp_mst: Fix resetting msg rx state after topology removal
| * b0afd7eadc drm/dp_mst: Verify request type in the corresponding down message reply
| * 780fa184d4 drm/dp_mst: Fix MST sideband message body length check
| * 5202391970 bcache: revert replacing IS_ERR_OR_NULL with IS_ERR again
| * 5af8366625 nilfs2: fix potential out-of-bounds memory access in nilfs_find_entry()
| * 8972226129 scsi: ufs: core: Add missing post notify for power mode change
| * 7b21233e5f scsi: ufs: core: sysfs: Prevent div by zero
| * c7a2f0ce45 scsi: qla2xxx: Remove check req_sg_cnt should be equal to rsp_sg_cnt
| * b3e6f25176 scsi: qla2xxx: Fix use after free on unload
| * 7f3e10e9c2 scsi: qla2xxx: Supported speed displayed incorrectly for VPorts
| * 61cee38459 scsi: qla2xxx: Fix NVMe and NPIV connect issue
| * 1b8b9c0eee scsi: qla2xxx: Fix abort in bsg timeout
| * ed4e9fa189 ALSA: hda/realtek: Add support for Samsung Galaxy Book3 360 (NP730QFG)
| * 388ff61cf0 ALSA: hda/realtek: Enable mute and micmute LED on HP ProBook 430 G8
| * 2e72135e07 ALSA: usb-audio: add mixer mapping for Corsair HS80
| * 1370cf3eb5 arm64: ptrace: fix partial SETREGSET for NT_ARM_TAGGED_ADDR_CTRL
| * 83df26299d arm64: Ensure bits ASID[15:8] are masked out when the kernel uses 8-bit ASIDs
| * 896c1557f8 tracing: Fix cmp_entries_dup() to respect sort() comparison rules
| * bfd8d65d84 can: mcp251xfd: mcp251xfd_get_tef_len(): work around erratum DS80000789E 6.
| * 46637a608f can: dev: can_set_termination(): allow sleeping GPIOs
| * 4b2f2abd27 watchdog: rti: of: honor timeout-sec property
| * 8cd7490fc0 ksmbd: fix Out-of-Bounds Write in ksmbd_vfs_stream_write
| * de4d790dcf ksmbd: fix Out-of-Bounds Read in ksmbd_vfs_stream_read
| * dba3c45e33 LoongArch: Add architecture specific huge_pte_clear()
| * 2cd323c55b HID: wacom: fix when get product name maybe null pointer
| * 2521664c1f mm: page_alloc: move mlocked flag clearance into free_pages_prepare()
| * f6b5e3c7cb bpf: Fix exact match conditions in trie_get_next_key()
| * b332849f27 bpf: Handle in-place update for full LPM trie correctly
| * e4fd0dde29 bpf: Remove unnecessary kfree(im_node) in lpm_trie_update_elem
| * 5bc31abdc7 bpf: Handle BPF_EXIST and BPF_NOEXIST for LPM trie
| * 68fc3da03c iio: magnetometer: yas530: use signed integer type for clamp limits
| * 2939c05efb scatterlist: fix incorrect func name in kernel-doc
| * 67c2c6d056 ocfs2: free inode when ocfs2_get_init_inode() fails
| * 5abef60d14 drm/v3d: Enable Performance Counters before clearing them
| * 907362d4c4 scsi: scsi_debug: Fix hrtimer support for ndelay
| * 373d55a47d spi: mpc52xx: Add cancel_work_sync before module remove
| * 935ac3d517 tools: Override makefile ARCH variable if defined, but empty
| * 8c28274b2d ALSA: usb-audio: Notify xrun for low-latency mode
| * 456f08d24a tcp_bpf: Fix the sk_mem_uncharge logic in tcp_bpf_sendmsg
| * 0f51eb88c3 drm/sti: Add __iomem for mixer_dbg_mxn's parameter
| * 31a19580ba bpftool: fix potential NULL pointer dereferencing in prog_dump()
| * e7a289f3e3 bpftool: Remove asserts from JIT disassembler
| * 98452de451 xsk: always clear DMA mapping information when unmapping the pool
| * 4ba1e05536 drm/bridge: it6505: Fix inverted reset polarity
| * 39d3bb22a8 drm/bridge: it6505: update usleep_range for RC circuit charge time
| * 28a01c6b3f leds: flash: mt6360: Fix device_for_each_child_node() refcounting in error paths
| * 6fedf3dc30 device property: Introduce device_for_each_child_node_scoped()
| * da1097f8d9 device property: Add cleanup.h based fwnode_handle_put() scope based cleanup.
| * 0ba045ab08 device property: Constify device child node APIs
| * 3c2a6d4d02 PCI: endpoint: Clear secondary (not primary) EPC in pci_epc_remove_epf()
| * 9102582762 PCI: endpoint: Use a separate lock for protecting epc->pci_epf list
| * 8c77c55f45 i3c: master: Fix dynamic address leak when 'assigned-address' is present
| * 432b688424 i3c: master: Extend address status bit to 4 and add I3C_ADDR_SLOT_EXT_DESIRED
| * e195da0610 i3c: master: Replace hard code 2 with macro I3C_ADDR_SLOT_STATUS_BITS
| * 6d636e0934 i3c: master: svc: Modify enabled_events bit 7:0 to act as IBI enable counter
| * 9530ad77c2 i3c: master: svc: use slow speed for first broadcast address
| * 9be9327905 i3c: master: support to adjust first broadcast address speed
| * 4c135c0a52 i3c: master: fix kernel-doc check warning
| * 6d4fffb144 i3c: master: svc: add hot join support
| * 4fa1dfad77 i3c: master: add enable(disable) hot join in sys entry
| * 87e0f28eda i3c: Make i3c_master_unregister() return void
| * c74e733b96 driver core: fw_devlink: Stop trying to optimize cycle detection logic
| * a3284739bb driver core: Add FWLINK_FLAG_IGNORE to completely ignore a fwnode link
| * 84bdb88f70 driver core: fw_devlink: Improve logs for cycle detection
| * 6f24a5f830 ntp: Remove invalid cast in time offset math
| * 6c013fde1c powerpc/vdso: Drop -mstack-protector-guard flags in 32-bit files with clang
| * 2b015f0652 powerpc/vdso: Refactor CFLAGS for CVDSO build
| * e4ccf8ec27 powerpc/vdso: Include CLANG_FLAGS explicitly in ldflags-y
| * 1234c16941 powerpc/vdso: Remove an unsupported flag from vgettimeofday-32.o with clang
| * 8d1d3940ef powerpc/vdso: Improve linker flags
| * a911a32157 powerpc/vdso: Remove unused '-s' flag from ASFLAGS
| * 1747a559aa powerpc/vdso: Skip objtool from running on VDSO files
* | 84fa5db774 ANDROID: GKI: virtual_device: add usb_find_common_endpoints to symbol list
* | c3c00ed2dc Revert "crypto: api - Add crypto_tfm_get"
* | b0bd967ce7 Revert "crypto: api - Add crypto_clone_tfm"
* | 24ffe8caa6 Revert "llc: Improve setsockopt() handling of malformed user input"
* | daaf475999 Merge 749a916a9c ("usb: dwc3: ep0: Don't clear ep0 DWC3_EP_TRANSFER_STARTED") into android14-6.1-lts
|\|
| * 749a916a9c usb: dwc3: ep0: Don't clear ep0 DWC3_EP_TRANSFER_STARTED
| * 68fb250eec usb: dwc3: ep0: Don't reset resource alloc flag (including ep0)
| * d60098113d usb: dwc3: gadget: Rewrite endpoint allocation flow
| * cc372a2739 serial: amba-pl011: Fix RX stall when DMA is used
| * 5283338fcd serial: amba-pl011: Use port lock wrappers
| * 09adf8792b gpio: grgpio: Add NULL check in grgpio_probe
| * c942c54a36 gpio: grgpio: use a helper variable to store the address of ofdev->dev
| * 6af853cf5f KVM: arm64: Don't retire aborted MMIO instruction
| * b18c92b051 KVM: arm64: Change kvm_handle_mmio_return() return polarity
| * c1c2c835a0 net/mlx5e: Remove workaround to avoid syndrome for internal port
| * 2ee7bdc7cb geneve: do not assume mac header is set in geneve_xmit_skb()
| * a1a68b5702 ethtool: Fix wrong mod state in case of verbose and no_mask bitset
| * 23a6919bb3 netfilter: nft_set_hash: skip duplicated elements pending gc run
| * 5bae60a933 netfilter: ipset: Hold module reference while requesting a module
| * 082b0dac78 net: sched: fix erspan_opt settings in cls_flower
| * 8009cdcc49 igb: Fix potential invalid memory access in igb_init_module()
| * 49b0aa1008 ixgbe: downgrade logging of unsupported VF API version to debug
| * 8ac227d875 ixgbevf: stop attempting IPSEC offload on Mailbox API 1.5
| * b6fcf1f335 net/qed: allow old cards not supporting "num_images" to work
| * 0cf598548a net/smc: fix LGR and link use-after-free issue
| * d62d5180c0 tipc: Fix use-after-free of kernel socket in cleanup_bearer().
| * 6ff67909ee dccp: Fix memory leak in dccp_feat_change_recv
| * 535add1e9f net/ipv6: release expired exception dst cached in socket
| * c3c87e1432 net-timestamp: make sk_tskey more predictable in error path
| * f117cba69c can: j1939: j1939_session_new(): fix skb reference counting
| * 6bb5c8ebc9 net: hsr: avoid potential out-of-bound access in fill_frame_info()
| * 11a9c19c28 net/sched: tbf: correct backlog statistic for GSO packets
| * 085980b68b ptp: Add error handling for adjfine callback in ptp_clock_adjtime
| * 4db84fc352 ptp: convert remaining drivers to adjfine interface
| * 7064a6daa4 netfilter: nft_socket: remove WARN_ON_ONCE on maximum cgroup level
| * ab9916321c netfilter: x_tables: fix LED ID check in led_tg_check()
| * 664d0feab9 ipvs: fix UB due to uninitialized stack access in ip_vs_protocol_init()
| * d6c90ba51e can: ems_usb: ems_usb_rx_err(): fix {rx,tx}_errors statistics
| * 425d7c6fa5 can: sun4i_can: sun4i_can_err(): fix {rx,tx}_errors statistics
| * 94f2bb4386 can: sja1000: sja1000_err(): fix {rx,tx}_errors statistics
| * 4a76e5e83e can: hi311x: hi3110_can_ist(): fix {rx,tx}_errors statistics
| * 3537b2860c can: ifi_canfd: ifi_canfd_handle_lec_err(): fix {rx,tx}_errors statistics
| * 0691005ad7 can: m_can: m_can_handle_lec_err(): fix {rx,tx}_errors statistics
| * 4ad77eb8f2 can: hi311x: hi3110_can_ist(): fix potential use-after-free
| * 3a03875399 can: sun4i_can: sun4i_can_err(): call can_change_state() even if cf is NULL
| * c5435a6d5c can: c_can: c_can_handle_bus_err(): update statistics if skb allocation fails
| * b6109556ca can: gs_usb: add usb endpoint address detection at driver probe step
| * 003f492e95 can: gs_usb: add VID/PID for Xylanta SAINT3 product family
| * 92cd695dd5 can: gs_usb: uniformly use "parent" as variable name for struct gs_usb
| * a04d8f5834 can: gs_usb: gs_usb_probe(): align block comment
| * 3c5d346668 can: gs_usb: remove leading space from goto labels
| * e58e41c25a watchdog: mediatek: Make sure system reset gets asserted in mtk_wdt_restart()
| * d0c1a72b56 watchdog: apple: Actually flush writes after requesting watchdog restart
| * 0bcea01215 iTCO_wdt: mask NMI_NOW bit for update_no_reboot_bit() call
| * d17b991ac4 drm/amd/pm: update current_socclk and current_uclk in gpu_metrics on smu v13.0.7
| * 42c2dab662 drm/etnaviv: flush shader L1 cache after user commandstream
| * 40725c5fab drm/sti: avoid potential dereference of error pointers
| * b79612ed6b drm/sti: avoid potential dereference of error pointers in sti_gdp_atomic_check
| * 6b0d0d6e9d drm/sti: avoid potential dereference of error pointers in sti_hqvdp_atomic_check
| * 44a2c518ab btrfs: don't BUG_ON on ENOMEM from btrfs_lookup_extent_info() in walk_down_proc()
| * 005873743f powerpc: Adjust adding stack protector flags to KBUILD_CLAGS for clang
| * d497cdd2c3 powerpc: Fix stack protector Kconfig test for clang
| * 00663d3e00 iio: adc: ad7923: Fix buffer overflow for tx_buf and ring_xfer
| * fa4c8ae526 iio: Fix fwnode_handle in __fwnode_iio_channel_get_by_name()
| * 45abb68c94 nfsd: fix nfs4_openowner leak when concurrent nfsd4_open occur
| * 7d8f7816be nfsd: make sure exp active before svc_export_show
| * 39353c9259 PCI: rockchip-ep: Fix address translation unit programming
| * 6404f3ae4f dm thin: Add missing destroy_work_on_stack()
| * 514b6cca20 ovl: properly handle large files in ovl_security_fileattr
| * 748d495e87 thermal: int3400: Fix reading of current_uuid for active policy
| * e8ceff4995 fs/proc/kcore.c: Clear ret value in read_kcore_iter after successful iov_iter_zero
| * d0c2cb03ab PCI: keystone: Add link up check to ks_pcie_other_map_bus()
| * 481a1e8a79 PCI: keystone: Set mode as Root Complex for "ti,keystone-pcie" compatible
| * 991e33a99f i3c: master: Fix miss free init_dyn_addr at i3c_master_put_i3c_addrs()
| * e1cf8c1177 i3c: master: svc: Fix pm_runtime_set_suspended() with runtime pm enabled
| * 6968bcb7fa scsi: ufs: exynos: Fix hibern8 notify callbacks
| * a87760ae39 util_macros.h: fix/rework find_closest() macros
| * 051762925e ceph: extract entity name from device id
| * 213f22fb42 ARM: 9431/1: mm: Pair atomic_set_release() with _read_acquire()
| * 8fe148d39c ARM: 9430/1: entry: Do a dummy read from VMAP shadow
| * 5bb7a2c3af s390/entry: Mark IRQ entries to fix stack depot warnings
| * 95c98e7ab8 ARM: 9429/1: ioremap: Sync PGDs for VMALLOC shadow
| * 022e13518b ad7780: fix division by zero in ad7780_write_raw()
| * 4c028c1bf8 clk: qcom: gcc-qcs404: fix initial rate of GPLL3
| * 133be7fa5a leds: lp55xx: Remove redundant test for invalid channel number
| * 34e18de94b iommu/io-pgtable-arm: Fix stage-2 map/unmap for concatenated tables
| * df8796f1cc vmstat: call fold_vm_zone_numa_events() before show per zone NUMA event
| * 7ae27880de ftrace: Fix regression with module command in stack_trace_filter
| * 459904a873 maple_tree: refine mas_store_root() on storing NULL
| * ff43d008bb ovl: Filter invalid inodes with missing lookup function
| * 19464d7322 media: uvcvideo: Require entities to have a non-zero unique ID
| * 5aad0a6b59 media: uvcvideo: Stop stream during unregister
| * 17e5613666 media: platform: allegro-dvt: Fix possible memory leak in allocate_buffers_internal()
| * 71d0e403f6 media: gspca: ov534-ov772x: Fix off-by-one error in set_frame_rate()
| * bbbc4f7459 media: venus: Fix pm_runtime_set_suspended() with runtime pm enabled
| * c72d1cd2be media: amphion: Fix pm_runtime_set_suspended() with runtime pm enabled
| * 2155e91924 media: platform: exynos4-is: Fix an OF node reference leak in fimc_md_is_isp_available
| * dc03866b5f media: ts2020: fix null-ptr-deref in ts2020_probe()
| * 12914fd765 media: imx-jpeg: Ensure power suppliers be suspended before detach them
| * 34a3466a92 media: i2c: tc358743: Fix crash in the probe error path when using polling
| * 9eb254505d arm64: dts: freescale: imx8mp-verdin: Fix SD regulator startup delay
| * e90b73f02f media: i2c: dw9768: Fix pm_runtime_set_suspended() with runtime pm enabled
| * b88556e82d media: imx-jpeg: Set video drvdata before register video device
| * cfe96c7c33 media: amphion: Set video drvdata before register video device
| * 6ca8299aa7 arm64: dts: freescale: imx8mm-verdin: Fix SD regulator startup delay
| * 3f1fcc1021 arm64: dts: allwinner: pinephone: Add mount matrix to accelerometer
| * 6370db28af btrfs: ref-verify: fix use-after-free after invalid ref action
| * db66fb87c2 btrfs: add a sanity check for btrfs root in btrfs_search_slot()
| * 1dfc86bea8 btrfs: add might_sleep() annotations
| * dcbcd9c88e btrfs: don't loop for nowait writes when checking for cross references
| * 3e6ff207cd quota: flush quota_release_work upon quota writeback
| * f5803e3bb9 xfs: remove unknown compat feature check in superblock write validation
| * c43df7dae2 sh: intc: Fix use-after-free bug in register_intc_controller()
| * 87a95ee34a sunrpc: clear XPRT_SOCK_UPD_TIMEOUT when reset transport
| * 0f29fd2cd3 nfs: ignore SB_RDONLY when mounting nfs
| * c2f8665338 modpost: remove incorrect code in do_eisa_entry()
| * a6f772c796 rtc: ab-eoz9: don't fail temperature reads on undervoltage notification
| * 4dcaa86552 perf/arm-cmn: Ensure port and device id bits are set properly
| * ddce811ed3 perf/arm-smmuv3: Fix lockdep assert in ->event_init()
| * b9e2605966 9p/xen: fix release of IRQ
| * 91b4763da3 9p/xen: fix init sequence
| * c375804cf5 block: return unsigned int from bdev_io_min
| * cfc4647055 rtc: rzn1: fix BCD to rtc_time conversion errors
| * 37a22fd4b8 jffs2: fix use of uninitialized variable
| * 74981f7577 ubifs: authentication: Fix use-after-free in ubifs_tnc_end_commit
| * 6afdcb2857 ubi: fastmap: Fix duplicate slab cache names while attaching
| * f88a7f5e26 ubifs: Correct the total block count by deducting journal reservation
| * 6aa2932c6e ubi: fastmap: wl: Schedule fm_work if wear-leveling pool is empty
| * fde5653550 rtc: check if __rtc_read_time was successful in rtc_timer_do_work()
| * 54a60de9a6 rtc: abx80x: Fix WDT bit position of the status register
| * ba3135792e rtc: st-lpc: Use IRQF_NO_AUTOEN flag in request_irq()
| * ba6e6c04f6 NFSv4.0: Fix a use-after-free problem in the asynchronous open()
| * 8a73401dac um: Always dump trace for specified task in show_stack
| * 8fd508d433 um: Fix the return value of elf_core_copy_task_fpregs
| * 1575df9686 um: Fix potential integer overflow during physmem setup
| * 068c0b50f3 SUNRPC: make sure cache entry active before cache_show
| * de53c53051 NFSD: Prevent a potential integer overflow
| * 3d230cfd4b ipc: fix memleak if msg_init_ns failed in create_ipc_ns
| * 7f34d90a7f lib: string_helpers: silence snprintf() output truncation warning
| * 2de63befbe ublk: fix error code for unsupported command
| * c9e72352a1 usb: dwc3: gadget: Fix looping of queued SG entries
| * 6cb33da1c8 usb: dwc3: gadget: Fix checking for number of TRBs left
| * c749500b28 usb: musb: Fix hardware lockup on first Rx endpoint request
| * 338ae99f3e smb3: request handle caching when caching directories
| * 7ca7a0a983 ALSA: hda/realtek: Apply quirk for Medion E15433
| * 9d186d6aac ALSA: hda/realtek: Fix Internal Speaker and Mic boost of Infinix Y4 Max
| * 3a5fc93296 ALSA: hda/realtek: Set PCBeep to default value for ALC274
| * fe73dc2740 ALSA: hda/realtek: Update ALC225 depop procedure
| * 832efbb74b ALSA: pcm: Add sanity NULL check for the default mmap fault handler
| * 71f9c0f1e3 media: v4l2-core: v4l2-dv-timings: check cvt/gtf result
| * 6b4c689060 soc: fsl: rcpm: fix missing of_node_put() in copy_ippdexpcr1_setting()
| * 372dc95091 media: wl128x: Fix atomicity violation in fmc_send_cmd()
| * 18023f0992 HID: wacom: Interpret tilt data from Intuos Pro BT as signed values
| * 5f10c60629 block: fix ordering between checking BLK_MQ_S_STOPPED request adding
| * 023438d01b arm64: tls: Fix context-switching of tpidrro_el0 when kpti is enabled
| * 59ad8b56af ublk: fix ublk_ch_mmap() for 64K page size
| * 2b6b8e011f sh: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
| * dc5251b1af um: vector: Do not use drvdata in release
| * 03d1f525d4 serial: 8250: omap: Move pm_runtime_get_sync
| * ef42e3edf9 serial: 8250_fintek: Add support for F81216E
| * 170011e922 dt-bindings: serial: rs485: Fix rs485-rts-delay property
| * 160cd5f956 um: net: Do not use drvdata in release
| * a5a75207ef um: ubd: Do not use drvdata in release
| * 6a3dbe75b2 ubi: wl: Put source PEB into correct list if trying locking LEB failed
| * d427e3aa84 platform/chrome: cros_ec_typec: fix missing fwnode reference decrement
| * 082dc185b8 parisc/ftrace: Fix function graph tracing disablement
| * c923c437ed cpufreq: mediatek-hw: Fix wrong return value in mtk_cpufreq_get_cpu_power()
| * 1050f58715 mtd: spi-nor: core: replace dummy buswidth from addr to data
| * f69123bb5c spi: Fix acpi deferred irq probe
| * 7ffef5e5d5 netfilter: ipset: add missing range check in bitmap_ip_uadt
| * 69418eec0c gpio: exar: set value when external pull-up or pull-down is present
| * 51c8380cc4 Revert "serial: sh-sci: Clean sci_ports[0] after at earlycon exit"
| * 6a558edf0f serial: sh-sci: Clean sci_ports[0] after at earlycon exit
| * c17418f43a Revert "usb: gadget: composite: fix OS descriptors w_value logic"
| * 7e696b9790 wifi: brcmfmac: release 'root' node in all execution paths
| * c386fb76f0 wifi: rtlwifi: Drastically reduce the attempts to read efuse in case of failures
| * fc1f391a71 driver core: bus: Fix double free in driver API bus_register()
| * d5a63a0bc8 usb: xhci: Fix TD invalidation under pending Set TR Dequeue
| * 9e07ab9ad3 Bluetooth: Fix type of len in rfcomm_sock_getsockopt{,_old}()
| * d84150aab3 exfat: fix uninit-value in __exfat_get_dentry_set
| * 20a9244a39 dt-bindings: iio: dac: ad3552r: fix maximum spi speed
| * 9a27ca3da0 pinctrl: qcom: spmi: fix debugfs drive strength
| * be063ffa28 locking/lockdep: Avoid creating new name string literals in lockdep_set_subclass()
| * 445faec21f tty: ldsic: fix tty_ldisc_autoload sysctl's proc_handler
| * 89265f8870 apparmor: test: Fix memory leak for aa_unpack_strdup()
| * 16c507df50 comedi: Flush partial mappings in error case
| * 65988ab857 fsnotify: fix sending inotify event with unexpected filename
| * 20502f0b3f PCI: Fix use-after-free of slot->bus on hot remove
| * 147c97ea83 KVM: arm64: Ignore PMCNTENSET_EL0 while checking for overflow status
| * 488d303696 KVM: arm64: vgic-v3: Sanitise guest writes to GICR_INVLPIR
| * b2256aa49e powerpc/pseries: Fix KVM guest detection for disabling hardlockup detector
| * b3286d64d9 KVM: x86/mmu: Skip the "try unsync" path iff the old SPTE was a leaf SPTE
| * 1d3d3513d4 crypto: x86/aegis128 - access 32-bit arguments as 32-bit
| * d54a6d066a perf/x86/intel/pt: Fix buffer full but size is 0 case
| * 687c5f18b0 ASoC: codecs: Fix atomicity violation in snd_soc_component_get_drvdata()
| * b10ab1fd2a ASoC: amd: yc: Add a quirk for microfone on Lenovo ThinkPad P14s Gen 5 21MES00B00
| * 9c356fc32a jfs: xattr: check invalid xattr size more strictly
| * e99f7c2c16 ext4: fix FS_IOC_GETFSMAP handling
| * a486ba40e2 ext4: supress data-race warnings in ext4_free_inodes_{count,set}()
| * 78e9af68a7 soc: qcom: socinfo: fix revision check in qcom_socinfo_probe()
| * f584f211c0 ASoC: Intel: sst: Fix used of uninitialized ctx to log an error
| * ed753a3bd9 dma: allow dma_get_cache_alignment() to be overridden by the arch code
| * 5e859e08be powerpc: move the ARCH_DMA_MINALIGN definition to asm/cache.h
| * 3d52b86bd5 mm/slab: decouple ARCH_KMALLOC_MINALIGN from ARCH_DMA_MINALIGN
| * 95a4d701e2 arm64: dts: mediatek: mt8195-cherry: Mark USB 3.0 on xhci1 as disabled
| * cdbef2d0e2 Revert "arm64: dts: mediatek: mt8195-cherry: Mark USB 3.0 on xhci1 as disabled"
| * 920a369a9f ALSA: usb-audio: Fix potential out-of-bound accesses for Extigy and Mbox devices
| * 75fa2d8b3c mlxsw: spectrum_acl_tcam: Fix NULL pointer dereference in error path
| * c81154a308 perf/x86/intel: Hide Topdown metrics events if the feature is not enumerated
| * 945559be6e btrfs: qgroup: fix qgroup prealloc rsv leak in subvolume operations
| * 224fd631c4 rcu-tasks: Fix access non-existent percpu rtpcp variable in rcu_tasks_need_gpcb()
| * db1d7e1794 drm/amd/display: Check phantom_stream before it is used
| * e8a2476789 drm/amd/display: Add NULL check for function pointer in dcn20_set_output_transfer_func
| * 0d94d9cbd9 drm/amd/display: Add NULL check for clk_mgr in dcn32_init_hw
| * 23cb613954 drm/amd/display: Add NULL check for clk_mgr and clk_mgr->funcs in dcn30_init_hw
| * cbc6fc9cfc wifi: iwlwifi: mvm: avoid NULL pointer dereference
| * 4c823e4027 media: aspeed: Fix memory overwrite if timing is 1600x900
| * 4a04ce0bc9 usb: ehci-spear: fix call balance of sehci clk handling routines
| * da13ade87a ALSA: usb-audio: Fix out of bounds reads when finding clock sources
| * 3fc0996d2f xen: Fix the issue of resource not being properly released in xenbus_dev_probe()
| * d1e3efe783 xfs: add bounds checking to xlog_recover_process_data
| * 5873aa7f81 scsi: lpfc: Validate hdwq pointers before dereferencing in reset/errata paths
| * 386613a44b ntfs3: Add bounds checking to mi_enum_attr()
| * e99faa9735 fs/ntfs3: Fixed overflow check in mi_enum_attr()
| * 1403991a40 mailbox: mtk-cmdq: Move devm_mbox_controller_register() after devm_pm_runtime_enable()
| * 2f3cee7f3e ASoC: amd: yc: Fix for enabling DMIC on acp6x via _DSD entry
| * 3ae27e61d1 apparmor: fix 'Do simple duplicate message elimination'
| * 5db93cdacf ALSA: hda/realtek: Update ALC256 depop procedure
| * 6adeb401fd counter: ti-ecap-capture: Add check for clk_enable()
| * cb479d737d counter: stm32-timer-cnt: Add check for clk_enable()
| * 367f7727ae misc: apds990x: Fix missing pm_runtime_disable()
| * de47d0f430 USB: chaoskey: Fix possible deadlock chaoskey_list_lock
| * 78e892874c USB: chaoskey: fail open after removal
| * cfb7f88ed3 usb: yurex: make waiting on yurex_write interruptible
| * 83aa97ef37 usb: using mutex lock and supporting O_NONBLOCK flag in iowarrior_read()
| * 2dc9845228 iio: light: al3010: Fix an error handling path in al3010_probe()
| * 7d338cee86 ipmr: fix tables suspicious RCU usage
| * 5e656d0565 ip6mr: fix tables suspicious RCU usage
| * 9a3c1ad93e tcp: Fix use-after-free of nreq in reqsk_timer_handler().
| * a7845361d5 rxrpc: Improve setsockopt() handling of malformed user input
| * 981d647c6f llc: Improve setsockopt() handling of malformed user input
| * f688979e42 crypto: api - Add crypto_clone_tfm
| * e470d423b0 crypto: api - Add crypto_tfm_get
| * cdfc818ffd Bluetooth: MGMT: Fix slab-use-after-free Read in set_powered_sync
| * be3fa6b041 bnxt_en: Reserve rings after PCIe AER recovery if NIC interface is down
| * 0d339e1258 net: hsr: fix hsr_init_sk() vs network/transport headers.
| * 1169cfe66a spi: atmel-quadspi: Fix register name in verbose logging function
| * 5b8520754f octeontx2-af: RPM: Fix mismatch in lmac type
| * 86fd76e6e8 net: stmmac: dwmac-socfpga: Set RX watchdog interrupt as broken
| * c93792cad8 marvell: pxa168_eth: fix call balance of pep->clk handling routines
| * 9a2c2ca00e net: mdio-ipq4019: add missing error check
| * ca97dd1042 net/ipv6: delete temporary address if mngtmpaddr is removed or unmanaged
| * 934326aef7 s390/iucv: MSG_PEEK causes memory leak in iucv_sock_destruct()
| * cd11087343 net: usb: lan78xx: Fix refcounting and autosuspend on invalid WoL configuration
| * ef71bab156 tg3: Set coherent DMA mask bits to 31 for BCM57766 chipsets
| * a217fc3958 net: usb: lan78xx: Fix memory leak on device unplug by freeing PHY device
| * 977128343f net: usb: lan78xx: Fix double free issue with interrupt buffer allocation
| * 42bc30da34 power: supply: bq27xxx: Fix registers of bq27426
| * dc7c33eec3 power: supply: core: Remove might_sleep() from power_supply_put()
| * 8382e92f90 LoongArch: BPF: Sign-extend return values
| * bcfb04e974 LoongArch: Fix build failure with GCC 15 (-std=gnu23)
| * 9db9e4d50b LoongArch: Tweak CFLAGS for Clang compatibility
| * df10201960 fs_parser: update mount_api doc to match function signature
| * 6c6502d944 vfio/pci: Properly hide first-in-list PCIe extended capability
| * ea3f18a680 selftests/mount_setattr: Fix failures on 64K PAGE_SIZE kernels
| * 7c8938844e vdpa/mlx5: Fix suboptimal range on iotlb iteration
| * bc4f7dde47 hwmon: (tps23861) Fix reporting of negative temperatures
| * 2ee368b447 NFSD: Fix nfsd4_shutdown_copy()
| * 94d2d6d398 svcrdma: fix miss destroy percpu_counter in svc_rdma_proc_init()
| * f143df272c sunrpc: simplify two-level sysctl registration for svcrdma_parm_table
| * 03b72929f7 NFSD: Cap the number of bytes copied by nfs4_reset_recoverydir()
| * 0c3b0e326f NFSD: Prevent NULL dereference in nfsd4_process_cb_update()
| * a1cc346cf7 remoteproc: qcom_q6v5_mss: Re-order writes to the IMEM region
| * a572eb5078 rpmsg: glink: use only lower 16-bits of param2 for CMD_OPEN name length
| * 1ad64de591 rpmsg: glink: Fix GLINK command prefix
| * 79327e3662 remoteproc: qcom: pas: add minidump_id to SM8350 resources
| * 4e115f31c3 remoteproc: qcom: q6v5: Use _clk_get_optional for aggre2_clk
| * 57ef7705a3 perf trace: Avoid garbage when not printing a syscall's arguments
| * 8b601e05c4 perf trace: Do not lose last events in a race
| * c1f8195bf6 svcrdma: Address an integer overflow
| * bab3e34276 m68k: coldfire/device.c: only build FEC when HW macros are defined
| * b3154c4320 m68k: mcfgpio: Fix incorrect register offset for CONFIG_M5441x
| * 6ac0ea38a8 perf trace: avoid garbage when not printing a trace event's arguments
| * e92bca0277 f2fs: fix to avoid forcing direct write to use buffered IO on inline_data inode
| * 07c0787286 f2fs: fix to avoid use GC_AT when setting gc_mode as GC_URGENT_LOW or GC_URGENT_MID
| * b4751fc0db f2fs: check curseg->inited before write_sum_page in change_curseg
| * 3d3926eec7 f2fs: remove the unused flush argument to change_curseg
| * f3ba45c176 f2fs: open code allocate_segment_by_default
| * 7d9b8b6ca9 f2fs: remove struct segment_allocation default_salloc_ops
| * 77f047d81c f2fs: fix the wrong f2fs_bug_on condition in f2fs_do_replace_block
| * afc63bbc9c perf ftrace latency: Fix unit on histogram first entry when using --use-nsec
| * 4e9d6942d1 PCI: cpqphp: Fix PCIBIOS_* return value confusion
| * 60f5d361ae PCI: cpqphp: Use PCI_POSSIBLE_ERROR() to check config reads
| * 928883efee perf probe: Correct demangled symbols in C++ program
| * 918b71d6f1 perf probe: Fix libdw memory leak
| * 6e58b29879 f2fs: fix to account dirty data in __get_secs_required()
| * b6e617c111 f2fs: compress: fix inconsistent update of i_blocks in release_compress_blocks and reserve_compress_blocks
| * 4d41eb5bfa perf stat: Fix affinity memory leaks on error path
| * d4b553cc5c perf stat: Close cork_fd when create_perf_stat_counter() failed
| * 931d07ccff PCI: Fix reset_method_store() memory leak
| * 4fe12d6bf7 perf cs-etm: Don't flush when packet_queue fills up
| * 04eef38c53 mailbox: arm_mhuv2: clean up loop in get_irq_chan_comb()
| * cd2a4e32aa smb: cached directories can be more than root file handle
| * 07fdc51604 pinctrl: k210: Undef K210_PC_DEFAULT
| * 08c494c198 clk: clk-axi-clkgen: make sure to enable the AXI bus clock
| * d9b1bd1e1e dt-bindings: clock: axi-clkgen: include AXI clk
| * 9a5905b725 clk: clk-apple-nco: Add NULL check in applnco_probe
| * 40f4326ed0 fbdev: sh7760fb: Fix a possible memory leak in sh7760fb_alloc_mem()
| * 30293309ef fbdev/sh7760fb: Alloc DMA memory from hardware device
| * 3d9f5e40ff powerpc/kexec: Fix return of uninitialized variable
| * 6ad49b3c53 powerpc/sstep: make emulate_vsx_load and emulate_vsx_store static
| * f99cc5112f KVM: PPC: Book3S HV: Avoid returning to nested hypervisor on pending doorbells
| * 6a6e47dc00 KVM: PPC: Book3S HV: Stop using vc->dpdes for nested KVM guests
| * ac2ec07ce6 dax: delete a stale directory pmem
| * 83f8713a0e ocfs2: fix uninitialized value in ocfs2_file_read_iter()
| * 678098cef6 cpufreq: CPPC: Fix wrong return value in cppc_get_cpu_power()
| * 8ef0b11af7 cpufreq: CPPC: Fix wrong return value in cppc_get_cpu_cost()
| * 52617e76f4 RDMA/hns: Fix NULL pointer derefernce in hns_roce_map_mr_sg()
| * 630c6b9116 RDMA/hns: Fix out-of-order issue of requester when setting FENCE
* | c80fef4574 Revert "sock_diag: add module pointer to "struct sock_diag_handler""
* | 6101867a91 Revert "sock_diag: allow concurrent operations"
* | 6e60bcaa85 Revert "sock_diag: allow concurrent operation in sock_diag_rcv_msg()"
* | 8702a01dbd Revert "net: use unrcu_pointer() helper"
* | 11afae5231 Revert "ipv6: release nexthop on device removal"
* | bbe27ab999 Merge b778b52404 ("scsi: qedi: Fix a possible memory leak in qedi_alloc_and_init_sb()") into android14-6.1-lts
|\|
| * b778b52404 scsi: qedi: Fix a possible memory leak in qedi_alloc_and_init_sb()
| * b514f45e0f scsi: qedf: Fix a possible memory leak in qedf_alloc_and_init_sb()
| * 31f29289c7 scsi: fusion: Remove unused variable 'rc'
| * 8f5a97443b scsi: bfa: Fix use-after-free in bfad_im_module_exit()
| * 41f80bdd52 fs/proc/kcore.c: fix coccinelle reported ERROR instances
| * 7d3b437385 mfd: rt5033: Fix missing regmap_del_irq_chip()
| * 23a2a5770d iommu/vt-d: Fix checks and print in pgtable_walk()
| * ef4a6cb5f2 iommu/vt-d: Fix checks and print in dmar_fault_dump_ptes()
| * 6786d623fb clk: imx: clk-scu: fix clk enable state save and restore
| * 882d94d746 clk: imx: fracn-gppll: fix pll power up
| * f7aee64ed7 clk: imx: fracn-gppll: correct PLL initialization flow
| * c92515247f clk: imx: lpcg-scu: SW workaround for errata (e10858)
| * 1b67ca853a clk: renesas: rzg2l: Fix FOUTPOSTDIV clk
| * 9bc7ccfbd3 clk: sunxi-ng: d1: Fix PLL_AUDIO0 preset
| * 4799f3f8fd RDMA/bnxt_re: Check cqe flags to know imm_data vs inv_irkey
| * 31c6fe9b79 RDMA/hns: Fix cpu stuck caused by printings during reset
| * 284a8650df RDMA/hns: Remove unnecessary QP type checks
| * 7519e81df8 RDMA/hns: Use dev_* printings in hem code instead of ibdev_*
| * 9f42b87d0f RDMA/hns: Add clear_hem return value to log
| * 503d957679 RDMA/hns: Fix an AEQE overflow error caused by untimely update of eq_db_ci
| * 1975b481f6 cpufreq: CPPC: Fix possible null-ptr-deref for cppc_get_cpu_cost()
| * a357b63fd2 cpufreq: CPPC: Fix possible null-ptr-deref for cpufreq_cpu_get_raw()
| * fa5b5ea257 powerpc/pseries: Fix dtl_access_lock to be a rw_semaphore
| * 4d2655754e powerpc/mm/fault: Fix kfence page fault reporting
| * 24cbc37e83 mtd: rawnand: atmel: Fix possible memory leak
| * 57d385c07f mtd: hyperbus: rpc-if: Add missing MODULE_DEVICE_TABLE
| * dff61d85bc mtd: hyperbus: rpc-if: Convert to platform remove callback returning void
| * a0222dbbf6 memory: renesas-rpc-if: Remove Runtime PM wrappers
| * f025336fd8 memory: renesas-rpc-if: Pass device instead of rpcif to rpcif_*()
| * f7ef1b97ce memory: renesas-rpc-if: Improve Runtime PM handling
| * aabef6301d powerpc/fadump: Move fadump_cma_init to setup_arch() after initmem_init()
| * 6ffdb03366 powerpc/fadump: Refactor and prepare fadump_cma_init for late init
| * dd6383dd6a cpufreq: loongson2: Unregister platform_driver on failure
| * 7ba45b8bc6 mfd: intel_soc_pmic_bxtwc: Use IRQ domain for PMIC devices
| * 56acf41577 mfd: intel_soc_pmic_bxtwc: Use IRQ domain for TMU device
| * c310e6916c mfd: intel_soc_pmic_bxtwc: Use IRQ domain for USB Type-C device
| * 50952a6ff5 mfd: da9052-spi: Change read-mask to write-mask
| * c929407918 mfd: tps65010: Use IRQF_NO_AUTOEN flag in request_irq() to fix race
| * ccfbcc7d55 powerpc/vdso: Flag VDSO64 entry points as functions
| * 3887bc73d4 pinctrl: zynqmp: drop excess struct member description
| * cc344fdd0e trace/trace_event_perf: remove duplicate samples on the first tracepoint event
| * 4387cef540 unicode: Fix utf8_load() error path
| * 386efa339e bpf: fix recursive lock when verdict program return SK_PASS
| * a628d40d28 wireguard: selftests: load nf_conntrack if not present
| * 7cd5b42796 netpoll: Use rcu_access_pointer() in netpoll_poll_lock
| * 0f67ca2a80 Bluetooth: fix use-after-free in device_for_each_child()
| * ea8cc56db6 ALSA: 6fire: Release resources at card release
| * 237f3faf01 ALSA: caiaq: Use snd_card_free_when_closed() at disconnection
| * bc778ad3e4 ALSA: us122l: Use snd_card_free_when_closed() at disconnection
| * 7bd8838c0e ALSA: usx2y: Use snd_card_free_when_closed() at disconnection
| * f61b836ce9 net: rfkill: gpio: Add check for clk_enable()
| * c01c0b270d drm/amdkfd: Fix wrong usage of INIT_WORK()
| * e636d87d12 selftests: net: really check for bg process completion
| * b2f26a27ea ipv6: release nexthop on device removal
| * ad3c88eb3c net: use unrcu_pointer() helper
| * adf8650938 sock_diag: allow concurrent operation in sock_diag_rcv_msg()
| * 916551244a sock_diag: allow concurrent operations
| * 9c116890ae sock_diag: add module pointer to "struct sock_diag_handler"
| * 9610b69033 bpf, sockmap: Fix sk_msg_reset_curr
| * f58d3aa457 bpf, sockmap: Several fixes to bpf_msg_pop_data
| * cadfa4d23f bpf, sockmap: Several fixes to bpf_msg_push_data
| * 9f5d3dd142 selftests/bpf: Add push/pop checking for msg_verify_data in test_sockmap
| * 4a9eebcee4 selftests/bpf: Fix total_bytes in msg_loop_rx in test_sockmap
| * 0bff469c83 selftests/bpf: Fix SENDPAGE data logic in test_sockmap
| * a479d22242 selftests/bpf: Add txmsg_pass to pull/push/pop in test_sockmap
| * f500518cc8 netlink: typographical error in nlmsg_type constants definition
| * 9c49d37707 netfilter: nf_tables: must hold rcu read lock while iterating object type list
| * 7703551d0b netfilter: nf_tables: skip transaction if update object is not implemented
| * 7f6f583be3 drm/msm/dpu: cast crtc_clk calculation to u64 in _dpu_core_perf_calc_clk()
| * 27591e2e91 wifi: wfx: Fix error handling in wfx_core_init()
| * 5a8c948d3a drm/etnaviv: hold GPU lock across perfmon sampling
| * f8cae8a21b drm/etnaviv: fix power register offset on GC300
| * ab96894ade drm/etnaviv: Request pages from DMA32 zone on addressing_limited
| * 1867879b7a drm/msm/gpu: Check the status of registration to PM QoS
| * 372f00e22e drm/msm/gpu: Bypass PM QoS constraint for idle clamp
| * 5d187dcbaa drm/msm/gpu: Add devfreq tuning debugfs
| * 8e57e58ecf drm/msm/adreno: Use IRQF_NO_AUTOEN flag in request_irq()
| * 9e63fd47e6 bpf, arm64: Remove garbage frame for struct_ops trampoline
| * 8f544cfc96 drm/panfrost: Remove unused id_mask from struct panfrost_model
| * b94052830e octeontx2-pf: handle otx2_mbox_get_rsp errors in otx2_dcbnl.c
| * 1611b1ea7c octeontx2-pf: handle otx2_mbox_get_rsp errors in otx2_dmac_flt.c
| * 856ad633e1 octeontx2-pf: handle otx2_mbox_get_rsp errors in cn10k.c
| * 8c9f8b35dc octeontx2-pf: handle otx2_mbox_get_rsp errors in otx2_flows.c
| * 05a6ce174c octeontx2-pf: handle otx2_mbox_get_rsp errors in otx2_ethtool.c
| * 9265b6ee75 octeontx2-pf: handle otx2_mbox_get_rsp errors in otx2_common.c
| * 2bea5fa601 drm: fsl-dcu: enable PIXCLK on LS1021A
| * b466746cfb wifi: mwifiex: Fix memcpy() field-spanning write warning in mwifiex_config_scan()
| * 861cebee26 selftests/bpf: Fix txmsg_redir of test_txmsg_pull in test_sockmap
| * a315b5b672 selftests/bpf: Fix msg_verify_data in test_sockmap
| * df3554b221 drm/bridge: tc358767: Fix link properties discovery
| * b3a9001123 netdevsim: copy addresses for both in and out paths
| * 241aef4f88 libbpf: never interpret subprogs in .text as entry programs
| * da508bb398 libbpf: fix sym_is_subprog() logic for weak global subprogs
| * b15f3d26c4 selftests/bpf: add missing header include for htons
| * 2eda63873b selftests/bpf: Fix backtrace printing for selftests crashes
| * 6a75c14af6 selftests/bpf: Add csum helpers
| * 79c83dc3c8 bpf: Fix the xdp_adjust_tail sample prog issue
| * d0307b1aa0 libbpf: Fix output .symtab byte-order during linking
| * 1f3288f2bd drm/bridge: anx7625: Drop EDID cache on bridge power off
| * ea6a2cc95e ASoC: dt-bindings: mt6359: Update generic node name and dmic-mode
| * 5e6df74efc ASoC: fsl_micfil: fix regmap_write_bits usage
| * 54ea2e51bb dt-bindings: vendor-prefixes: Add NeoFidelity, Inc
| * ade744bf81 wifi: ath10k: fix invalid VHT parameters in supported_vht_mcs_rate_nss2
| * 266f9d3b7c wifi: ath10k: fix invalid VHT parameters in supported_vht_mcs_rate_nss1
| * 1ec51f8404 drm/v3d: Address race-condition in MMU flush
| * 372e43bdc7 drm/imx/ipuv3: Use IRQF_NO_AUTOEN flag in request_irq()
| * e6f8ec9cdb drm/imx/dcss: Use IRQF_NO_AUTOEN flag in request_irq()
| * 53cbeffdd7 wifi: mwifiex: Use IRQF_NO_AUTOEN flag in request_irq()
| * 3496512fe8 wifi: p54: Use IRQF_NO_AUTOEN flag in request_irq()
| * fa4a24f5b3 drm/omap: Fix locking in omap_gem_new_dmabuf()
| * 6534234a5f drm/omap: Fix possible NULL dereference
| * 70eae50d21 wifi: ath9k: add range check for conn_rsp_epid in htc_connect_service()
| * cd53f82a1d drm/vc4: hvs: Correct logic on stopping an HVS channel
| * 151bec2fd0 drm/vc4: hvs: Remove incorrect limit from hvs_dlist debugfs function
| * 253ccf145b drm/vc4: hvs: Fix dlist debug not resetting the next entry pointer
| * 0ea29bd7d9 drm/vc4: hdmi: Avoid hang with debug registers when suspended
| * a5aeb962e4 drm/vc4: hvs: Don't write gamma luts on 2711
| * 1e9265b252 drm/mm: Mark drm_mm_interval_tree*() functions with __maybe_unused
* | 9a8c28486f UPSTREAM: ASoC: Intel: sst: Fix used of uninitialized ctx to log an error
* | 9c7193f1e7 Merge 2c1e2dbb72 ("platform/x86: panasonic-laptop: Return errno correctly in show callback") into android14-6.1-lts
|/
* 2c1e2dbb72 platform/x86: panasonic-laptop: Return errno correctly in show callback
* 02a97d9d7f media: atomisp: Add check for rgby_data memory allocation failure
* 18028c437e media: venus: provide ctx queue lock for ioctl synchronization
* 23f63457f0 venus: venc: add handling for VIDIOC_ENCODER_CMD
* 06258e57fe firmware: arm_scpi: Check the DVFS OPP count returned by the firmware
* 07121977cc selftests/resctrl: Protect against array overrun during iMC config parsing
* a5e0980fcd arm64: dts: mediatek: mt8183-kukui-jacuzzi: Add supplies for fixed regulators
* 6441c359d8 arm64: dts: mediatek: mt8183-kukui-jacuzzi: Fix DP bridge supply names
* 21030e4c7f arm64: dts: mt8183: jacuzzi: Move panel under aux-bus
* 46cb2dc1b0 regmap: irq: Set lockdep class for hierarchical IRQ domains
* 321e4f9466 spi: zynqmp-gqspi: Undo runtime PM changes at driver exit time​
* 4c61c30203 spi: tegra210-quad: Avoid shift-out-of-bounds
* aecbbaf2c0 pmdomain: ti-sci: Add missing of_node_put() for args.np
* 5a2f0e663c ARM: dts: cubieboard4: Fix DCDC5 regulator constraints
* 1649f1224b pwm: imx27: Workaround of the pwm output bug when decrease the duty cycle
* 195b1a022c arm64: dts: mt8183: Damu: add i2c2's i2c-scl-internal-delay-ns
* 1340d82aa0 arm64: dts: mt8183: cozmo: add i2c2's i2c-scl-internal-delay-ns
* da7b2b7be2 arm64: dts: mt8183: burnet: add i2c2's i2c-scl-internal-delay-ns
* 449aa993c4 arm64: dts: mt8183: fennel: add i2c2's i2c-scl-internal-delay-ns
* 8c222df370 cgroup/bpf: only cgroup v2 can be attached by bpf programs
* c4e5e64d28 Revert "cgroup: Fix memory leak caused by missing cgroup_bpf_offline"
* 34772c3f1a arm64: dts: mediatek: mt8173-elm-hana: Add vdd-supply to second source trackpad
* fe6370363d arm64: dts: mt8183: kukui: Fix the address of eeprom at i2c4
* 98d36e06c5 arm64: dts: mt8183: krane: Fix the address of eeprom at i2c4
* 2b71026220 tpm: fix signed/unsigned bug when checking event logs
* 16c888161c mmc: mmc_spi: drop buggy snprintf()
* b0a9c6ccaf soc: qcom: geni-se: fix array underflow in geni_se_clk_tbl_get()
* f177f3c116 soc: ti: smartreflex: Use IRQF_NO_AUTOEN flag in request_irq()
* 2c39349952 arm64: dts: mt8195: Fix dtbs_check error for infracfg_ao node
* 7a3e9bf08c microblaze: Export xmb_manager functions
* 272168927f drivers: soc: xilinx: add the missing kfree in xlnx_add_cb_for_suspend()
* 3d89ff55ff spi: spi-fsl-lpspi: Use IRQF_NO_AUTOEN flag in request_irq()
* 99b60d5a73 spi: spi-fsl-lpspi: downgrade log level for pio mode
* 713e85376b clocksource/drivers/timer-ti-dm: Fix child node refcount handling
* b5b6e8a1ba clocksource/drivers:sp804: Make user selectable
* 19770c1c0e kcsan, seqlock: Fix incorrect assumption in read_seqbegin()
* 5c0d57df48 kcsan, seqlock: Support seqcount_latch_t
* fb83772959 seqlock/latch: Provide raw_read_seqcount_latch_retry()
* 2b96f1d03a time: Fix references to _msecs_to_jiffies() handling of values
* bc50e498e3 thermal/lib: Fix memory leak on error in thermal_genl_auto()
* ad9210452a tools/lib/thermal: Make more generic the command encoding function
* 9d0c18d84a crypto: cavium - Fix an error handling path in cpt_ucode_load_fw()
* 05f0a3f547 crypto: bcm - add error check in the ahash_hmac_init function
* e951b29237 crypto: caam - add error check to caam_rsa_set_priv_key_form
* 4771ad8c70 ACPI: CPPC: Fix _CPC register setting issue
* ae703f8ff0 hwmon: (nct6775-core) Fix overflows seen when writing limit attributes
* a9666f4895 doc: rcu: update printed dynticks counter bits
* 04dcf1ce3b crypto: inside-secure - Fix the return value of safexcel_xcbcmac_cra_init()
* 2a80e710bb EDAC/igen6: Avoid segmentation fault on module unload
* 67c3ca63d4 crypto: hisilicon/qm - disable same error report before resetting
* ea88b83f5e crypto: cavium - Fix the if condition to exit loop after timeout
* 92834692a5 crypto: pcrypt - Call crypto layer directly when padata_do_parallel() return -EBUSY
* 2ad60df36f EDAC/fsl_ddr: Fix bad bit shift operations
* f17f863256 thermal: core: Initialize thermal zones before registering them
* 8aaa74fd4a crypto: qat - remove faulty arbiter config reset
* 578ca89b04 EDAC/bluefield: Fix potential integer overflow
* c5fbc57cec firmware: google: Unregister driver_info on failure
* 66eddb8dcb crypto: caam - Fix the pointer passed to caam_qi_shutdown()
* 58998a4595 virtio_blk: reverse request order in virtio_queue_rqs
* 995457cd2a nvme-pci: reverse request order in nvme_queue_rqs
* 3d7bda75e1 hfsplus: don't query the device logical block size multiple times
* b1a52470f1 s390/syscalls: Avoid creation of arch/arch/ directory
* 2cd22baf74 block: fix bio_split_rw_at to take zone_write_granularity into account
* ddab02607e netfs/fscache: Add a memory barrier for FSCACHE_VOLUME_CREATING
* 679d7276d4 cachefiles: Fix missing pos updates in cachefiles_ondemand_fd_write_iter()
* c68110dee0 acpi/arm64: Adjust error handling procedure in gtdt_parse_timer_block()
* bae56996ff arm64: fix .data.rel.ro size assertion when CONFIG_LTO_CLANG
* a8627dde40 m68k: mvme147: Reinstate early console
* 797cb79af1 m68k: mvme16x: Add and use "mvme16x.h"
* 9cd327b45c m68k: mvme147: Fix SCSI controller IRQ numbers
* fb96d5cfa9 nvme-pci: fix freeing of the HMB descriptor table
* f892ddcf9f initramfs: avoid filename buffer overrun
* 7961d460ec mips: asm: fix warning when disabling MIPS_FP_SUPPORT
* dfc2eb2901 ext4: avoid remount errors with 'abort' mount option
* a8dad6db0e ext4: make 'abort' mount option handling standard
* 259bf92558 brd: defer automatic disk creation until module initialization succeeds
* 2185802447 s390/cio: Do not unregister the subchannel based on DNV
* 64a56ca76b kselftest/arm64: mte: fix printf type warnings about longs
* 59f99fa254 kselftest/arm64: mte: fix printf type warnings about __u64
* cefad6b772 x86/barrier: Do not serialize MSR accesses on AMD
* 1a4159138e fs/inode: Prevent dump_mapping() accessing invalid dentry.d_name.name
* 9be768f08b drm/amd/display: Initialize denominators' default to 1
* b04650b5a9 wifi: rtw89: avoid to add interface to list twice when SER
* aeb1293a78 mptcp: fix possible integer overflow in mptcp_reset_tout_timer
* 2a9c40c720 fbdev: efifb: Register sysfs groups through driver core
* 19b40ca626 Bluetooth: MGMT: Fix possible crash on mgmt_index_removed
* f00f36db76 Bluetooth: hci_sync: Add helper functions to manipulate cmd_sync queue
* 26d262b79a drm/amd/display: Check null-initialized variables
* e087c9738e drm/amd/display: Add NULL check for function pointer in dcn32_set_output_transfer_func
* 304f8032d6 fpga: manager: add owner module and take its refcount
* 18dc8366ab fpga: bridge: add owner module and take its refcount
* ec79e6170b cifs: Fix buffer overflow when parsing NFS reparse points
* cc6a3f35bc serial: sc16is7xx: fix invalid FIFO access with special register set
* e9365368b4 net: fix crash when config small gso_max_size/gso_ipv4_max_size
* c894a74756 closures: Change BUG_ON() to WARN_ON()
* 889ec2e427 ipmr: Fix access to mfc_cache_list without lock held
* f57b5752f5 ARM: 9420/1: smp: Fix SMP for xip kernels
* 61e43f619e ALSA: usb-audio: Fix Yamaha P-125 Quirk Entry
* cbd1ed34c8 LoongArch: Define a default value for VM_DATA_DEFAULT_FLAGS
* 6125482489 ASoC: audio-graph-card2: Purge absent supplies for device tree nodes
* 747ad49dd8 proc/softirqs: replace seq_printf with seq_put_decimal_ull_width
* cddb339587 drm: panel-orientation-quirks: Make Lenovo Yoga Tab 3 X90F DMI match less strict
* dccfd9a4df ASoC: stm: Prevent potential division by zero in stm32_sai_get_clk_div()
* 5d1838582d ASoC: stm: Prevent potential division by zero in stm32_sai_mclk_round_rate()
* 4a7911bdcc ASoC: amd: yc: Support dmic on another model of Lenovo Thinkpad E14 Gen 6
* 78d10f2b0d platform/x86: thinkpad_acpi: Fix for ThinkPad's with ECFW showing incorrect fan speed
* 9529e0e599 can: j1939: fix error in J1939 documentation.
* af010abad5 tools/lib/thermal: Remove the thermal.h soft link when doing make clean
* 2d7d478d39 platform/x86: dell-wmi-base: Handle META key Lock/Unlock events
* ad5112e48c platform/x86: dell-smbios-base: Extends support to Alienware products
* e920aa8d2c regulator: rk808: Add apply_bit for BUCK3 on RK809
* 6f785b89a9 soc: qcom: Add check devm_kasprintf() returned value
* dc9a5182d3 net: usb: qmi_wwan: add Quectel RG650V
* 79b09458eb bpf: fix filed access without lock
* 665edd4bc0 x86/amd_nb: Fix compile-testing without CONFIG_AMD_NB
* 2c4188b883 ALSA: hda/realtek: Add subwoofer quirk for Infinix ZERO BOOK 13
* c1d17ef00f selftests/watchdog-test: Fix system accidentally reset after watchdog-test
* f263bd1170 usb: add support for new USB device ID 0x17EF:0x3098 for the r8152 driver
* 57fd15bdc0 mac80211: fix user-power when emulating chanctx
* 916eaa5814 wifi: iwlwifi: mvm: Use the sync timepoint API in suspend
* d4c5d4f4c9 ASoC: Intel: sst: Support LPE0F28 ACPI HID
* bd3700860b ASoC: Intel: bytcr_rt5640: Add DMI quirk for Vexia Edu Atla 10 tablet
* eade0698b8 ASoC: Intel: bytcr_rt5640: Add support for non ACPI instantiated codec

Change-Id: If87954814262ab17836032ba37f1ec7b21512ea3
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman
2025-01-27 09:08:09 +00:00
798 changed files with 8047 additions and 3773 deletions

View File

@@ -163,6 +163,17 @@ Description:
will be present in sysfs. Writing 1 to this file
will perform reset.
What: /sys/bus/pci/devices/.../reset_subordinate
Date: October 2024
Contact: linux-pci@vger.kernel.org
Description:
This is visible only for bridge devices. If you want to reset
all devices attached through the subordinate bus of a specific
bridge device, writing 1 to this will try to do it. This will
affect all devices attached to the system through this bridge
similiar to writing 1 to their individual "reset" file, so use
with caution.
What: /sys/bus/pci/devices/.../vpd
Date: February 2008
Contact: Ben Hutchings <bwh@kernel.org>

View File

@@ -311,10 +311,13 @@ Description: Do background GC aggressively when set. Set to 0 by default.
GC approach and turns SSR mode on.
gc urgent low(2): lowers the bar of checking I/O idling in
order to process outstanding discard commands and GC a
little bit aggressively. uses cost benefit GC approach.
little bit aggressively. always uses cost benefit GC approach,
and will override age-threshold GC approach if ATGC is enabled
at the same time.
gc urgent mid(3): does GC forcibly in a period of given
gc_urgent_sleep_time and executes a mid level of I/O idling check.
uses cost benefit GC approach.
always uses cost benefit GC approach, and will override
age-threshold GC approach if ATGC is enabled at the same time.
What: /sys/fs/f2fs/<disk>/gc_urgent_sleep_time
Date: August 2017

View File

@@ -243,7 +243,7 @@ ticks this GP)" indicates that this CPU has not taken any scheduling-clock
interrupts during the current stalled grace period.
The "idle=" portion of the message prints the dyntick-idle state.
The hex number before the first "/" is the low-order 12 bits of the
The hex number before the first "/" is the low-order 16 bits of the
dynticks counter, which will have an even-numbered value if the CPU
is in dyntick-idle mode and an odd-numbered value otherwise. The hex
number between the two "/"s is the value of the nesting, which will be

View File

@@ -26,9 +26,21 @@ properties:
description:
Specifies the reference clock(s) from which the output frequency is
derived. This must either reference one clock if only the first clock
input is connected or two if both clock inputs are connected.
minItems: 1
maxItems: 2
input is connected or two if both clock inputs are connected. The last
clock is the AXI bus clock that needs to be enabled so we can access the
core registers.
minItems: 2
maxItems: 3
clock-names:
oneOf:
- items:
- const: clkin1
- const: s_axi_aclk
- items:
- const: clkin1
- const: clkin2
- const: s_axi_aclk
'#clock-cells':
const: 0
@@ -40,6 +52,7 @@ required:
- compatible
- reg
- clocks
- clock-names
- '#clock-cells'
additionalProperties: false
@@ -50,5 +63,6 @@ examples:
compatible = "adi,axi-clkgen-2.00.a";
#clock-cells = <0>;
reg = <0xff000000 0x1000>;
clocks = <&osc 1>;
clocks = <&osc 1>, <&clkc 15>;
clock-names = "clkin1", "s_axi_aclk";
};

View File

@@ -26,7 +26,7 @@ properties:
maxItems: 1
spi-max-frequency:
maximum: 30000000
maximum: 66000000
reset-gpios:
maxItems: 1

View File

@@ -18,16 +18,15 @@ properties:
description: prop-encoded-array <a b>
$ref: /schemas/types.yaml#/definitions/uint32-array
items:
items:
- description: Delay between rts signal and beginning of data sent in
milliseconds. It corresponds to the delay before sending data.
default: 0
maximum: 100
- description: Delay between end of data sent and rts signal in milliseconds.
It corresponds to the delay after sending data and actual release
of the line.
default: 0
maximum: 100
- description: Delay between rts signal and beginning of data sent in
milliseconds. It corresponds to the delay before sending data.
default: 0
maximum: 100
- description: Delay between end of data sent and rts signal in milliseconds.
It corresponds to the delay after sending data and actual release
of the line.
default: 0
maximum: 100
rs485-rts-active-low:
description: drive RTS low when sending (default is high).

View File

@@ -23,8 +23,8 @@ properties:
Indicates how many data pins are used to transmit two channels of PDM
signal. 0 means two wires, 1 means one wire. Default value is 0.
enum:
- 0 # one wire
- 1 # two wires
- 0 # two wires
- 1 # one wire
mediatek,mic-type-0:
$ref: /schemas/types.yaml#/definitions/uint32
@@ -53,9 +53,9 @@ additionalProperties: false
examples:
- |
mt6359codec: mt6359codec {
mediatek,dmic-mode = <0>;
mediatek,mic-type-0 = <2>;
mt6359codec: audio-codec {
mediatek,dmic-mode = <0>;
mediatek,mic-type-0 = <2>;
};
...

View File

@@ -869,6 +869,8 @@ patternProperties:
description: National Semiconductor
"^nec,.*":
description: NEC LCD Technologies, Ltd.
"^neofidelity,.*":
description: Neofidelity Inc.
"^neonode,.*":
description: Neonode Inc.
"^netgear,.*":

View File

@@ -6,9 +6,12 @@ API to implement a new FPGA bridge
* struct fpga_bridge - The FPGA Bridge structure
* struct fpga_bridge_ops - Low level Bridge driver ops
* fpga_bridge_register() - Create and register a bridge
* __fpga_bridge_register() - Create and register a bridge
* fpga_bridge_unregister() - Unregister a bridge
The helper macro ``fpga_bridge_register()`` automatically sets
the module that registers the FPGA bridge as the owner.
.. kernel-doc:: include/linux/fpga/fpga-bridge.h
:functions: fpga_bridge
@@ -16,7 +19,7 @@ API to implement a new FPGA bridge
:functions: fpga_bridge_ops
.. kernel-doc:: drivers/fpga/fpga-bridge.c
:functions: fpga_bridge_register
:functions: __fpga_bridge_register
.. kernel-doc:: drivers/fpga/fpga-bridge.c
:functions: fpga_bridge_unregister

View File

@@ -24,7 +24,8 @@ How to support a new FPGA device
--------------------------------
To add another FPGA manager, write a driver that implements a set of ops. The
probe function calls fpga_mgr_register() or fpga_mgr_register_full(), such as::
probe function calls ``fpga_mgr_register()`` or ``fpga_mgr_register_full()``,
such as::
static const struct fpga_manager_ops socfpga_fpga_ops = {
.write_init = socfpga_fpga_ops_configure_init,
@@ -69,10 +70,11 @@ probe function calls fpga_mgr_register() or fpga_mgr_register_full(), such as::
}
Alternatively, the probe function could call one of the resource managed
register functions, devm_fpga_mgr_register() or devm_fpga_mgr_register_full().
When these functions are used, the parameter syntax is the same, but the call
to fpga_mgr_unregister() should be removed. In the above example, the
socfpga_fpga_remove() function would not be required.
register functions, ``devm_fpga_mgr_register()`` or
``devm_fpga_mgr_register_full()``. When these functions are used, the
parameter syntax is the same, but the call to ``fpga_mgr_unregister()`` should be
removed. In the above example, the ``socfpga_fpga_remove()`` function would not be
required.
The ops will implement whatever device specific register writes are needed to
do the programming sequence for this particular FPGA. These ops return 0 for
@@ -125,15 +127,19 @@ API for implementing a new FPGA Manager driver
* struct fpga_manager - the FPGA manager struct
* struct fpga_manager_ops - Low level FPGA manager driver ops
* struct fpga_manager_info - Parameter structure for fpga_mgr_register_full()
* fpga_mgr_register_full() - Create and register an FPGA manager using the
* __fpga_mgr_register_full() - Create and register an FPGA manager using the
fpga_mgr_info structure to provide the full flexibility of options
* fpga_mgr_register() - Create and register an FPGA manager using standard
* __fpga_mgr_register() - Create and register an FPGA manager using standard
arguments
* devm_fpga_mgr_register_full() - Resource managed version of
fpga_mgr_register_full()
* devm_fpga_mgr_register() - Resource managed version of fpga_mgr_register()
* __devm_fpga_mgr_register_full() - Resource managed version of
__fpga_mgr_register_full()
* __devm_fpga_mgr_register() - Resource managed version of __fpga_mgr_register()
* fpga_mgr_unregister() - Unregister an FPGA manager
Helper macros ``fpga_mgr_register_full()``, ``fpga_mgr_register()``,
``devm_fpga_mgr_register_full()``, and ``devm_fpga_mgr_register()`` are available
to ease the registration.
.. kernel-doc:: include/linux/fpga/fpga-mgr.h
:functions: fpga_mgr_states
@@ -147,16 +153,16 @@ API for implementing a new FPGA Manager driver
:functions: fpga_manager_info
.. kernel-doc:: drivers/fpga/fpga-mgr.c
:functions: fpga_mgr_register_full
:functions: __fpga_mgr_register_full
.. kernel-doc:: drivers/fpga/fpga-mgr.c
:functions: fpga_mgr_register
:functions: __fpga_mgr_register
.. kernel-doc:: drivers/fpga/fpga-mgr.c
:functions: devm_fpga_mgr_register_full
:functions: __devm_fpga_mgr_register_full
.. kernel-doc:: drivers/fpga/fpga-mgr.c
:functions: devm_fpga_mgr_register
:functions: __devm_fpga_mgr_register
.. kernel-doc:: drivers/fpga/fpga-mgr.c
:functions: fpga_mgr_unregister

View File

@@ -778,7 +778,8 @@ process the parameters it is given.
* ::
bool fs_validate_description(const struct fs_parameter_description *desc);
bool fs_validate_description(const char *name,
const struct fs_parameter_description *desc);
This performs some validation checks on a parameter description. It
returns true if the description is good and false if it is not. It will

View File

@@ -153,7 +153,7 @@ Use seqcount_latch_t when the write side sections cannot be protected
from interruption by readers. This is typically the case when the read
side can be invoked from NMI handlers.
Check `raw_write_seqcount_latch()` for more information.
Check `write_seqcount_latch()` for more information.
.. _seqlock_t:

View File

@@ -121,7 +121,7 @@ format, the Group Extension is set in the PS-field.
On the other hand, when using PDU1 format, the PS-field contains a so-called
Destination Address, which is _not_ part of the PGN. When communicating a PGN
from user space to kernel (or vice versa) and PDU2 format is used, the PS-field
from user space to kernel (or vice versa) and PDU1 format is used, the PS-field
of the PGN shall be set to zero. The Destination Address shall be set
elsewhere.

View File

@@ -347,7 +347,9 @@ drivers/base/power/runtime.c and include/linux/pm_runtime.h:
`int pm_runtime_resume_and_get(struct device *dev);`
- run pm_runtime_resume(dev) and if successful, increment the device's
usage counter; return the result of pm_runtime_resume
usage counter; returns 0 on success (whether or not the device's
runtime PM status was already 'active') or the error code from
pm_runtime_resume() on failure.
`int pm_request_idle(struct device *dev);`
- submit a request to execute the subsystem-level idle callback for the

View File

@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 6
PATCHLEVEL = 1
SUBLEVEL = 119
SUBLEVEL = 121
EXTRAVERSION =
NAME = Curry Ramen

View File

@@ -473,6 +473,7 @@
usb_create_shared_hcd
usb_deregister
usb_disabled
usb_find_common_endpoints
usb_free_urb
usb_get_dev
usb_hcd_check_unlink_urb

View File

@@ -280,8 +280,8 @@
reg_dcdc5: dcdc5 {
regulator-always-on;
regulator-min-microvolt = <1425000>;
regulator-max-microvolt = <1575000>;
regulator-min-microvolt = <1450000>;
regulator-max-microvolt = <1550000>;
regulator-name = "vcc-dram";
};

View File

@@ -25,6 +25,7 @@
#include <asm/tls.h>
#include <asm/system_info.h>
#include <asm/uaccess-asm.h>
#include <asm/kasan_def.h>
#include "entry-header.S"
#include <asm/probes.h>
@@ -787,6 +788,13 @@ ENTRY(__switch_to)
@ entries covering the vmalloc region.
@
ldr r2, [ip]
#ifdef CONFIG_KASAN_VMALLOC
@ Also dummy read from the KASAN shadow memory for the new stack if we
@ are using KASAN
mov_l r2, KASAN_SHADOW_OFFSET
add r2, r2, ip, lsr #KASAN_SHADOW_SCALE_SHIFT
ldr r2, [r2]
#endif
#endif
@ When CONFIG_THREAD_INFO_IN_TASK=n, the update of SP itself is what

View File

@@ -411,7 +411,11 @@ ENTRY(secondary_startup)
/*
* Use the page tables supplied from __cpu_up.
*/
#ifdef CONFIG_XIP_KERNEL
ldr r3, =(secondary_data + PLAT_PHYS_OFFSET - PAGE_OFFSET)
#else
adr_l r3, secondary_data
#endif
mov_l r12, __secondary_switched
ldrd r4, r5, [r3, #0] @ get secondary_data.pgdir
ARM_BE8(eor r4, r4, r5) @ Swap r5 and r4 in BE:

View File

@@ -45,8 +45,15 @@ extern void secondary_startup(void);
static int psci_boot_secondary(unsigned int cpu, struct task_struct *idle)
{
if (psci_ops.cpu_on)
#ifdef CONFIG_XIP_KERNEL
return psci_ops.cpu_on(cpu_logical_map(cpu),
((phys_addr_t)(&secondary_startup)
- XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR)
+ CONFIG_XIP_PHYS_ADDR));
#else
return psci_ops.cpu_on(cpu_logical_map(cpu),
virt_to_idmap(&secondary_startup));
#endif
return -ENODEV;
}

View File

@@ -84,8 +84,15 @@ static void identity_mapping_add(pgd_t *pgd, const char *text_start,
unsigned long addr, end;
unsigned long next;
#ifdef CONFIG_XIP_KERNEL
addr = (phys_addr_t)(text_start) - XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR)
+ CONFIG_XIP_PHYS_ADDR;
end = (phys_addr_t)(text_end) - XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR)
+ CONFIG_XIP_PHYS_ADDR;
#else
addr = virt_to_idmap(text_start);
end = virt_to_idmap(text_end);
#endif
pr_info("Setting up static identity map for 0x%lx - 0x%lx\n", addr, end);
prot |= PMD_TYPE_SECT | PMD_SECT_AP_WRITE | PMD_SECT_AF;

View File

@@ -23,6 +23,7 @@
*/
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/kasan.h>
#include <linux/mm.h>
#include <linux/vmalloc.h>
#include <linux/io.h>
@@ -115,16 +116,40 @@ int ioremap_page(unsigned long virt, unsigned long phys,
}
EXPORT_SYMBOL(ioremap_page);
#ifdef CONFIG_KASAN
static unsigned long arm_kasan_mem_to_shadow(unsigned long addr)
{
return (unsigned long)kasan_mem_to_shadow((void *)addr);
}
#else
static unsigned long arm_kasan_mem_to_shadow(unsigned long addr)
{
return 0;
}
#endif
static void memcpy_pgd(struct mm_struct *mm, unsigned long start,
unsigned long end)
{
end = ALIGN(end, PGDIR_SIZE);
memcpy(pgd_offset(mm, start), pgd_offset_k(start),
sizeof(pgd_t) * (pgd_index(end) - pgd_index(start)));
}
void __check_vmalloc_seq(struct mm_struct *mm)
{
int seq;
do {
seq = atomic_read(&init_mm.context.vmalloc_seq);
memcpy(pgd_offset(mm, VMALLOC_START),
pgd_offset_k(VMALLOC_START),
sizeof(pgd_t) * (pgd_index(VMALLOC_END) -
pgd_index(VMALLOC_START)));
seq = atomic_read_acquire(&init_mm.context.vmalloc_seq);
memcpy_pgd(mm, VMALLOC_START, VMALLOC_END);
if (IS_ENABLED(CONFIG_KASAN_VMALLOC)) {
unsigned long start =
arm_kasan_mem_to_shadow(VMALLOC_START);
unsigned long end =
arm_kasan_mem_to_shadow(VMALLOC_END);
memcpy_pgd(mm, start, end);
}
/*
* Use a store-release so that other CPUs that observe the
* counter's new value are guaranteed to see the results of the

View File

@@ -202,6 +202,9 @@
interrupts = <7 5 IRQ_TYPE_EDGE_RISING>; /* PH5 */
vdd-supply = <&reg_dldo1>;
vddio-supply = <&reg_dldo1>;
mount-matrix = "0", "1", "0",
"-1", "0", "0",
"0", "0", "1";
};
};

View File

@@ -141,7 +141,7 @@
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <3300000>;
regulator-name = "+V3.3_SD";
startup-delay-us = <2000>;
startup-delay-us = <20000>;
};
reserved-memory {

View File

@@ -133,7 +133,7 @@
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <3300000>;
regulator-name = "+V3.3_SD";
startup-delay-us = <2000>;
startup-delay-us = <20000>;
};
reserved-memory {

View File

@@ -43,6 +43,14 @@
interrupts = <117 IRQ_TYPE_LEVEL_LOW>;
reg = <0x2c>;
hid-descr-addr = <0x0020>;
/*
* The trackpad needs a post-power-on delay of 100ms,
* but at time of writing, the power supply for it on
* this board is always on. The delay is therefore not
* added to avoid impacting the readiness of the
* trackpad.
*/
vdd-supply = <&mt6397_vgp6_reg>;
wakeup-source;
};
};

View File

@@ -29,3 +29,6 @@
};
};
&i2c2 {
i2c-scl-internal-delay-ns = <4100>;
};

View File

@@ -17,6 +17,8 @@
};
&i2c2 {
i2c-scl-internal-delay-ns = <25000>;
trackpad@2c {
compatible = "hid-over-i2c";
reg = <0x2c>;

View File

@@ -30,3 +30,6 @@
qcom,ath10k-calibration-variant = "GO_DAMU";
};
&i2c2 {
i2c-scl-internal-delay-ns = <20000>;
};

View File

@@ -25,3 +25,6 @@
};
};
&i2c2 {
i2c-scl-internal-delay-ns = <21500>;
};

View File

@@ -8,40 +8,32 @@
#include <arm/cros-ec-keyboard.dtsi>
/ {
panel: panel {
compatible = "auo,b116xw03";
power-supply = <&pp3300_panel>;
backlight = <&backlight_lcd0>;
port {
panel_in: endpoint {
remote-endpoint = <&anx7625_out>;
};
};
};
pp1200_mipibrdg: pp1200-mipibrdg {
pp1000_mipibrdg: pp1000-mipibrdg {
compatible = "regulator-fixed";
regulator-name = "pp1200_mipibrdg";
regulator-name = "pp1000_mipibrdg";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
pinctrl-names = "default";
pinctrl-0 = <&pp1200_mipibrdg_en>;
pinctrl-0 = <&pp1000_mipibrdg_en>;
enable-active-high;
regulator-boot-on;
gpio = <&pio 54 GPIO_ACTIVE_HIGH>;
vin-supply = <&pp1800_alw>;
};
pp1800_mipibrdg: pp1800-mipibrdg {
compatible = "regulator-fixed";
regulator-name = "pp1800_mipibrdg";
pinctrl-names = "default";
pinctrl-0 = <&pp1800_lcd_en>;
pinctrl-0 = <&pp1800_mipibrdg_en>;
enable-active-high;
regulator-boot-on;
gpio = <&pio 36 GPIO_ACTIVE_HIGH>;
vin-supply = <&pp1800_alw>;
};
pp3300_panel: pp3300-panel {
@@ -56,18 +48,20 @@
regulator-boot-on;
gpio = <&pio 35 GPIO_ACTIVE_HIGH>;
vin-supply = <&pp3300_alw>;
};
vddio_mipibrdg: vddio-mipibrdg {
pp3300_mipibrdg: pp3300-mipibrdg {
compatible = "regulator-fixed";
regulator-name = "vddio_mipibrdg";
regulator-name = "pp3300_mipibrdg";
pinctrl-names = "default";
pinctrl-0 = <&vddio_mipibrdg_en>;
pinctrl-0 = <&pp3300_mipibrdg_en>;
enable-active-high;
regulator-boot-on;
gpio = <&pio 37 GPIO_ACTIVE_HIGH>;
vin-supply = <&pp3300_alw>;
};
volume_buttons: volume-buttons {
@@ -164,9 +158,9 @@
panel_flags = <1>;
enable-gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
reset-gpios = <&pio 73 GPIO_ACTIVE_HIGH>;
vdd10-supply = <&pp1200_mipibrdg>;
vdd10-supply = <&pp1000_mipibrdg>;
vdd18-supply = <&pp1800_mipibrdg>;
vdd33-supply = <&vddio_mipibrdg>;
vdd33-supply = <&pp3300_mipibrdg>;
ports {
#address-cells = <1>;
@@ -188,6 +182,20 @@
};
};
};
aux-bus {
panel: panel {
compatible = "edp-panel";
power-supply = <&pp3300_panel>;
backlight = <&backlight_lcd0>;
port {
panel_in: endpoint {
remote-endpoint = <&anx7625_out>;
};
};
};
};
};
};
@@ -395,14 +403,14 @@
"",
"";
pp1200_mipibrdg_en: pp1200-mipibrdg-en {
pp1000_mipibrdg_en: pp1000-mipibrdg-en {
pins1 {
pinmux = <PINMUX_GPIO54__FUNC_GPIO54>;
output-low;
};
};
pp1800_lcd_en: pp1800-lcd-en {
pp1800_mipibrdg_en: pp1800-mipibrdg-en {
pins1 {
pinmux = <PINMUX_GPIO36__FUNC_GPIO36>;
output-low;
@@ -464,7 +472,7 @@
};
};
vddio_mipibrdg_en: vddio-mipibrdg-en {
pp3300_mipibrdg_en: pp3300-mipibrdg-en {
pins1 {
pinmux = <PINMUX_GPIO37__FUNC_GPIO37>;
output-low;

View File

@@ -105,9 +105,9 @@
clock-frequency = <400000>;
vbus-supply = <&mt6358_vcn18_reg>;
eeprom@54 {
eeprom@50 {
compatible = "atmel,24c32";
reg = <0x54>;
reg = <0x50>;
pagesize = <32>;
vcc-supply = <&mt6358_vcn18_reg>;
};

View File

@@ -80,9 +80,9 @@
clock-frequency = <400000>;
vbus-supply = <&mt6358_vcn18_reg>;
eeprom@54 {
eeprom@50 {
compatible = "atmel,24c64";
reg = <0x54>;
reg = <0x50>;
pagesize = <32>;
vcc-supply = <&mt6358_vcn18_reg>;
};

View File

@@ -89,9 +89,9 @@
clock-frequency = <400000>;
vbus-supply = <&mt6358_vcn18_reg>;
eeprom@54 {
eeprom@50 {
compatible = "atmel,24c32";
reg = <0x54>;
reg = <0x50>;
pagesize = <32>;
vcc-supply = <&mt6358_vcn18_reg>;
};

View File

@@ -906,6 +906,7 @@
vusb33-supply = <&mt6359_vusb_ldo_reg>;
vbus-supply = <&usb_vbus>;
mediatek,u3p-dis-msk = <1>;
};
&xhci2 {
@@ -922,7 +923,6 @@
usb2-lpm-disable;
vusb33-supply = <&mt6359_vusb_ldo_reg>;
vbus-supply = <&usb_vbus>;
mediatek,u3p-dis-msk = <1>;
};
#include <arm/cros-ec-keyboard.dtsi>

View File

@@ -332,7 +332,7 @@
};
infracfg_ao: syscon@10001000 {
compatible = "mediatek,mt8195-infracfg_ao", "syscon", "simple-mfd";
compatible = "mediatek,mt8195-infracfg_ao", "syscon";
reg = <0 0x10001000 0 0x1000>;
#clock-cells = <1>;
#reset-cells = <1>;

View File

@@ -1383,6 +1383,7 @@ static void sve_init_regs(void)
fpsimd_bind_task_to_cpu();
} else {
fpsimd_to_sve(current);
fpsimd_flush_task_state(current);
}
}

View File

@@ -429,7 +429,7 @@ static void tls_thread_switch(struct task_struct *next)
if (is_compat_thread(task_thread_info(next)))
write_sysreg(next->thread.uw.tp_value, tpidrro_el0);
else if (!arm64_kernel_unmapped_at_el0())
else
write_sysreg(0, tpidrro_el0);
write_sysreg(*task_user_tls(next), tpidr_el0);

View File

@@ -1342,7 +1342,7 @@ static int tagged_addr_ctrl_get(struct task_struct *target,
{
long ctrl = get_tagged_addr_ctrl(target);
if (IS_ERR_VALUE(ctrl))
if (WARN_ON_ONCE(IS_ERR_VALUE(ctrl)))
return ctrl;
return membuf_write(&to, &ctrl, sizeof(ctrl));
@@ -1356,6 +1356,10 @@ static int tagged_addr_ctrl_set(struct task_struct *target, const struct
int ret;
long ctrl;
ctrl = get_tagged_addr_ctrl(target);
if (WARN_ON_ONCE(IS_ERR_VALUE(ctrl)))
return ctrl;
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, &ctrl, 0, -1);
if (ret)
return ret;

View File

@@ -315,6 +315,9 @@ SECTIONS
__initdata_end = .;
__init_end = .;
.data.rel.ro : { *(.data.rel.ro) }
ASSERT(SIZEOF(.data.rel.ro) == 0, "Unexpected RELRO detected!")
_data = .;
_sdata = .;
RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_ALIGN)
@@ -368,9 +371,6 @@ SECTIONS
*(.plt) *(.plt.*) *(.iplt) *(.igot .igot.plt)
}
ASSERT(SIZEOF(.plt) == 0, "Unexpected run-time procedure linkages detected!")
.data.rel.ro : { *(.data.rel.ro) }
ASSERT(SIZEOF(.data.rel.ro) == 0, "Unexpected RELRO detected!")
}
#include "image-vars.h"

View File

@@ -1003,7 +1003,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu)
if (run->exit_reason == KVM_EXIT_MMIO) {
ret = kvm_handle_mmio_return(vcpu);
if (ret)
if (ret <= 0)
return ret;
}

View File

@@ -72,6 +72,31 @@ unsigned long kvm_mmio_read_buf(const void *buf, unsigned int len)
return data;
}
static bool kvm_pending_sync_exception(struct kvm_vcpu *vcpu)
{
if (!vcpu_get_flag(vcpu, PENDING_EXCEPTION))
return false;
if (vcpu_el1_is_32bit(vcpu)) {
switch (vcpu_get_flag(vcpu, EXCEPT_MASK)) {
case unpack_vcpu_flag(EXCEPT_AA32_UND):
case unpack_vcpu_flag(EXCEPT_AA32_IABT):
case unpack_vcpu_flag(EXCEPT_AA32_DABT):
return true;
default:
return false;
}
} else {
switch (vcpu_get_flag(vcpu, EXCEPT_MASK)) {
case unpack_vcpu_flag(EXCEPT_AA64_EL1_SYNC):
case unpack_vcpu_flag(EXCEPT_AA64_EL2_SYNC):
return true;
default:
return false;
}
}
}
/**
* kvm_handle_mmio_return -- Handle MMIO loads after user space emulation
* or in-kernel IO emulation
@@ -84,9 +109,12 @@ int kvm_handle_mmio_return(struct kvm_vcpu *vcpu)
unsigned int len;
int mask;
/* Detect an already handled MMIO return */
if (unlikely(!vcpu->mmio_needed))
return 0;
/*
* Detect if the MMIO return was already handled or if userspace aborted
* the MMIO access.
*/
if (unlikely(!vcpu->mmio_needed || kvm_pending_sync_exception(vcpu)))
return 1;
vcpu->mmio_needed = 0;
@@ -117,7 +145,7 @@ int kvm_handle_mmio_return(struct kvm_vcpu *vcpu)
*/
kvm_incr_pc(vcpu);
return 0;
return 1;
}
int io_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa)

View File

@@ -294,7 +294,6 @@ static u64 kvm_pmu_overflow_status(struct kvm_vcpu *vcpu)
if ((__vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_E)) {
reg = __vcpu_sys_reg(vcpu, PMOVSSET_EL0);
reg &= __vcpu_sys_reg(vcpu, PMCNTENSET_EL0);
reg &= __vcpu_sys_reg(vcpu, PMINTENSET_EL1);
}

View File

@@ -855,6 +855,9 @@ static int vgic_its_cmd_handle_discard(struct kvm *kvm, struct vgic_its *its,
ite = find_ite(its, device_id, event_id);
if (ite && its_is_collection_mapped(ite->collection)) {
struct its_device *device = find_its_device(its, device_id);
int ite_esz = vgic_its_get_abi(its)->ite_esz;
gpa_t gpa = device->itt_addr + ite->event_id * ite_esz;
/*
* Though the spec talks about removing the pending state, we
* don't bother here since we clear the ITTE anyway and the
@@ -863,7 +866,8 @@ static int vgic_its_cmd_handle_discard(struct kvm *kvm, struct vgic_its *its,
vgic_its_invalidate_cache(kvm);
its_free_ite(kvm, ite);
return 0;
return vgic_its_write_entry_lock(its, gpa, 0, ite_esz);
}
return E_ITS_DISCARD_UNMAPPED_INTERRUPT;
@@ -1211,9 +1215,11 @@ static int vgic_its_cmd_handle_mapd(struct kvm *kvm, struct vgic_its *its,
bool valid = its_cmd_get_validbit(its_cmd);
u8 num_eventid_bits = its_cmd_get_size(its_cmd);
gpa_t itt_addr = its_cmd_get_ittaddr(its_cmd);
int dte_esz = vgic_its_get_abi(its)->dte_esz;
struct its_device *device;
gpa_t gpa;
if (!vgic_its_check_id(its, its->baser_device_table, device_id, NULL))
if (!vgic_its_check_id(its, its->baser_device_table, device_id, &gpa))
return E_ITS_MAPD_DEVICE_OOR;
if (valid && num_eventid_bits > VITS_TYPER_IDBITS)
@@ -1234,7 +1240,7 @@ static int vgic_its_cmd_handle_mapd(struct kvm *kvm, struct vgic_its *its,
* is an error, so we are done in any case.
*/
if (!valid)
return 0;
return vgic_its_write_entry_lock(its, gpa, 0, dte_esz);
device = vgic_its_alloc_device(its, device_id, itt_addr,
num_eventid_bits);
@@ -2207,7 +2213,6 @@ static int scan_its_table(struct vgic_its *its, gpa_t base, int size, u32 esz,
static int vgic_its_save_ite(struct vgic_its *its, struct its_device *dev,
struct its_ite *ite, gpa_t gpa, int ite_esz)
{
struct kvm *kvm = its->dev->kvm;
u32 next_offset;
u64 val;
@@ -2216,7 +2221,8 @@ static int vgic_its_save_ite(struct vgic_its *its, struct its_device *dev,
((u64)ite->irq->intid << KVM_ITS_ITE_PINTID_SHIFT) |
ite->collection->collection_id;
val = cpu_to_le64(val);
return vgic_write_guest_lock(kvm, gpa, &val, ite_esz);
return vgic_its_write_entry_lock(its, gpa, val, ite_esz);
}
/**
@@ -2357,7 +2363,6 @@ static int vgic_its_restore_itt(struct vgic_its *its, struct its_device *dev)
static int vgic_its_save_dte(struct vgic_its *its, struct its_device *dev,
gpa_t ptr, int dte_esz)
{
struct kvm *kvm = its->dev->kvm;
u64 val, itt_addr_field;
u32 next_offset;
@@ -2368,7 +2373,8 @@ static int vgic_its_save_dte(struct vgic_its *its, struct its_device *dev,
(itt_addr_field << KVM_ITS_DTE_ITTADDR_SHIFT) |
(dev->num_eventid_bits - 1));
val = cpu_to_le64(val);
return vgic_write_guest_lock(kvm, ptr, &val, dte_esz);
return vgic_its_write_entry_lock(its, ptr, val, dte_esz);
}
/**
@@ -2555,7 +2561,8 @@ static int vgic_its_save_cte(struct vgic_its *its,
((u64)collection->target_addr << KVM_ITS_CTE_RDBASE_SHIFT) |
collection->collection_id);
val = cpu_to_le64(val);
return vgic_write_guest_lock(its->dev->kvm, gpa, &val, esz);
return vgic_its_write_entry_lock(its, gpa, val, esz);
}
/*
@@ -2571,8 +2578,7 @@ static int vgic_its_restore_cte(struct vgic_its *its, gpa_t gpa, int esz)
u64 val;
int ret;
BUG_ON(esz > sizeof(val));
ret = kvm_read_guest_lock(kvm, gpa, &val, esz);
ret = vgic_its_read_entry_lock(its, gpa, &val, esz);
if (ret)
return ret;
val = le64_to_cpu(val);
@@ -2610,7 +2616,6 @@ static int vgic_its_save_collection_table(struct vgic_its *its)
u64 baser = its->baser_coll_table;
gpa_t gpa = GITS_BASER_ADDR_48_to_52(baser);
struct its_collection *collection;
u64 val;
size_t max_size, filled = 0;
int ret, cte_esz = abi->cte_esz;
@@ -2634,10 +2639,7 @@ static int vgic_its_save_collection_table(struct vgic_its *its)
* table is not fully filled, add a last dummy element
* with valid bit unset
*/
val = 0;
BUG_ON(cte_esz > sizeof(val));
ret = vgic_write_guest_lock(its->dev->kvm, gpa, &val, cte_esz);
return ret;
return vgic_its_write_entry_lock(its, gpa, 0, cte_esz);
}
/**

View File

@@ -555,6 +555,7 @@ static void vgic_mmio_write_invlpi(struct kvm_vcpu *vcpu,
unsigned long val)
{
struct vgic_irq *irq;
u32 intid;
/*
* If the guest wrote only to the upper 32bit part of the
@@ -566,9 +567,13 @@ static void vgic_mmio_write_invlpi(struct kvm_vcpu *vcpu,
if ((addr & 4) || !vgic_lpis_enabled(vcpu))
return;
intid = lower_32_bits(val);
if (intid < VGIC_MIN_LPI)
return;
vgic_set_rdist_busy(vcpu, true);
irq = vgic_get_irq(vcpu->kvm, NULL, lower_32_bits(val));
irq = vgic_get_irq(vcpu->kvm, NULL, intid);
if (irq) {
vgic_its_inv_lpi(vcpu->kvm, irq);
vgic_put_irq(vcpu->kvm, irq);

View File

@@ -132,14 +132,27 @@ static inline bool vgic_irq_is_multi_sgi(struct vgic_irq *irq)
return vgic_irq_get_lr_count(irq) > 1;
}
static inline int vgic_write_guest_lock(struct kvm *kvm, gpa_t gpa,
const void *data, unsigned long len)
static inline int vgic_its_read_entry_lock(struct vgic_its *its, gpa_t eaddr,
u64 *eval, unsigned long esize)
{
int ret;
struct kvm *kvm = its->dev->kvm;
ret = kvm_write_guest_lock(kvm, gpa, data, len);
if (KVM_BUG_ON(esize != sizeof(*eval), kvm))
return -EINVAL;
return ret;
return kvm_read_guest_lock(kvm, eaddr, eval, esize);
}
static inline int vgic_its_write_entry_lock(struct vgic_its *its, gpa_t eaddr,
u64 eval, unsigned long esize)
{
struct kvm *kvm = its->dev->kvm;
if (KVM_BUG_ON(esize != sizeof(eval), kvm))
return -EINVAL;
return kvm_write_guest_lock(kvm, eaddr, &eval, esize);
}
/*

View File

@@ -32,9 +32,9 @@ static unsigned long nr_pinned_asids;
static unsigned long *pinned_asid_map;
#define ASID_MASK (~GENMASK(asid_bits - 1, 0))
#define ASID_FIRST_VERSION (1UL << asid_bits)
#define ASID_FIRST_VERSION (1UL << 16)
#define NUM_USER_ASIDS ASID_FIRST_VERSION
#define NUM_USER_ASIDS (1UL << asid_bits)
#define ctxid2asid(asid) ((asid) & ~ASID_MASK)
#define asid2ctxid(asid, genid) ((asid) | (genid))

View File

@@ -1757,6 +1757,12 @@ static void restore_args(struct jit_ctx *ctx, int args_off, int nargs)
}
}
static bool is_struct_ops_tramp(const struct bpf_tramp_links *fentry_links)
{
return fentry_links->nr_links == 1 &&
fentry_links->links[0]->link.type == BPF_LINK_TYPE_STRUCT_OPS;
}
/* Based on the x86's implementation of arch_prepare_bpf_trampoline().
*
* bpf prog and function entry before bpf trampoline hooked:
@@ -1786,6 +1792,7 @@ static int prepare_trampoline(struct jit_ctx *ctx, struct bpf_tramp_image *im,
struct bpf_tramp_links *fmod_ret = &tlinks[BPF_TRAMP_MODIFY_RETURN];
bool save_ret;
__le32 **branches = NULL;
bool is_struct_ops = is_struct_ops_tramp(fentry);
/* trampoline stack layout:
* [ parent ip ]
@@ -1854,11 +1861,14 @@ static int prepare_trampoline(struct jit_ctx *ctx, struct bpf_tramp_image *im,
*/
emit_bti(A64_BTI_JC, ctx);
/* frame for parent function */
emit(A64_PUSH(A64_FP, A64_R(9), A64_SP), ctx);
emit(A64_MOV(1, A64_FP, A64_SP), ctx);
/* x9 is not set for struct_ops */
if (!is_struct_ops) {
/* frame for parent function */
emit(A64_PUSH(A64_FP, A64_R(9), A64_SP), ctx);
emit(A64_MOV(1, A64_FP, A64_SP), ctx);
}
/* frame for patched function */
/* frame for patched function for tracing, or caller for struct_ops */
emit(A64_PUSH(A64_FP, A64_LR, A64_SP), ctx);
emit(A64_MOV(1, A64_FP, A64_SP), ctx);
@@ -1944,19 +1954,24 @@ static int prepare_trampoline(struct jit_ctx *ctx, struct bpf_tramp_image *im,
/* reset SP */
emit(A64_MOV(1, A64_SP, A64_FP), ctx);
/* pop frames */
emit(A64_POP(A64_FP, A64_LR, A64_SP), ctx);
emit(A64_POP(A64_FP, A64_R(9), A64_SP), ctx);
if (flags & BPF_TRAMP_F_SKIP_FRAME) {
/* skip patched function, return to parent */
emit(A64_MOV(1, A64_LR, A64_R(9)), ctx);
emit(A64_RET(A64_R(9)), ctx);
if (is_struct_ops) {
emit(A64_POP(A64_FP, A64_LR, A64_SP), ctx);
emit(A64_RET(A64_LR), ctx);
} else {
/* return to patched function */
emit(A64_MOV(1, A64_R(10), A64_LR), ctx);
emit(A64_MOV(1, A64_LR, A64_R(9)), ctx);
emit(A64_RET(A64_R(10)), ctx);
/* pop frames */
emit(A64_POP(A64_FP, A64_LR, A64_SP), ctx);
emit(A64_POP(A64_FP, A64_R(9), A64_SP), ctx);
if (flags & BPF_TRAMP_F_SKIP_FRAME) {
/* skip patched function, return to parent */
emit(A64_MOV(1, A64_LR, A64_R(9)), ctx);
emit(A64_RET(A64_R(9)), ctx);
} else {
/* return to patched function */
emit(A64_MOV(1, A64_R(10), A64_LR), ctx);
emit(A64_MOV(1, A64_LR, A64_R(9)), ctx);
emit(A64_RET(A64_R(10)), ctx);
}
}
if (ctx->image)

View File

@@ -41,8 +41,8 @@ ld-emul = $(64bit-emul)
cflags-y += -mabi=lp64s
endif
cflags-y += -G0 -pipe -msoft-float
LDFLAGS_vmlinux += -G0 -static -n -nostdlib
cflags-y += -pipe -msoft-float
LDFLAGS_vmlinux += -static -n -nostdlib
# When the assembler supports explicit relocation hint, we must use it.
# GCC may have -mexplicit-relocs off by default if it was built with an old
@@ -51,13 +51,18 @@ LDFLAGS_vmlinux += -G0 -static -n -nostdlib
# When the assembler does not supports explicit relocation hint, we can't use
# it. Disable it if the compiler supports it.
#
# If you've seen "unknown reloc hint" message building the kernel and you are
# now wondering why "-mexplicit-relocs" is not wrapped with cc-option: the
# combination of a "new" assembler and "old" compiler is not supported. Either
# upgrade the compiler or downgrade the assembler.
# The combination of a "new" assembler and "old" GCC is not supported, given
# the rarity of this combo and the extra complexity needed to make it work.
# Either upgrade the compiler or downgrade the assembler; the build will error
# out if it is the case (by probing for the model attribute; all supported
# compilers in this case would have support).
#
# Also, -mdirect-extern-access is useful in case of building with explicit
# relocs, for avoiding unnecessary GOT accesses. It is harmless to not have
# support though.
ifdef CONFIG_AS_HAS_EXPLICIT_RELOCS
cflags-y += -mexplicit-relocs
KBUILD_CFLAGS_KERNEL += -mdirect-extern-access
cflags-y += $(call cc-option,-mexplicit-relocs)
KBUILD_CFLAGS_KERNEL += $(call cc-option,-mdirect-extern-access)
else
cflags-y += $(call cc-option,-mno-explicit-relocs)
KBUILD_AFLAGS_KERNEL += -Wa,-mla-global-with-pcrel

View File

@@ -29,6 +29,16 @@ static inline int prepare_hugepage_range(struct file *file,
return 0;
}
#define __HAVE_ARCH_HUGE_PTE_CLEAR
static inline void huge_pte_clear(struct mm_struct *mm, unsigned long addr,
pte_t *ptep, unsigned long sz)
{
pte_t clear;
pte_val(clear) = (unsigned long)invalid_pte_table;
set_pte_at(mm, addr, ptep, clear);
}
#define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
unsigned long addr, pte_t *ptep)

View File

@@ -102,10 +102,7 @@ static inline int pfn_valid(unsigned long pfn)
extern int __virt_addr_valid(volatile void *kaddr);
#define virt_addr_valid(kaddr) __virt_addr_valid((volatile void *)(kaddr))
#define VM_DATA_DEFAULT_FLAGS \
(VM_READ | VM_WRITE | \
((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
#define VM_DATA_DEFAULT_FLAGS VM_DATA_FLAGS_TSK_EXEC
#include <asm-generic/memory_model.h>
#include <asm-generic/getorder.h>

View File

@@ -14,7 +14,11 @@
* loaded. Tell the compiler this fact when using explicit relocs.
*/
#if defined(MODULE) && defined(CONFIG_AS_HAS_EXPLICIT_RELOCS)
#define PER_CPU_ATTRIBUTES __attribute__((model("extreme")))
# if __has_attribute(model)
# define PER_CPU_ATTRIBUTES __attribute__((model("extreme")))
# else
# error compiler support for the model attribute is necessary when a recent assembler is used
# endif
#endif
/* Use r21 for fast access */

View File

@@ -279,7 +279,7 @@ void setup_tlb_handler(int cpu)
/* Avoid lockdep warning */
rcu_cpu_starting(cpu);
#ifdef CONFIG_NUMA
#if defined(CONFIG_NUMA) && !defined(CONFIG_PREEMPT_RT)
vec_sz = sizeof(exception_handlers);
if (pcpu_handlers[cpu])

View File

@@ -179,7 +179,7 @@ static void __build_epilogue(struct jit_ctx *ctx, bool is_tail_call)
if (!is_tail_call) {
/* Set return value */
move_reg(ctx, LOONGARCH_GPR_A0, regmap[BPF_REG_0]);
emit_insn(ctx, addiw, LOONGARCH_GPR_A0, regmap[BPF_REG_0], 0);
/* Return to the caller */
emit_insn(ctx, jirl, LOONGARCH_GPR_RA, LOONGARCH_GPR_ZERO, 0);
} else {

View File

@@ -23,7 +23,7 @@ endif
cflags-vdso := $(ccflags-vdso) \
-isystem $(shell $(CC) -print-file-name=include) \
$(filter -W%,$(filter-out -Wa$(comma)%,$(KBUILD_CFLAGS))) \
-O2 -g -fno-strict-aliasing -fno-common -fno-builtin -G0 \
-std=gnu11 -O2 -g -fno-strict-aliasing -fno-common -fno-builtin \
-fno-stack-protector -fno-jump-tables -DDISABLE_BRANCH_PROFILING \
$(call cc-option, -fno-asynchronous-unwind-tables) \
$(call cc-option, -fno-stack-protector)

View File

@@ -93,7 +93,7 @@ static struct platform_device mcf_uart = {
.dev.platform_data = mcf_uart_platform_data,
};
#if IS_ENABLED(CONFIG_FEC)
#ifdef MCFFEC_BASE0
#ifdef CONFIG_M5441x
#define FEC_NAME "enet-fec"
@@ -145,6 +145,7 @@ static struct platform_device mcf_fec0 = {
.platform_data = FEC_PDATA,
}
};
#endif /* MCFFEC_BASE0 */
#ifdef MCFFEC_BASE1
static struct resource mcf_fec1_resources[] = {
@@ -182,7 +183,6 @@ static struct platform_device mcf_fec1 = {
}
};
#endif /* MCFFEC_BASE1 */
#endif /* CONFIG_FEC */
#if IS_ENABLED(CONFIG_SPI_COLDFIRE_QSPI)
/*
@@ -624,12 +624,12 @@ static struct platform_device mcf_flexcan0 = {
static struct platform_device *mcf_devices[] __initdata = {
&mcf_uart,
#if IS_ENABLED(CONFIG_FEC)
#ifdef MCFFEC_BASE0
&mcf_fec0,
#endif
#ifdef MCFFEC_BASE1
&mcf_fec1,
#endif
#endif
#if IS_ENABLED(CONFIG_SPI_COLDFIRE_QSPI)
&mcf_qspi,
#endif

View File

@@ -144,7 +144,7 @@ static inline void gpio_free(unsigned gpio)
* read-modify-write as well as those controlled by the EPORT and GPIO modules.
*/
#define MCFGPIO_SCR_START 40
#elif defined(CONFIGM5441x)
#elif defined(CONFIG_M5441x)
/* The m5441x EPORT doesn't have its own GPIO port, uses PORT C */
#define MCFGPIO_SCR_START 0
#else

View File

@@ -93,8 +93,8 @@ struct pcc_regs {
#define M147_SCC_B_ADDR 0xfffe3000
#define M147_SCC_PCLK 5000000
#define MVME147_IRQ_SCSI_PORT (IRQ_USER+0x45)
#define MVME147_IRQ_SCSI_DMA (IRQ_USER+0x46)
#define MVME147_IRQ_SCSI_PORT (IRQ_USER + 5)
#define MVME147_IRQ_SCSI_DMA (IRQ_USER + 6)
/* SCC interrupts, for MVME147 */

View File

@@ -12,8 +12,9 @@
#include <linux/string.h>
#include <asm/setup.h>
extern void mvme16x_cons_write(struct console *co,
const char *str, unsigned count);
#include "../mvme147/mvme147.h"
#include "../mvme16x/mvme16x.h"
asmlinkage void __init debug_cons_nputs(const char *s, unsigned n);
@@ -22,7 +23,9 @@ static void __ref debug_cons_write(struct console *c,
{
#if !(defined(CONFIG_SUN3) || defined(CONFIG_M68000) || \
defined(CONFIG_COLDFIRE))
if (MACH_IS_MVME16x)
if (MACH_IS_MVME147)
mvme147_scc_write(c, s, n);
else if (MACH_IS_MVME16x)
mvme16x_cons_write(c, s, n);
else
debug_cons_nputs(s, n);

View File

@@ -35,6 +35,7 @@
#include <asm/mvme147hw.h>
#include <asm/config.h>
#include "mvme147.h"
static void mvme147_get_model(char *model);
extern void mvme147_sched_init(void);
@@ -188,3 +189,32 @@ int mvme147_hwclk(int op, struct rtc_time *t)
}
return 0;
}
static void scc_delay(void)
{
__asm__ __volatile__ ("nop; nop;");
}
static void scc_write(char ch)
{
do {
scc_delay();
} while (!(in_8(M147_SCC_A_ADDR) & BIT(2)));
scc_delay();
out_8(M147_SCC_A_ADDR, 8);
scc_delay();
out_8(M147_SCC_A_ADDR, ch);
}
void mvme147_scc_write(struct console *co, const char *str, unsigned int count)
{
unsigned long flags;
local_irq_save(flags);
while (count--) {
if (*str == '\n')
scc_write('\r');
scc_write(*str++);
}
local_irq_restore(flags);
}

View File

@@ -0,0 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */
struct console;
/* config.c */
void mvme147_scc_write(struct console *co, const char *str, unsigned int count);

View File

@@ -38,6 +38,8 @@
#include <asm/mvme16xhw.h>
#include <asm/config.h>
#include "mvme16x.h"
extern t_bdid mvme_bdid;
static MK48T08ptr_t volatile rtc = (MK48T08ptr_t)MVME_RTC_BASE;

View File

@@ -0,0 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */
struct console;
/* config.c */
void mvme16x_cons_write(struct console *co, const char *str, unsigned count);

View File

@@ -16,6 +16,7 @@
#include <asm/page.h>
#include <linux/ftrace.h>
#include <linux/uaccess.h>
#include <asm/xilinx_mb_manager.h>
#ifdef CONFIG_FUNCTION_TRACER
extern void _mcount(void);
@@ -46,3 +47,12 @@ extern void __udivsi3(void);
EXPORT_SYMBOL(__udivsi3);
extern void __umodsi3(void);
EXPORT_SYMBOL(__umodsi3);
#ifdef CONFIG_MB_MANAGER
extern void xmb_manager_register(uintptr_t phys_baseaddr, u32 cr_val,
void (*callback)(void *data),
void *priv, void (*reset_callback)(void *data));
EXPORT_SYMBOL(xmb_manager_register);
extern asmlinkage void xmb_inject_err(void);
EXPORT_SYMBOL(xmb_inject_err);
#endif

View File

@@ -63,7 +63,6 @@
device_type = "pci";
#address-cells = <3>;
#size-cells = <2>;
#interrupt-cells = <2>;
msi-parent = <&msi>;
reg = <0 0x1a000000 0 0x02000000>,
@@ -227,7 +226,7 @@
};
};
pci_bridge@9,0 {
pcie@9,0 {
compatible = "pci0014,7a19.1",
"pci0014,7a19",
"pciclass060400",
@@ -237,12 +236,16 @@
interrupts = <32 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&pic>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &pic 32 IRQ_TYPE_LEVEL_HIGH>;
ranges;
};
pci_bridge@a,0 {
pcie@a,0 {
compatible = "pci0014,7a09.1",
"pci0014,7a09",
"pciclass060400",
@@ -252,12 +255,16 @@
interrupts = <33 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&pic>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &pic 33 IRQ_TYPE_LEVEL_HIGH>;
ranges;
};
pci_bridge@b,0 {
pcie@b,0 {
compatible = "pci0014,7a09.1",
"pci0014,7a09",
"pciclass060400",
@@ -267,12 +274,16 @@
interrupts = <34 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&pic>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &pic 34 IRQ_TYPE_LEVEL_HIGH>;
ranges;
};
pci_bridge@c,0 {
pcie@c,0 {
compatible = "pci0014,7a09.1",
"pci0014,7a09",
"pciclass060400",
@@ -282,12 +293,16 @@
interrupts = <35 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&pic>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &pic 35 IRQ_TYPE_LEVEL_HIGH>;
ranges;
};
pci_bridge@d,0 {
pcie@d,0 {
compatible = "pci0014,7a19.1",
"pci0014,7a19",
"pciclass060400",
@@ -297,12 +312,16 @@
interrupts = <36 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&pic>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &pic 36 IRQ_TYPE_LEVEL_HIGH>;
ranges;
};
pci_bridge@e,0 {
pcie@e,0 {
compatible = "pci0014,7a09.1",
"pci0014,7a09",
"pciclass060400",
@@ -312,12 +331,16 @@
interrupts = <37 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&pic>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &pic 37 IRQ_TYPE_LEVEL_HIGH>;
ranges;
};
pci_bridge@f,0 {
pcie@f,0 {
compatible = "pci0014,7a29.1",
"pci0014,7a29",
"pciclass060400",
@@ -327,12 +350,16 @@
interrupts = <40 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&pic>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &pic 40 IRQ_TYPE_LEVEL_HIGH>;
ranges;
};
pci_bridge@10,0 {
pcie@10,0 {
compatible = "pci0014,7a19.1",
"pci0014,7a19",
"pciclass060400",
@@ -342,12 +369,16 @@
interrupts = <41 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&pic>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &pic 41 IRQ_TYPE_LEVEL_HIGH>;
ranges;
};
pci_bridge@11,0 {
pcie@11,0 {
compatible = "pci0014,7a29.1",
"pci0014,7a29",
"pciclass060400",
@@ -357,12 +388,16 @@
interrupts = <42 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&pic>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &pic 42 IRQ_TYPE_LEVEL_HIGH>;
ranges;
};
pci_bridge@12,0 {
pcie@12,0 {
compatible = "pci0014,7a19.1",
"pci0014,7a19",
"pciclass060400",
@@ -372,12 +407,16 @@
interrupts = <43 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&pic>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &pic 43 IRQ_TYPE_LEVEL_HIGH>;
ranges;
};
pci_bridge@13,0 {
pcie@13,0 {
compatible = "pci0014,7a29.1",
"pci0014,7a29",
"pciclass060400",
@@ -387,12 +426,16 @@
interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&pic>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &pic 38 IRQ_TYPE_LEVEL_HIGH>;
ranges;
};
pci_bridge@14,0 {
pcie@14,0 {
compatible = "pci0014,7a19.1",
"pci0014,7a19",
"pciclass060400",
@@ -402,9 +445,13 @@
interrupts = <39 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&pic>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &pic 39 IRQ_TYPE_LEVEL_HIGH>;
ranges;
};
};

View File

@@ -97,7 +97,7 @@ do { \
} \
} while (0)
#else
# define __sanitize_fcr31(next)
# define __sanitize_fcr31(next) do { (void) (next); } while (0)
#endif
/*

View File

@@ -87,7 +87,7 @@ int ftrace_enable_ftrace_graph_caller(void)
int ftrace_disable_ftrace_graph_caller(void)
{
static_key_enable(&ftrace_graph_enable.key);
static_key_disable(&ftrace_graph_enable.key);
return 0;
}
#endif

View File

@@ -253,8 +253,8 @@ config PPC
select HAVE_RSEQ
select HAVE_SETUP_PER_CPU_AREA if PPC64
select HAVE_SOFTIRQ_ON_OWN_STACK
select HAVE_STACKPROTECTOR if PPC32 && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r2)
select HAVE_STACKPROTECTOR if PPC64 && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r13)
select HAVE_STACKPROTECTOR if PPC32 && $(cc-option,$(m32-flag) -mstack-protector-guard=tls -mstack-protector-guard-reg=r2 -mstack-protector-guard-offset=0)
select HAVE_STACKPROTECTOR if PPC64 && $(cc-option,$(m64-flag) -mstack-protector-guard=tls -mstack-protector-guard-reg=r13 -mstack-protector-guard-offset=0)
select HAVE_STATIC_CALL if PPC32
select HAVE_SYSCALL_TRACEPOINTS
select HAVE_VIRT_CPU_ACCOUNTING

View File

@@ -89,13 +89,6 @@ KBUILD_AFLAGS += -m$(BITS)
KBUILD_LDFLAGS += -m elf$(BITS)$(LDEMULATION)
endif
cflags-$(CONFIG_STACKPROTECTOR) += -mstack-protector-guard=tls
ifdef CONFIG_PPC64
cflags-$(CONFIG_STACKPROTECTOR) += -mstack-protector-guard-reg=r13
else
cflags-$(CONFIG_STACKPROTECTOR) += -mstack-protector-guard-reg=r2
endif
LDFLAGS_vmlinux-y := -Bstatic
LDFLAGS_vmlinux-$(CONFIG_RELOCATABLE) := -pie
LDFLAGS_vmlinux-$(CONFIG_RELOCATABLE) += -z notext
@@ -383,9 +376,11 @@ prepare: stack_protector_prepare
PHONY += stack_protector_prepare
stack_protector_prepare: prepare0
ifdef CONFIG_PPC64
$(eval KBUILD_CFLAGS += -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "PACA_CANARY") print $$3;}' include/generated/asm-offsets.h))
$(eval KBUILD_CFLAGS += -mstack-protector-guard=tls -mstack-protector-guard-reg=r13 \
-mstack-protector-guard-offset=$(shell awk '{if ($$2 == "PACA_CANARY") print $$3;}' include/generated/asm-offsets.h))
else
$(eval KBUILD_CFLAGS += -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "TASK_CANARY") print $$3;}' include/generated/asm-offsets.h))
$(eval KBUILD_CFLAGS += -mstack-protector-guard=tls -mstack-protector-guard-reg=r2 \
-mstack-protector-guard-offset=$(shell awk '{if ($$2 == "TASK_CANARY") print $$3;}' include/generated/asm-offsets.h))
endif
endif

View File

@@ -33,6 +33,10 @@
#define IFETCH_ALIGN_BYTES (1 << IFETCH_ALIGN_SHIFT)
#ifdef CONFIG_NOT_COHERENT_CACHE
#define ARCH_DMA_MINALIGN L1_CACHE_BYTES
#endif
#if !defined(__ASSEMBLY__)
#ifdef CONFIG_PPC64

View File

@@ -1,8 +1,8 @@
#ifndef _ASM_POWERPC_DTL_H
#define _ASM_POWERPC_DTL_H
#include <linux/rwsem.h>
#include <asm/lppaca.h>
#include <linux/spinlock_types.h>
/*
* Layout of entries in the hypervisor's dispatch trace log buffer.
@@ -35,7 +35,7 @@ struct dtl_entry {
#define DTL_LOG_ALL (DTL_LOG_CEDE | DTL_LOG_PREEMPT | DTL_LOG_FAULT)
extern struct kmem_cache *dtl_cache;
extern rwlock_t dtl_access_lock;
extern struct rw_semaphore dtl_access_lock;
extern void register_dtl_buffer(int cpu);
extern void alloc_dtl_buffers(unsigned long *time_limit);

View File

@@ -32,4 +32,11 @@ extern int early_init_dt_scan_fw_dump(unsigned long node, const char *uname,
int depth, void *data);
extern int fadump_reserve_mem(void);
#endif
#if defined(CONFIG_FA_DUMP) && defined(CONFIG_CMA)
void fadump_cma_init(void);
#else
static inline void fadump_cma_init(void) { }
#endif
#endif /* _ASM_POWERPC_FADUMP_H */

View File

@@ -12,10 +12,6 @@
#define VM_DATA_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS32
#ifdef CONFIG_NOT_COHERENT_CACHE
#define ARCH_DMA_MINALIGN L1_CACHE_BYTES
#endif
#if defined(CONFIG_PPC_256K_PAGES) || \
(defined(CONFIG_PPC_8xx) && defined(CONFIG_PPC_16K_PAGES))
#define PTE_SHIFT (PAGE_SHIFT - PTE_T_LOG2 - 2) /* 1/4 of a page */

View File

@@ -173,9 +173,4 @@ int emulate_step(struct pt_regs *regs, ppc_inst_t instr);
*/
extern int emulate_loadstore(struct pt_regs *regs, struct instruction_op *op);
extern void emulate_vsx_load(struct instruction_op *op, union vsx_reg *reg,
const void *mem, bool cross_endian);
extern void emulate_vsx_store(struct instruction_op *op,
const union vsx_reg *reg, void *mem,
bool cross_endian);
extern int emulate_dcbz(unsigned long ea, struct pt_regs *regs);

View File

@@ -25,6 +25,7 @@ int vdso_getcpu_init(void);
#ifdef __VDSO64__
#define V_FUNCTION_BEGIN(name) \
.globl name; \
.type name,@function; \
name: \
#define V_FUNCTION_END(name) \

View File

@@ -80,27 +80,23 @@ static struct cma *fadump_cma;
* But for some reason even if it fails we still have the memory reservation
* with us and we can still continue doing fadump.
*/
static int __init fadump_cma_init(void)
void __init fadump_cma_init(void)
{
unsigned long long base, size;
int rc;
if (!fw_dump.fadump_enabled)
return 0;
if (!fw_dump.fadump_supported || !fw_dump.fadump_enabled ||
fw_dump.dump_active)
return;
/*
* Do not use CMA if user has provided fadump=nocma kernel parameter.
* Return 1 to continue with fadump old behaviour.
*/
if (fw_dump.nocma)
return 1;
if (fw_dump.nocma || !fw_dump.boot_memory_size)
return;
base = fw_dump.reserve_dump_area_start;
size = fw_dump.boot_memory_size;
if (!size)
return 0;
rc = cma_init_reserved_mem(base, size, 0, "fadump_cma", &fadump_cma);
if (rc) {
pr_err("Failed to init cma area for firmware-assisted dump,%d\n", rc);
@@ -110,7 +106,7 @@ static int __init fadump_cma_init(void)
* blocked from production system usage. Hence return 1,
* so that we can continue with fadump.
*/
return 1;
return;
}
/*
@@ -127,10 +123,7 @@ static int __init fadump_cma_init(void)
cma_get_size(fadump_cma),
(unsigned long)cma_get_base(fadump_cma) >> 20,
fw_dump.reserve_dump_area_size);
return 1;
}
#else
static int __init fadump_cma_init(void) { return 1; }
#endif /* CONFIG_CMA */
/* Scan the Firmware Assisted dump configuration details. */
@@ -647,8 +640,6 @@ int __init fadump_reserve_mem(void)
pr_info("Reserved %lldMB of memory at %#016llx (System RAM: %lldMB)\n",
(size >> 20), base, (memblock_phys_mem_size() >> 20));
ret = fadump_cma_init();
}
return ret;

View File

@@ -2924,7 +2924,7 @@ static void __init fixup_device_tree_chrp(void)
#endif
#if defined(CONFIG_PPC64) && defined(CONFIG_PPC_PMAC)
static void __init fixup_device_tree_pmac(void)
static void __init fixup_device_tree_pmac64(void)
{
phandle u3, i2c, mpic;
u32 u3_rev;
@@ -2964,7 +2964,31 @@ static void __init fixup_device_tree_pmac(void)
&parent, sizeof(parent));
}
#else
#define fixup_device_tree_pmac()
#define fixup_device_tree_pmac64()
#endif
#ifdef CONFIG_PPC_PMAC
static void __init fixup_device_tree_pmac(void)
{
__be32 val = 1;
char type[8];
phandle node;
// Some pmacs are missing #size-cells on escc nodes
for (node = 0; prom_next_node(&node); ) {
type[0] = '\0';
prom_getprop(node, "device_type", type, sizeof(type));
if (prom_strcmp(type, "escc"))
continue;
if (prom_getproplen(node, "#size-cells") != PROM_ERROR)
continue;
prom_setprop(node, NULL, "#size-cells", &val, sizeof(val));
}
}
#else
static inline void fixup_device_tree_pmac(void) { }
#endif
#ifdef CONFIG_PPC_EFIKA
@@ -3189,6 +3213,7 @@ static void __init fixup_device_tree(void)
fixup_device_tree_maple_memory_controller();
fixup_device_tree_chrp();
fixup_device_tree_pmac();
fixup_device_tree_pmac64();
fixup_device_tree_efika();
fixup_device_tree_pasemi();
}

View File

@@ -982,9 +982,11 @@ void __init setup_arch(char **cmdline_p)
initmem_init();
/*
* Reserve large chunks of memory for use by CMA for KVM and hugetlb. These must
* be called after initmem_init(), so that pageblock_order is initialised.
* Reserve large chunks of memory for use by CMA for fadump, KVM and
* hugetlb. These must be called after initmem_init(), so that
* pageblock_order is initialised.
*/
fadump_cma_init();
kvm_cma_reserve();
gigantic_hugetlb_cma_reserve();

View File

@@ -924,6 +924,7 @@ static int __init disable_hardlockup_detector(void)
hardlockup_detector_disable();
#else
if (firmware_has_feature(FW_FEATURE_LPAR)) {
check_kvm_guest();
if (is_kvm_guest())
hardlockup_detector_disable();
}

View File

@@ -10,23 +10,11 @@ obj-vdso64 = sigtramp64-64.o gettimeofday-64.o datapage-64.o cacheflush-64.o not
ifneq ($(c-gettimeofday-y),)
CFLAGS_vgettimeofday-32.o += -include $(c-gettimeofday-y)
CFLAGS_vgettimeofday-32.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
CFLAGS_vgettimeofday-32.o += $(call cc-option, -fno-stack-protector)
CFLAGS_vgettimeofday-32.o += -DDISABLE_BRANCH_PROFILING
CFLAGS_vgettimeofday-32.o += -ffreestanding -fasynchronous-unwind-tables
CFLAGS_REMOVE_vgettimeofday-32.o = $(CC_FLAGS_FTRACE)
CFLAGS_REMOVE_vgettimeofday-32.o += -mcmodel=medium -mabi=elfv1 -mabi=elfv2 -mcall-aixdesc
CFLAGS_vgettimeofday-64.o += -include $(c-gettimeofday-y)
CFLAGS_vgettimeofday-64.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
CFLAGS_vgettimeofday-64.o += $(call cc-option, -fno-stack-protector)
CFLAGS_vgettimeofday-64.o += -DDISABLE_BRANCH_PROFILING
CFLAGS_vgettimeofday-64.o += -ffreestanding -fasynchronous-unwind-tables
CFLAGS_REMOVE_vgettimeofday-64.o = $(CC_FLAGS_FTRACE)
# Go prior to 1.16.x assumes r30 is not clobbered by any VDSO code. That used to be true
# by accident when the VDSO was hand-written asm code, but may not be now that the VDSO is
# compiler generated. To avoid breaking Go tell GCC not to use r30. Impact on code
# generation is minimal, it will just use r29 instead.
CFLAGS_vgettimeofday-64.o += $(call cc-option, -ffixed-r30)
CFLAGS_vgettimeofday-64.o += -include $(c-gettimeofday-y) $(call cc-option, -ffixed-r30)
endif
# Build rules
@@ -47,14 +35,33 @@ KCOV_INSTRUMENT := n
UBSAN_SANITIZE := n
KASAN_SANITIZE := n
ccflags-y := -shared -fno-common -fno-builtin -nostdlib -Wl,--hash-style=both
ccflags-$(CONFIG_LD_IS_LLD) += $(call cc-option,--ld-path=$(LD),-fuse-ld=lld)
ccflags-y := -fno-common -fno-builtin
ccflags-y += $(DISABLE_LATENT_ENTROPY_PLUGIN)
ccflags-y += $(call cc-option, -fno-stack-protector)
ccflags-y += -DDISABLE_BRANCH_PROFILING
ccflags-y += -ffreestanding -fasynchronous-unwind-tables
ccflags-remove-y := $(CC_FLAGS_FTRACE)
ldflags-y := -Wl,--hash-style=both -nostdlib -shared -z noexecstack $(CLANG_FLAGS)
ldflags-$(CONFIG_LD_IS_LLD) += $(call cc-option,--ld-path=$(LD),-fuse-ld=lld)
# Filter flags that clang will warn are unused for linking
ldflags-y += $(filter-out $(CC_FLAGS_FTRACE) -Wa$(comma)%, $(KBUILD_CFLAGS))
CC32FLAGS := -Wl,-soname=linux-vdso32.so.1 -m32
AS32FLAGS := -D__VDSO32__ -s
CC32FLAGS := -m32
CC32FLAGSREMOVE := -mcmodel=medium -mabi=elfv1 -mabi=elfv2 -mcall-aixdesc
ifdef CONFIG_CC_IS_CLANG
# This flag is supported by clang for 64-bit but not 32-bit so it will cause
# an unused command line flag warning for this file.
CC32FLAGSREMOVE += -fno-stack-clash-protection
# -mstack-protector-guard values from the 64-bit build are not valid for the
# 32-bit one. clang validates the values passed to these arguments during
# parsing, even when -fno-stack-protector is passed afterwards.
CC32FLAGSREMOVE += -mstack-protector-guard%
endif
LD32FLAGS := -Wl,-soname=linux-vdso32.so.1
AS32FLAGS := -D__VDSO32__
CC64FLAGS := -Wl,-soname=linux-vdso64.so.1
AS64FLAGS := -D__VDSO64__ -s
LD64FLAGS := -Wl,-soname=linux-vdso64.so.1
AS64FLAGS := -D__VDSO64__
targets += vdso32.lds
CPPFLAGS_vdso32.lds += -P -C -Upowerpc
@@ -92,13 +99,15 @@ include/generated/vdso64-offsets.h: $(obj)/vdso64.so.dbg FORCE
# actual build commands
quiet_cmd_vdso32ld_and_check = VDSO32L $@
cmd_vdso32ld_and_check = $(VDSOCC) $(c_flags) $(CC32FLAGS) -o $@ -Wl,-T$(filter %.lds,$^) $(filter %.o,$^) -z noexecstack ; $(cmd_vdso_check)
cmd_vdso32ld_and_check = $(VDSOCC) $(ldflags-y) $(CC32FLAGS) $(LD32FLAGS) -o $@ -Wl,-T$(filter %.lds,$^) $(filter %.o,$^); $(cmd_vdso_check)
quiet_cmd_vdso32as = VDSO32A $@
cmd_vdso32as = $(VDSOCC) $(a_flags) $(CC32FLAGS) $(AS32FLAGS) -c -o $@ $<
quiet_cmd_vdso32cc = VDSO32C $@
cmd_vdso32cc = $(VDSOCC) $(c_flags) $(CC32FLAGS) -c -o $@ $<
cmd_vdso32cc = $(VDSOCC) $(filter-out $(CC32FLAGSREMOVE), $(c_flags)) $(CC32FLAGS) -c -o $@ $<
quiet_cmd_vdso64ld_and_check = VDSO64L $@
cmd_vdso64ld_and_check = $(VDSOCC) $(c_flags) $(CC64FLAGS) -o $@ -Wl,-T$(filter %.lds,$^) $(filter %.o,$^) -z noexecstack ; $(cmd_vdso_check)
cmd_vdso64ld_and_check = $(VDSOCC) $(ldflags-y) $(LD64FLAGS) -o $@ -Wl,-T$(filter %.lds,$^) $(filter %.o,$^); $(cmd_vdso_check)
quiet_cmd_vdso64as = VDSO64A $@
cmd_vdso64as = $(VDSOCC) $(a_flags) $(CC64FLAGS) $(AS64FLAGS) -c -o $@ $<
cmd_vdso64as = $(VDSOCC) $(a_flags) $(AS64FLAGS) -c -o $@ $<
OBJECT_FILES_NON_STANDARD := y

View File

@@ -911,13 +911,18 @@ int setup_purgatory_ppc64(struct kimage *image, const void *slave_code,
if (dn) {
u64 val;
of_property_read_u64(dn, "opal-base-address", &val);
ret = of_property_read_u64(dn, "opal-base-address", &val);
if (ret)
goto out;
ret = kexec_purgatory_get_set_symbol(image, "opal_base", &val,
sizeof(val), false);
if (ret)
goto out;
of_property_read_u64(dn, "opal-entry-address", &val);
ret = of_property_read_u64(dn, "opal-entry-address", &val);
if (ret)
goto out;
ret = kexec_purgatory_get_set_symbol(image, "opal_entry", &val,
sizeof(val), false);
}

View File

@@ -4062,6 +4062,15 @@ static int kvmhv_vcpu_entry_p9_nested(struct kvm_vcpu *vcpu, u64 time_limit, uns
}
hvregs.hdec_expiry = time_limit;
/*
* hvregs has the doorbell status, so zero it here which
* enables us to receive doorbells when H_ENTER_NESTED is
* in progress for this vCPU
*/
if (vcpu->arch.doorbell_request)
vcpu->arch.doorbell_request = 0;
/*
* When setting DEC, we must always deal with irq_work_raise
* via NMI vs setting DEC. The problem occurs right as we
@@ -4644,7 +4653,6 @@ int kvmhv_run_single_vcpu(struct kvm_vcpu *vcpu, u64 time_limit,
lpcr |= LPCR_MER;
}
} else if (vcpu->arch.pending_exceptions ||
vcpu->arch.doorbell_request ||
xive_interrupt_pending(vcpu)) {
vcpu->arch.ret = RESUME_HOST;
goto out;

View File

@@ -32,7 +32,7 @@ void kvmhv_save_hv_regs(struct kvm_vcpu *vcpu, struct hv_guest_state *hr)
struct kvmppc_vcore *vc = vcpu->arch.vcore;
hr->pcr = vc->pcr | PCR_MASK;
hr->dpdes = vc->dpdes;
hr->dpdes = vcpu->arch.doorbell_request;
hr->hfscr = vcpu->arch.hfscr;
hr->tb_offset = vc->tb_offset;
hr->dawr0 = vcpu->arch.dawr0;
@@ -105,7 +105,7 @@ static void save_hv_return_state(struct kvm_vcpu *vcpu,
{
struct kvmppc_vcore *vc = vcpu->arch.vcore;
hr->dpdes = vc->dpdes;
hr->dpdes = vcpu->arch.doorbell_request;
hr->purr = vcpu->arch.purr;
hr->spurr = vcpu->arch.spurr;
hr->ic = vcpu->arch.ic;
@@ -143,7 +143,7 @@ static void restore_hv_regs(struct kvm_vcpu *vcpu, const struct hv_guest_state *
struct kvmppc_vcore *vc = vcpu->arch.vcore;
vc->pcr = hr->pcr | PCR_MASK;
vc->dpdes = hr->dpdes;
vcpu->arch.doorbell_request = hr->dpdes;
vcpu->arch.hfscr = hr->hfscr;
vcpu->arch.dawr0 = hr->dawr0;
vcpu->arch.dawrx0 = hr->dawrx0;
@@ -170,7 +170,13 @@ void kvmhv_restore_hv_return_state(struct kvm_vcpu *vcpu,
{
struct kvmppc_vcore *vc = vcpu->arch.vcore;
vc->dpdes = hr->dpdes;
/*
* This L2 vCPU might have received a doorbell while H_ENTER_NESTED was being handled.
* Make sure we preserve the doorbell if it was either:
* a) Sent after H_ENTER_NESTED was called on this vCPU (arch.doorbell_request would be 1)
* b) Doorbell was not handled and L2 exited for some other reason (hr->dpdes would be 1)
*/
vcpu->arch.doorbell_request = vcpu->arch.doorbell_request | hr->dpdes;
vcpu->arch.hfscr = hr->hfscr;
vcpu->arch.purr = hr->purr;
vcpu->arch.spurr = hr->spurr;

View File

@@ -780,8 +780,8 @@ static nokprobe_inline int emulate_stq(struct pt_regs *regs, unsigned long ea,
#endif /* __powerpc64 */
#ifdef CONFIG_VSX
void emulate_vsx_load(struct instruction_op *op, union vsx_reg *reg,
const void *mem, bool rev)
static nokprobe_inline void emulate_vsx_load(struct instruction_op *op, union vsx_reg *reg,
const void *mem, bool rev)
{
int size, read_size;
int i, j;
@@ -863,11 +863,9 @@ void emulate_vsx_load(struct instruction_op *op, union vsx_reg *reg,
break;
}
}
EXPORT_SYMBOL_GPL(emulate_vsx_load);
NOKPROBE_SYMBOL(emulate_vsx_load);
void emulate_vsx_store(struct instruction_op *op, const union vsx_reg *reg,
void *mem, bool rev)
static nokprobe_inline void emulate_vsx_store(struct instruction_op *op, const union vsx_reg *reg,
void *mem, bool rev)
{
int size, write_size;
int i, j;
@@ -955,8 +953,6 @@ void emulate_vsx_store(struct instruction_op *op, const union vsx_reg *reg,
break;
}
}
EXPORT_SYMBOL_GPL(emulate_vsx_store);
NOKPROBE_SYMBOL(emulate_vsx_store);
static nokprobe_inline int do_vsx_load(struct instruction_op *op,
unsigned long ea, struct pt_regs *regs,

View File

@@ -431,10 +431,16 @@ static int ___do_page_fault(struct pt_regs *regs, unsigned long address,
/*
* The kernel should never take an execute fault nor should it
* take a page fault to a kernel address or a page fault to a user
* address outside of dedicated places
* address outside of dedicated places.
*
* Rather than kfence directly reporting false negatives, search whether
* the NIP belongs to the fixup table for cases where fault could come
* from functions like copy_from_kernel_nofault().
*/
if (unlikely(!is_user && bad_kernel_fault(regs, error_code, address, is_write))) {
if (kfence_handle_page_fault(address, is_write, regs))
if (is_kfence_address((void *)address) &&
!search_exception_tables(instruction_pointer(regs)) &&
kfence_handle_page_fault(address, is_write, regs))
return 0;
return SIGSEGV;

View File

@@ -191,7 +191,7 @@ static int dtl_enable(struct dtl *dtl)
return -EBUSY;
/* ensure there are no other conflicting dtl users */
if (!read_trylock(&dtl_access_lock))
if (!down_read_trylock(&dtl_access_lock))
return -EBUSY;
n_entries = dtl_buf_entries;
@@ -199,7 +199,7 @@ static int dtl_enable(struct dtl *dtl)
if (!buf) {
printk(KERN_WARNING "%s: buffer alloc failed for cpu %d\n",
__func__, dtl->cpu);
read_unlock(&dtl_access_lock);
up_read(&dtl_access_lock);
return -ENOMEM;
}
@@ -217,7 +217,7 @@ static int dtl_enable(struct dtl *dtl)
spin_unlock(&dtl->lock);
if (rc) {
read_unlock(&dtl_access_lock);
up_read(&dtl_access_lock);
kmem_cache_free(dtl_cache, buf);
}
@@ -232,7 +232,7 @@ static void dtl_disable(struct dtl *dtl)
dtl->buf = NULL;
dtl->buf_entries = 0;
spin_unlock(&dtl->lock);
read_unlock(&dtl_access_lock);
up_read(&dtl_access_lock);
}
/* file interface */

View File

@@ -167,7 +167,7 @@ struct vcpu_dispatch_data {
*/
#define NR_CPUS_H NR_CPUS
DEFINE_RWLOCK(dtl_access_lock);
DECLARE_RWSEM(dtl_access_lock);
static DEFINE_PER_CPU(struct vcpu_dispatch_data, vcpu_disp_data);
static DEFINE_PER_CPU(u64, dtl_entry_ridx);
static DEFINE_PER_CPU(struct dtl_worker, dtl_workers);
@@ -461,7 +461,7 @@ static int dtl_worker_enable(unsigned long *time_limit)
{
int rc = 0, state;
if (!write_trylock(&dtl_access_lock)) {
if (!down_write_trylock(&dtl_access_lock)) {
rc = -EBUSY;
goto out;
}
@@ -477,7 +477,7 @@ static int dtl_worker_enable(unsigned long *time_limit)
pr_err("vcpudispatch_stats: unable to setup workqueue for DTL processing\n");
free_dtl_buffers(time_limit);
reset_global_dtl_mask();
write_unlock(&dtl_access_lock);
up_write(&dtl_access_lock);
rc = -EINVAL;
goto out;
}
@@ -492,7 +492,7 @@ static void dtl_worker_disable(unsigned long *time_limit)
cpuhp_remove_state(dtl_worker_state);
free_dtl_buffers(time_limit);
reset_global_dtl_mask();
write_unlock(&dtl_access_lock);
up_write(&dtl_access_lock);
}
static ssize_t vcpudispatch_stats_write(struct file *file, const char __user *p,

View File

@@ -484,9 +484,13 @@ ENTRY(\name)
ENDPROC(\name)
.endm
.section .irqentry.text, "ax"
INT_HANDLER ext_int_handler,__LC_EXT_OLD_PSW,do_ext_irq
INT_HANDLER io_int_handler,__LC_IO_OLD_PSW,do_io_irq
.section .kprobes.text, "ax"
/*
* Load idle PSW.
*/

View File

@@ -549,6 +549,12 @@ int __init arch_init_kprobes(void)
return 0;
}
int __init arch_populate_kprobe_blacklist(void)
{
return kprobe_add_area_blacklist((unsigned long)__irqentry_text_start,
(unsigned long)__irqentry_text_end);
}
int arch_trampoline_kprobe(struct kprobe *p)
{
return 0;

View File

@@ -1896,7 +1896,9 @@ static void cpumsf_pmu_stop(struct perf_event *event, int flags)
event->hw.state |= PERF_HES_STOPPED;
if ((flags & PERF_EF_UPDATE) && !(event->hw.state & PERF_HES_UPTODATE)) {
hw_perf_event_update(event, 1);
/* CPU hotplug off removes SDBs. No samples to extract. */
if (cpuhw->flags & PMU_F_RESERVED)
hw_perf_event_update(event, 1);
event->hw.state |= PERF_HES_UPTODATE;
}
perf_pmu_enable(event->pmu);

View File

@@ -12,7 +12,7 @@ kapi-hdrs-y := $(kapi)/unistd_nr.h
uapi-hdrs-y := $(uapi)/unistd_32.h
uapi-hdrs-y += $(uapi)/unistd_64.h
targets += $(addprefix ../../../,$(gen-y) $(kapi-hdrs-y) $(uapi-hdrs-y))
targets += $(addprefix ../../../../,$(gen-y) $(kapi-hdrs-y) $(uapi-hdrs-y))
PHONY += kapi uapi

View File

@@ -132,7 +132,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
static void *c_start(struct seq_file *m, loff_t *pos)
{
return *pos < NR_CPUS ? cpu_data + *pos : NULL;
return *pos < nr_cpu_ids ? cpu_data + *pos : NULL;
}
static void *c_next(struct seq_file *m, void *v, loff_t *pos)
{

View File

@@ -336,7 +336,7 @@ static struct platform_driver uml_net_driver = {
static void net_device_release(struct device *dev)
{
struct uml_net *device = dev_get_drvdata(dev);
struct uml_net *device = container_of(dev, struct uml_net, pdev.dev);
struct net_device *netdev = device->dev;
struct uml_net_private *lp = netdev_priv(netdev);

View File

@@ -799,7 +799,7 @@ static int ubd_open_dev(struct ubd *ubd_dev)
static void ubd_device_release(struct device *dev)
{
struct ubd *ubd_dev = dev_get_drvdata(dev);
struct ubd *ubd_dev = container_of(dev, struct ubd, pdev.dev);
blk_mq_free_tag_set(&ubd_dev->tag_set);
*ubd_dev = ((struct ubd) DEFAULT_UBD);

View File

@@ -823,7 +823,8 @@ static struct platform_driver uml_net_driver = {
static void vector_device_release(struct device *dev)
{
struct vector_device *device = dev_get_drvdata(dev);
struct vector_device *device =
container_of(dev, struct vector_device, pdev.dev);
struct net_device *netdev = device->dev;
list_del(&device->list);

View File

@@ -80,10 +80,10 @@ void __init setup_physmem(unsigned long start, unsigned long reserve_end,
unsigned long len, unsigned long long highmem)
{
unsigned long reserve = reserve_end - start;
long map_size = len - reserve;
unsigned long map_size = len - reserve;
int err;
if(map_size <= 0) {
if (len <= reserve) {
os_warn("Too few physical memory! Needed=%lu, given=%lu\n",
reserve, len);
exit(1);
@@ -94,7 +94,7 @@ void __init setup_physmem(unsigned long start, unsigned long reserve_end,
err = os_map_memory((void *) reserve_end, physmem_fd, reserve,
map_size, 1, 1, 1);
if (err < 0) {
os_warn("setup_physmem - mapping %ld bytes of memory at 0x%p "
os_warn("setup_physmem - mapping %lu bytes of memory at 0x%p "
"failed - errno = %d\n", map_size,
(void *) reserve_end, err);
exit(1);

View File

@@ -397,6 +397,6 @@ int elf_core_copy_fpregs(struct task_struct *t, elf_fpregset_t *fpu)
{
int cpu = current_thread_info()->cpu;
return save_i387_registers(userspace_pid[cpu], (unsigned long *) fpu);
return save_i387_registers(userspace_pid[cpu], (unsigned long *) fpu) == 0;
}

View File

@@ -53,5 +53,5 @@ void show_stack(struct task_struct *task, unsigned long *stack,
}
printk("%sCall Trace:\n", loglvl);
dump_trace(current, &stackops, (void *)loglvl);
dump_trace(task ?: current, &stackops, (void *)loglvl);
}

View File

@@ -21,7 +21,7 @@
#define T1 %xmm7
#define STATEP %rdi
#define LEN %rsi
#define LEN %esi
#define SRC %rdx
#define DST %rcx
@@ -76,32 +76,32 @@ SYM_FUNC_START_LOCAL(__load_partial)
xor %r9d, %r9d
pxor MSG, MSG
mov LEN, %r8
mov LEN, %r8d
and $0x1, %r8
jz .Lld_partial_1
mov LEN, %r8
mov LEN, %r8d
and $0x1E, %r8
add SRC, %r8
mov (%r8), %r9b
.Lld_partial_1:
mov LEN, %r8
mov LEN, %r8d
and $0x2, %r8
jz .Lld_partial_2
mov LEN, %r8
mov LEN, %r8d
and $0x1C, %r8
add SRC, %r8
shl $0x10, %r9
mov (%r8), %r9w
.Lld_partial_2:
mov LEN, %r8
mov LEN, %r8d
and $0x4, %r8
jz .Lld_partial_4
mov LEN, %r8
mov LEN, %r8d
and $0x18, %r8
add SRC, %r8
shl $32, %r9
@@ -111,11 +111,11 @@ SYM_FUNC_START_LOCAL(__load_partial)
.Lld_partial_4:
movq %r9, MSG
mov LEN, %r8
mov LEN, %r8d
and $0x8, %r8
jz .Lld_partial_8
mov LEN, %r8
mov LEN, %r8d
and $0x10, %r8
add SRC, %r8
pslldq $8, MSG
@@ -139,7 +139,7 @@ SYM_FUNC_END(__load_partial)
* %r10
*/
SYM_FUNC_START_LOCAL(__store_partial)
mov LEN, %r8
mov LEN, %r8d
mov DST, %r9
movq T0, %r10
@@ -677,7 +677,7 @@ SYM_TYPED_FUNC_START(crypto_aegis128_aesni_dec_tail)
call __store_partial
/* mask with byte count: */
movq LEN, T0
movd LEN, T0
punpcklbw T0, T0
punpcklbw T0, T0
punpcklbw T0, T0
@@ -702,7 +702,8 @@ SYM_FUNC_END(crypto_aegis128_aesni_dec_tail)
/*
* void crypto_aegis128_aesni_final(void *state, void *tag_xor,
* u64 assoclen, u64 cryptlen);
* unsigned int assoclen,
* unsigned int cryptlen);
*/
SYM_FUNC_START(crypto_aegis128_aesni_final)
FRAME_BEGIN
@@ -715,8 +716,8 @@ SYM_FUNC_START(crypto_aegis128_aesni_final)
movdqu 0x40(STATEP), STATE4
/* prepare length block: */
movq %rdx, MSG
movq %rcx, T0
movd %edx, MSG
movd %ecx, T0
pslldq $8, T0
pxor T0, MSG
psllq $3, MSG /* multiply by 8 (to get bit count) */

View File

@@ -881,11 +881,12 @@ static int amd_pmu_handle_irq(struct pt_regs *regs)
static int amd_pmu_v2_handle_irq(struct pt_regs *regs)
{
struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
static atomic64_t status_warned = ATOMIC64_INIT(0);
u64 reserved, status, mask, new_bits, prev_bits;
struct perf_sample_data data;
struct hw_perf_event *hwc;
struct perf_event *event;
int handled = 0, idx;
u64 reserved, status, mask;
bool pmu_enabled;
/*
@@ -952,7 +953,12 @@ static int amd_pmu_v2_handle_irq(struct pt_regs *regs)
* the corresponding PMCs are expected to be inactive according to the
* active_mask
*/
WARN_ON(status > 0);
if (status > 0) {
prev_bits = atomic64_fetch_or(status, &status_warned);
// A new bit was set for the very first time.
new_bits = status & ~prev_bits;
WARN(new_bits, "New overflows for inactive PMCs: %llx\n", new_bits);
}
/* Clear overflow and freeze bits */
amd_pmu_ack_global_status(~status);

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