mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
Merge tag 'android14-6.1.115_r00' into android14-6.1
Merge up to the 6.1.115 LTS release into android14-6.1. Changes in here include: *47a8b5f3edMerge0d968ced73("mm/page_alloc: treat RT tasks similar to __GFP_HIGH") into android14-6.1-lts |\ | *0d968ced73mm/page_alloc: treat RT tasks similar to __GFP_HIGH * |500bbbbd01Merge241398329a("mm/page_alloc: rename ALLOC_HIGH to ALLOC_MIN_RESERVE") into android14-6.1-lts |\| | *241398329amm/page_alloc: rename ALLOC_HIGH to ALLOC_MIN_RESERVE * |ad46e48e1bMergeb5dc5b7de7("cxl/port: Fix cxl_bus_rescan() vs bus_rescan_devices()") into android14-6.1-lts |\| | *b5dc5b7de7cxl/port: Fix cxl_bus_rescan() vs bus_rescan_devices() | *f70f795227cxl/acpi: Move rescan to the workqueue | *24aed1b462riscv: Remove duplicated GET_RM | *02ab44d3c1riscv: Remove unused GENERATING_ASM_OFFSETS | *25fe64922friscv: Use '%u' to format the output of 'cpu' | *235eaacf5criscv: efi: Set NX compat flag in PE/COFF header | *d1b2d786e5ALSA: hda/realtek: Limit internal Mic boost on Dell platform | *23304adf29riscv: vdso: Prevent the compiler from inserting calls to memset() | *71f14a9f5ccgroup/bpf: use a dedicated workqueue for cgroup bpf destruction | *25326b9c13block: fix sanity checks in blk_rq_map_user_bvec | *58c7f44c7bnilfs2: fix potential deadlock with newly created symlinks | *55d01b652eiio: light: veml6030: fix microlux value calculation | *f51343f346iio: adc: ad7124: fix division by zero in ad7124_set_channel_odr() | *ccbc10647astaging: iio: frequency: ad9832: fix division by zero in ad9832_calc_freqreg() | *23f9cef17ewifi: iwlegacy: Clear stale interrupts before resuming device | *ba392e1355wifi: cfg80211: clear wdev->cqm_config pointer on free | *6cc23898e6wifi: ath10k: Fix memory leak in management tx | *8f6cd4d5bbwifi: mac80211: do not pass a stopped vif to the driver in .get_txpower | *92d847a35eRevert "driver core: Fix uevent_show() vs driver detach race" | *042ef81f6fxhci: Use pm_runtime_get to prevent RPM on unsupported systems | *b12b0948fbxhci: Fix Link TRB DMA in command ring stopped completion event | *88f8093a2ausb: typec: fix unreleased fwnode_handle in typec_port_register_altmodes() | *6bc6ac81edusb: phy: Fix API devm_usb_put_phy() can not release the phy | *1bdd6270eausbip: tools: Fix detach_port() invalid port error path | *93bb7700b7ALSA: usb-audio: Add quirks for Dell WD19 dock | *cf7ee2291dUSB: gadget: dummy-hcd: Fix "task hung" problem | *102c4e5869usb: gadget: dummy_hcd: execute hrtimer callback in softirq context | *5b966c6192usb: gadget: dummy_hcd: Set transfer interval to 1 microframe | *8ffba8d917usb: gadget: dummy_hcd: Switch to hrtimer transfer scheduler | *b946e7b447misc: sgi-gru: Don't disable preemption in GRU driver | *3c39d486bdNFS: remove revoked delegation from server's delegation list | *22713dcf33net: amd: mvme147: Fix probe banner message | *e479e547e3scsi: scsi_transport_fc: Allow setting rport state to current state | *14a23e15a5fs/ntfs3: Additional check in ni_clear() | *c8e7d3b72efs/ntfs3: Fix possible deadlock in mi_read | *7c5a0c1715fs/ntfs3: Stale inode instead of bad | *0ef5f10d83fs/ntfs3: Fix warning possible deadlock in ntfs_set_state | *1b6bc5f721fs/ntfs3: Check if more than chunk-size bytes are written | *23039b4aafACPI: CPPC: Make rmw_lock a raw_spin_lock | *bc795bc1aaafs: Fix missing subdir edit when renamed between parent dirs | *58d24f6b51afs: Automatically generate trace tag enums | *aac8f6711bfirmware: arm_sdei: Fix the input parameter of cpuhp_remove_state() | *fdd1ee0ae1kasan: Fix Software Tag-Based KASAN with GCC | *df9552f272compiler-gcc: remove attribute support check for `__no_sanitize_address__` | *7c20cf5eb5compiler-gcc: be consistent with underscores use for `no_sanitize` | *c5316d04a9iomap: turn iomap_want_unshare_iter into an inline function * |0df5dc7d73Mergebdbc96c231("fsdax: dax_unshare_iter needs to copy entire blocks") into android14-6.1-lts |\| | *bdbc96c231fsdax: dax_unshare_iter needs to copy entire blocks | *a01987cd90fsdax: remove zeroing code from dax_unshare_iter | *aa56ea3b7diomap: share iomap_unshare_iter predicate code with fsdax | *eb4c6fe20aiomap: don't bother unsharing delalloc extents | *50c2cffdcfiomap: improve shared block detection in iomap_unshare_iter | *6dffd7067diomap: convert iomap_unshare_iter to use large folios * |a566b71fedMerged321732352("netfilter: nft_payload: sanitize offset and length before calling skb_checksum()") into android14-6.1-lts |\| | *d321732352netfilter: nft_payload: sanitize offset and length before calling skb_checksum() | *d8f298eb66mlxsw: spectrum_ipip: Fix memory leak when changing remote IPv6 address | *637edb1156mlxsw: spectrum_ipip: Rename Spectrum-2 ip6gre operations | *f068284cf1mlxsw: spectrum_router: Add support for double entry RIFs | *3067fd9c8amlxsw: spectrum_ptp: Add missing verification before pushing Tx header | *a84978a9cdnet: skip offload for NETIF_F_IPV6_CSUM if ipv6 header contains extension | *5d9054b9f7Bluetooth: hci: fix null-ptr-deref in hci_read_supported_codecs | *4f7b586aaenetfilter: nf_reject_ipv6: fix potential crash in nf_send_reset6() | *cb7c388b59netfilter: Fix use-after-free in get_info() | *a035df0b98bpf: Fix out-of-bounds write in trie_get_next_key() | *bcba86e03bnetdevsim: Add trailing zero to terminate the string in nsim_nexthop_bucket_activity_write() | *580b3189c1net/sched: stop qdisc_tree_reduce_backlog on TC_H_ROOT | *88bc4fe48bgtp: allow -1 to be specified as file description from userspace | *72c0f482e3ipv4: ip_tunnel: Fix suspicious RCU usage warning in ip_tunnel_init_flow() | *a3ff23f7c3net: stmmac: TSO: Fix unbalanced DMA map/unmap for non-paged SKB data | *872932cf75macsec: Fix use-after-free while sending the offloading packet | *618ee79e81ASoC: cs42l51: Fix some error handling paths in cs42l51_probe() | *64d63557dewifi: iwlwifi: mvm: Fix response handling in iwl_mvm_send_recovery_cmd() | *a9faac8818wifi: iwlwifi: mvm: disconnect station vifs if recovery failed | *76210223c2RDMA/bnxt_re: synchronize the qp-handle table array | *14b45fa0ceRDMA/mlx5: Round max_rd_atomic/max_dest_rd_atomic up instead of down | *c466415717RDMA/cxgb4: Dump vendor specific QP details | *a419868e8ewifi: brcm80211: BRCM_TRACING should depend on TRACING | *d01040d82bwifi: ath11k: Fix invalid ring usage in full monitor mode | *45eed27b88wifi: mac80211: skip non-uploaded keys in ieee80211_iter_keys | *dd7a6c914cmac80211: MAC80211_MESSAGE_TRACING should depend on TRACING | *1159e77ccfwifi: iwlegacy: Fix "field-spanning write" warning in il_enqueue_hcmd() | *c22c748834cgroup: Fix potential overflow issue when checking max_depth | *ce87f72404fs/proc/kcore.c: allow translation of physical memory addresses | *7f9b58a646fs/proc/kcore: reinstate bounce buffer for KCORE_TEXT regions | *28327558b2fs/proc/kcore: convert read_kcore() to read_kcore_iter() | *1f633ac7dffs/proc/kcore: avoid bounce buffer for ktext data | *731451a16amm: remove kern_addr_valid() completely | *f267bcb22eselftests/mm: fix incorrect buffer->mirror size in hmm2 double_map test | *6c3d838783cpufreq: Avoid a bad reference count on CPU node | *380bcd5aa8cpufreq: Generalize of_perf_domain_get_sharing_cpumask phandle format * |bb558c55a5Revert "genetlink: hold RCU in genlmsg_mcast()" * |c5efbe731bRevert "tty/serial: Make ->dcd_change()+uart_handle_dcd_change() status bool active" * |3aee75909fRevert "serial: Make uart_handle_cts_change() status param bool active" * |d82cacc625Revert "serial: imx: Update mctrl old_status on RTSD interrupt" * |ca7ef58ce4Revert "arm64:uprobe fix the uprobe SWBP_INSN in big-endian" * |bfff915c97Revert "arm64: probes: Fix uprobes for big-endian kernels" * |535085db57Revert "arm64/uprobes: change the uprobe_opcode_t typedef to fix the sparse warning" * |983df5e9efRevert "usb: gadget: Add function wakeup support" * |56f28f2269Revert "XHCI: Separate PORT and CAPs macros into dedicated file" * |fae9c0cd1aRevert "usb: dwc3: core: Fix system suspend on TI AM62 platforms" * |45a7ce8a2bANDROID: GKI: fix up build break where timer_delete_sync() was used * |a332a3d23dMerge 6.1.115 into android14-6.1-lts |\| | *7c15117f94Linux 6.1.115 | *bce1afaa21xfrm: validate new SA's prefixlen using SA family when sel.family is unset | *354b3847eaarm64/uprobes: change the uprobe_opcode_t typedef to fix the sparse warning | *2c3766fac9ACPI: PRM: Clean up guid type in struct prm_handler_info | *fc35bb2e1fplatform/x86: dell-wmi: Ignore suspend notifications | *e19bf49e90ASoC: qcom: Fix NULL Dereference in asoc_qcom_lpass_cpu_platform_probe() | *61b8628cbbnet: phy: dp83822: Fix reset pin definitions | *d7b5876a6eserial: protect uart_port_dtr_rts() in uart_shutdown() too | *8251093971selinux: improve error checking in sel_write_load() | *5660bcc4dddrm/amd/display: Disable PSR-SU on Parade 08-01 TCON too | *4faa6e3e66hv_netvsc: Fix VF namespace also in synthetic NIC NETDEV_REGISTER event | *dc2ad8e881xfrm: fix one more kernel-infoleak in algo dumping | *9bb6ec1175LoongArch: Get correct cores_per_package for SMT systems | *22aba10069ALSA: hda/realtek: Add subwoofer quirk for Acer Predator G9-593 | *9df62691d3KVM: arm64: Don't eagerly teardown the vgic on init error | *6876793907KVM: nSVM: Ignore nCR3[4:0] when loading PDPTEs from memory | *958f8343f4openat2: explicitly return -E2BIG for (usize > PAGE_SIZE) | *27524f6562nilfs2: fix kernel bug due to missing clearing of buffer delay flag | *71edf620e3ACPI: button: Add DMI quirk for Samsung Galaxy Book2 to fix initial lid detection issue | *8ce081ad84ACPI: PRM: Find EFI_MEMORY_RUNTIME block for PRM handler and context | *e7f56a30c5ACPI: resource: Add LG 16T90SP to irq1_level_low_skip_override[] | *cd67af3c17drm/amd: Guard against bad data for ATIF ACPI method | *deee4bd713btrfs: zoned: fix zone unusable accounting for freed reserved extent | *8a43e8aed9btrfs: fix passing 0 to ERR_PTR in btrfs_search_dir_index_item() | *bc5085816ecpufreq: CPPC: fix perf_to_khz/khz_to_perf conversion exception | *ff2a9c4029cpufreq/cppc: Move and rename cppc_cpufreq_{perf_to_khz|khz_to_perf}() | *31b55b2be4ALSA: hda/realtek: Update default depop procedure | *796adf538dpowercap: dtpm_devfreq: Fix error check against dev_pm_qos_add_request() | *d2826873dbALSA: firewire-lib: Avoid division by zero in apply_constraint_to_size() | *02753a9010ASoC: dt-bindings: davinci-mcasp: Fix interrupt properties | *a116e7c334ASoC: dt-bindings: davinci-mcasp: Fix interrupts property | *7a5c653edebpf,perf: Fix perf_event_detach_bpf_prog error handling | *876ac72d53Bluetooth: ISO: Fix UAF on iso_sock_timeout | *9ddda5d967Bluetooth: SCO: Fix UAF on sco_sock_timeout | *5f063bbf1eposix-clock: posix-clock: Fix unbalanced locking in pc_clock_settime() | *3216a2bd61r8169: avoid unsolicited interrupts | *fe371f0840net: sched: fix use-after-free in taprio_change() | *b72b1b4c9enet/sched: act_api: deny mismatched skip_sw/skip_hw flags for actions created by classifiers | *d9edc3428cnet: usb: usbnet: fix name regression | *114f412794net: fix races in netdev_tx_sent_queue()/dev_watchdog() | *91b82cf827net/sched: adjust device watchdog timer to detect stopped queue at right time | *628e82e270net: provide macros for commonly copied lockless queue stop/wake code | *1af2abd342docs: net: reformat driver.rst from a list to sections | *9683804e36net: wwan: fix global oob in wwan_rtnl_policy | *6ee5a1b7cenetfilter: xtables: fix typo causing some targets not to load on IPv6 | *549f619681net: dsa: mv88e6xxx: Fix error when setting port policy on mv88e6393x | *09ce491112octeon_ep: Add SKB allocation failures handling in __octep_oq_process_rx() | *d48de29a70octeon_ep: Implement helper for iterating packets in Rx queue | *1ba9c6fc9fnet: plip: fix break; causing plip to never transmit | *4c5f170ef4be2net: fix potential memory leak in be_xmit() | *1a17a4ac2dnet/sun3_82586: fix potential memory leak in sun3_82586_send_packet() | *681fa845ccxfrm: respect ip protocols rules criteria when performing dst lookups | *3094585b5fxfrm: extract dst lookup parameters into a struct | *f4ed40d1c6tracing: Consider the NULL character when validating the event length | *d52ac941fejfs: Fix sanity check in dbMount | *a67d4a02bfLoongArch: Don't crash in stack_top() for tasks without vDSO | *eb3710efffLoongArch: Add support to clone a time namespace | *fa001d7e2cplatform/x86: dell-sysman: add support for alienware products | *d71a2d54fbASoC: qcom: sm8250: add qrb4210-rb2-sndcard compatible string | *72e445df65udf: fix uninit-value use in udf_get_fileshortad | *487b24136dudf: refactor udf_current_aext() to handle error | *908263286earm64: Force position-independent veneers | *95124c5429ASoC: fsl_sai: Enable 'FIFO continue on error' FCONT bit | *a548f8773eASoC: codecs: lpass-rx-macro: add missing CDC_RX_BCL_VBAT_RF_PROC2 to default regs values | *7458a6cdaedrm/vboxvideo: Replace fake VLA at end of vbva_mouse_pointer_shape with real VLA | *3dfd727873fs/ntfs3: Add more attributes checks in mi_enum_attr() | *0bdf77be23exec: don't WARN for racy path_noexec check | *5258c70d0bblock, bfq: fix procress reference leakage for bfqq in merge chain | *e1e87568a2serial: imx: Update mctrl old_status on RTSD interrupt | *04de065652serial: Make uart_handle_cts_change() status param bool active | *376d15bad7tty/serial: Make ->dcd_change()+uart_handle_dcd_change() status bool active | *85ca88f931usb: dwc3: core: Fix system suspend on TI AM62 platforms | *e0deb60b16XHCI: Separate PORT and CAPs macros into dedicated file | *e36d975b04usb: gadget: Add function wakeup support | *fa6e2ee414usb: gadget: f_uac2: fix return value for UAC2_ATTRIBUTE_STRING store | *193749e04eusb: gadget: f_uac2: fix non-newline-terminated function name | *158833b519usb: gadget: f_uac2: Replace snprintf() with the safer scnprintf() variant | *ec9b965459xhci: dbc: honor usb transfer size boundaries. | *4049dee898xhci: dbgtty: use kfifo from tty_port struct | *3121da179fxhci: dbgtty: remove kfifo_out() wrapper | *14841bb7a5arm64: probes: Fix uprobes for big-endian kernels | *63f9dae763arm64:uprobe fix the uprobe SWBP_INSN in big-endian | *82da3aedc9bpf: Fix iter/task tid filtering | *9c661caba1riscv, bpf: Make BPF_CMPXCHG fully ordered | *e58fb7ddbanet/mlx5: Unregister notifier on eswitch init failure | *d1606090bbnet/mlx5: Fix command bitmask initialization | *18c8ea940dnet/mlx5: split mlx5_cmd_init() to probe and reload routines | *5cd775efbbnet/mlx5: Remove redundant cmdif revision check | *03015b6329Bluetooth: bnep: fix wild-memory-access in proto_unregister | *318ca89bc5s390: Initialize psw mask in perf_arch_fetch_caller_regs() | *bee1b68cb8usb: typec: altmode should keep reference to parent | *2ef632bfb8smb: client: fix OOBs when building SMB2_IOCTL request | *895ab72942scsi: target: core: Fix null-ptr-deref in target_alloc_device() | *b3262e13e2net: ravb: Only advertise Rx/Tx timestamps if hardware supports it | *30e0906e0dravb: Remove setting of RX software timestamp | *ae53d09f11genetlink: hold RCU in genlmsg_mcast() | *5071beb59etcp/dccp: Don't use timer_pending() in reqsk_queue_unlink(). | *96972e08b7drm/msm/dpu: don't always program merge_3d block | *f9f7c872dfdrm/msm/dpu: Wire up DSC mask for active CTL configuration | *2d026274cdirqchip/renesas-rzg2l: Fix missing put_device | *218a0a49eairqchip/renesas-rzg2l: Add support for suspend to RAM | *a35ab82756irqchip/renesas-rzg2l: Document structure members | *57419aaeadirqchip/renesas-rzg2l: Align struct member names to tabs | *533d2f30aenet: systemport: fix potential memory leak in bcm_sysport_xmit() | *f1ed2bded8net: xilinx: axienet: fix potential memory leak in axienet_start_xmit() | *51ecd8e4a2net/smc: Fix searching in list of known pnetids in smc_pnet_add_pnetid | *3e7b6d8c58net: ethernet: aeroflex: fix potential memory leak in greth_start_xmit_gbit() | *24973f4b64netdevsim: use cond_resched() in nsim_dev_trap_report_work() | *36ee799f41macsec: don't increment counters for an unrelated SA | *a0c86f17fcdrm/amd/amdgpu: Fix double unlock in amdgpu_mes_add_ring | *afb2159b78octeontx2-af: Fix potential integer overflows on integer shifts | *a2458411a0net: usb: usbnet: fix race in probe failure | *33053d901fdrm/msm: Allocate memory for disp snapshot with kvzalloc() | *e8e9f2a12adrm/msm: Avoid NULL dereference in msm_disp_state_print_regs() | *4a14351a47drm/msm/dsi: fix 32-bit signed integer extension in pclk_rate calculation | *2cbcac6db8drm/msm/dpu: make sure phys resources are properly initialized | *ea701c1849RDMA/bnxt_re: Fix a bug while setting up Level-2 PBL pages | *ff80a98104RDMA/bnxt_re: Return more meaningful error | *0819011298ipv4: give an IPv4 dev to blackhole_netdev | *63ce626d98RDMA/srpt: Make slab cache names unique | *d22eca0399RDMA/irdma: Fix misspelling of "accept*" | *0e5b2abae0RDMA/cxgb4: Fix RDMA_CM_EVENT_UNREACHABLE error for iWARP | *21dc97d508ALSA: hda/cs8409: Fix possible NULL dereference | *ea45f1e87cselftests/bpf: Fix cross-compiling urandom_read | *81b23c8bb5drm/vmwgfx: Handle possible ENOMEM in vmw_stdu_connector_atomic_check | *3e220b6f53iio: frequency: admv4420: fix missing select REMAP_SPI in Kconfig | *c947b337e5iio: frequency: {admv4420,adrf6780}: format Kconfig entries | *eb485fbdc2bpf: fix kfunc btf caching for modules | *dcc0685ab4s390/pci: Handle PCI error codes other than 0x3a | *057b1165ebARM: dts: bcm2837-rpi-cm3-io3: Fix HDMI hpd-gpio pin | *42ef45fee3x86/resctrl: Avoid overflow in MB settings in bw_validate() | *76dd679c3bRDMA/bnxt_re: Add a check for memory allocation | *9dacff209bRDMA/bnxt_re: Fix incorrect AVID type in WQE structure | *616e935d8abpf: Fix memory leak in bpf_core_apply | *a778fbe087bpf: devmap: provide rxq after redirect | *314dbee9febpf: Make sure internal and UAPI bpf_redirect flags don't overlap | *64f3b66c99iio: accel: bma400: Fix uninitialized variable field_value in tap event handling. | *5eb34999d1bpf: Use raw_spinlock_t in ringbuf * |db64cb409eRevert "irqchip/gic-v4: Don't allow a VMOVP on a dying VPE" * |4d5ecb6e03Merge 6.1.114 into android14-6.1-lts |\| | *7ec6f9fa3dLinux 6.1.114 | *d285ba6f22udf: Avoid directory type conversion failure due to ENOMEM | *7089811e20udf: Allocate name buffer in directory iterator on heap | *27bbab47adALSA: hda/conexant - Use cached pin control for Node 0x1d on HP EliteOne 1000 G2 | *9470ac9786powerpc/64: Add big-endian ELFv2 flavour to crypto VMX asm generation | *270a6f9df3nilfs2: propagate directory read errors from nilfs_find_entry() | *6999328f2amptcp: prevent MPC handshake on port-based signal endpoints | *ba8e65814etcp: fix mptcp DSS corruption due to large pmtu xmit | *b2a4a2dad3irqchip/sifive-plic: Unmask interrupt in plic_irq_enable() | *64b12b061cirqchip/gic-v4: Don't allow a VMOVP on a dying VPE | *0a4d4dbef6pinctrl: apple: check devm_kasprintf() returned value | *4a81800ef0pinctrl: ocelot: fix system hang on level based interrupts | *bf171b5e86tty: n_gsm: Fix use-after-free in gsm_cleanup_mux | *43778de19dx86/entry_32: Clear CPU buffers after register restore in NMI return | *7f06caaae0x86/entry_32: Do not clobber user EFLAGS.ZF | *25636317e5x86/apic: Always explicitly disarm TSC-deadline timer | *cf9f26994cx86/resctrl: Annotate get_mem_config() functions as __init | *fca048f222parport: Proper fix for array out-of-bounds access | *d24a0b1a30usb: dwc3: Wait for EndXfer completion before restoring GUSB2PHYCFG | *9a6a518a9eUSB: serial: option: add Telit FN920C04 MBIM compositions | *62d9b2ee0bUSB: serial: option: add support for Quectel EG916Q-GL | *894eee6f6axhci: Mitigate failed set dequeue pointer commands | *8a3dc841e3xhci: Fix incorrect stream context type macro | *8dfea4be20Bluetooth: btusb: Fix regression with fake CSR controllers 0a12:0001 | *fa4b832c5aBluetooth: ISO: Fix multiple init when debugfs is disabled | *9ec4db1b18Bluetooth: Remove debugfs directory on module init failure | *4af7ba39a1Bluetooth: Call iso_exit() on module unload | *fec9ec7dd9iio: adc: ti-ads124s08: add missing select IIO_(TRIGGERED_)BUFFER in Kconfig | *5501bd8c13iio: dac: ad3552r: add missing select IIO_(TRIGGERED_)BUFFER in Kconfig | *3e074e9336iio: proximity: mb1232: add missing select IIO_(TRIGGERED_)BUFFER in Kconfig | *ee5192e144iio: dac: ad5766: add missing select IIO_(TRIGGERED_)BUFFER in Kconfig | *cdfc07bbf8iio: amplifiers: ada4250: add missing select REGMAP_SPI in Kconfig | *0ee119cf7diio: light: opt3001: add missing full-scale range value | *bcb90518cciio: light: veml6030: fix IIO device retrieval from embedded device | *f8660a0b24iio: light: veml6030: fix ALS sensor resolution | *3d96aec20ciio: hid-sensors: Fix an error handling path in _hid_sensor_set_report_latency() | *f07f204debiio: adc: ti-ads8688: add missing select IIO_(TRIGGERED_)BUFFER in Kconfig | *104c86fd44iio: dac: stm32-dac-core: add missing select REGMAP_MMIO in Kconfig | *99d29d05ffiio: dac: ltc1660: add missing select REGMAP_SPI in Kconfig | *c978026869iio: dac: ad5770r: add missing select REGMAP_SPI in Kconfig | *dc79c24e58drm/amdgpu: prevent BO_HANDLES error from being overwritten | *d18dba06f9drm/amdgpu/swsmu: Only force workload setup on init | *3a3b2a29d0drm/vmwgfx: Handle surface check failure correctly | *c3cd27d85fdrm/radeon: Fix encoder->possible_clones | *7de759fceascsi: ufs: core: Set SDEV_OFFLINE when UFS is shut down | *abb1c50afaio_uring/sqpoll: close race on waiting for sqring entries | *b5e900a361blk-rq-qos: fix crash on rq_qos_wait vs. rq_qos_wake_function race | *231ced8a17x86/bugs: Do not use UNTRAIN_RET with IBPB on entry | *e4f2043985x86/bugs: Skip RSB fill at VMEXIT | *e6f0abe6f1x86/entry: Have entry_ibpb() invalidate return predictions | *72ec8fc23ex86/cpufeatures: Add a IBPB_NO_RET BUG flag | *bc114b2a04x86/cpufeatures: Define X86_FEATURE_AMD_IBPB_RET | *6328b4891bKVM: s390: Change virtual to physical address access in diag 0x258 handler | *ab09afbaebKVM: s390: gaccess: Check if guest address is in memslot | *1ef44fb30bs390/sclp_vt220: Convert newlines to CRLF instead of LFCR | *132800e37bs390/sclp: Deactivate sclp after all its users | *cbfa3a83ebiommu/vt-d: Fix incorrect pci_for_each_dma_alias() for non-PCI devices | *2219e5f972drm/shmem-helper: Fix BUG_ON() on mmap(PROT_WRITE, MAP_PRIVATE) | *7c7874977dmaple_tree: correct tree corruption on spanning store | *eff23e59b7devlink: bump the instance index directly when iterating | *031f06fd75devlink: drop the filter argument from devlinks_xa_find_get | *6ec0fe3756mm/swapfile: skip HugeTLB pages for unuse_vma | *f9ecda2088fat: fix uninitialized variable | *9ca0d4513airqchip/gic-v3-its: Fix VSYNC referencing an unmapped VPE on GIC v4.1 | *831e19e565net: macb: Avoid 20s boot delay by skipping MDIO bus registration for fixed-link PHY | *a031434243arm64: probes: Fix simulate_ldr*_literal() | *bae792617aarm64: probes: Remove broken LDR (literal) uprobe support | *27abbde44bposix-clock: Fix missing timespec64 check in pc_clock_settime() | *4486ec9417net: enetc: add missing static descriptor and inline keyword | *63b0c94992net: enetc: remove xdp_drops statistic from enetc_xdp_drop() | *097d24d5e7udf: Don't return bh from udf_expand_dir_adinicb() | *701cabd26audf: Handle error when expanding directory | *15b4182497udf: Remove old directory iteration code | *940fd9d7fcudf: Convert udf_link() to new directory iteration code | *32467238b1udf: Convert udf_mkdir() to new directory iteration code | *1a086d4daeudf: Convert udf_add_nondir() to new directory iteration | *221aed9146udf: Implement adding of dir entries using new iteration code | *4e52300d9cudf: Convert udf_unlink() to new directory iteration code | *d2e664c667udf: Convert udf_rmdir() to new directory iteration code | *ecf68d16c7udf: Convert empty_dir() to new directory iteration code | *1e5f534121udf: Convert udf_get_parent() to new directory iteration code | *0f7fd74594udf: Convert udf_lookup() to use new directory iteration code | *31f1ca5c4fudf: Convert udf_readdir() to new directory iteration | *9616d00140udf: Convert udf_rename() to new directory iteration code | *a4265251e7udf: Provide function to mark entry as deleted using new directory iteration code | *507ab6a5beudf: Implement searching for directory entry using new iteration code | *0621e30fd8udf: Move udf_expand_dir_adinicb() to its callsite | *5f503315e1udf: Convert udf_expand_dir_adinicb() to new directory iteration | *9353fb8225udf: New directory iteration code | *da3343bc08mptcp: pm: fix UaF read in mptcp_pm_nl_rm_addr_or_subflow | *5014a7c916ALSA: hda/conexant - Fix audio routing for HP EliteOne 1000 G2 | *a9839c37fdksmbd: fix user-after-free from session log off | *b37de9491fbtrfs: fix uninitialized pointer free on read_alloc_one_name() error | *12cf028381btrfs: fix uninitialized pointer free in add_inode_ref() * |edae6e6e3dMerge 6.1.113 into android14-6.1-lts |\| | *54d90d17e8Linux 6.1.113 | *2da76b4d08Revert "iommu/vt-d: Retrieve IOMMU perfmon capability information" | *de0456460fblock, bfq: fix uaf for accessing waker_bfqq after splitting | *7c21e98539perf lock: Don't pass an ERR_PTR() directly to perf_session__delete() | *a3be020294net: ethernet: cortina: Restore TSO support | *5ea0b7af38secretmem: disable memfd_secret() if arch cannot set direct map | *8608196a15kthread: unpark only parked kthread | *614bfb2050nouveau/dmem: Fix vulnerability in migrate_to_ram upon copy error | *9c4198dfdcdevice-dax: correct pgoff align in dax_set_mapping() | *409b7af297mptcp: pm: do not remove closing subflows | *35668f8ec8mptcp: handle consistently DSS corruption | *3b196f4759net: dsa: lan9303: ensure chip reset and wait for READY status | *5f03a7f601net: Fix an unsafe loop on the list | *b7d22a79ffnet: explicitly clear the sk pointer, when pf->create fails | *cd2b08a6deata: libata: avoid superfluous disk spin down + spin up during hibernation | *71cc449287mptcp: fallback when MPTCP opts are dropped after 1st data | *3afeceda85scsi: wd33c93: Don't use stale scsi_pointer value | *75452da51edrm/vc4: Stop the active perfmon before being destroyed | *0c9e9a3a48drm/v3d: Stop the active perfmon before being destroyed | *957d6a2f28hid: intel-ish-hid: Fix uninitialized variable 'rv' in ish_fw_xfer_direct_dma | *192d1b8d7ausb: gadget: core: force synchronous registration | *97c900e55cusb: storage: ignore bogus device raised by JieLi BR21 USB sound chip | *1132e01090usb: xhci: Fix problem with xhci resume from suspend | *759e9e87adusb: dwc3: core: Stop processing of pending events if controller is halted | *c619e923b3Revert "usb: yurex: Replace snprintf() with the safer scnprintf() variant" | *a925279e5aHID: plantronics: Workaround for an unexcepted opposite volume key | *4cd9c5a0fcHID: amd_sfh: Switch to device-managed dmam_alloc_coherent() | *80faf6afebRevert "net: ibm/emac: allocate dummy net_device dynamically" | *9fae1a346fhwmon: (adt7470) Add missing dependency on REGMAP_I2C | *3287c0a8d7hwmon: (adm9240) Add missing dependency on REGMAP_I2C | *4fbe3fca85hwmon: (tmp513) Add missing dependency on REGMAP_I2C | *a2bb0c5d00wifi: mac80211: Avoid address calculations via out of bounds array indexing | *5005e2e159net/mlx5: Always drain health in shutdown callback | *af017667adHID: multitouch: Add support for lenovo Y9000P Touchpad | *2d07a38ec9rust: macros: provide correct provenance when constructing THIS_MODULE | *ff5e0f8953slip: make slhc_remember() more robust against malicious packets | *ce249a4c68ppp: fix ppp_async_encode() illegal access | *d66c612c40mctp: Handle error of rtnl_register_module(). | *438c8d7dfdvxlan: Handle error of rtnl_register_module(). | *317c4c68eertnetlink: Add bulk registration helpers for rtnetlink message handlers. * |70c5eb7f38UPSTREAM: netfilter: xtables: fix typo causing some targets not to load on IPv6 * |ca877f130bMerge8f5ad212f4("net: ibm: emac: mal: add dcr_unmap to _remove") into android14-6.1 |\| | *8f5ad212f4net: ibm: emac: mal: add dcr_unmap to _remove | *1aea6c0577net: ibm/emac: allocate dummy net_device dynamically | *0f6dcaf4cdnetfilter: fib: check correct rtable in vrf setups | *8f482bb7e2netfilter: xtables: avoid NFPROTO_UNSPEC where needed * |d90aa3b1e7ANDROID: GKI: rexport __qdisc_calculate_pkt_len * |f27c9aabfcMerge5de0b8ca7c("sctp: ensure sk_state is set to CLOSED if hashing fails in sctp_listen_start") into android14-6.1 |\| | *5de0b8ca7csctp: ensure sk_state is set to CLOSED if hashing fails in sctp_listen_start | *8409539dbbbtrfs: zoned: fix missing RCU locking in error message when loading zone info | *b541831a5dnet: ibm: emac: mal: fix wrong goto | *76feedc74bnet/sched: accept TCA_STAB only for root qdisc | *6a39c8f5c8igb: Do not bring the device up after non-fatal error | *9a9747288bi40e: Fix macvlan leak by synchronizing access to mac_filter_hash | *94438143feice: Fix netif_is_ice() in Safe Mode | *75aa45ece3gpio: aspeed: Use devm_clk api to manage clock source | *563550b619gpio: aspeed: Add the flush write to ensure the write complete. | *bc16154fdenet: dsa: b53: fix jumbo frames on 10/100 ports | *40081f2107net: dsa: b53: allow lower MTUs on BCM5325/5365 | *deec6368c0net: dsa: b53: fix max MTU for BCM5325/BCM5365 | *c43068b255net: dsa: b53: fix max MTU for 1g switches | *22deeb6a70net: dsa: b53: fix jumbo frame mtu check | *e4340fef88net: ethernet: adi: adin1110: Fix some error handling path in adin1110_read_fifo() | *2a2d6b24f0Revert "net: stmmac: set PP_FLAG_DMA_SYNC_DEV only if XDP is enabled" | *b4ab78f4adthermal: intel: int340x: processor: Fix warning during module unload | *49c0fbd5e7thermal: int340x: processor_thermal: Set feature mask before proc_thermal_add | *30c3d3d9b7net: phy: bcm84881: Fix some error handling paths | *ced98072d3Bluetooth: RFCOMM: FIX possible deadlock in rfcomm_sk_state_change | *6e39646d7aselftests: net: no_forwarding: fix VID for $swp2 in one_bridge_two_pvids() test | *78ed917133netfilter: br_netfilter: fix panic with metadata_dst skb | *ed36591af2tcp: fix tcp_enter_recovery() to zero retrans_stamp when it's safe | *dc566bf54btcp: fix to allow timestamp undo if no retransmits were sent | *c1944b4253net: phy: dp83869: fix memory corruption when enabling fiber | *632344b9efNFSv4: Prevent NULL-pointer dereference in nfs42_complete_copies() | *ae315bcc30SUNRPC: Fix integer overflow in decode_rc_list() | *8ef4af0671ice: fix VLAN replay after reset | *7cfc972acbNFSD: Mark filecache "down" if init fails * |4d9f717a6fMergefc2f4a5a71("drm/rockchip: vop: enable VOP_FEATURE_INTERNAL_RGB on RK3066") into android14-6.1 |\| | *fc2f4a5a71drm/rockchip: vop: enable VOP_FEATURE_INTERNAL_RGB on RK3066 | *de3120b8f2drm/rockchip: vop: limit maximum resolution to hardware capabilities | *889304120efbdev: sisfb: Fix strbuf array overflow | *8266ae6eaffbcon: Fix a NULL pointer dereference issue in fbcon_putcs | *97a79933fbdrm/amd/display: Check null pointer before dereferencing se | *0857b1c573scsi: lpfc: Ensure DA_ID handling completion before deleting an NPIV instance | *78fa420e23scsi: lpfc: Add ELS_RSP cmd to the list of WQEs to flush in lpfc_els_flush_cmd() | *b80d8c2c55driver core: bus: Return -EIO instead of 0 when show/store invalid bus attribute | *737e75df3astaging: vme_user: added bound check to geoid | *6dad158fbbtools/iio: Add memory allocation failure check for trigger_name | *6a5ca0ab94virtio_pmem: Check device status before requesting flush | *4dab65aafbnetfilter: nf_reject: Fix build warning when CONFIG_BRIDGE_NETFILTER=n | *b52f1fbb06LoongArch: Fix memleak in pci_acpi_scan_root() | *c66562408ccomedi: ni_routing: tools: Check when the file could not be opened | *4d49102c24usb: dwc2: Adjust the timing of USB Driver Interrupt Registration in the Crashkernel Scenario | *0a27f6cb3busb: chipidea: udc: enable suspend interrupt after usb reset | *11ceb17e6fclk: imx: Remove CLK_SET_PARENT_GATE for DRAM mux for i.MX7D | *1d750606feremoteproc: imx_rproc: Use imx specific hook for find_loaded_rsc_table | *9496004146media: videobuf2-core: clear memory related fields in __vb2_plane_dmabuf_put() | *ea15b254adriscv/kexec_file: Fix relocation type R_RISCV_ADD16 and R_RISCV_SUB16 unknown | *0a2cfe7a89RDMA/mlx5: Enforce umem boundaries for explicit ODP page faults | *3ae45be849ntb: ntb_hw_switchtec: Fix use after free vulnerability in switchtec_ntb_remove due to race condition | *a2493904e9io_uring: check if we need to reschedule during overflow flush | *b6fdfd6f8dRISC-V: Don't have MAX_PHYSMEM_BITS exceed phys_addr_t | *a4babb895cPCI: Mark Creative Labs EMU20k2 INTx masking as broken | *7600bc3a68i2c: i801: Use a different adapter-name for IDF adapters | *9af86455ebPCI: Add ACS quirk for Qualcomm SA8775P | *1d4359411dclk: bcm: bcm53573: fix OF node leak in init | *b5d4076664RDMA/rtrs-srv: Avoid null pointer deref during path establishment | *90be6ffc6aPCI: Add function 0 DMA alias quirk for Glenfly Arise chip | *e80eadb360RDMA/mad: Improve handling of timed out WRs of mad agent | *ec5b06acbektest.pl: Avoid false positives with grub2 skip regex * |2a9237e80dRevert "perf,x86: avoid missing caller address in stack traces captured in uprobe" * |07d3db8105Revert "i2c: create debugfs entry per adapter" * |a521ff2141Revert "i2c: core: Lock address during client device instantiation" * |ff83a68a27Mergebeff507e9e("s390/cpum_sf: Remove WARN_ON_ONCE statements") into android14-6.1-lts |\| | *beff507e9es390/cpum_sf: Remove WARN_ON_ONCE statements | *2d1f754329ext4: nested locking for xattr inode | *4061e07f04ext4: don't set SB_RDONLY after filesystem errors | *d730f53bf5bpf, x64: Fix a jit convergence issue | *93c574989cs390/mm: Add cond_resched() to cmm_alloc/free_pages() | *5ff787ebd0s390/facility: Disable compile time optimization for decompressor code | *39b5ecc927bpf: Check percpu map value size first | *bc26503532Input: synaptics-rmi4 - fix UAF of IRQ domain on driver removal | *b2e1167d21virtio_console: fix misc probe bugs | *9fcade799cfs/ntfs3: Refactor enum_rstbl to suppress static checker | *ec84214a34fs/ntfs3: Fix sparse warning in ni_fiemap | *609bdfae6ffs/ntfs3: Do not call file_modified if collapse range failed | *3a38e30849Bluetooth: Fix usage of __hci_cmd_sync_status | *345788c464selftests: net: Remove executable bits from library scripts | *54adbacfa1libsubcmd: Don't free the usage string | *bfe95355a6perf sched: Move curr_pid and cpu_last_switched initialization to perf_sched__{lat|map|replay}() | *5a708abb7dperf sched: Move curr_thread initialization to perf_sched__map() | *b942e1b572perf sched: Fix memory leak in perf_sched__map() | *e6cdd72aa5perf sched: Move start_work_mutex and work_done_wait_mutex initialization to perf_sched__replay() | *aba6841a6cperf sched: Avoid large stack allocations | *4d9a5864c3perf lock: Dynamically allocate lockhash_table | *5c6cfbc539bootconfig: Fix the kerneldoc of _xbc_exit() | *e780662c8ctracing: Have saved_cmdlines arrays all in one allocation | *b8421b2a3ddrm/crtc: fix uninitialized variable use even harder | *8e1cb8b75dALSA: hda/realtek: cs35l41: Fix device ID / model name | *86872f5a76ALSA: hda/realtek: cs35l41: Fix order and duplicates in quirks table | *71e1a9912ftracing: Remove precision vsnprintf() check from print event | *4d58b0e90dnet: ethernet: cortina: Drop TSO support | *21526498d2unicode: Don't special case ignorable code points | *a23f0ea8ddfsdax: unshare: zero destination if srcmap is HOLE or UNWRITTEN | *bea229ba8bfsdax: dax_unshare_iter() should return a valid length | *acebeb375fperf report: Fix segfault when 'sym' sort key is not used | *ace9c778a2vhost/scsi: null-ptr-dereference in vhost_scsi_get_req() | *ec134c1855erofs: fix incorrect symlink detection in fast symlink | *38c5618390erofs: set block size to the on-disk block size | *351912b9d6erofs: avoid hardcoded blocksize for subpage block support | *7b33d69a08erofs: get rid of z_erofs_do_map_blocks() forward declaration | *808ccede87erofs: get rid of erofs_inode_datablocks() | *2544abf6b6Revert "arm64: dts: qcom: sm8250: switch UFS QMP PHY to new style of bindings" | *ca1fb7942aACPI: battery: Fix possible crash when unregistering a battery hook | *fc474e3fa0ACPI: battery: Simplify battery hook locking | *d01053f910clk: qcom: gcc-sc8180x: Add GPLL9 support | *fe44b3bfbfr8169: add tally counter fields added with RTL8125 | *affd54d4f4r8169: Fix spelling mistake: "tx_underun" -> "tx_underrun" | *d47234b07eclk: samsung: exynos7885: Update CLKS_NR_FSYS after bindings fix | *cfecad07c1clk: samsung: exynos7885: do not define number of clocks in bindings | *4fab87aa79dt-bindings: clock: qcom: Add GPLL9 support on gcc-sc8180x | *3e166c0121dt-bindings: clock: qcom: Add missing UFS QREF clocks | *928aed032aremoteproc: k3-r5: Delay notification of wakeup event | *3c80f64414remoteproc: k3-r5: Acquire mailbox handle during probe routine | *fb4c3e7120media: imx335: Fix reset-gpio handling | *1f66f02929media: i2c: imx335: Enable regulator supplies | *f429f85e4csched: psi: fix bogus pressure spikes from aggregation race | *6fddf325fadelayacct: improve the average delay precision of getdelay tool to microsecond | *2760bafc1adocs/zh_CN: Update the translation of delay-accounting to 6.1-rc8 | *84887f4c1clib/buildid: harden build ID parsing logic | *fee9e01333build-id: require program headers to be right after ELF header | *5639cd069ddrm/amd/display: Allow backlight to go below `AMDGPU_DM_DEFAULT_MIN_BACKLIGHT` | *327b833708mm: z3fold: deprecate CONFIG_Z3FOLD | *24141df5a8uprobes: fix kernel info leak via "[uprobes]" vma | *5a306c8641io_uring/net: harden multishot termination case for recv | *fd7c4608caarm64: errata: Expand speculative SSBS workaround once more | *24cb24b49carm64: cputype: Add Neoverse-N3 definitions | *ae50bfa1f3arm64: Add Cortex-715 CPU part definition | *c5c70e1dcaspi: bcm63xx: Fix missing pm_runtime_disable() | *463cd7ebebdt-bindings: clock: exynos7885: Fix duplicated binding | *8f32f6cf92i2c: xiic: Fix pm_runtime_set_suspended() with runtime pm enabled | *73733d8ca9i2c: xiic: Use devm_clk_get_enabled() | *e2852a0246i2c: core: Lock address during client device instantiation | *e2a268b0f5i2c: create debugfs entry per adapter | *064debdc41kconfig: qconf: fix buffer overflow in debug links | *90ebc392adcpufreq: intel_pstate: Make hwp_notify_lock a raw spinlock | *722d2d8fc4drm/amd/display: Fix system hang while resume with TBT monitor | *8e40fef1d8drm/sched: Add locking to drm_sched_entity_modify_sched | *a412e21243drm/i915/gem: fix bitwise and logical AND mixup | *3812169643close_range(): fix the logics in descriptor table trimming | *ce25f33ba8tracing/timerlat: Fix a race during cpuhp processing | *9e9e80e4e7tracing/hwlat: Fix a race during cpuhp processing | *6432335606ceph: fix cap ref leak via netfs init_request | *d17c631ba0Bluetooth: hci_event: Align BR/EDR JUST_WORKS paring with LE | *3d7ecc91fegpio: davinci: fix lazy disable | *9da40aea63btrfs: wait for fixup workers before stopping cleaner kthread during umount | *c71eb38a04btrfs: send: fix invalid clone operation for file that got its size decreased | *d13249c0dfbtrfs: fix a NULL pointer dereference when failed to start a new trasacntion | *89797d918cACPI: resource: Add Asus ExpertBook B2502CVA to irq1_level_low_skip_override[] | *5fece930c0ACPI: resource: Add Asus Vivobook X1704VAP to irq1_level_low_skip_override[] | *d32ff64c87cachefiles: fix dentry leak in cachefiles_open_file() | *01e7ba68c8Input: adp5589-keys - fix adp5589_gpio_get_value() | *34e304cc53Input: adp5589-keys - fix NULL pointer dereference | *3257b50bb0rtc: at91sam9: fix OF node leak in probe() error path | *5d43e1ad45net: stmmac: Fix zero-division error when disabling tc cbs | *5153497611tomoyo: fallback to realpath if symlink's pathname does not exist | *080e6c9a39gso: fix udp gso fraglist segmentation after pull from frag_list | *9c9a0ba06fiio: magnetometer: ak8975: Fix reading for ak099xx sensors | *dd63542298smb: client: use actual path when queryfs | *28936dec34clk: qcom: clk-alpha-pll: Fix CAL_L_VAL override for LUCID EVO PLL | *2f5f0cbacdclk: qcom: gcc-sc8180x: Fix the sdcc2 and sdcc4 clocks freq table | *c34fbb1a28media: qcom: camss: Fix ordering of pm_runtime_enable | *43173b7fb3clk: qcom: gcc-sm8250: Do not turn off PCIe GDSCs during gdsc_disable() | *2a541fcc0bmedia: venus: fix use after free bug in venus_remove due to race condition | *65b03123d8clk: qcom: gcc-sm8150: De-register gcc_cpuss_ahb_clk_src | *4f2de6dc51clk: qcom: clk-rpmh: Fix overflow in BCM vote | *885e7b5e23media: uapi/linux/cec.h: cec_msg_set_reply_to: zero flags | *1620ca51c4clk: qcom: gcc-sm8450: Do not turn off PCIe GDSCs during gdsc_disable() | *17f7db9e6bmedia: sun4i_csi: Implement link validate for sun4i_csi subdev | *3a4e2f113cclk: qcom: dispcc-sm8250: use CLK_SET_RATE_PARENT for branch clocks | *87ab3af744remoteproc: k3-r5: Fix error handling when power-up failed | *f057579a67clk: rockchip: fix error for unknown clocks | *bc2cbf7525aoe: fix the potential use-after-free problem in more places | *f07c20c6eeNFSD: Fix NFSv4's PUTPUBFH operation | *6fe058502fnfsd: map the EBADMSG to nfserr_io to avoid warning | *137f672085nfsd: fix delegation_blocked() to block correctly for at least 30 seconds | *8bcec93396perf hist: Update hist symbol when updating maps | *4e1813e52fexfat: fix memory leak in exfat_load_bitmap() | *732b16ea77riscv: define ILLEGAL_POINTER_VALUE for 64bit | *01cb2e751cocfs2: fix possible null-ptr-deref in ocfs2_set_buffer_uptodate | *82dfdd1e31ocfs2: fix null-ptr-deref when journal load failed. | *81aba693b1ocfs2: remove unreasonable unlock in ocfs2_read_blocks | *bbf41277dfocfs2: cancel dqi_sync_work before freeing oinfo | *5c2072f02cocfs2: reserve space for inline xattr before attaching reflink tree | *0d1b94b3c4ocfs2: fix uninit-value in ocfs2_get_block() | *24cf79398focfs2: fix the la space leak when unmounting an ocfs2 volume | *f8767d10bcmm: krealloc: consider spare memory for __GFP_ZERO | *6e5a48afb1jbd2: correctly compare tids with tid_geq function in jbd2_fc_begin_commit | *70bae48377jbd2: stop waiting for space when jbd2_cleanup_journal_tail() returns error | *4b90d2eb45resource: fix region_intersects() vs add_memory_driver_managed() | *f37a1d9e5edrm: omapdrm: Add missing check for alloc_ordered_workqueue | *afa0b75ad9of/irq: Support #msi-cells=<0> in of_msi_get_domain | *b049894eb1drm/rockchip: vop: clear DMA stop bit on RK3066 | *b1a661d9ccparisc: Fix stack start for ADDR_NO_RANDOMIZE personality | *a304414f39parisc: Fix 64-bit userspace syscall path | *b1dd2ea55fext4: mark fc as ineligible using an handle in ext4_xattr_set() | *ca083a08a6ext4: use handle to mark fc as ineligible in __track_dentry_update() | *5f61921082ext4: fix fast commit inode enqueueing during a full journal commit | *354835cea9ext4: fix incorrect tid assumption in jbd2_journal_shrink_checkpoint_list() | *6d9fd7e74eext4: fix incorrect tid assumption in ext4_wait_for_tail_page_commit() | *6801ed1298ext4: update orig_path in ext4_find_extent() | *78bbc3d15bext4: fix double brelse() the buffer of the extents path | *51db04892aext4: aovid use-after-free in ext4_ext_insert_extent() | *6367d3f04cext4: drop ppath from ext4_ext_replay_update_ex() to avoid double-free | *bd87b99ef3ext4: fix incorrect tid assumption in __jbd2_log_wait_for_space() | *abfaa876b9ext4: dax: fix overflowing extents beyond inode size when partially writing | *10d3eb28b1ext4: fix incorrect tid assumption in ext4_fc_mark_ineligible() | *2060abdedeext4: propagate errors from ext4_find_extent() in ext4_insert_range() | *a5401d4c3eext4: fix slab-use-after-free in ext4_split_extent_at() | *7b30d0b9f5ext4: correct encrypted dentry name hash when not casefolded | *a02d7f5b24ext4: no need to continue when the number of entries is 1 | *8be8578e6bALSA: hda/realtek: Add a quirk for HP Pavilion 15z-ec200 | *44c11fc535ALSA: hda/realtek: Add quirk for Huawei MateBook 13 KLV-WX9 | *ba34b0e9d5ALSA: line6: add hw monitor volume control to POD HD500X | *b5abf22ca4ALSA: usb-audio: Add native DSD support for Luxman D-08u | *80863d80ccALSA: usb-audio: Add delay quirk for VIVO USB-C HEADSET | *97bea9f57bALSA: core: add isascii() check to card ID generator | *fed2d3a225drm: Consistently use struct drm_mode_rect for FB_DAMAGE_CLIPS | *1e013f9a44parisc: Fix itlb miss handler for 64-bit programs | *65e5ebb915perf/core: Fix small negative period being ignored | *bda702a439power: supply: hwmon: Fix missing temp1_max_alarm attribute | *381aac9473spi: bcm63xx: Fix module autoloading | *a763af9f5dfirmware: tegra: bpmp: Drop unused mbox_client_to_bpmp() | *9f08876d76media: i2c: ar0521: Use cansleep version of gpiod_set_value() | *55a629c520i2c: xiic: Wait for TX empty to avoid missed TX NAKs | *bb4b446d87i2c: qcom-geni: Use IRQF_NO_AUTOEN flag in request_irq() | *c2024b1a58i2c: stm32f7: Do not prepare/unprepare clock during runtime suspend/resume | *cdd03afcb6platform/x86: ISST: Fix the KASAN report slab-out-of-bounds bug | *757823c135Revert "ALSA: hda: Conditionally use snooping for AMD HDMI" | *9e89f4de79selftests: vDSO: fix vdso_config for s390 | *ecbdbe5132selftests: vDSO: fix ELF hash table entry size for s390x | *3c9f0c9d59powerpc/vdso: Fix VDSO data access when running in a non-root time namespace | *eba34000e7selftests/mm: fix charge_reserved_hugetlb.sh test | *07b532e802selftests: vDSO: fix vDSO symbols lookup for powerpc64 | *998dacca5aselftests: vDSO: fix vdso_config for powerpc | *114b399e10selftests: vDSO: fix vDSO name for powerpc | *5c2d773d81selftests: breakpoints: use remaining time to check if suspend succeed | *7ac43c97c9spi: s3c64xx: fix timeout counters in flush_fifo | *0a88cd8aabspi: spi-imx: Fix pm_runtime_set_suspended() with runtime pm enabled | *2d7e7cf9d5blk-integrity: register sysfs attributes on struct device | *ee48f16aacblk-integrity: convert to struct device_attribute | *4a30ad89a6blk-integrity: use sysfs_emit | *e3aa99b13aiomap: handle a post-direct I/O invalidate race in iomap_write_delalloc_release | *9fedf51ab8ext4: fix i_data_sem unlock order in ext4_ind_migrate() | *2eba3b0cc5ext4: avoid use-after-free in ext4_ext_show_leaf() | *fc19e8a7c4ext4: ext4_search_dir should return a proper error | *cf1bf89d29powerpc/pseries: Use correct data types from pseries_hp_errorlog struct | *97dce49040of/irq: Refer to actual buffer size in of_irq_parse_one() | *fd5f4ac1a9drm/amd/pm: ensure the fw_info is not null before using it | *1e7ba299dedrm/radeon/r100: Handle unknown family in r100_cp_init_microcode() | *8cc0a1b768scsi: NCR5380: Initialize buffer for MSG IN and STATUS transfers | *03bba4aefedrm/amdgpu: fix unchecked return value warning for amdgpu_gfx | *7bcba0a48cscsi: lpfc: Update PRLO handling in direct attached topology | *1d08cb350fscsi: aacraid: Rearrange order of struct aac_srb_unit | *bd04497003perf,x86: avoid missing caller address in stack traces captured in uprobe | *c0c58a52d7drm/printer: Allow NULL data in devcoredump printer | *a23d6029e7drm/amd/display: Initialize get_bytes_per_element's default to 1 | *0f1e222a4bdrm/amd/display: Fix index out of bounds in DCN30 color transformation | *2495c8e272drm/amd/display: Fix index out of bounds in degamma hardware format translation | *f3ccd855b4drm/amd/display: Fix index out of bounds in DCN30 degamma hardware format translation | *e8da54b7f8drm/amd/display: Check stream before comparing them | *d5a50e048fdrm/stm: ltdc: reset plane transparency after plane disable | *39f4286104platform/x86: touchscreen_dmi: add nanote-next quirk | *6d771ae094HID: multitouch: Add support for Thinkpad X12 Gen 2 Kbd Portfolio | *3462d8e2bcdrm/amdkfd: Fix resource leak in criu restore queue | *85088df7a5drm/amdgpu: enable gfxoff quirk on HP 705G4 | *74f904c030drm/amdgpu: add raven1 gfxoff quirk | *6041536d18jfs: Fix uninit-value access of new_ea in ea_buffer | *8f7c724a5bscsi: smartpqi: correct stream detection | *058aa89b33jfs: check if leafidx greater than num leaves per dmap tree | *0c238da83fjfs: Fix uaf in dbFreeBits | *4c36edf51fjfs: UBSAN: shift-out-of-bounds in dbFindBits | *bd0e24e5e6drm/amd/display: Add null check for 'afb' in amdgpu_dm_plane_handle_cursor_update (v2) | *a2773e0a4bdrm/amd/display: Check null pointers before using dc->clk_mgr | *c4b699b934drm/amd/display: Handle null 'stream_status' in 'planes_changed_for_existing_stream' | *e479157f9fata: sata_sil: Rename sil_blacklist to sil_quirks | *b4f201e05bata: pata_serverworks: Do not use the term blacklist | *40193ff736drm/amd/display: Add null check for top_pipe_to_program in commit_planes_for_stream | *0ed438e52cdrm/amdgpu: disallow multiple BO_HANDLES chunks in one submit | *d02611ff00drm/stm: Avoid use-after-free issues with crtc and plane | *e03f00aa4aiommu/vt-d: Fix potential lockup if qi_submit_sync called with 0 count | *cfc1def24biommu/vt-d: Always reserve a domain ID for identity setup | *e0cf57612apower: reset: brcmstb: Do not go into infinite loop if reset fails | *85b778bc25iommu/arm-smmu-qcom: hide last LPASS SMMU context bank from linux | *bc4da4cf2brcuscale: Provide clear error when async specified without primitives | *3c0d416eb4fbdev: pxafb: Fix possible use after free in pxafb_task() | *1553085fe9x86/syscall: Avoid memcpy() for ia32 syscall_get_arguments() | *0a13f60c95selftests/nolibc: avoid passing NULL to printf("%s") | *9bf125a138ALSA: hdsp: Break infinite MIDI input flush loop | *e658227d9dALSA: asihpi: Fix potential OOB array access | *10f502d2d7x86/kexec: Add EFI config table identity mapping for kexec kernel | *198314189ftools/x86/kcpuid: Protect against faulty "max subleaf" values | *dfec74d685ASoC: codecs: wsa883x: Handle reading version failure | *759d02ea18ALSA: usb-audio: Add logitech Audio profile quirk | *779c0e63f2ALSA: usb-audio: Replace complex quirk lines with macros | *b3dcf220c9ALSA: usb-audio: Define macros for quirk table entries | *ec862cd843x86/ioapic: Handle allocation failures gracefully | *95b901dc34ALSA: usb-audio: Add input value sanity checks for standard types | *99fcb55180nfp: Use IRQF_NO_AUTOEN flag in request_irq() | *17199b69a8wifi: mwifiex: Fix memcpy() field-spanning write warning in mwifiex_cmd_802_11_scan_ext() | *0f78947e4dwifi: mt76: mt7915: hold dev->mt76.mutex while disabling tx worker | *ca5ef2759dproc: add config & param to block forcing mem writes | *7f570d6729ACPICA: iasl: handle empty connection_node | *b0b2dc1eaawifi: mac80211: fix RCU list iterations | *465d3bad19tcp: avoid reusing FIN_WAIT2 when trying to find port in connect() process | *a3dde07821crypto: simd - Do not call crypto_alloc_tfm during registration | *2738388d95net: atlantic: Avoid warning about potential string truncation | *8cbda41727ipv4: Mask upper DSCP bits and ECN bits in NETLINK_FIB_LOOKUP family | *af79fa5f98wifi: rtw89: correct base HT rate mask for firmware | *75aa1df311ipv4: Check !in_dev earlier for ioctl(SIOCSIFADDR). | *12bc48a111bnxt_en: Extend maximum length of version string by 1 byte | *25c764f87fnet: mvpp2: Increase size of queue_name buffer | *80c0be7bcftipc: guard against string buffer overrun | *f282db3895ACPICA: check null return of ACPI_ALLOCATE_ZEROED() in acpi_db_convert_to_package() | *de6a9bb884ACPI: EC: Do not release locks during operation region accesses | *bc51ebfd9bwifi: rtw88: select WANT_DEV_COREDUMP | *73e235728ewifi: ath11k: fix array out-of-bound access in SoC stats | *0087dc9e70nvme-pci: qdepth 1 quirk | *59121bb38fblk_iocost: fix more out of bound shifts | *0fe5621176ACPI: video: Add force_vendor quirk for Panasonic Toughbook CF-18 | *cf4e0b68aeBluetooth: btusb: Add Realtek RTL8852C support ID 0x0489:0xe122 | *cad3093a9fnet: sched: consistently use rcu_replace_pointer() in taprio_change() | *89fbb0d2bcwifi: mt76: mt7915: disable tx worker during tx BA session enable/disable | *5bc1ee87f4ACPICA: Fix memory leak if acpi_ps_get_next_field() fails | *55076cdb86ACPICA: Fix memory leak if acpi_ps_get_next_namepath() fails | *68a599da16ACPI: PAD: fix crash in exit_round_robin() | *c80a203364net: hisilicon: hns_mdio: fix OF node leak in probe() | *2bb3368d3cnet: hisilicon: hns_dsaf_mac: fix OF node leak in hns_mac_get_info() | *933e7f90e0net: hisilicon: hip04: fix OF node leak in probe() | *efcff6ce74net/xen-netback: prevent UAF in xenvif_flush_hash() | *95f32191e5wifi: cfg80211: Set correct chandef when starting CAC * |0eefe2e6a1Mergec6cbefd65a("wifi: iwlwifi: mvm: Fix a race in scan abort flow") into android14-6.1-lts |\| | *c6cbefd65awifi: iwlwifi: mvm: Fix a race in scan abort flow | *7fc56eee60ice: Adjust over allocation of memory in ice_sched_add_root_node() and ice_sched_add_node() | *6a87522067wifi: ath9k_htc: Use __skb_set_length() for resetting urb before resubmit | *83793aa9b1wifi: ath9k: fix possible integer overflow in ath9k_get_et_stats() | *32f348ecc1f2fs: Require FMODE_WRITE for atomic write ioctls | *f3a0893ceaALSA: hda/conexant: Fix conflicting quirk for System76 Pangolin | *5dcde464daASoC: imx-card: Set card.owner to avoid a warning calltrace if SND=m | *1bd4ef8e1cALSA: hda/generic: Unconditionally prefer preferred_dacs pairs | *f1420f2358ALSA: hda/realtek: Fix the push button function for the ALC257 | *4d6f089748ALSA: mixer_oss: Remove some incorrect kfree_const() usages | *589be64748ASoC: atmel: mchp-pdmc: Skip ALSA restoration if substream runtime is uninitialized | *bdd82c47b2media: usbtv: Remove useless locks in usbtv_video_free() | *781f3a97a3Bluetooth: hci_sock: Fix not validating setsockopt user input | *dd8118ed43loop: don't set QUEUE_FLAG_NOMERGES | *4f3ea50d84i2c: xiic: Try re-initialization on bus busy timeout | *0d8ca4c1eei2c: xiic: improve error message when transfer fails to start | *9230a59edasctp: set sk_state back to CLOSED if autobind fails in sctp_listen_start | *fcb8a66d83iomap: constrain the file range passed to iomap_file_unshare | *1bec6782a2fsdax,xfs: port unshare to fsdax | *635deca180ppp: do not assume bh is held in ppp_channel_bridge_input() | *0cabf388efipv4: ip_gre: Fix drops of small packets in ipgre_xmit | *c029de15fanet: stmmac: dwmac4: extend timeout for VLAN Tag register busy bit check | *27a8fabc54net: add more sanity checks to qdisc_pkt_len_init() | *d6114993e0net: avoid potential underflow in qdisc_pkt_len_init() with UFO | *2bf4c101d7net: ethernet: lantiq_etop: fix memory disclosure | *19c62981b2Bluetooth: btmrvl: Use IRQF_NO_AUTOEN flag in request_irq() | *b40b027a0cnetfilter: nf_tables: prevent nf_skb_duplicated corruption | *a07bd453b1selftests: netfilter: Fix nft_audit.sh for newer nft binaries | *dd50c5f3canet: wwan: qcom_bam_dmux: Fix missing pm_runtime_disable() | *6b289c5568net: ieee802154: mcr20a: Use IRQF_NO_AUTOEN flag in request_irq() | *58c2a66ad3netfilter: uapi: NFTA_FLOWTABLE_HOOK is NLA_NESTED | *b48ee5bb25net/mlx5e: Fix NULL deref in mlx5e_tir_builder_alloc() | *87a8e15d3enet/mlx5: Added cond_resched() to crdump collection | *fc357e7817net/mlx5: Fix error path in multi-packet WQE transmit | *523a1f3420net: sparx5: Fix invalid timestamps | *d3c09281baieee802154: Fix build error | *ea98284fc4ceph: remove the incorrect Fw reference check when dirtying pages | *90320cfc07mailbox: bcm2835: Fix timeout during suspend mode | *d8696bc7afmailbox: rockchip: fix a typo in module autoloading * |bf14675822Merge71446b65c0("scsi: pm8001: Do not overwrite PCI queue mapping") into android14-6.1-lts |\| | *71446b65c0scsi: pm8001: Do not overwrite PCI queue mapping | *842d9156bejump_label: Fix static_key_slow_dec() yet again | *0f05d6c337jump_label: Simplify and clarify static_key_fast_inc_cpus_locked() | *ea2cdf4da0static_call: Replace pointless WARN_ON() in static_call_module_notify() | *b566c7d8a2static_call: Handle module init failure correctly in static_call_del_module() * |fbffc4367fRevert "icmp: Add counters for rate limits" * |da03308716Revert "icmp: change the order of rate limits" * |d181caa76bMergedffe86df26("wifi: mt76: do not run mt76_unregister_device() on unregistered hw") into android14-6.1-lts |\| | *dffe86df26wifi: mt76: do not run mt76_unregister_device() on unregistered hw | *25703a3c98x86/tdx: Fix "in-kernel MMIO" check | *04ca17fbc8PCI/PM: Mark devices disconnected if upstream PCIe link is down on resume | *6d5124a2b1powerpc: Allow CONFIG_PPC64_BIG_ENDIAN_ELF_ABI_V2 with ld.lld 15+ | *97ab365243iio: magnetometer: ak8975: Fix 'Unexpected device' error | *85045e51c7perf/arm-cmn: Fail DTC counter allocation correctly | *0cf462ae2ausb: yurex: Fix inconsistent locking bug in yurex_read() | *5d96aca286i2c: isch: Add missed 'else' | *f064999164i2c: aspeed: Update the stop sw state when the bus recovery occurs | *417a471454mm/damon/vaddr: protect vma traversal in __damon_va_thre_regions() with rcu read lock | *f7f78d7b0amodule: Fix KCOV-ignored file name | *1c19a8ae09mm: only enforce minimum stack gap size if it's sensible | *a28711c53elockdep: fix deadlock issue between lockdep and rcu | *f6633a3e1ebpf: lsm: Set bpf_lsm_blob_sizes.lbs_task to 0 | *997ba88896icmp: change the order of rate limits | *3ff50bc627icmp: Add counters for rate limits | *fa47f96ee7mm/filemap: optimize filemap folio adding | *3714f62ecblib/xarray: introduce a new helper xas_get_order | *0e7877d1bbmm/filemap: return early if failed to allocate memory for split | *e01c8c1d39x86/entry: Remove unwanted instrumentation in common_interrupt() | *970d6010f8x86/idtentry: Incorporate definitions/declarations of the FRED entries | *8f925510cepps: add an error check in parport_attach | *73c007575bpps: remove usage of the deprecated ida_simple_xx() API * |25281a36afRevert "Merge71147efd68("usb: xhci: fix loss of data on Cadence xHC") into android14-6.1-lts" * |d2e4c7790dMerge71147efd68("usb: xhci: fix loss of data on Cadence xHC") into android14-6.1-lts |\| | *71147efd68usb: xhci: fix loss of data on Cadence xHC | *72b2ef7bb3xhci: Add a quirk for writing ERST in high-low order | *66cffb20a0xhci: Preserve RsvdP bits in ERSTBA register correctly | *7cc626f64dxhci: Refactor interrupter code for initial multi interrupter support. | *b994e205c0xhci: remove xhci_test_trb_in_td_math early development check | *82f1eb02dexhci: fix event ring segment table related masks and variables in header * |27d626695aMerge732413d5ae("USB: misc: yurex: fix race between read and write") into android14-6.1-lts |\| | *732413d5aeUSB: misc: yurex: fix race between read and write | *f8a2930015usb: yurex: Replace snprintf() with the safer scnprintf() variant | *ed8fe130e5powerpc/atomic: Use YZ constraints for DS-form instructions | *9eb76d5168powerpc/64: Add support to build with prefixed instructions | *8b9f7d8d71powerpc/64: Option to build big-endian with ELFv2 ABI * |b7ad70d2c5Mergeb986ec200f("soc: versatile: realview: fix soc_dev leak during device remove") into android14-6.1-lts |\| | *b986ec200fsoc: versatile: realview: fix soc_dev leak during device remove | *0d8cce74easoc: versatile: realview: fix memory leak during device remove | *ab205e1c38padata: use integer wrap around to prevent deadlock on seq_nr overflow | *41fbdd4524EDAC/igen6: Fix conversion of system address to physical memory address | *b2d1ef31ecnfs: fix memory leak in error path of nfs4_do_reclaim | *1524f792e0fs: Fix file_set_fowner LSM hook inconsistencies | *540fb13120vfs: fix race between evice_inodes() and find_inode()&iput() | *e972e1aa2aarm64: dts: rockchip: Correct the Pinebook Pro battery design capacity | *245f11d10darm64: dts: rockchip: Raise Pinebook Pro's panel backlight PWM frequency | *8586888429hwrng: cctrng - Add missing clk_disable_unprepare in cctrng_resume | *489f52759dhwrng: bcm2835 - Add missing clk_disable_unprepare in bcm2835_rng_init | *8e7bc5030fhwrng: mtk - Use devm_pm_runtime_enable | *26b07bd2e1f2fs: fix to check atomic_file in f2fs ioctl interfaces | *d59222286cf2fs: avoid potential int overflow in sanity_check_area_boundary() | *b11d62de8ff2fs: prevent possible int overflow in dir_block_index() | *e0ae93934cf2fs: fix several potential integer overflows in file offsets | *6a53f877c4debugobjects: Fix conditions in fill_pool() | *efbc1e1164wifi: mt76: mt7615: check devm_kasprintf() returned value | *bd1412948fwifi: rtw88: 8822c: Fix reported RX band width | *89debcc2aaperf/x86/intel/pt: Fix sampling synchronization | *5b22c038fbefistub/tpm: Use ACPI reclaim memory for event log to avoid corruption | *5410d15290ACPI: resource: Add another DMI match for the TongFang GMxXGxx | *5c8d007c14ACPI: sysfs: validate return type of _STR method | *ca6ed002a9drbd: Add NULL check for net_conf to prevent dereference in state validation | *019d9a9caadrbd: Fix atomicity violation in drbd_uuid_set_bm() | *612dcc892ccrypto: ccp - Properly unregister /dev/sev on sev PLATFORM_STATUS failure | *57d47886d4xhci: Set quirky xHC PCI hosts to D3 _after_ stopping and freeing them. * |fe72cb35ddMerge branch 'android14-6.1' into android14-6.1-lts * |8221be4754ANDROID: add __pskb_copy_fclone to db845c symbol list * |6c5b621ff4Mergebdefb8ce7c("tty: rp2: Fix reset with non forgiving PCIe host bridges") into android14-6.1-lts |\| | *bdefb8ce7ctty: rp2: Fix reset with non forgiving PCIe host bridges | *3d2411f4edfirmware_loader: Block path traversal | *5400fb4b3abus: mhi: host: pci_generic: Fix the name for the Telit FE990A | *bd3f77037bbus: integrator-lm: fix OF node leak in probe() | *79388644fcusb: dwc2: drd: fix clock gating on USB role switch | *bf2425de2ausb: cdnsp: Fix incorrect usb_request status | *06326a8da6USB: class: CDC-ACM: fix race between get_serial and set_serial | *5f00218ce5USB: misc: cypress_cy7c63: check for short transfer | *ec9b165aacUSB: appledisplay: close race between probe and completion handler | *edca00ad79arm64: dts: mediatek: mt8195-cherry: Mark USB 3.0 on xhci1 as disabled | *869caa8de8usbnet: fix cyclical race on disconnect with work queue | *0d945405aescsi: mac_scsi: Disallow bus errors during PDMA send | *26a4cb9898scsi: mac_scsi: Refactor polling loop | *4fe1c955b2scsi: mac_scsi: Revise printk(KERN_DEBUG ...) messages | *60312ae739scsi: sd: Fix off-by-one error in sd_read_block_characteristics() | *d1b2d2a9c9ksmbd: handle caseless file creation | *5fb2b18be9ksmbd: allow write with FILE_APPEND_DATA | *da7f1b85e1ksmbd: make __dir_empty() compatible with POSIX | *12aea49495fs: Create a generic is_dot_dotdot() utility | *3322fa8f2aKEYS: prevent NULL pointer dereference in find_asymmetric_key() | *571a9f0529drm/amd/display: Validate backlight caps are sane | *cec9d5035cdrm/amd/display: Round calculated vtotal | *7c887efda1drm/amd/display: Skip Recompute DSC Params if no Stream on Link | *736fa1df08KVM: x86: Move x2APIC ICR helper above kvm_apic_write_nodecode() | *b26f0b6f8eKVM: x86: Enforce x2APIC's must-be-zero reserved ICR bits | *81d927aed7Input: i8042 - add another board name for TUXEDO Stellaris Gen5 AMD line | *24be9dd89dInput: i8042 - add TUXEDO Stellaris 15 Slim Gen6 AMD to i8042 quirk table | *453e776facInput: i8042 - add TUXEDO Stellaris 16 Gen5 AMD to i8042 quirk table | *265a7021e6Input: adp5588-keys - fix check on return code | *93090b74f0Revert "media: tuners: fix error return code of hybrid_tuner_request_state()" | *d57c71c859soc: versatile: integrator: fix OF node leak in probe() error path | *fd6367ea9eASoC: rt5682: Return devm_of_clk_add_hw_provider to transfer the error | *a9169c7e34PCI: xilinx-nwl: Fix off-by-one in INTx IRQ handler | *c5f3592f2bPCI: imx6: Fix missing call to phy_power_off() in error handling | *6a58b8ce51Remove *.orig pattern from .gitignore | *ee3e8b2933io_uring/sqpoll: do not put cpumask on stack | *ebc7db40b8io_uring/sqpoll: retain test for whether the CPU is valid | *58a3714db4drm/vmwgfx: Prevent unmapping active read buffers | *eebec98791selinux,smack: don't bypass permissions check in inode_setsecctx hook | *91ced077dbvfio/pci: fix potential memory leak in vfio_intx_enable() | *657ca82526io_uring/io-wq: inherit cpuset of cgroup in io worker | *fce514611fio_uring/io-wq: do not allow pinning outside of cpuset | *d8920d2534drm/amd/display: Fix Synaptics Cascaded Panamera DSC Determination | *0b6114edf6io_uring/sqpoll: do not allow pinning outside of cpuset | *925eb20d96netfilter: ctnetlink: compile ctnetlink_label_size with CONFIG_NF_CONNTRACK_EVENTS | *8ae12602d9netfilter: nf_tables: Keep deleted flowtable hooks until after RCU | *b600ccc041net: stmmac: set PP_FLAG_DMA_SYNC_DEV only if XDP is enabled | *6b64197b4bbonding: Fix unnecessary warnings and logs from bond_xdp_get_xmit_slave() | *b814fac8bcnet: qrtr: Update packets cloning when broadcasting | *96c4983eabtcp: check skb is non-NULL in tcp_rto_delta_us() | *317cc29ec7net: ipv6: select DST_CACHE from IPV6_RPL_LWTUNNEL | *1c57d61a43net: seeq: Fix use after free vulnerability in ether3 Driver Due to Race Condition | *7ea2bcfd9bnetfilter: nf_reject_ipv6: fix nf_reject_ip6_tcphdr_put() | *81b22d5633net: xilinx: axienet: Fix packet counting | *6387d93296net: xilinx: axienet: Schedule NAPI in two steps | *137227f963Revert "dm: requeue IO if mapping table not yet available" | *7a5bd2fb92ep93xx: clock: Fix off by one in ep93xx_div_recalc_rate() | *ec5f1b54cevhost_vdpa: assign irq bypass producer token correctly | *5d63cbf473vdpa: Add eventfd for the vdpa callback | *eb1fbdfcc3cxl/pci: Fix to record only non-zero ranges | *7f8bb22dfdcxl/pci: Break out range register decoding from cxl_hdm_decode_init() | *6402057645coresight: tmc: sg: Do not leak sg_table | *31cd18c9acdt-bindings: iio: asahi-kasei,ak8975: drop incorrect AK09116 compatible | *abdcbf8753iio: magnetometer: ak8975: drop incorrect AK09116 compatible | *2285889070iio: magnetometer: ak8975: Convert enum->pointer for data in the match tables | *73ff64413eiio: chemical: bme680: Fix read/write ops to device by adding mutexes | *6ae66b3487ABI: testing: fix admv8818 attr description | *0ac49e031eiio: adc: ad7606: fix standby gpio state to match the documentation | *91cc4ec660iio: adc: ad7606: fix oversampling gpio array | *2ec5c96002nvme-multipath: system fails to create generic nvme device | *f892a0cffclib/sbitmap: define swap_lock as raw_spinlock_t | *6027e283cfspi: spi-fsl-lpspi: Undo runtime PM changes at driver exit time | *1d425ee0b1spi: atmel-quadspi: Undo runtime PM changes at driver exit time | *f4746f2d79f2fs: get rid of online repaire on corrupted directory | *b83a80e21cf2fs: clean up w/ dotdot_name | *b094fedb26f2fs: atomic: fix to truncate pagecache before on-disk metadata truncation | *25c5d480d2f2fs: fix to wait page writeback before setting gcing flag | *4932dfd9b6f2fs: fix to avoid racing in between read and OPU dio write | *bbedc64de0f2fs: factor the read/write tracing logic into a helper | *09a37294fbf2fs: reduce expensive checkpoint trigger frequency | *0480e07330f2fs: remove unneeded check condition in __f2fs_setxattr() | *fb94458dbaf2fs: fix to update i_ctime in __f2fs_setxattr() | *84a563d136nfsd: return -EINVAL when namelen is 0 | *8182161731nfsd: call cache_put if xdr_reserve_space returns NULL | *44e1ecc702ntb: Force physically contiguous allocation of rx ring buffers | *1966b02259ntb_perf: Fix printk format | *7cbd6d7fb9ntb: intel: Fix the NULL vs IS_ERR() bug for debugfs_create_dir() | *a871594b20RDMA/irdma: fix error message in irdma_modify_qp_roce() | *39cb9f3991RDMA/cxgb4: Added NULL check for lookup_atid | *518bd425d2riscv: Fix fp alignment bug in perf_callchain_user() | *fb38951469RDMA/hns: Optimize hem allocation performance | *6564c9c508RDMA/hns: Fix 1bit-ECC recovery address in non-4K OS | *a92e0e23aeRDMA/hns: Fix VF triggering PF reset in abnormal interrupt handler | *425589d4afRDMA/hns: Fix spin_unlock_irqrestore() called with IRQs enabled | *ac4818b096RDMA/hns: Fix the overflow risk of hem_list_calc_ba_range() | *2ccf1c75d3RDMA/hns: Fix Use-After-Free of rsv_qp on HIP08 | *35932d8624RDMA/hns: Don't modify rq next block addr in HIP09 QPC | *92434724a1watchdog: imx_sc_wdt: Don't disable WDT in suspend | *e1a686cef7RDMA/erdma: Return QP state in erdma_query_qp | *a5f795f941PCI: kirin: Fix buffer overflow in kirin_pcie_parse_port() | *45f63f4bb9IB/core: Fix ib_cache_setup_one error flow cleanup | *90d4c80c4apinctrl: mvebu: Fix devinit_dove_pinctrl_probe function | *359164adfapinctrl: mvebu: Use devm_platform_get_and_ioremap_resource() | *0deb526696nfsd: fix refcount leak when file is unhashed after being found | *4a6d385e0cnfsd: remove unneeded EEXIST error check in nfsd_do_file_acquire | *7ea4ccad4fclk: ti: dra7-atl: Fix leak of of_nodes * |086571e490Merge5ac73f8191("RDMA/rtrs-clt: Reset cid to con_num - 1 to stay in bounds") into android14-6.1 |/ *5ac73f8191RDMA/rtrs-clt: Reset cid to con_num - 1 to stay in bounds *74d108c611RDMA/rtrs: Reset hb_missed_cnt after receiving other traffic from peer *e9b3aaeab4pinctrl: single: fix missing error code in pcs_probe() *a64f30db12RDMA/iwcm: Fix WARNING:at_kernel/workqueue.c:#check_flush_dependency *51c87c89b5PCI: xilinx-nwl: Clean up clock on probe failure/removal *0124ed187cPCI: xilinx-nwl: Fix register misspelling *45db20bdb5nvdimm: Fix devs leaks in scan_labels() *3e19c475c1clk: qcom: dispcc-sm8250: use special function for Lucid 5LPE PLL *23838bef2aPCI: keystone: Fix if-statement expression in ks_pcie_quirk() *6126737006PCI: Wait for Link before restoring Downstream Buses *5212a53c0ePCI/PM: Drop pci_bridge_wait_for_secondary_bus() timeout parameter *f88f1145e1PCI/PM: Increase wait time after resume *3dba83d3c8drivers: media: dvb-frontends/rtl2830: fix an out-of-bounds write error *15bea004e9drivers: media: dvb-frontends/rtl2832: fix an out-of-bounds write error *ecf134cfb9Input: ilitek_ts_i2c - add report id message validation *1dc7520bd5Input: ilitek_ts_i2c - avoid wrong input subsystem sync *a3f77b5d16clk: rockchip: Set parent rate for DCLK_VOP clock on RK3228 *d4f1531d42remoteproc: imx_rproc: Initialize workqueue earlier *e947b2546aremoteproc: imx_rproc: Correct ddr alias for i.MX8M *c322ff6012clk: imx: imx8qxp: Parent should be initialized earlier than the clock *6066698885clk: imx: imx8qxp: Register dc0_bypass0_clk before disp clk *604f8ef4e8clk: imx: imx8mp: fix clock tree update of TF-A managed clocks *4ea3592cf0clk: imx: fracn-gppll: fix fractional part of PLL getting lost *ddfa237e64clk: imx: fracn-gppll: support integer pll *335426e974clk: imx: composite-7ulp: Check the PCC present bit *6f0b16cee8clk: imx: composite-8m: Enable gate clk with mcore_booted *e19c6fe81dclk: imx: composite-8m: Less function calls in __imx8m_clk_hw_composite() after error detection *0557c1d220perf time-utils: Fix 32-bit nsec parsing *bf8a150986perf sched timehist: Fixed timestamp error when unable to confirm event sched_in time *b628bdb723perf stat: Display iostat headers correctly *aec4bdcacbperf sched timehist: Fix missing free of session in perf_sched__timehist() *53ddffedb4perf inject: Fix leader sampling inserting additional samples *59415a4188perf mem: Free the allocated sort string, fixing a leak *8397bf7898bpf: Zero former ARG_PTR_TO_{LONG,INT} args in case of error *81c602aa35bpf: Improve check_raw_mode_ok test for MEM_UNINIT-tagged types *1782b0f0dabpf: Fix bpf_strtol and bpf_strtoul helpers for 32bit *a8abfda768nilfs2: fix potential oob read in nilfs_btree_check_delete() *f0572b8467nilfs2: determine empty node blocks as corrupted *f68523e0f2nilfs2: fix potential null-ptr-deref in nilfs_btree_insert() *ea32883e4aext4: avoid OOB when system.data xattr changes underneath the filesystem *f595035794ext4: return error on ext4_find_inline_entry *e953cb3f6dext4: avoid negative min_clusters in find_group_orlov() *b08c3ede3aext4: avoid potential buffer_head leak in __ext4_new_inode() *9fd0fe32b4ext4: avoid buffer_head leak in ext4_mark_inode_used() *c328bf681esmackfs: Use rcu_assign_pointer() to ensure safe assignment in smk_set_cipso *989b006651ext4: clear EXT4_GROUP_INFO_WAS_TRIMMED_BIT even mount with discard *f27f949622kthread: fix task state in kthread worker if being frozen *d18b3b1882xz: cleanup CRC32 edits from 2018 *dc7ce14f00bpf: correctly handle malformed BPF_CORE_TYPE_ID_LOCAL relos *e97f4c66cdselftests/bpf: Fix compile if backtrace support missing in libc *55f121e508selftests/bpf: Move test_progs helpers to testing_helpers object *be4e85369eselftests/bpf: Replace extract_build_id with read_build_id *54f33960f4selftests/bpf: Fix C++ compile error from missing _Bool type *b8a8eb1138selftests/bpf: Fix error compiling test_lru_map.c *807211a88fselftests/bpf: Fix errors compiling cg_storage_multi.h with musl libc *e6402e99b4selftests/bpf: Fix compiling core_reloc.c with musl-libc *be5bf36f79selftests/bpf: Fix compiling tcp_rtt.c with musl-libc *d7508ecf6dselftests/bpf: Fix compiling flow_dissector.c with musl-libc *75f6eeadd9selftests/bpf: Fix compiling kfree_skb.c with musl-libc *589516d007selftests/bpf: Fix include of <sys/fcntl.h> *4d8fb7ed7aselftests/bpf: Add a cgroup prog bpf_get_ns_current_pid_tgid() test *abe187c663selftests/bpf: Refactor out some functions in ns_current_pid_tgid test *156b1013acselftests/bpf: Replace CHECK with ASSERT_* in ns_current_pid_tgid test *5acae99494selftests/bpf: Fix missing BUILD_BUG_ON() declaration *9be87e412aselftests/bpf: Fix missing UINT_MAX definitions in benchmarks *df3683cd4aselftests/bpf: Fix missing ARRAY_SIZE() definition in bench.c *d543b3f888selftests/bpf: Fix error compiling bpf_iter_setsockopt.c with musl libc *9632d35022selftests/bpf: Fix compile error from rlim_t in sk_storage_map.c *bbbc48fdeaselftests/bpf: Use pid_t consistently in test_progs.c *a1914d1466selftests/bpf: Workaround strict bpf_lsm return value check. *45108a7b48selftests/bpf: Add tests for _opts variants of bpf_*_get_fd_by_id() *c7f7c60e39selftests/bpf: Add selftest deny_namespace to s390x deny list *c84ceb546ftpm: Clean up TPM space after command failure *1bd4e5a74dxen/swiotlb: fix allocated size *b1e6e80a1bxen/swiotlb: add alignment check for dma buffers *09ed537092HID: wacom: Do not warn about dropped packets for first packet *c53345e926HID: wacom: Support sequence numbers smaller than 16-bit *6434af1664xen: use correct end address of kernel for conflict checking *b0ea7196b4drivers:drm:exynos_drm_gsc:Fix wrong assignment in gsc_bind() *03aa52bea2drm/msm: fix %s null argument error *8d50829f24ipmi: docs: don't advertise deprecated sysfs entries *ee68e83f36drm/msm/a5xx: workaround early ring-buffer emptiness check *72ef163b74drm/msm/a5xx: fix races in preemption evaluation stage *27c83a58c8drm/msm/a5xx: properly clear preemption records on resume *d13dc493cadrm/msm/a5xx: disable preemption in submits by default *0ff5d05521drm/msm: Fix incorrect file name output in adreno_request_fw() *a39de4afc5powerpc/8xx: Fix kernel vs user address comparison *7636d4275apowerpc/8xx: Fix initial memory mapping *3991f39caddrm/mediatek: Use spin_lock_irqsave() for CRTC event lock *27fa0457afdrm/mediatek: Fix missing configuration flags in mtk_crtc_ddp_config() *6ce8b6ab44jfs: fix out-of-bounds in dbNextAG() and diAlloc() *abc71e8917scsi: elx: libefc: Fix potential use after free in efc_nport_vport_del() *ae0e16521adrm/vc4: hdmi: Handle error case of pm_runtime_resume_and_get *2a32ab43a1drm/bridge: lontium-lt8912b: Validate mode in drm_bridge_funcs::mode_valid() *5f5f028c88drm/radeon/evergreen_cs: fix int overflow errors in cs track offsets *7041ad39b0drm/rockchip: dw_hdmi: Fix reading EDID when using a forced mode *6bfa97fd76drm/rockchip: vop: Allow 4096px width scaling *7840f8e3b2drm/amd/amdgpu: Properly tune the size of struct *fb07655122scsi: NCR5380: Check for phase match during PDMA fixup *2fb9e01751scsi: smartpqi: revert propagate-the-multipath-failure-to-SML-quickly *7146e94278drm/radeon: properly handle vbios fake edid sizing *833056cc9bdrm/radeon: Replace one-element array with flexible-array member *4ee9498545drm/amdgpu: properly handle vbios fake edid sizing *fe302ce375drm/amdgpu: Replace one-element array with flexible-array member *64886a4e6fdrm/amd/display: Add null check for set_output_gamma in dcn30_set_output_transfer_func *bb90800578drm/stm: ltdc: check memory returned by devm_kzalloc() *6c444fb529drm/stm: Fix an error handling path in stm_drm_platform_probe() *3532188a72pmdomain: core: Harden inter-column space in debug summary *261c7d0311mtd: rawnand: mtk: Fix init error path *227c0987d9mtd: rawnand: mtk: Factorize out the logic cleaning mtk chips *c2175ff1a6mtd: rawnand: mtk: Use for_each_child_of_node_scoped() *ec2777e57frcu/nocb: Fix RT throttling hrtimer armed from offline CPU *ec660a3fe8mtd: powernv: Add check devm_kasprintf() returned value *1f0c998b53iommu/amd: Do not set the D bit on AMD v2 table entries *8973959341fbdev: hpfb: Fix an error handling path in hpfb_dio_probe() *e25d2ee97cpower: supply: max17042_battery: Fix SOC threshold calc w/ no current sense *d31f42d4bapower: supply: axp20x_battery: Remove design from min and max voltage *86c89e10c6hwmon: (ntc_thermistor) fix module autoloading *090d125de8mtd: slram: insert break after errors in parsing the map *e470e32d74hwmon: (max16065) Fix alarm attributes *8b726ae944hwmon: (max16065) Remove use of i2c_match_id() *3ff59f75a9i2c: Add i2c_get_match_data() *23d99c42c3hwmon: (max16065) Fix overflows seen when writing limits *a9ed816222m68k: Fix kernel_clone_args.flags in m68k_clone() *12981218bdALSA: hda: cs35l41: fix module autoloading *cd728f4667ASoC: rt5682s: Return devm_of_clk_add_hw_provider to transfer the error *3125e582dfclocksource/drivers/qcom: Add missing iounmap() on errors in msm_dt_timer_init() *22a0ee419breset: k210: fix OF node leak in probe() error path *5e787db655reset: berlin: fix OF node leak in probe() error path *3328b15ac9ARM: versatile: fix OF node leak in CPUs prepare *d4285413b4ARM: dts: imx7d-zii-rmu2: fix Ethernet PHY pinctrl property *7345e4c122ARM: dts: microchip: sama7g5: Fix RTT clock *9f5ec0ccbaarm64: dts: ti: k3-j721e-sk: Fix reversed C6x carveout locations *b6cea83504ARM: dts: microchip: sam9x60: Fix rtc/rtt clocks *48b8382743arm64: dts: renesas: r9a07g044: Correct GICD and GICR sizes *9644887254arm64: dts: renesas: r9a07g054: Correct GICD and GICR sizes *34d19aa859arm64: dts: renesas: r9a07g043u: Correct GICD and GICR sizes *864f410100regulator: Return actual error in of_regulator_bulk_get_all() *a35ec65a2dspi: ppc4xx: Avoid returning 0 when failed to parse and map IRQ *d7f4fc2bc1firmware: arm_scmi: Fix double free in OPTEE transport *da993b73c0arm64: dts: exynos: exynos7885-jackpotlte: Correct RAM amount to 4GB *d0422ab015spi: ppc4xx: handle irq_of_parse_and_map() errors *64cf2a3920block: fix potential invalid pointer dereference in blk_add_partition *e7669bf968block: print symbolic error name instead of error code *de6c5e3a45block, bfq: don't break merge chain in bfq_split_bfqq() *ec170e255cblock, bfq: choose the last bfqq from merge chain in bfq_setup_cooperator() *ddbdaad123block, bfq: fix possible UAF for bfqq->bic with merge chain *9c25faf72dnbd: fix race between timeout and normal completion *f2bd963554ipv6: avoid possible NULL deref in rt6_uncached_list_flush_dev() *b53055ac98net: tipc: avoid possible garbage value *38a8cfdd5cnet: ipv6: rpl_iptunnel: Fix memory leak in rpl_input *21ab18ba23r8169: disable ALDPS per default for RTL8125 *d2d2ecd436net: enetc: Use IRQF_NO_AUTOEN flag in request_irq() *abe09d6b06bareudp: Pull inner IP header on xmit. *bbb52cf6d5bareudp: Pull inner IP header in bareudp_udp_encap_recv(). *bd7bca2864Bluetooth: btusb: Fix not handling ZPL/short-transfer *63969cc95bcan: m_can: m_can_close(): stop clocks after device has been shut down *e5520e9568can: m_can: enable NAPI before enabling interrupts *93a3de9432can: m_can: Remove repeated check for is_peripheral *7a145d6ec2can: bcm: Clear bo->bcm_proc_read after remove_proc_entry(). *04f62c012esock_map: Add a cond_resched() in sock_hash_free() *cfda415bcaBluetooth: hci_sync: Ignore errors from HCI_OP_REMOTE_NAME_REQ_CANCEL *6e4f8d8abbBluetooth: hci_core: Fix sending MGMT_EV_CONNECT_FAILED *b040b71d99wifi: wilc1000: fix potential RCU dereference issue in wilc_parse_join_bss_param *db5ca4b42cwifi: mac80211: use two-phase skb reclamation in ieee80211_do_stop() *87032ebeccwifi: cfg80211: fix two more possible UBSAN-detected off-by-one errors *79e06c2d26wifi: mt76: mt7915: fix rx filter setting for bfee functionality *0ea4ce26a1wifi: cfg80211: fix UBSAN noise in cfg80211_wext_siwscan() *98d3be34c9crypto: hisilicon/qm - inject error before stopping queue *c7d3e115e2crypto: hisilicon/qm - reset device before enabling it *c47344e8b3crypto: hisilicon/qm - fix coding style issues *e13d032d60crypto: hisilicon/hpre - mask cluster timeout error *ea46535864crypto: hisilicon/hpre - enable sva error interrupt event *20c96d0aaax86/sgx: Fix deadlock in SGX NUMA node search *0c0997d65bcpufreq: ti-cpufreq: Introduce quirks to handle syscon fails appropriately *98a730f455perf/arm-cmn: Ensure dtm_idx is big enough *22deed5deaperf/arm-cmn: Refactor node ID handling. Again. *3e66b8c3b2perf/arm-cmn: Improve debugfs pretty-printing for large configs *7a638f9114perf/arm-cmn: Rework DTC counters (again) *8b484a2614netfilter: nf_tables: remove annotation to access set timeout while holding lock *10329d3434netfilter: nf_tables: reject expiration higher than timeout *d7b8d3d4a7netfilter: nf_tables: reject element expiration with no timeout *6f25895de9netfilter: nf_tables: elements with timeout below CONFIG_HZ never expire *f812ca13a0ACPI: CPPC: Fix MASK_VAL() usage *24d3465bcfcan: j1939: use correct function name in comment *854b4f1e1bkselftest/arm64: Actually test SME vector length changes via sigreturn *a1053b0a48drivers/perf: hisi_pcie: Record hardware counts correctly *1a216fa8edpadata: Honor the caller's alignment in case of chunk_size 0 *c4bad37b62ACPICA: executer/exsystem: Don't nag user about every Stall() violating the spec *0baafd476cACPICA: Implement ACPI_WARNING_ONCE and ACPI_ERROR_ONCE *47b1ce7203wifi: iwlwifi: mvm: increase the time between ranging measurements *aafca50e71wifi: mac80211: don't use rate mask for offchannel TX either *24f30b34ffdrivers/perf: Fix ali_drw_pmu driver interrupt status clearing *92dbc74464kselftest/arm64: signal: fix/refactor SVE vector length enumeration *17f8c83212kselftest/arm64: Fix enumeration of systems without 128 bit SME for SSVE+ZA *2505532410kselftest/arm64: Verify simultaneous SSVE and ZA context generation *3363e9a4ddkselftest/arm64: Don't pass headers to the compiler as source *5fa2f2dbf0mount: handle OOM on mnt_warn_timestamp_expiry *880c18add0fs/namespace: fnic: Switch to use %ptTd *db2556e538RISC-V: KVM: Fix sbiret init before forwarding to userspace *161a8becd0wifi: rtw88: remove CPT execution branch never used *175407d614net: stmmac: dwmac-loongson: Init ref and PTP clocks rate *7b5e333a11wifi: ath9k: Remove error checks when creating debugfs entries *4738809feewifi: ath9k: fix parameter check in ath9k_init_debug() *f4ea89abbeACPI: PMIC: Remove unneeded check in tps68470_pmic_opregion_probe() *df95378d40crypto: xor - fix template benchmarking *7887ad1199wifi: rtw88: always wait for both firmware loading attempts *7d77159149EDAC/synopsys: Fix error injection on Zynq UltraScale+ *a8d9917193EDAC/synopsys: Fix ECC status and IRQ control race condition Change-Id: I743f73e5b8fc10197713e929c757c9c675245db2 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -133,7 +133,6 @@ GTAGS
|
||||
# id-utils files
|
||||
ID
|
||||
|
||||
*.orig
|
||||
*~
|
||||
\#*#
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ KernelVersion:
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Reading this returns the valid values that can be written to the
|
||||
on_altvoltage0_mode attribute:
|
||||
filter_mode attribute:
|
||||
|
||||
- auto -> Adjust bandpass filter to track changes in input clock rate.
|
||||
- manual -> disable/unregister the clock rate notifier / input clock tracking.
|
||||
|
||||
@@ -109,17 +109,17 @@ Get sum of delays, since system boot, for all pids with tgid 5::
|
||||
CPU count real total virtual total delay total delay average
|
||||
8 7000000 6872122 3382277 0.423ms
|
||||
IO count delay total delay average
|
||||
0 0 0ms
|
||||
0 0 0.000ms
|
||||
SWAP count delay total delay average
|
||||
0 0 0ms
|
||||
0 0 0.000ms
|
||||
RECLAIM count delay total delay average
|
||||
0 0 0ms
|
||||
0 0 0.000ms
|
||||
THRASHING count delay total delay average
|
||||
0 0 0ms
|
||||
0 0 0.000ms
|
||||
COMPACT count delay total delay average
|
||||
0 0 0ms
|
||||
WPCOPY count delay total delay average
|
||||
0 0 0ms
|
||||
0 0 0.000ms
|
||||
WPCOPY count delay total delay average
|
||||
0 0 0.000ms
|
||||
|
||||
Get IO accounting for pid 1, it works only with -p::
|
||||
|
||||
|
||||
@@ -4588,6 +4588,16 @@
|
||||
printk.time= Show timing data prefixed to each printk message line
|
||||
Format: <bool> (1/Y/y=enable, 0/N/n=disable)
|
||||
|
||||
proc_mem.force_override= [KNL]
|
||||
Format: {always | ptrace | never}
|
||||
Traditionally /proc/pid/mem allows memory permissions to be
|
||||
overridden without restrictions. This option may be set to
|
||||
restrict that. Can be one of:
|
||||
- 'always': traditional behavior always allows mem overrides.
|
||||
- 'ptrace': only allow mem overrides for active ptracers.
|
||||
- 'never': never allow mem overrides.
|
||||
If not specified, default is the CONFIG_PROC_MEM_* choice.
|
||||
|
||||
processor.max_cstate= [HW,ACPI]
|
||||
Limit processor to maximum C-state
|
||||
max_cstate=9 overrides any DMI blacklist limit.
|
||||
|
||||
@@ -130,6 +130,8 @@ stable kernels.
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Cortex-A710 | #3324338 | ARM64_ERRATUM_3194386 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Cortex-A715 | #3456084 | ARM64_ERRATUM_3194386 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Cortex-A720 | #3456091 | ARM64_ERRATUM_3194386 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Cortex-A725 | #3456106 | ARM64_ERRATUM_3194386 |
|
||||
@@ -166,6 +168,8 @@ stable kernels.
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Neoverse-N2 | #3324339 | ARM64_ERRATUM_3194386 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Neoverse-N3 | #3456111 | ARM64_ERRATUM_3194386 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Neoverse-V1 | #3324341 | ARM64_ERRATUM_3194386 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Neoverse-V2 | #3324336 | ARM64_ERRATUM_3194386 |
|
||||
|
||||
@@ -23,7 +23,6 @@ properties:
|
||||
- ak8963
|
||||
- ak09911
|
||||
- ak09912
|
||||
- ak09916
|
||||
deprecated: true
|
||||
|
||||
reg:
|
||||
|
||||
@@ -102,21 +102,21 @@ properties:
|
||||
default: 2
|
||||
|
||||
interrupts:
|
||||
anyOf:
|
||||
- minItems: 1
|
||||
items:
|
||||
- description: TX interrupt
|
||||
- description: RX interrupt
|
||||
- items:
|
||||
- description: common/combined interrupt
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
interrupt-names:
|
||||
oneOf:
|
||||
- minItems: 1
|
||||
- description: TX interrupt
|
||||
const: tx
|
||||
- description: RX interrupt
|
||||
const: rx
|
||||
- description: TX and RX interrupts
|
||||
items:
|
||||
- const: tx
|
||||
- const: rx
|
||||
- const: common
|
||||
- description: Common/combined interrupt
|
||||
const: common
|
||||
|
||||
fck_parent:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
|
||||
@@ -540,7 +540,7 @@ at module load time (for a module) with::
|
||||
alerts_broken
|
||||
|
||||
The addresses are normal I2C addresses. The adapter is the string
|
||||
name of the adapter, as shown in /sys/class/i2c-adapter/i2c-<n>/name.
|
||||
name of the adapter, as shown in /sys/bus/i2c/devices/i2c-<n>/name.
|
||||
It is *NOT* i2c-<n> itself. Also, the comparison is done ignoring
|
||||
spaces, so if the name is "This is an I2C chip" you can say
|
||||
adapter_name=ThisisanI2cchip. This is because it's hard to pass in
|
||||
|
||||
@@ -4,15 +4,19 @@
|
||||
Softnet Driver Issues
|
||||
=====================
|
||||
|
||||
Transmit path guidelines:
|
||||
Transmit path guidelines
|
||||
========================
|
||||
|
||||
1) The ndo_start_xmit method must not return NETDEV_TX_BUSY under
|
||||
any normal circumstances. It is considered a hard error unless
|
||||
there is no way your device can tell ahead of time when its
|
||||
transmit function will become busy.
|
||||
Stop queues in advance
|
||||
----------------------
|
||||
|
||||
Instead it must maintain the queue properly. For example,
|
||||
for a driver implementing scatter-gather this means::
|
||||
The ndo_start_xmit method must not return NETDEV_TX_BUSY under
|
||||
any normal circumstances. It is considered a hard error unless
|
||||
there is no way your device can tell ahead of time when its
|
||||
transmit function will become busy.
|
||||
|
||||
Instead it must maintain the queue properly. For example,
|
||||
for a driver implementing scatter-gather this means::
|
||||
|
||||
static netdev_tx_t drv_hard_start_xmit(struct sk_buff *skb,
|
||||
struct net_device *dev)
|
||||
@@ -42,56 +46,79 @@ Transmit path guidelines:
|
||||
return NETDEV_TX_OK;
|
||||
}
|
||||
|
||||
And then at the end of your TX reclamation event handling::
|
||||
And then at the end of your TX reclamation event handling::
|
||||
|
||||
if (netif_queue_stopped(dp->dev) &&
|
||||
TX_BUFFS_AVAIL(dp) > (MAX_SKB_FRAGS + 1))
|
||||
netif_wake_queue(dp->dev);
|
||||
|
||||
For a non-scatter-gather supporting card, the three tests simply become::
|
||||
For a non-scatter-gather supporting card, the three tests simply become::
|
||||
|
||||
/* This is a hard error log it. */
|
||||
if (TX_BUFFS_AVAIL(dp) <= 0)
|
||||
|
||||
and::
|
||||
and::
|
||||
|
||||
if (TX_BUFFS_AVAIL(dp) == 0)
|
||||
|
||||
and::
|
||||
and::
|
||||
|
||||
if (netif_queue_stopped(dp->dev) &&
|
||||
TX_BUFFS_AVAIL(dp) > 0)
|
||||
netif_wake_queue(dp->dev);
|
||||
|
||||
2) An ndo_start_xmit method must not modify the shared parts of a
|
||||
cloned SKB.
|
||||
Lockless queue stop / wake helper macros
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
3) Do not forget that once you return NETDEV_TX_OK from your
|
||||
ndo_start_xmit method, it is your driver's responsibility to free
|
||||
up the SKB and in some finite amount of time.
|
||||
.. kernel-doc:: include/net/netdev_queues.h
|
||||
:doc: Lockless queue stopping / waking helpers.
|
||||
|
||||
For example, this means that it is not allowed for your TX
|
||||
mitigation scheme to let TX packets "hang out" in the TX
|
||||
ring unreclaimed forever if no new TX packets are sent.
|
||||
This error can deadlock sockets waiting for send buffer room
|
||||
to be freed up.
|
||||
No exclusive ownership
|
||||
----------------------
|
||||
|
||||
If you return NETDEV_TX_BUSY from the ndo_start_xmit method, you
|
||||
must not keep any reference to that SKB and you must not attempt
|
||||
to free it up.
|
||||
An ndo_start_xmit method must not modify the shared parts of a
|
||||
cloned SKB.
|
||||
|
||||
Probing guidelines:
|
||||
Timely completions
|
||||
------------------
|
||||
|
||||
1) Any hardware layer address you obtain for your device should
|
||||
be verified. For example, for ethernet check it with
|
||||
linux/etherdevice.h:is_valid_ether_addr()
|
||||
Do not forget that once you return NETDEV_TX_OK from your
|
||||
ndo_start_xmit method, it is your driver's responsibility to free
|
||||
up the SKB and in some finite amount of time.
|
||||
|
||||
Close/stop guidelines:
|
||||
For example, this means that it is not allowed for your TX
|
||||
mitigation scheme to let TX packets "hang out" in the TX
|
||||
ring unreclaimed forever if no new TX packets are sent.
|
||||
This error can deadlock sockets waiting for send buffer room
|
||||
to be freed up.
|
||||
|
||||
1) After the ndo_stop routine has been called, the hardware must
|
||||
not receive or transmit any data. All in flight packets must
|
||||
be aborted. If necessary, poll or wait for completion of
|
||||
any reset commands.
|
||||
If you return NETDEV_TX_BUSY from the ndo_start_xmit method, you
|
||||
must not keep any reference to that SKB and you must not attempt
|
||||
to free it up.
|
||||
|
||||
2) The ndo_stop routine will be called by unregister_netdevice
|
||||
if device is still UP.
|
||||
Probing guidelines
|
||||
==================
|
||||
|
||||
Address validation
|
||||
------------------
|
||||
|
||||
Any hardware layer address you obtain for your device should
|
||||
be verified. For example, for ethernet check it with
|
||||
linux/etherdevice.h:is_valid_ether_addr()
|
||||
|
||||
Close/stop guidelines
|
||||
=====================
|
||||
|
||||
Quiescence
|
||||
----------
|
||||
|
||||
After the ndo_stop routine has been called, the hardware must
|
||||
not receive or transmit any data. All in flight packets must
|
||||
be aborted. If necessary, poll or wait for completion of
|
||||
any reset commands.
|
||||
|
||||
Auto-close
|
||||
----------
|
||||
|
||||
The ndo_stop routine will be called by unregister_netdevice
|
||||
if device is still UP.
|
||||
|
||||
@@ -17,8 +17,9 @@ a) 等待一个CPU(任务为可运行)
|
||||
b) 完成由该任务发起的块I/O同步请求
|
||||
c) 页面交换
|
||||
d) 内存回收
|
||||
e) 页缓存抖动
|
||||
e) 抖动
|
||||
f) 直接规整
|
||||
g) 写保护复制
|
||||
|
||||
并将这些统计信息通过taskstats接口提供给用户空间。
|
||||
|
||||
@@ -42,7 +43,7 @@ f) 直接规整
|
||||
include/uapi/linux/taskstats.h
|
||||
|
||||
其描述了延时计数相关字段。系统通常以计数器形式返回 CPU、同步块 I/O、交换、内存
|
||||
回收、页缓存抖动、直接规整等的累积延时。
|
||||
回收、页缓存抖动、直接规整、写保护复制等的累积延时。
|
||||
|
||||
取任务某计数器两个连续读数的差值,将得到任务在该时间间隔内等待对应资源的总延时。
|
||||
|
||||
@@ -91,15 +92,17 @@ getdelays命令的一般格式::
|
||||
CPU count real total virtual total delay total delay average
|
||||
8 7000000 6872122 3382277 0.423ms
|
||||
IO count delay total delay average
|
||||
0 0 0ms
|
||||
0 0 0.000ms
|
||||
SWAP count delay total delay average
|
||||
0 0 0ms
|
||||
0 0 0.000ms
|
||||
RECLAIM count delay total delay average
|
||||
0 0 0ms
|
||||
0 0 0.000ms
|
||||
THRASHING count delay total delay average
|
||||
0 0 0ms
|
||||
0 0 0.000ms
|
||||
COMPACT count delay total delay average
|
||||
0 0 0ms
|
||||
0 0 0.000ms
|
||||
WPCOPY count delay total delay average
|
||||
0 0 0ms
|
||||
|
||||
获取pid为1的IO计数,它只和-p一起使用::
|
||||
# ./getdelays -i -p 1
|
||||
|
||||
2
Makefile
2
Makefile
@@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 6
|
||||
PATCHLEVEL = 1
|
||||
SUBLEVEL = 112
|
||||
SUBLEVEL = 115
|
||||
EXTRAVERSION =
|
||||
NAME = Curry Ramen
|
||||
|
||||
|
||||
@@ -578,6 +578,7 @@
|
||||
prepare_to_wait_event
|
||||
print_hex_dump
|
||||
_printk
|
||||
__pskb_copy_fclone
|
||||
pskb_expand_head
|
||||
__pskb_pull_tail
|
||||
put_device
|
||||
|
||||
@@ -313,8 +313,6 @@ extern inline pte_t mk_swap_pte(unsigned long type, unsigned long offset)
|
||||
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
|
||||
#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
|
||||
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
#define pte_ERROR(e) \
|
||||
printk("%s:%d: bad pte %016lx.\n", __FILE__, __LINE__, pte_val(e))
|
||||
#define pmd_ERROR(e) \
|
||||
|
||||
@@ -120,8 +120,6 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address,
|
||||
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
|
||||
#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
|
||||
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
||||
#include <asm/hugepage.h>
|
||||
#endif
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
|
||||
hpd-gpios = <&expgpio 0 GPIO_ACTIVE_LOW>;
|
||||
power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -350,7 +350,7 @@
|
||||
|
||||
&iomuxc_lpsr {
|
||||
pinctrl_enet1_phy_interrupt: enet1phyinterruptgrp {
|
||||
fsl,phy = <
|
||||
fsl,pins = <
|
||||
MX7D_PAD_LPSR_GPIO1_IO02__GPIO1_IO2 0x08
|
||||
>;
|
||||
};
|
||||
|
||||
@@ -690,7 +690,7 @@
|
||||
compatible = "microchip,sam9x60-rtt", "atmel,at91sam9260-rtt";
|
||||
reg = <0xfffffe20 0x20>;
|
||||
interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
|
||||
clocks = <&clk32k 0>;
|
||||
clocks = <&clk32k 1>;
|
||||
};
|
||||
|
||||
pit: timer@fffffe40 {
|
||||
@@ -716,7 +716,7 @@
|
||||
compatible = "microchip,sam9x60-rtc", "atmel,at91sam9x5-rtc";
|
||||
reg = <0xfffffea8 0x100>;
|
||||
interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
|
||||
clocks = <&clk32k 0>;
|
||||
clocks = <&clk32k 1>;
|
||||
};
|
||||
|
||||
watchdog: watchdog@ffffff80 {
|
||||
|
||||
@@ -221,7 +221,7 @@
|
||||
compatible = "microchip,sama7g5-rtt", "microchip,sam9x60-rtt", "atmel,at91sam9260-rtt";
|
||||
reg = <0xe001d020 0x30>;
|
||||
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk32k 0>;
|
||||
clocks = <&clk32k 1>;
|
||||
};
|
||||
|
||||
clk32k: clock-controller@e001d050 {
|
||||
|
||||
@@ -711,7 +711,7 @@ static int __init aes_init(void)
|
||||
algname = aes_algs[i].base.cra_name + 2;
|
||||
drvname = aes_algs[i].base.cra_driver_name + 2;
|
||||
basename = aes_algs[i].base.cra_driver_name;
|
||||
simd = simd_skcipher_create_compat(algname, drvname, basename);
|
||||
simd = simd_skcipher_create_compat(aes_algs + i, algname, drvname, basename);
|
||||
err = PTR_ERR(simd);
|
||||
if (IS_ERR(simd))
|
||||
goto unregister_simds;
|
||||
|
||||
@@ -539,7 +539,7 @@ static int __init aes_init(void)
|
||||
algname = aes_algs[i].base.cra_name + 2;
|
||||
drvname = aes_algs[i].base.cra_driver_name + 2;
|
||||
basename = aes_algs[i].base.cra_driver_name;
|
||||
simd = simd_skcipher_create_compat(algname, drvname, basename);
|
||||
simd = simd_skcipher_create_compat(aes_algs + i, algname, drvname, basename);
|
||||
err = PTR_ERR(simd);
|
||||
if (IS_ERR(simd))
|
||||
goto unregister_simds;
|
||||
|
||||
@@ -21,8 +21,6 @@
|
||||
#define pgd_none(pgd) (0)
|
||||
#define pgd_bad(pgd) (0)
|
||||
#define pgd_clear(pgdp)
|
||||
#define kern_addr_valid(addr) (1)
|
||||
/* FIXME */
|
||||
/*
|
||||
* PMD_SHIFT determines the size of the area a second-level page table can map
|
||||
* PGDIR_SHIFT determines what a third-level page table entry can map
|
||||
|
||||
@@ -300,10 +300,6 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
|
||||
*/
|
||||
#define MAX_SWAPFILES_CHECK() BUILD_BUG_ON(MAX_SWAPFILES_SHIFT > __SWP_TYPE_BITS)
|
||||
|
||||
/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
|
||||
/* FIXME: this is not correct */
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
/*
|
||||
* We provide our own arch_get_unmapped_area to cope with VIPT caches.
|
||||
*/
|
||||
|
||||
@@ -359,7 +359,7 @@ static unsigned long ep93xx_div_recalc_rate(struct clk_hw *hw,
|
||||
u32 val = __raw_readl(psc->reg);
|
||||
u8 index = (val & psc->mask) >> psc->shift;
|
||||
|
||||
if (index > psc->num_div)
|
||||
if (index >= psc->num_div)
|
||||
return 0;
|
||||
|
||||
return DIV_ROUND_UP_ULL(parent_rate, psc->div[index]);
|
||||
|
||||
@@ -66,6 +66,7 @@ static void __init realview_smp_prepare_cpus(unsigned int max_cpus)
|
||||
return;
|
||||
}
|
||||
map = syscon_node_to_regmap(np);
|
||||
of_node_put(np);
|
||||
if (IS_ERR(map)) {
|
||||
pr_err("PLATSMP: No syscon regmap\n");
|
||||
return;
|
||||
|
||||
@@ -999,6 +999,7 @@ config ARM64_ERRATUM_3194386
|
||||
* ARM Cortex-A78C erratum 3324346
|
||||
* ARM Cortex-A78C erratum 3324347
|
||||
* ARM Cortex-A710 erratam 3324338
|
||||
* ARM Cortex-A715 errartum 3456084
|
||||
* ARM Cortex-A720 erratum 3456091
|
||||
* ARM Cortex-A725 erratum 3456106
|
||||
* ARM Cortex-X1 erratum 3324344
|
||||
@@ -1009,6 +1010,7 @@ config ARM64_ERRATUM_3194386
|
||||
* ARM Cortex-X925 erratum 3324334
|
||||
* ARM Neoverse-N1 erratum 3324349
|
||||
* ARM Neoverse N2 erratum 3324339
|
||||
* ARM Neoverse-N3 erratum 3456111
|
||||
* ARM Neoverse-V1 erratum 3324341
|
||||
* ARM Neoverse V2 erratum 3324336
|
||||
* ARM Neoverse-V3 erratum 3312417
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#
|
||||
# Copyright (C) 1995-2001 by Russell King
|
||||
|
||||
LDFLAGS_vmlinux :=--no-undefined -X
|
||||
LDFLAGS_vmlinux :=--no-undefined -X --pic-veneer
|
||||
|
||||
ifeq ($(CONFIG_RELOCATABLE), y)
|
||||
# Pass --no-apply-dynamic-relocs to restore pre-binutils-2.27 behaviour
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x80000000 0x3da00000>,
|
||||
<0x0 0xc0000000 0x40000000>,
|
||||
<0x8 0x80000000 0x40000000>;
|
||||
<0x8 0x80000000 0x80000000>;
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
|
||||
@@ -922,6 +922,7 @@
|
||||
usb2-lpm-disable;
|
||||
vusb33-supply = <&mt6359_vusb_ldo_reg>;
|
||||
vbus-supply = <&usb_vbus>;
|
||||
mediatek,u3p-dis-msk = <1>;
|
||||
};
|
||||
|
||||
#include <arm/cros-ec-keyboard.dtsi>
|
||||
|
||||
@@ -135,8 +135,8 @@
|
||||
#interrupt-cells = <3>;
|
||||
#address-cells = <0>;
|
||||
interrupt-controller;
|
||||
reg = <0x0 0x11900000 0 0x40000>,
|
||||
<0x0 0x11940000 0 0x60000>;
|
||||
reg = <0x0 0x11900000 0 0x20000>,
|
||||
<0x0 0x11940000 0 0x40000>;
|
||||
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -788,8 +788,8 @@
|
||||
#interrupt-cells = <3>;
|
||||
#address-cells = <0>;
|
||||
interrupt-controller;
|
||||
reg = <0x0 0x11900000 0 0x40000>,
|
||||
<0x0 0x11940000 0 0x60000>;
|
||||
reg = <0x0 0x11900000 0 0x20000>,
|
||||
<0x0 0x11940000 0 0x40000>;
|
||||
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
|
||||
|
||||
@@ -794,8 +794,8 @@
|
||||
#interrupt-cells = <3>;
|
||||
#address-cells = <0>;
|
||||
interrupt-controller;
|
||||
reg = <0x0 0x11900000 0 0x40000>,
|
||||
<0x0 0x11940000 0 0x60000>;
|
||||
reg = <0x0 0x11900000 0 0x20000>,
|
||||
<0x0 0x11940000 0 0x40000>;
|
||||
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
|
||||
|
||||
@@ -32,12 +32,12 @@
|
||||
backlight: edp-backlight {
|
||||
compatible = "pwm-backlight";
|
||||
power-supply = <&vcc_12v>;
|
||||
pwms = <&pwm0 0 740740 0>;
|
||||
pwms = <&pwm0 0 125000 0>;
|
||||
};
|
||||
|
||||
bat: battery {
|
||||
compatible = "simple-battery";
|
||||
charge-full-design-microamp-hours = <9800000>;
|
||||
charge-full-design-microamp-hours = <10000000>;
|
||||
voltage-max-design-microvolt = <4350000>;
|
||||
voltage-min-design-microvolt = <3000000>;
|
||||
};
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
no-map;
|
||||
};
|
||||
|
||||
c66_1_dma_memory_region: c66-dma-memory@a6000000 {
|
||||
c66_0_dma_memory_region: c66-dma-memory@a6000000 {
|
||||
compatible = "shared-dma-pool";
|
||||
reg = <0x00 0xa6000000 0x00 0x100000>;
|
||||
no-map;
|
||||
@@ -123,7 +123,7 @@
|
||||
no-map;
|
||||
};
|
||||
|
||||
c66_0_dma_memory_region: c66-dma-memory@a7000000 {
|
||||
c66_1_dma_memory_region: c66-dma-memory@a7000000 {
|
||||
compatible = "shared-dma-pool";
|
||||
reg = <0x00 0xa7000000 0x00 0x100000>;
|
||||
no-map;
|
||||
|
||||
@@ -82,6 +82,7 @@
|
||||
#define ARM_CPU_PART_CORTEX_A510 0xD46
|
||||
#define ARM_CPU_PART_CORTEX_A520 0xD80
|
||||
#define ARM_CPU_PART_CORTEX_A710 0xD47
|
||||
#define ARM_CPU_PART_CORTEX_A715 0xD4D
|
||||
#define ARM_CPU_PART_CORTEX_X2 0xD48
|
||||
#define ARM_CPU_PART_NEOVERSE_N2 0xD49
|
||||
#define ARM_CPU_PART_CORTEX_A78C 0xD4B
|
||||
@@ -93,6 +94,7 @@
|
||||
#define ARM_CPU_PART_NEOVERSE_V3 0xD84
|
||||
#define ARM_CPU_PART_CORTEX_X925 0xD85
|
||||
#define ARM_CPU_PART_CORTEX_A725 0xD87
|
||||
#define ARM_CPU_PART_NEOVERSE_N3 0xD8E
|
||||
|
||||
#define APM_CPU_PART_XGENE 0x000
|
||||
#define APM_CPU_VAR_POTENZA 0x00
|
||||
@@ -156,6 +158,7 @@
|
||||
#define MIDR_CORTEX_A510 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A510)
|
||||
#define MIDR_CORTEX_A520 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A520)
|
||||
#define MIDR_CORTEX_A710 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A710)
|
||||
#define MIDR_CORTEX_A715 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A715)
|
||||
#define MIDR_CORTEX_X2 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X2)
|
||||
#define MIDR_NEOVERSE_N2 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N2)
|
||||
#define MIDR_CORTEX_A78C MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78C)
|
||||
@@ -167,6 +170,7 @@
|
||||
#define MIDR_NEOVERSE_V3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V3)
|
||||
#define MIDR_CORTEX_X925 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X925)
|
||||
#define MIDR_CORTEX_A725 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A725)
|
||||
#define MIDR_NEOVERSE_N3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N3)
|
||||
#define MIDR_THUNDERX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX)
|
||||
#define MIDR_THUNDERX_81XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_81XX)
|
||||
#define MIDR_THUNDERX_83XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_83XX)
|
||||
|
||||
@@ -1034,8 +1034,6 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma,
|
||||
*/
|
||||
#define MAX_SWAPFILES_CHECK() BUILD_BUG_ON(MAX_SWAPFILES_SHIFT > __SWP_TYPE_BITS)
|
||||
|
||||
extern int kern_addr_valid(unsigned long addr);
|
||||
|
||||
#ifdef CONFIG_ARM64_MTE
|
||||
|
||||
#define __HAVE_ARCH_PREPARE_TO_SWAP
|
||||
|
||||
@@ -442,6 +442,7 @@ static const struct midr_range erratum_spec_ssbs_list[] = {
|
||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78),
|
||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78C),
|
||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
|
||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_A715),
|
||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_A720),
|
||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_A725),
|
||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_X1),
|
||||
@@ -452,6 +453,7 @@ static const struct midr_range erratum_spec_ssbs_list[] = {
|
||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_X925),
|
||||
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1),
|
||||
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
|
||||
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N3),
|
||||
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V1),
|
||||
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V2),
|
||||
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V3),
|
||||
|
||||
@@ -99,10 +99,6 @@ arm_probe_decode_insn(probe_opcode_t insn, struct arch_probe_insn *api)
|
||||
aarch64_insn_is_blr(insn) ||
|
||||
aarch64_insn_is_ret(insn)) {
|
||||
api->handler = simulate_br_blr_ret;
|
||||
} else if (aarch64_insn_is_ldr_lit(insn)) {
|
||||
api->handler = simulate_ldr_literal;
|
||||
} else if (aarch64_insn_is_ldrsw_lit(insn)) {
|
||||
api->handler = simulate_ldrsw_literal;
|
||||
} else {
|
||||
/*
|
||||
* Instruction cannot be stepped out-of-line and we don't
|
||||
@@ -140,6 +136,17 @@ arm_kprobe_decode_insn(kprobe_opcode_t *addr, struct arch_specific_insn *asi)
|
||||
probe_opcode_t insn = le32_to_cpu(*addr);
|
||||
probe_opcode_t *scan_end = NULL;
|
||||
unsigned long size = 0, offset = 0;
|
||||
struct arch_probe_insn *api = &asi->api;
|
||||
|
||||
if (aarch64_insn_is_ldr_lit(insn)) {
|
||||
api->handler = simulate_ldr_literal;
|
||||
decoded = INSN_GOOD_NO_SLOT;
|
||||
} else if (aarch64_insn_is_ldrsw_lit(insn)) {
|
||||
api->handler = simulate_ldrsw_literal;
|
||||
decoded = INSN_GOOD_NO_SLOT;
|
||||
} else {
|
||||
decoded = arm_probe_decode_insn(insn, &asi->api);
|
||||
}
|
||||
|
||||
/*
|
||||
* If there's a symbol defined in front of and near enough to
|
||||
@@ -157,7 +164,6 @@ arm_kprobe_decode_insn(kprobe_opcode_t *addr, struct arch_specific_insn *asi)
|
||||
else
|
||||
scan_end = addr - MAX_ATOMIC_CONTEXT_SIZE;
|
||||
}
|
||||
decoded = arm_probe_decode_insn(insn, &asi->api);
|
||||
|
||||
if (decoded != INSN_REJECTED && scan_end)
|
||||
if (is_probed_address_atomic(addr - 1, scan_end))
|
||||
|
||||
@@ -171,17 +171,15 @@ simulate_tbz_tbnz(u32 opcode, long addr, struct pt_regs *regs)
|
||||
void __kprobes
|
||||
simulate_ldr_literal(u32 opcode, long addr, struct pt_regs *regs)
|
||||
{
|
||||
u64 *load_addr;
|
||||
unsigned long load_addr;
|
||||
int xn = opcode & 0x1f;
|
||||
int disp;
|
||||
|
||||
disp = ldr_displacement(opcode);
|
||||
load_addr = (u64 *) (addr + disp);
|
||||
load_addr = addr + ldr_displacement(opcode);
|
||||
|
||||
if (opcode & (1 << 30)) /* x0-x30 */
|
||||
set_x_reg(regs, xn, *load_addr);
|
||||
set_x_reg(regs, xn, READ_ONCE(*(u64 *)load_addr));
|
||||
else /* w0-w30 */
|
||||
set_w_reg(regs, xn, *load_addr);
|
||||
set_w_reg(regs, xn, READ_ONCE(*(u32 *)load_addr));
|
||||
|
||||
instruction_pointer_set(regs, instruction_pointer(regs) + 4);
|
||||
}
|
||||
@@ -189,14 +187,12 @@ simulate_ldr_literal(u32 opcode, long addr, struct pt_regs *regs)
|
||||
void __kprobes
|
||||
simulate_ldrsw_literal(u32 opcode, long addr, struct pt_regs *regs)
|
||||
{
|
||||
s32 *load_addr;
|
||||
unsigned long load_addr;
|
||||
int xn = opcode & 0x1f;
|
||||
int disp;
|
||||
|
||||
disp = ldr_displacement(opcode);
|
||||
load_addr = (s32 *) (addr + disp);
|
||||
load_addr = addr + ldr_displacement(opcode);
|
||||
|
||||
set_x_reg(regs, xn, *load_addr);
|
||||
set_x_reg(regs, xn, READ_ONCE(*(s32 *)load_addr));
|
||||
|
||||
instruction_pointer_set(regs, instruction_pointer(regs) + 4);
|
||||
}
|
||||
|
||||
@@ -877,6 +877,9 @@ static int kvm_vcpu_suspend(struct kvm_vcpu *vcpu)
|
||||
static int check_vcpu_requests(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
if (kvm_request_pending(vcpu)) {
|
||||
if (kvm_check_request(KVM_REQ_VM_DEAD, vcpu))
|
||||
return -EIO;
|
||||
|
||||
if (kvm_check_request(KVM_REQ_SLEEP, vcpu))
|
||||
kvm_vcpu_sleep(vcpu);
|
||||
|
||||
|
||||
@@ -494,10 +494,10 @@ int kvm_vgic_map_resources(struct kvm *kvm)
|
||||
out:
|
||||
mutex_unlock(&kvm->arch.config_lock);
|
||||
out_slots:
|
||||
mutex_unlock(&kvm->slots_lock);
|
||||
|
||||
if (ret)
|
||||
kvm_vgic_destroy(kvm);
|
||||
kvm_vm_dead(kvm);
|
||||
|
||||
mutex_unlock(&kvm->slots_lock);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -875,53 +875,6 @@ void __init paging_init(void)
|
||||
create_idmap();
|
||||
}
|
||||
|
||||
/*
|
||||
* Check whether a kernel address is valid (derived from arch/x86/).
|
||||
*/
|
||||
int kern_addr_valid(unsigned long addr)
|
||||
{
|
||||
pgd_t *pgdp;
|
||||
p4d_t *p4dp;
|
||||
pud_t *pudp, pud;
|
||||
pmd_t *pmdp, pmd;
|
||||
pte_t *ptep, pte;
|
||||
|
||||
addr = arch_kasan_reset_tag(addr);
|
||||
if ((((long)addr) >> VA_BITS) != -1UL)
|
||||
return 0;
|
||||
|
||||
pgdp = pgd_offset_k(addr);
|
||||
if (pgd_none(READ_ONCE(*pgdp)))
|
||||
return 0;
|
||||
|
||||
p4dp = p4d_offset(pgdp, addr);
|
||||
if (p4d_none(READ_ONCE(*p4dp)))
|
||||
return 0;
|
||||
|
||||
pudp = pud_offset(p4dp, addr);
|
||||
pud = READ_ONCE(*pudp);
|
||||
if (pud_none(pud))
|
||||
return 0;
|
||||
|
||||
if (pud_sect(pud))
|
||||
return pfn_valid(pud_pfn(pud));
|
||||
|
||||
pmdp = pmd_offset(pudp, addr);
|
||||
pmd = READ_ONCE(*pmdp);
|
||||
if (pmd_none(pmd))
|
||||
return 0;
|
||||
|
||||
if (pmd_sect(pmd))
|
||||
return pfn_valid(pmd_pfn(pmd));
|
||||
|
||||
ptep = pte_offset_kernel(pmdp, addr);
|
||||
pte = READ_ONCE(*ptep);
|
||||
if (pte_none(pte))
|
||||
return 0;
|
||||
|
||||
return pfn_valid(pte_pfn(pte));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
static void free_hotplug_page_range(struct page *page, size_t size,
|
||||
struct vmem_altmap *altmap)
|
||||
|
||||
@@ -221,8 +221,7 @@ void __kernel_map_pages(struct page *page, int numpages, int enable)
|
||||
|
||||
/*
|
||||
* This function is used to determine if a linear map page has been marked as
|
||||
* not-valid. Walk the page table and check the PTE_VALID bit. This is based
|
||||
* on kern_addr_valid(), which almost does what we need.
|
||||
* not-valid. Walk the page table and check the PTE_VALID bit.
|
||||
*
|
||||
* Because this is only called on the kernel linear map, p?d_sect() implies
|
||||
* p?d_present(). When debug_pagealloc is enabled, sections mappings are
|
||||
|
||||
@@ -249,9 +249,6 @@ extern void paging_init(void);
|
||||
void update_mmu_cache(struct vm_area_struct *vma, unsigned long address,
|
||||
pte_t *pte);
|
||||
|
||||
/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||
|
||||
|
||||
@@ -131,13 +131,6 @@ static inline void clear_page(void *page)
|
||||
|
||||
#define page_to_virt(page) __va(page_to_phys(page))
|
||||
|
||||
/*
|
||||
* For port to Hexagon Virtual Machine, MAYBE we check for attempts
|
||||
* to reference reserved HVM space, but in any case, the VM will be
|
||||
* protected.
|
||||
*/
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
#include <asm/mem-layout.h>
|
||||
#include <asm-generic/memory_model.h>
|
||||
/* XXX Todo: implement assembly-optimized version of getorder. */
|
||||
|
||||
@@ -181,22 +181,6 @@ ia64_phys_addr_valid (unsigned long addr)
|
||||
return (addr & (local_cpu_data->unimpl_pa_mask)) == 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* kern_addr_valid(ADDR) tests if ADDR is pointing to valid kernel
|
||||
* memory. For the return value to be meaningful, ADDR must be >=
|
||||
* PAGE_OFFSET. This operation can be relatively expensive (e.g.,
|
||||
* require a hash-, or multi-level tree-lookup or something of that
|
||||
* sort) but it guarantees to return TRUE only if accessing the page
|
||||
* at that address does not cause an error. Note that there may be
|
||||
* addresses for which kern_addr_valid() returns FALSE even though an
|
||||
* access would not cause an error (e.g., this is typically true for
|
||||
* memory mapped I/O regions.
|
||||
*
|
||||
* XXX Need to implement this for IA-64.
|
||||
*/
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
|
||||
/*
|
||||
* Now come the defines and routines to manage and access the three-level
|
||||
* page table.
|
||||
|
||||
@@ -78,6 +78,7 @@ config LOONGARCH
|
||||
select GENERIC_SCHED_CLOCK
|
||||
select GENERIC_SMP_IDLE_THREAD
|
||||
select GENERIC_TIME_VSYSCALL
|
||||
select GENERIC_VDSO_TIME_NS
|
||||
select GPIOLIB
|
||||
select HAVE_ARCH_AUDITSYSCALL
|
||||
select HAVE_ARCH_MMAP_RND_BITS if MMU
|
||||
|
||||
@@ -82,7 +82,6 @@ CONFIG_ZSWAP=y
|
||||
CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
|
||||
CONFIG_ZPOOL=y
|
||||
CONFIG_ZBUD=y
|
||||
CONFIG_Z3FOLD=y
|
||||
CONFIG_ZSMALLOC=m
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
|
||||
@@ -25,6 +25,10 @@ struct loongson_board_info {
|
||||
const char *board_vendor;
|
||||
};
|
||||
|
||||
/*
|
||||
* The "core" of cores_per_node and cores_per_package stands for a
|
||||
* logical core, which means in a SMT system it stands for a thread.
|
||||
*/
|
||||
struct loongson_system_configuration {
|
||||
int nr_cpus;
|
||||
int nr_nodes;
|
||||
|
||||
@@ -81,6 +81,7 @@ typedef struct { unsigned long pgprot; } pgprot_t;
|
||||
#define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET - PHYS_OFFSET))
|
||||
|
||||
#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
|
||||
#define sym_to_pfn(x) __phys_to_pfn(__pa_symbol(x))
|
||||
|
||||
#ifdef CONFIG_FLATMEM
|
||||
|
||||
|
||||
@@ -425,8 +425,6 @@ static inline void update_mmu_cache_pmd(struct vm_area_struct *vma,
|
||||
__update_tlb(vma, address, (pte_t *)pmdp);
|
||||
}
|
||||
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
static inline unsigned long pmd_pfn(pmd_t pmd)
|
||||
{
|
||||
return (pmd_val(pmd) & _PFN_MASK) >> _PFN_SHIFT;
|
||||
|
||||
@@ -91,9 +91,16 @@ static inline bool loongarch_vdso_hres_capable(void)
|
||||
|
||||
static __always_inline const struct vdso_data *__arch_get_vdso_data(void)
|
||||
{
|
||||
return get_vdso_data();
|
||||
return (const struct vdso_data *)get_vdso_data();
|
||||
}
|
||||
|
||||
#ifdef CONFIG_TIME_NS
|
||||
static __always_inline
|
||||
const struct vdso_data *__arch_get_timens_vdso_data(const struct vdso_data *vd)
|
||||
{
|
||||
return (const struct vdso_data *)(get_vdso_data() + VVAR_TIMENS_PAGE_OFFSET * PAGE_SIZE);
|
||||
}
|
||||
#endif
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
#endif /* __ASM_VDSO_GETTIMEOFDAY_H */
|
||||
|
||||
@@ -16,10 +16,33 @@ struct vdso_pcpu_data {
|
||||
|
||||
struct loongarch_vdso_data {
|
||||
struct vdso_pcpu_data pdata[NR_CPUS];
|
||||
struct vdso_data data[CS_BASES]; /* Arch-independent data */
|
||||
};
|
||||
|
||||
#define VDSO_DATA_SIZE PAGE_ALIGN(sizeof(struct loongarch_vdso_data))
|
||||
/*
|
||||
* The layout of vvar:
|
||||
*
|
||||
* high
|
||||
* +---------------------+--------------------------+
|
||||
* | loongarch vdso data | LOONGARCH_VDSO_DATA_SIZE |
|
||||
* +---------------------+--------------------------+
|
||||
* | time-ns vdso data | PAGE_SIZE |
|
||||
* +---------------------+--------------------------+
|
||||
* | generic vdso data | PAGE_SIZE |
|
||||
* +---------------------+--------------------------+
|
||||
* low
|
||||
*/
|
||||
#define LOONGARCH_VDSO_DATA_SIZE PAGE_ALIGN(sizeof(struct loongarch_vdso_data))
|
||||
#define LOONGARCH_VDSO_DATA_PAGES (LOONGARCH_VDSO_DATA_SIZE >> PAGE_SHIFT)
|
||||
|
||||
enum vvar_pages {
|
||||
VVAR_GENERIC_PAGE_OFFSET,
|
||||
VVAR_TIMENS_PAGE_OFFSET,
|
||||
VVAR_LOONGARCH_PAGES_START,
|
||||
VVAR_LOONGARCH_PAGES_END = VVAR_LOONGARCH_PAGES_START + LOONGARCH_VDSO_DATA_PAGES - 1,
|
||||
VVAR_NR_PAGES,
|
||||
};
|
||||
|
||||
#define VVAR_SIZE (VVAR_NR_PAGES << PAGE_SHIFT)
|
||||
|
||||
static inline unsigned long get_vdso_base(void)
|
||||
{
|
||||
@@ -34,10 +57,9 @@ static inline unsigned long get_vdso_base(void)
|
||||
return addr;
|
||||
}
|
||||
|
||||
static inline const struct vdso_data *get_vdso_data(void)
|
||||
static inline unsigned long get_vdso_data(void)
|
||||
{
|
||||
return (const struct vdso_data *)(get_vdso_base()
|
||||
- VDSO_DATA_SIZE + SMP_CACHE_BYTES * NR_CPUS);
|
||||
return get_vdso_base() - VVAR_SIZE;
|
||||
}
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
@@ -271,13 +271,15 @@ unsigned long stack_top(void)
|
||||
{
|
||||
unsigned long top = TASK_SIZE & PAGE_MASK;
|
||||
|
||||
/* Space for the VDSO & data page */
|
||||
top -= PAGE_ALIGN(current->thread.vdso->size);
|
||||
top -= PAGE_SIZE;
|
||||
if (current->thread.vdso) {
|
||||
/* Space for the VDSO & data page */
|
||||
top -= PAGE_ALIGN(current->thread.vdso->size);
|
||||
top -= VVAR_SIZE;
|
||||
|
||||
/* Space to randomize the VDSO base */
|
||||
if (current->flags & PF_RANDOMIZE)
|
||||
top -= VDSO_RANDOMIZE_SIZE;
|
||||
/* Space to randomize the VDSO base */
|
||||
if (current->flags & PF_RANDOMIZE)
|
||||
top -= VDSO_RANDOMIZE_SIZE;
|
||||
}
|
||||
|
||||
return top;
|
||||
}
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
#define SMBIOS_FREQHIGH_OFFSET 0x17
|
||||
#define SMBIOS_FREQLOW_MASK 0xFF
|
||||
#define SMBIOS_CORE_PACKAGE_OFFSET 0x23
|
||||
#define SMBIOS_THREAD_PACKAGE_OFFSET 0x25
|
||||
#define LOONGSON_EFI_ENABLE (1 << 3)
|
||||
|
||||
struct screen_info screen_info __section(".data");
|
||||
@@ -115,7 +116,7 @@ static void __init parse_cpu_table(const struct dmi_header *dm)
|
||||
cpu_clock_freq = freq_temp * 1000000;
|
||||
|
||||
loongson_sysconf.cpuname = (void *)dmi_string_parse(dm, dmi_data[16]);
|
||||
loongson_sysconf.cores_per_package = *(dmi_data + SMBIOS_CORE_PACKAGE_OFFSET);
|
||||
loongson_sysconf.cores_per_package = *(dmi_data + SMBIOS_THREAD_PACKAGE_OFFSET);
|
||||
|
||||
pr_info("CpuClock = %llu\n", cpu_clock_freq);
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <linux/random.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/time_namespace.h>
|
||||
#include <linux/timekeeper_internal.h>
|
||||
|
||||
#include <asm/page.h>
|
||||
@@ -26,12 +27,17 @@ extern char vdso_start[], vdso_end[];
|
||||
|
||||
/* Kernel-provided data used by the VDSO. */
|
||||
static union {
|
||||
u8 page[VDSO_DATA_SIZE];
|
||||
u8 page[PAGE_SIZE];
|
||||
struct vdso_data data[CS_BASES];
|
||||
} generic_vdso_data __page_aligned_data;
|
||||
|
||||
static union {
|
||||
u8 page[LOONGARCH_VDSO_DATA_SIZE];
|
||||
struct loongarch_vdso_data vdata;
|
||||
} loongarch_vdso_data __page_aligned_data;
|
||||
|
||||
static struct page *vdso_pages[] = { NULL };
|
||||
struct vdso_data *vdso_data = loongarch_vdso_data.vdata.data;
|
||||
struct vdso_data *vdso_data = generic_vdso_data.data;
|
||||
struct vdso_pcpu_data *vdso_pdata = loongarch_vdso_data.vdata.pdata;
|
||||
|
||||
static int vdso_mremap(const struct vm_special_mapping *sm, struct vm_area_struct *new_vma)
|
||||
@@ -41,6 +47,43 @@ static int vdso_mremap(const struct vm_special_mapping *sm, struct vm_area_struc
|
||||
return 0;
|
||||
}
|
||||
|
||||
static vm_fault_t vvar_fault(const struct vm_special_mapping *sm,
|
||||
struct vm_area_struct *vma, struct vm_fault *vmf)
|
||||
{
|
||||
unsigned long pfn;
|
||||
struct page *timens_page = find_timens_vvar_page(vma);
|
||||
|
||||
switch (vmf->pgoff) {
|
||||
case VVAR_GENERIC_PAGE_OFFSET:
|
||||
if (!timens_page)
|
||||
pfn = sym_to_pfn(vdso_data);
|
||||
else
|
||||
pfn = page_to_pfn(timens_page);
|
||||
break;
|
||||
#ifdef CONFIG_TIME_NS
|
||||
case VVAR_TIMENS_PAGE_OFFSET:
|
||||
/*
|
||||
* If a task belongs to a time namespace then a namespace specific
|
||||
* VVAR is mapped with the VVAR_GENERIC_PAGE_OFFSET and the real
|
||||
* VVAR page is mapped with the VVAR_TIMENS_PAGE_OFFSET offset.
|
||||
* See also the comment near timens_setup_vdso_data().
|
||||
*/
|
||||
if (!timens_page)
|
||||
return VM_FAULT_SIGBUS;
|
||||
else
|
||||
pfn = sym_to_pfn(vdso_data);
|
||||
break;
|
||||
#endif /* CONFIG_TIME_NS */
|
||||
case VVAR_LOONGARCH_PAGES_START ... VVAR_LOONGARCH_PAGES_END:
|
||||
pfn = sym_to_pfn(&loongarch_vdso_data) + vmf->pgoff - VVAR_LOONGARCH_PAGES_START;
|
||||
break;
|
||||
default:
|
||||
return VM_FAULT_SIGBUS;
|
||||
}
|
||||
|
||||
return vmf_insert_pfn(vma, vmf->address, pfn);
|
||||
}
|
||||
|
||||
struct loongarch_vdso_info vdso_info = {
|
||||
.vdso = vdso_start,
|
||||
.size = PAGE_SIZE,
|
||||
@@ -51,6 +94,7 @@ struct loongarch_vdso_info vdso_info = {
|
||||
},
|
||||
.data_mapping = {
|
||||
.name = "[vvar]",
|
||||
.fault = vvar_fault,
|
||||
},
|
||||
.offset_sigreturn = vdso_offset_sigreturn,
|
||||
};
|
||||
@@ -73,6 +117,37 @@ static int __init init_vdso(void)
|
||||
}
|
||||
subsys_initcall(init_vdso);
|
||||
|
||||
#ifdef CONFIG_TIME_NS
|
||||
struct vdso_data *arch_get_vdso_data(void *vvar_page)
|
||||
{
|
||||
return (struct vdso_data *)(vvar_page);
|
||||
}
|
||||
|
||||
/*
|
||||
* The vvar mapping contains data for a specific time namespace, so when a
|
||||
* task changes namespace we must unmap its vvar data for the old namespace.
|
||||
* Subsequent faults will map in data for the new namespace.
|
||||
*
|
||||
* For more details see timens_setup_vdso_data().
|
||||
*/
|
||||
int vdso_join_timens(struct task_struct *task, struct time_namespace *ns)
|
||||
{
|
||||
struct mm_struct *mm = task->mm;
|
||||
struct vm_area_struct *vma;
|
||||
|
||||
VMA_ITERATOR(vmi, mm, 0);
|
||||
|
||||
mmap_read_lock(mm);
|
||||
for_each_vma(vmi, vma) {
|
||||
if (vma_is_special_mapping(vma, &vdso_info.data_mapping))
|
||||
zap_vma_pages(vma);
|
||||
}
|
||||
mmap_read_unlock(mm);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static unsigned long vdso_base(void)
|
||||
{
|
||||
unsigned long base = STACK_TOP;
|
||||
@@ -88,7 +163,7 @@ static unsigned long vdso_base(void)
|
||||
int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
|
||||
{
|
||||
int ret;
|
||||
unsigned long vvar_size, size, data_addr, vdso_addr;
|
||||
unsigned long size, data_addr, vdso_addr;
|
||||
struct mm_struct *mm = current->mm;
|
||||
struct vm_area_struct *vma;
|
||||
struct loongarch_vdso_info *info = current->thread.vdso;
|
||||
@@ -100,32 +175,23 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
|
||||
* Determine total area size. This includes the VDSO data itself
|
||||
* and the data pages.
|
||||
*/
|
||||
vvar_size = VDSO_DATA_SIZE;
|
||||
size = vvar_size + info->size;
|
||||
size = VVAR_SIZE + info->size;
|
||||
|
||||
data_addr = get_unmapped_area(NULL, vdso_base(), size, 0, 0);
|
||||
if (IS_ERR_VALUE(data_addr)) {
|
||||
ret = data_addr;
|
||||
goto out;
|
||||
}
|
||||
vdso_addr = data_addr + VDSO_DATA_SIZE;
|
||||
|
||||
vma = _install_special_mapping(mm, data_addr, vvar_size,
|
||||
VM_READ | VM_MAYREAD,
|
||||
vma = _install_special_mapping(mm, data_addr, VVAR_SIZE,
|
||||
VM_READ | VM_MAYREAD | VM_PFNMAP,
|
||||
&info->data_mapping);
|
||||
if (IS_ERR(vma)) {
|
||||
ret = PTR_ERR(vma);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Map VDSO data page. */
|
||||
ret = remap_pfn_range(vma, data_addr,
|
||||
virt_to_phys(&loongarch_vdso_data) >> PAGE_SHIFT,
|
||||
vvar_size, PAGE_READONLY);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
/* Map VDSO code page. */
|
||||
vdso_addr = data_addr + VVAR_SIZE;
|
||||
vma = _install_special_mapping(mm, vdso_addr, info->size,
|
||||
VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC,
|
||||
&info->code_mapping);
|
||||
|
||||
@@ -222,6 +222,7 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
|
||||
if (bus) {
|
||||
memcpy(bus->sysdata, info->cfg, sizeof(struct pci_config_window));
|
||||
kfree(info);
|
||||
kfree(root_ops);
|
||||
} else {
|
||||
struct pci_bus *child;
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ static __always_inline int read_cpu_id(void)
|
||||
|
||||
static __always_inline const struct vdso_pcpu_data *get_pcpu_data(void)
|
||||
{
|
||||
return (struct vdso_pcpu_data *)(get_vdso_base() - VDSO_DATA_SIZE);
|
||||
return (struct vdso_pcpu_data *)(get_vdso_data() + VVAR_LOONGARCH_PAGES_START * PAGE_SIZE);
|
||||
}
|
||||
|
||||
extern
|
||||
|
||||
@@ -145,8 +145,6 @@ static inline void update_mmu_cache(struct vm_area_struct *vma,
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
/* MMU-specific headers */
|
||||
|
||||
#ifdef CONFIG_SUN3
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
#define pgd_none(pgd) (0)
|
||||
#define pgd_bad(pgd) (0)
|
||||
#define pgd_clear(pgdp)
|
||||
#define kern_addr_valid(addr) (1)
|
||||
#define pmd_offset(a, b) ((void *)0)
|
||||
|
||||
#define PAGE_NONE __pgprot(0)
|
||||
|
||||
@@ -115,7 +115,7 @@ asmlinkage int m68k_clone(struct pt_regs *regs)
|
||||
{
|
||||
/* regs will be equal to current_pt_regs() */
|
||||
struct kernel_clone_args args = {
|
||||
.flags = regs->d1 & ~CSIGNAL,
|
||||
.flags = (u32)(regs->d1) & ~CSIGNAL,
|
||||
.pidfd = (int __user *)regs->d3,
|
||||
.child_tid = (int __user *)regs->d4,
|
||||
.parent_tid = (int __user *)regs->d3,
|
||||
|
||||
@@ -416,9 +416,6 @@ extern unsigned long iopa(unsigned long addr);
|
||||
#define IOMAP_NOCACHE_NONSER 2
|
||||
#define IOMAP_NO_COPYBACK 3
|
||||
|
||||
/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
void do_page_fault(struct pt_regs *regs, unsigned long address,
|
||||
unsigned long error_code);
|
||||
|
||||
|
||||
@@ -550,8 +550,6 @@ static inline void update_mmu_cache_pmd(struct vm_area_struct *vma,
|
||||
__update_tlb(vma, address, pte);
|
||||
}
|
||||
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
/*
|
||||
* Allow physical addresses to be fixed up to help 36-bit peripherals.
|
||||
*/
|
||||
|
||||
@@ -249,8 +249,6 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd)
|
||||
#define __swp_entry_to_pte(swp) ((pte_t) { (swp).val })
|
||||
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
|
||||
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
extern void __init paging_init(void);
|
||||
extern void __init mmu_init(void);
|
||||
|
||||
|
||||
@@ -395,8 +395,6 @@ static inline void update_mmu_cache(struct vm_area_struct *vma,
|
||||
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
|
||||
#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
|
||||
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
typedef pte_t *pte_addr_t;
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
@@ -23,21 +23,6 @@
|
||||
#include <asm/processor.h>
|
||||
#include <asm/cache.h>
|
||||
|
||||
/*
|
||||
* kern_addr_valid(ADDR) tests if ADDR is pointing to valid kernel
|
||||
* memory. For the return value to be meaningful, ADDR must be >=
|
||||
* PAGE_OFFSET. This operation can be relatively expensive (e.g.,
|
||||
* require a hash-, or multi-level tree-lookup or something of that
|
||||
* sort) but it guarantees to return TRUE only if accessing the page
|
||||
* at that address does not cause an error. Note that there may be
|
||||
* addresses for which kern_addr_valid() returns FALSE even though an
|
||||
* access would not cause an error (e.g., this is typically true for
|
||||
* memory mapped I/O regions.
|
||||
*
|
||||
* XXX Need to implement this for parisc.
|
||||
*/
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
/* This is for the serialization of PxTLB broadcasts. At least on the N class
|
||||
* systems, only one PxTLB inter processor broadcast can be active at any one
|
||||
* time on the Merced bus. */
|
||||
|
||||
@@ -1038,8 +1038,7 @@ ENTRY_CFI(intr_save) /* for os_hpmc */
|
||||
STREG %r16, PT_ISR(%r29)
|
||||
STREG %r17, PT_IOR(%r29)
|
||||
|
||||
#if 0 && defined(CONFIG_64BIT)
|
||||
/* Revisit when we have 64-bit code above 4Gb */
|
||||
#if defined(CONFIG_64BIT)
|
||||
b,n intr_save2
|
||||
|
||||
skip_save_ior:
|
||||
@@ -1047,8 +1046,7 @@ skip_save_ior:
|
||||
* need to adjust iasq/iaoq here in the same way we adjusted isr/ior
|
||||
* above.
|
||||
*/
|
||||
extrd,u,* %r8,PSW_W_BIT,1,%r1
|
||||
cmpib,COND(=),n 1,%r1,intr_save2
|
||||
bb,COND(>=),n %r8,PSW_W_BIT,intr_save2
|
||||
LDREG PT_IASQ0(%r29), %r16
|
||||
LDREG PT_IAOQ0(%r29), %r17
|
||||
/* adjust iasq/iaoq */
|
||||
|
||||
@@ -232,10 +232,10 @@ linux_gateway_entry:
|
||||
|
||||
#ifdef CONFIG_64BIT
|
||||
ldil L%sys_call_table, %r1
|
||||
or,= %r2,%r2,%r2
|
||||
addil L%(sys_call_table64-sys_call_table), %r1
|
||||
or,ev %r2,%r2,%r2
|
||||
ldil L%sys_call_table64, %r1
|
||||
ldo R%sys_call_table(%r1), %r19
|
||||
or,= %r2,%r2,%r2
|
||||
or,ev %r2,%r2,%r2
|
||||
ldo R%sys_call_table64(%r1), %r19
|
||||
#else
|
||||
load32 sys_call_table, %r19
|
||||
@@ -368,10 +368,10 @@ tracesys_next:
|
||||
extrd,u %r19,63,1,%r2 /* W hidden in bottom bit */
|
||||
|
||||
ldil L%sys_call_table, %r1
|
||||
or,= %r2,%r2,%r2
|
||||
addil L%(sys_call_table64-sys_call_table), %r1
|
||||
or,ev %r2,%r2,%r2
|
||||
ldil L%sys_call_table64, %r1
|
||||
ldo R%sys_call_table(%r1), %r19
|
||||
or,= %r2,%r2,%r2
|
||||
or,ev %r2,%r2,%r2
|
||||
ldo R%sys_call_table64(%r1), %r19
|
||||
#else
|
||||
load32 sys_call_table, %r19
|
||||
@@ -1310,6 +1310,8 @@ ENTRY(sys_call_table)
|
||||
END(sys_call_table)
|
||||
|
||||
#ifdef CONFIG_64BIT
|
||||
#undef __SYSCALL_WITH_COMPAT
|
||||
#define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native)
|
||||
.align 8
|
||||
ENTRY(sys_call_table64)
|
||||
#include <asm/syscall_table_64.h> /* 64-bit syscalls */
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
source "arch/powerpc/platforms/Kconfig.cputype"
|
||||
|
||||
config CC_HAS_ELFV2
|
||||
def_bool PPC64 && $(cc-option, -mabi=elfv2)
|
||||
|
||||
config CC_HAS_PREFIXED
|
||||
def_bool PPC64 && $(cc-option, -mcpu=power10 -mprefixed)
|
||||
|
||||
config 32BIT
|
||||
bool
|
||||
default y if PPC32
|
||||
@@ -583,6 +589,23 @@ config KEXEC_FILE
|
||||
config ARCH_HAS_KEXEC_PURGATORY
|
||||
def_bool KEXEC_FILE
|
||||
|
||||
config PPC64_BIG_ENDIAN_ELF_ABI_V2
|
||||
bool "Build big-endian kernel using ELF ABI V2 (EXPERIMENTAL)"
|
||||
depends on PPC64 && CPU_BIG_ENDIAN
|
||||
depends on CC_HAS_ELFV2
|
||||
depends on LD_VERSION >= 22400 || LLD_VERSION >= 150000
|
||||
help
|
||||
This builds the kernel image using the "Power Architecture 64-Bit ELF
|
||||
V2 ABI Specification", which has a reduced stack overhead and faster
|
||||
function calls. This internal kernel ABI option does not affect
|
||||
userspace compatibility.
|
||||
|
||||
The V2 ABI is standard for 64-bit little-endian, but for big-endian
|
||||
it is less well tested by kernel and toolchain. However some distros
|
||||
build userspace this way, and it can produce a functioning kernel.
|
||||
|
||||
This requires GCC and binutils 2.24 or newer.
|
||||
|
||||
config RELOCATABLE
|
||||
bool "Build a relocatable kernel"
|
||||
depends on PPC64 || (FLATMEM && (44x || PPC_85xx))
|
||||
|
||||
@@ -176,7 +176,11 @@ ifdef CONFIG_476FPE_ERR46
|
||||
endif
|
||||
|
||||
# No prefix or pcrel
|
||||
ifdef CONFIG_PPC_KERNEL_PREFIXED
|
||||
KBUILD_CFLAGS += $(call cc-option,-mprefixed)
|
||||
else
|
||||
KBUILD_CFLAGS += $(call cc-option,-mno-prefixed)
|
||||
endif
|
||||
KBUILD_CFLAGS += $(call cc-option,-mno-pcrel)
|
||||
|
||||
# No AltiVec or VSX or MMA instructions when building kernel
|
||||
|
||||
@@ -39,6 +39,12 @@
|
||||
#define STDX_BE stringify_in_c(stdbrx)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CC_IS_CLANG
|
||||
#define DS_FORM_CONSTRAINT "Z<>"
|
||||
#else
|
||||
#define DS_FORM_CONSTRAINT "YZ<>"
|
||||
#endif
|
||||
|
||||
#else /* 32-bit */
|
||||
|
||||
/* operations for longs and pointers */
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <asm/cmpxchg.h>
|
||||
#include <asm/barrier.h>
|
||||
#include <asm/asm-const.h>
|
||||
#include <asm/asm-compat.h>
|
||||
|
||||
/*
|
||||
* Since *_return_relaxed and {cmp}xchg_relaxed are implemented with
|
||||
@@ -27,14 +28,22 @@ static __inline__ int arch_atomic_read(const atomic_t *v)
|
||||
{
|
||||
int t;
|
||||
|
||||
__asm__ __volatile__("lwz%U1%X1 %0,%1" : "=r"(t) : "m<>"(v->counter));
|
||||
/* -mprefixed can generate offsets beyond range, fall back hack */
|
||||
if (IS_ENABLED(CONFIG_PPC_KERNEL_PREFIXED))
|
||||
__asm__ __volatile__("lwz %0,0(%1)" : "=r"(t) : "b"(&v->counter));
|
||||
else
|
||||
__asm__ __volatile__("lwz%U1%X1 %0,%1" : "=r"(t) : "m<>"(v->counter));
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
static __inline__ void arch_atomic_set(atomic_t *v, int i)
|
||||
{
|
||||
__asm__ __volatile__("stw%U0%X0 %1,%0" : "=m<>"(v->counter) : "r"(i));
|
||||
/* -mprefixed can generate offsets beyond range, fall back hack */
|
||||
if (IS_ENABLED(CONFIG_PPC_KERNEL_PREFIXED))
|
||||
__asm__ __volatile__("stw %1,0(%2)" : "=m"(v->counter) : "r"(i), "b"(&v->counter));
|
||||
else
|
||||
__asm__ __volatile__("stw%U0%X0 %1,%0" : "=m<>"(v->counter) : "r"(i));
|
||||
}
|
||||
|
||||
#define ATOMIC_OP(op, asm_op, suffix, sign, ...) \
|
||||
@@ -226,14 +235,22 @@ static __inline__ s64 arch_atomic64_read(const atomic64_t *v)
|
||||
{
|
||||
s64 t;
|
||||
|
||||
__asm__ __volatile__("ld%U1%X1 %0,%1" : "=r"(t) : "m<>"(v->counter));
|
||||
/* -mprefixed can generate offsets beyond range, fall back hack */
|
||||
if (IS_ENABLED(CONFIG_PPC_KERNEL_PREFIXED))
|
||||
__asm__ __volatile__("ld %0,0(%1)" : "=r"(t) : "b"(&v->counter));
|
||||
else
|
||||
__asm__ __volatile__("ld%U1%X1 %0,%1" : "=r"(t) : DS_FORM_CONSTRAINT (v->counter));
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
static __inline__ void arch_atomic64_set(atomic64_t *v, s64 i)
|
||||
{
|
||||
__asm__ __volatile__("std%U0%X0 %1,%0" : "=m<>"(v->counter) : "r"(i));
|
||||
/* -mprefixed can generate offsets beyond range, fall back hack */
|
||||
if (IS_ENABLED(CONFIG_PPC_KERNEL_PREFIXED))
|
||||
__asm__ __volatile__("std %1,0(%2)" : "=m"(v->counter) : "r"(i), "b"(&v->counter));
|
||||
else
|
||||
__asm__ __volatile__("std%U0%X0 %1,%0" : "=" DS_FORM_CONSTRAINT (v->counter) : "r"(i));
|
||||
}
|
||||
|
||||
#define ATOMIC64_OP(op, asm_op) \
|
||||
|
||||
@@ -97,6 +97,42 @@ extern bool isa_io_special;
|
||||
*
|
||||
*/
|
||||
|
||||
/* -mprefixed can generate offsets beyond range, fall back hack */
|
||||
#ifdef CONFIG_PPC_KERNEL_PREFIXED
|
||||
#define DEF_MMIO_IN_X(name, size, insn) \
|
||||
static inline u##size name(const volatile u##size __iomem *addr) \
|
||||
{ \
|
||||
u##size ret; \
|
||||
__asm__ __volatile__("sync;"#insn" %0,0,%1;twi 0,%0,0;isync" \
|
||||
: "=r" (ret) : "r" (addr) : "memory"); \
|
||||
return ret; \
|
||||
}
|
||||
|
||||
#define DEF_MMIO_OUT_X(name, size, insn) \
|
||||
static inline void name(volatile u##size __iomem *addr, u##size val) \
|
||||
{ \
|
||||
__asm__ __volatile__("sync;"#insn" %1,0,%0" \
|
||||
: : "r" (addr), "r" (val) : "memory"); \
|
||||
mmiowb_set_pending(); \
|
||||
}
|
||||
|
||||
#define DEF_MMIO_IN_D(name, size, insn) \
|
||||
static inline u##size name(const volatile u##size __iomem *addr) \
|
||||
{ \
|
||||
u##size ret; \
|
||||
__asm__ __volatile__("sync;"#insn" %0,0(%1);twi 0,%0,0;isync"\
|
||||
: "=r" (ret) : "b" (addr) : "memory"); \
|
||||
return ret; \
|
||||
}
|
||||
|
||||
#define DEF_MMIO_OUT_D(name, size, insn) \
|
||||
static inline void name(volatile u##size __iomem *addr, u##size val) \
|
||||
{ \
|
||||
__asm__ __volatile__("sync;"#insn" %1,0(%0)" \
|
||||
: : "b" (addr), "r" (val) : "memory"); \
|
||||
mmiowb_set_pending(); \
|
||||
}
|
||||
#else
|
||||
#define DEF_MMIO_IN_X(name, size, insn) \
|
||||
static inline u##size name(const volatile u##size __iomem *addr) \
|
||||
{ \
|
||||
@@ -130,6 +166,7 @@ static inline void name(volatile u##size __iomem *addr, u##size val) \
|
||||
: "=m<>" (*addr) : "r" (val) : "memory"); \
|
||||
mmiowb_set_pending(); \
|
||||
}
|
||||
#endif
|
||||
|
||||
DEF_MMIO_IN_D(in_8, 8, lbz);
|
||||
DEF_MMIO_OUT_D(out_8, 8, stb);
|
||||
|
||||
@@ -81,13 +81,6 @@ void poking_init(void);
|
||||
extern unsigned long ioremap_bot;
|
||||
extern const pgprot_t protection_map[16];
|
||||
|
||||
/*
|
||||
* kern_addr_valid is intended to indicate whether an address is a valid
|
||||
* kernel address. Most 32-bit archs define it as always true (like this)
|
||||
* but most 64-bit archs actually perform a test. What should we do here?
|
||||
*/
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
#ifndef CONFIG_TRANSPARENT_HUGEPAGE
|
||||
#define pmd_large(pmd) 0
|
||||
#endif
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include <asm/page.h>
|
||||
#include <asm/extable.h>
|
||||
#include <asm/kup.h>
|
||||
#include <asm/asm-compat.h>
|
||||
|
||||
#ifdef __powerpc64__
|
||||
/* We use TASK_SIZE_USER64 as TASK_SIZE is not constant */
|
||||
@@ -71,19 +72,25 @@ __pu_failed: \
|
||||
* because we do not write to any memory gcc knows about, so there
|
||||
* are no aliasing issues.
|
||||
*/
|
||||
/* -mprefixed can generate offsets beyond range, fall back hack */
|
||||
#ifdef CONFIG_PPC_KERNEL_PREFIXED
|
||||
#define __put_user_asm_goto(x, addr, label, op) \
|
||||
asm_volatile_goto( \
|
||||
"1: " op " %0,0(%1) # put_user\n" \
|
||||
EX_TABLE(1b, %l2) \
|
||||
: \
|
||||
: "r" (x), "b" (addr) \
|
||||
: \
|
||||
: label)
|
||||
#else
|
||||
#define __put_user_asm_goto(x, addr, label, op) \
|
||||
asm goto( \
|
||||
"1: " op "%U1%X1 %0,%1 # put_user\n" \
|
||||
EX_TABLE(1b, %l2) \
|
||||
: \
|
||||
: "r" (x), "m<>" (*addr) \
|
||||
: "r" (x), "m<>" (*addr) \
|
||||
: \
|
||||
: label)
|
||||
|
||||
#ifdef CONFIG_CC_IS_CLANG
|
||||
#define DS_FORM_CONSTRAINT "Z<>"
|
||||
#else
|
||||
#define DS_FORM_CONSTRAINT "YZ<>"
|
||||
#endif
|
||||
|
||||
#ifdef __powerpc64__
|
||||
@@ -142,14 +149,26 @@ do { \
|
||||
|
||||
#ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
|
||||
|
||||
/* -mprefixed can generate offsets beyond range, fall back hack */
|
||||
#ifdef CONFIG_PPC_KERNEL_PREFIXED
|
||||
#define __get_user_asm_goto(x, addr, label, op) \
|
||||
asm_volatile_goto( \
|
||||
"1: "op" %0,0(%1) # get_user\n" \
|
||||
EX_TABLE(1b, %l2) \
|
||||
: "=r" (x) \
|
||||
: "b" (addr) \
|
||||
: \
|
||||
: label)
|
||||
#else
|
||||
#define __get_user_asm_goto(x, addr, label, op) \
|
||||
asm_goto_output( \
|
||||
"1: "op"%U1%X1 %0, %1 # get_user\n" \
|
||||
EX_TABLE(1b, %l2) \
|
||||
: "=r" (x) \
|
||||
: "m<>" (*addr) \
|
||||
: "m<>" (*addr) \
|
||||
: \
|
||||
: label)
|
||||
#endif
|
||||
|
||||
#ifdef __powerpc64__
|
||||
#define __get_user_asm2_goto(x, addr, label) \
|
||||
|
||||
@@ -111,6 +111,21 @@ extern struct vdso_arch_data *vdso_data;
|
||||
addi \ptr, \ptr, (_vdso_datapage - 999b)@l
|
||||
.endm
|
||||
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
.macro get_realdatapage ptr scratch
|
||||
get_datapage \ptr
|
||||
#ifdef CONFIG_TIME_NS
|
||||
lwz \scratch, VDSO_CLOCKMODE_OFFSET(\ptr)
|
||||
xoris \scratch, \scratch, VDSO_CLOCKMODE_TIMENS@h
|
||||
xori \scratch, \scratch, VDSO_CLOCKMODE_TIMENS@l
|
||||
cntlzw \scratch, \scratch
|
||||
rlwinm \scratch, \scratch, PAGE_SHIFT - 5, 1 << PAGE_SHIFT
|
||||
add \ptr, \ptr, \scratch
|
||||
#endif
|
||||
.endm
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
@@ -347,6 +347,8 @@ int main(void)
|
||||
#else
|
||||
OFFSET(CFG_SYSCALL_MAP32, vdso_arch_data, syscall_map);
|
||||
#endif
|
||||
OFFSET(VDSO_CLOCKMODE_OFFSET, vdso_arch_data, data[0].clock_mode);
|
||||
DEFINE(VDSO_CLOCKMODE_TIMENS, VDSO_CLOCKMODE_TIMENS);
|
||||
|
||||
#ifdef CONFIG_BUG
|
||||
DEFINE(BUG_ENTRY_SIZE, sizeof(struct bug_entry));
|
||||
|
||||
@@ -40,12 +40,12 @@
|
||||
#include "head_32.h"
|
||||
|
||||
.macro compare_to_kernel_boundary scratch, addr
|
||||
#if CONFIG_TASK_SIZE <= 0x80000000 && CONFIG_PAGE_OFFSET >= 0x80000000
|
||||
#if CONFIG_TASK_SIZE <= 0x80000000 && MODULES_VADDR >= 0x80000000
|
||||
/* By simply checking Address >= 0x80000000, we know if its a kernel address */
|
||||
not. \scratch, \addr
|
||||
#else
|
||||
rlwinm \scratch, \addr, 16, 0xfff8
|
||||
cmpli cr0, \scratch, PAGE_OFFSET@h
|
||||
cmpli cr0, \scratch, TASK_SIZE@h
|
||||
#endif
|
||||
.endm
|
||||
|
||||
@@ -403,7 +403,7 @@ FixupDAR:/* Entry point for dcbx workaround. */
|
||||
mfspr r10, SPRN_SRR0
|
||||
mtspr SPRN_MD_EPN, r10
|
||||
rlwinm r11, r10, 16, 0xfff8
|
||||
cmpli cr1, r11, PAGE_OFFSET@h
|
||||
cmpli cr1, r11, TASK_SIZE@h
|
||||
mfspr r11, SPRN_M_TWB /* Get level 1 table */
|
||||
blt+ cr1, 3f
|
||||
|
||||
|
||||
@@ -194,6 +194,8 @@ __ftrace_make_nop(struct module *mod,
|
||||
* get corrupted.
|
||||
*
|
||||
* Use a b +8 to jump over the load.
|
||||
* XXX: could make PCREL depend on MPROFILE_KERNEL
|
||||
* XXX: check PCREL && MPROFILE_KERNEL calling sequence
|
||||
*/
|
||||
if (IS_ENABLED(CONFIG_MPROFILE_KERNEL) || IS_ENABLED(CONFIG_PPC32))
|
||||
pop = ppc_inst(PPC_RAW_NOP());
|
||||
|
||||
@@ -30,7 +30,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE)
|
||||
#ifdef CONFIG_PPC64
|
||||
mflr r12
|
||||
.cfi_register lr,r12
|
||||
get_datapage r10
|
||||
get_realdatapage r10, r11
|
||||
mtlr r12
|
||||
.cfi_restore lr
|
||||
#endif
|
||||
|
||||
@@ -28,7 +28,7 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map)
|
||||
mflr r12
|
||||
.cfi_register lr,r12
|
||||
mr. r4,r3
|
||||
get_datapage r3
|
||||
get_realdatapage r3, r11
|
||||
mtlr r12
|
||||
#ifdef __powerpc64__
|
||||
addi r3,r3,CFG_SYSCALL_MAP64
|
||||
@@ -52,7 +52,7 @@ V_FUNCTION_BEGIN(__kernel_get_tbfreq)
|
||||
.cfi_startproc
|
||||
mflr r12
|
||||
.cfi_register lr,r12
|
||||
get_datapage r3
|
||||
get_realdatapage r3, r11
|
||||
#ifndef __powerpc64__
|
||||
lwz r4,(CFG_TB_TICKS_PER_SEC + 4)(r3)
|
||||
#endif
|
||||
|
||||
@@ -147,11 +147,11 @@ unsigned long __init mmu_mapin_ram(unsigned long base, unsigned long top)
|
||||
|
||||
mmu_mapin_immr();
|
||||
|
||||
mmu_mapin_ram_chunk(0, boundary, PAGE_KERNEL_TEXT, true);
|
||||
mmu_mapin_ram_chunk(0, boundary, PAGE_KERNEL_X, true);
|
||||
if (debug_pagealloc_enabled_or_kfence()) {
|
||||
top = boundary;
|
||||
} else {
|
||||
mmu_mapin_ram_chunk(boundary, einittext8, PAGE_KERNEL_TEXT, true);
|
||||
mmu_mapin_ram_chunk(boundary, einittext8, PAGE_KERNEL_X, true);
|
||||
mmu_mapin_ram_chunk(einittext8, top, PAGE_KERNEL, true);
|
||||
}
|
||||
|
||||
|
||||
@@ -176,6 +176,7 @@ config POWER10_CPU
|
||||
bool "POWER10"
|
||||
depends on PPC_BOOK3S_64
|
||||
select ARCH_HAS_FAST_MULTIPLIER
|
||||
select PPC_HAVE_PREFIXED_SUPPORT
|
||||
|
||||
config E5500_CPU
|
||||
bool "Freescale e5500"
|
||||
@@ -449,6 +450,22 @@ config PPC_RADIX_MMU_DEFAULT
|
||||
|
||||
If you're unsure, say Y.
|
||||
|
||||
config PPC_KERNEL_PREFIXED
|
||||
depends on PPC_HAVE_PREFIXED_SUPPORT
|
||||
depends on CC_HAS_PREFIXED
|
||||
default n
|
||||
bool "Build Kernel with Prefixed Instructions"
|
||||
help
|
||||
POWER10 and later CPUs support prefixed instructions, 8 byte
|
||||
instructions that include large immediate, pc relative addressing,
|
||||
and various floating point, vector, MMA.
|
||||
|
||||
This option builds the kernel with prefixed instructions, and
|
||||
allows a pc relative addressing option to be selected.
|
||||
|
||||
Kernel support for prefixed instructions in applications and guests
|
||||
is not affected by this option.
|
||||
|
||||
config PPC_KUEP
|
||||
bool "Kernel Userspace Execution Prevention" if !40x
|
||||
default y if !40x
|
||||
@@ -485,6 +502,9 @@ config PPC_MMU_NOHASH
|
||||
config PPC_HAVE_PMU_SUPPORT
|
||||
bool
|
||||
|
||||
config PPC_HAVE_PREFIXED_SUPPORT
|
||||
bool
|
||||
|
||||
config PMU_SYSFS
|
||||
bool "Create PMU SPRs sysfs file"
|
||||
default n
|
||||
@@ -585,10 +605,10 @@ config CPU_LITTLE_ENDIAN
|
||||
endchoice
|
||||
|
||||
config PPC64_ELF_ABI_V1
|
||||
def_bool PPC64 && CPU_BIG_ENDIAN
|
||||
def_bool PPC64 && (CPU_BIG_ENDIAN && !PPC64_BIG_ENDIAN_ELF_ABI_V2)
|
||||
|
||||
config PPC64_ELF_ABI_V2
|
||||
def_bool PPC64 && CPU_LITTLE_ENDIAN
|
||||
def_bool PPC64 && !PPC64_ELF_ABI_V1
|
||||
|
||||
config PPC64_BOOT_WRAPPER
|
||||
def_bool n
|
||||
|
||||
@@ -343,23 +343,6 @@ int handle_dlpar_errorlog(struct pseries_hp_errorlog *hp_elog)
|
||||
{
|
||||
int rc;
|
||||
|
||||
/* pseries error logs are in BE format, convert to cpu type */
|
||||
switch (hp_elog->id_type) {
|
||||
case PSERIES_HP_ELOG_ID_DRC_COUNT:
|
||||
hp_elog->_drc_u.drc_count =
|
||||
be32_to_cpu(hp_elog->_drc_u.drc_count);
|
||||
break;
|
||||
case PSERIES_HP_ELOG_ID_DRC_INDEX:
|
||||
hp_elog->_drc_u.drc_index =
|
||||
be32_to_cpu(hp_elog->_drc_u.drc_index);
|
||||
break;
|
||||
case PSERIES_HP_ELOG_ID_DRC_IC:
|
||||
hp_elog->_drc_u.ic.count =
|
||||
be32_to_cpu(hp_elog->_drc_u.ic.count);
|
||||
hp_elog->_drc_u.ic.index =
|
||||
be32_to_cpu(hp_elog->_drc_u.ic.index);
|
||||
}
|
||||
|
||||
switch (hp_elog->resource) {
|
||||
case PSERIES_HP_ELOG_RESOURCE_MEM:
|
||||
rc = dlpar_memory(hp_elog);
|
||||
|
||||
@@ -748,7 +748,7 @@ int dlpar_cpu(struct pseries_hp_errorlog *hp_elog)
|
||||
u32 drc_index;
|
||||
int rc;
|
||||
|
||||
drc_index = hp_elog->_drc_u.drc_index;
|
||||
drc_index = be32_to_cpu(hp_elog->_drc_u.drc_index);
|
||||
|
||||
lock_device_hotplug();
|
||||
|
||||
|
||||
@@ -876,16 +876,16 @@ int dlpar_memory(struct pseries_hp_errorlog *hp_elog)
|
||||
case PSERIES_HP_ELOG_ACTION_ADD:
|
||||
switch (hp_elog->id_type) {
|
||||
case PSERIES_HP_ELOG_ID_DRC_COUNT:
|
||||
count = hp_elog->_drc_u.drc_count;
|
||||
count = be32_to_cpu(hp_elog->_drc_u.drc_count);
|
||||
rc = dlpar_memory_add_by_count(count);
|
||||
break;
|
||||
case PSERIES_HP_ELOG_ID_DRC_INDEX:
|
||||
drc_index = hp_elog->_drc_u.drc_index;
|
||||
drc_index = be32_to_cpu(hp_elog->_drc_u.drc_index);
|
||||
rc = dlpar_memory_add_by_index(drc_index);
|
||||
break;
|
||||
case PSERIES_HP_ELOG_ID_DRC_IC:
|
||||
count = hp_elog->_drc_u.ic.count;
|
||||
drc_index = hp_elog->_drc_u.ic.index;
|
||||
count = be32_to_cpu(hp_elog->_drc_u.ic.count);
|
||||
drc_index = be32_to_cpu(hp_elog->_drc_u.ic.index);
|
||||
rc = dlpar_memory_add_by_ic(count, drc_index);
|
||||
break;
|
||||
default:
|
||||
@@ -897,16 +897,16 @@ int dlpar_memory(struct pseries_hp_errorlog *hp_elog)
|
||||
case PSERIES_HP_ELOG_ACTION_REMOVE:
|
||||
switch (hp_elog->id_type) {
|
||||
case PSERIES_HP_ELOG_ID_DRC_COUNT:
|
||||
count = hp_elog->_drc_u.drc_count;
|
||||
count = be32_to_cpu(hp_elog->_drc_u.drc_count);
|
||||
rc = dlpar_memory_remove_by_count(count);
|
||||
break;
|
||||
case PSERIES_HP_ELOG_ID_DRC_INDEX:
|
||||
drc_index = hp_elog->_drc_u.drc_index;
|
||||
drc_index = be32_to_cpu(hp_elog->_drc_u.drc_index);
|
||||
rc = dlpar_memory_remove_by_index(drc_index);
|
||||
break;
|
||||
case PSERIES_HP_ELOG_ID_DRC_IC:
|
||||
count = hp_elog->_drc_u.ic.count;
|
||||
drc_index = hp_elog->_drc_u.ic.index;
|
||||
count = be32_to_cpu(hp_elog->_drc_u.ic.count);
|
||||
drc_index = be32_to_cpu(hp_elog->_drc_u.ic.index);
|
||||
rc = dlpar_memory_remove_by_ic(count, drc_index);
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -121,7 +121,7 @@ int dlpar_hp_pmem(struct pseries_hp_errorlog *hp_elog)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
drc_index = hp_elog->_drc_u.drc_index;
|
||||
drc_index = be32_to_cpu(hp_elog->_drc_u.drc_index);
|
||||
|
||||
lock_device_hotplug();
|
||||
|
||||
|
||||
@@ -217,6 +217,11 @@ config GENERIC_HWEIGHT
|
||||
config FIX_EARLYCON_MEM
|
||||
def_bool MMU
|
||||
|
||||
config ILLEGAL_POINTER_VALUE
|
||||
hex
|
||||
default 0 if 32BIT
|
||||
default 0xdead000000000000 if 64BIT
|
||||
|
||||
config PGTABLE_LEVELS
|
||||
int
|
||||
default 5 if 64BIT
|
||||
|
||||
@@ -805,8 +805,6 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma,
|
||||
|
||||
#endif /* !CONFIG_MMU */
|
||||
|
||||
#define kern_addr_valid(addr) (1) /* FIXME */
|
||||
|
||||
extern char _start[];
|
||||
extern void *_dtb_early_va;
|
||||
extern uintptr_t _dtb_early_pa;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#ifdef CONFIG_64BIT
|
||||
#define MAX_PHYSMEM_BITS 56
|
||||
#else
|
||||
#define MAX_PHYSMEM_BITS 34
|
||||
#define MAX_PHYSMEM_BITS 32
|
||||
#endif /* CONFIG_64BIT */
|
||||
#define SECTION_SIZE_BITS 27
|
||||
#endif /* CONFIG_SPARSEMEM */
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
* Copyright (C) 2017 SiFive
|
||||
*/
|
||||
|
||||
#define GENERATING_ASM_OFFSETS
|
||||
|
||||
#include <linux/kbuild.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/sched.h>
|
||||
|
||||
@@ -65,7 +65,7 @@ void __cpu_die(unsigned int cpu)
|
||||
if (cpu_ops[cpu]->cpu_is_stopped)
|
||||
ret = cpu_ops[cpu]->cpu_is_stopped(cpu);
|
||||
if (ret)
|
||||
pr_warn("CPU%d may not have stopped: %d\n", cpu, ret);
|
||||
pr_warn("CPU%u may not have stopped: %d\n", cpu, ret);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -59,7 +59,7 @@ extra_header_fields:
|
||||
.long efi_header_end - _start // SizeOfHeaders
|
||||
.long 0 // CheckSum
|
||||
.short IMAGE_SUBSYSTEM_EFI_APPLICATION // Subsystem
|
||||
.short 0 // DllCharacteristics
|
||||
.short IMAGE_DLL_CHARACTERISTICS_NX_COMPAT // DllCharacteristics
|
||||
.quad 0 // SizeOfStackReserve
|
||||
.quad 0 // SizeOfStackCommit
|
||||
.quad 0 // SizeOfHeapReserve
|
||||
|
||||
@@ -444,6 +444,12 @@ int arch_kexec_apply_relocations_add(struct purgatory_info *pi,
|
||||
*(u32 *)loc = CLEAN_IMM(CJTYPE, *(u32 *)loc) |
|
||||
ENCODE_CJTYPE_IMM(val - addr);
|
||||
break;
|
||||
case R_RISCV_ADD16:
|
||||
*(u16 *)loc += val;
|
||||
break;
|
||||
case R_RISCV_SUB16:
|
||||
*(u16 *)loc -= val;
|
||||
break;
|
||||
case R_RISCV_ADD32:
|
||||
*(u32 *)loc += val;
|
||||
break;
|
||||
|
||||
@@ -62,7 +62,7 @@ void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
|
||||
perf_callchain_store(entry, regs->epc);
|
||||
|
||||
fp = user_backtrace(entry, fp, regs->ra);
|
||||
while (fp && !(fp & 0x3) && entry->nr < entry->max_stack)
|
||||
while (fp && !(fp & 0x7) && entry->nr < entry->max_stack)
|
||||
fp = user_backtrace(entry, fp, 0);
|
||||
}
|
||||
|
||||
|
||||
@@ -132,8 +132,6 @@
|
||||
#define REG_PTR(insn, pos, regs) \
|
||||
(ulong *)((ulong)(regs) + REG_OFFSET(insn, pos))
|
||||
|
||||
#define GET_RM(insn) (((insn) >> 12) & 7)
|
||||
|
||||
#define GET_RS1(insn, regs) (*REG_PTR(insn, SH_RS1, regs))
|
||||
#define GET_RS2(insn, regs) (*REG_PTR(insn, SH_RS2, regs))
|
||||
#define GET_RS1S(insn, regs) (*REG_PTR(RVC_RS1S(insn), 0, regs))
|
||||
|
||||
@@ -18,6 +18,7 @@ obj-vdso = $(patsubst %, %.o, $(vdso-syms)) note.o
|
||||
|
||||
ccflags-y := -fno-stack-protector
|
||||
ccflags-y += -DDISABLE_BRANCH_PROFILING
|
||||
ccflags-y += -fno-builtin
|
||||
|
||||
ifneq ($(c-gettimeofday-y),)
|
||||
CFLAGS_vgettimeofday.o += -fPIC -include $(c-gettimeofday-y)
|
||||
|
||||
@@ -67,8 +67,8 @@ void kvm_riscv_vcpu_sbi_forward(struct kvm_vcpu *vcpu, struct kvm_run *run)
|
||||
run->riscv_sbi.args[3] = cp->a3;
|
||||
run->riscv_sbi.args[4] = cp->a4;
|
||||
run->riscv_sbi.args[5] = cp->a5;
|
||||
run->riscv_sbi.ret[0] = cp->a0;
|
||||
run->riscv_sbi.ret[1] = cp->a1;
|
||||
run->riscv_sbi.ret[0] = SBI_ERR_NOT_SUPPORTED;
|
||||
run->riscv_sbi.ret[1] = 0;
|
||||
}
|
||||
|
||||
void kvm_riscv_vcpu_sbi_system_reset(struct kvm_vcpu *vcpu,
|
||||
|
||||
@@ -542,8 +542,8 @@ static void emit_atomic(u8 rd, u8 rs, s16 off, s32 imm, bool is64,
|
||||
rv_lr_w(r0, 0, rd, 0, 0), ctx);
|
||||
jmp_offset = ninsns_rvoff(8);
|
||||
emit(rv_bne(RV_REG_T2, r0, jmp_offset >> 1), ctx);
|
||||
emit(is64 ? rv_sc_d(RV_REG_T3, rs, rd, 0, 0) :
|
||||
rv_sc_w(RV_REG_T3, rs, rd, 0, 0), ctx);
|
||||
emit(is64 ? rv_sc_d(RV_REG_T3, rs, rd, 0, 1) :
|
||||
rv_sc_w(RV_REG_T3, rs, rd, 0, 1), ctx);
|
||||
jmp_offset = ninsns_rvoff(-6);
|
||||
emit(rv_bne(RV_REG_T3, 0, jmp_offset >> 1), ctx);
|
||||
emit(rv_fence(0x3, 0x3), ctx);
|
||||
|
||||
@@ -60,8 +60,10 @@ static inline int test_facility(unsigned long nr)
|
||||
unsigned long facilities_als[] = { FACILITIES_ALS };
|
||||
|
||||
if (__builtin_constant_p(nr) && nr < sizeof(facilities_als) * 8) {
|
||||
if (__test_facility(nr, &facilities_als))
|
||||
return 1;
|
||||
if (__test_facility(nr, &facilities_als)) {
|
||||
if (!__is_defined(__DECOMPRESSOR))
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return __test_facility(nr, &stfle_fac_list);
|
||||
}
|
||||
|
||||
@@ -16,8 +16,10 @@
|
||||
#include <asm/pci_io.h>
|
||||
|
||||
#define xlate_dev_mem_ptr xlate_dev_mem_ptr
|
||||
#define kc_xlate_dev_mem_ptr xlate_dev_mem_ptr
|
||||
void *xlate_dev_mem_ptr(phys_addr_t phys);
|
||||
#define unxlate_dev_mem_ptr unxlate_dev_mem_ptr
|
||||
#define kc_unxlate_dev_mem_ptr unxlate_dev_mem_ptr
|
||||
void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr);
|
||||
|
||||
#define IO_SPACE_LIMIT 0
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user