Merge tag 'android14-6.1.99_r00' into android14-6.1

This merges up to the 6.1.99 LTS release into android14-6.1.  This
includes the following commits:

*   12f9bcc034 Merge 6.1.99 into android14-6.1-lts
|\
| * cac15753b8 Linux 6.1.99
| * 1f4a10cb82 Revert "usb: xhci: prevent potential failure in handle_tx_event() for Transfer events without TRB"
* | e6e7b1084c Merge 6.1.98 into android14-6.1-lts
|\|
| * 266ee8e06d Linux 6.1.98
| * 86e3ffeab5 nilfs2: fix incorrect inode allocation from reserved inodes
| * a077a6cdb3 null_blk: Do not allow runt zone with zone capacity smaller then zone size
| * 2fed4a94bc spi: cadence: Ensure data lines set to low during dummy-cycle period
| * 41f5e2840c nfc/nci: Add the inconsistency check between the input data length and count
| * 833112b7f1 kbuild: fix short log for AS in link-vmlinux.sh
| * 940a71f08e nvmet: fix a possible leak when destroy a ctrl during qp establishment
| * 273a824a9c platform/x86: touchscreen_dmi: Add info for the EZpad 6s Pro
| * 363585e3fc platform/x86: touchscreen_dmi: Add info for GlobalSpace SolT IVW 11.6" tablet
| * 85646d7796 regmap-i2c: Subtract reg size from max_write
| * 62fc41a69c nvme: adjust multiples of NVME_CTRL_PAGE_SIZE in offset
| * ce39d85705 dma-mapping: benchmark: avoid needless copy_to_user if benchmark fails
| * d62da841bf nvme-multipath: find NUMA path only for online numa-node
| * 154f4ca807 ALSA: hda/realtek: Enable headset mic of JP-IK LEAP W502 with ALC897
| * 850ef5d239 fs/ntfs3: Mark volume as dirty if xattr is broken
| * 3d32327f5c i2c: pnx: Fix potential deadlock warning from del_timer_sync() call in isr
| * 7069aa6d41 clk: mediatek: mt8183: Only enable runtime PM on mt8183-mfgcfg
| * e3e33879d6 clk: mediatek: clk-mtk: Register MFG notifier in mtk_clk_simple_probe()
| * 661baa1711 clk: qcom: gcc-sm6350: Fix gpll6* & gpll7 parents
| * e5411f2653 media: dw2102: fix a potential buffer overflow
| * 9c3906c373 ima: Avoid blocking in RCU read-side critical section
| * ee42c15083 arm64: dts: rockchip: Fix the DCDC_REG2 minimum voltage on Quartz64 Model B
| * 9504a15506 bnx2x: Fix multiple UBSAN array-index-out-of-bounds
| * 1c67f79350 mtd: rawnand: rockchip: ensure NVDDR timings are rejected
| * 670f841c07 mtd: rawnand: Bypass a couple of sanity checks during NAND identification
| * ca0f2e7244 mtd: rawnand: Ensure ECC configuration is propagated to upper layers
| * c550679d60 powerpc/pseries: Fix scv instruction crash with kexec
| * dd4674d016 drm: panel-orientation-quirks: Add quirk for Valve Galileo
| * 742cac675f drm/amdgpu/atomfirmware: silence UBSAN warning
| * 1f32535238 drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes
| * cbbe17a324 Revert "mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again"
| * 4e0716110a fsnotify: Do not generate events for O_PATH file descriptors
| * 44aa3e76f4 can: kvaser_usb: Explicitly initialize family in leafimx driver_info struct
| * e6e200b264 Bluetooth: qca: Fix BT enable failure again for QCA6390 after warm reboot
| * c126aff74a scsi: mpi3mr: Use proper format specifier in mpi3mr_sas_port_add()
| * 525ad8dd9a f2fs: Add inline to f2fs_build_fault_attr() stub
| * aa1d8cc0cc btrfs: fix adding block group to a reclaim list and the unused list during reclaim
| * c83ed422c2 mm: avoid overflows in dirty throttling logic
| * d259d0c375 mm: optimize the redundant loop of mm_update_owner_next()
| * 1b7d549ed2 nilfs2: add missing check for inode numbers on directory entries
| * fae1959d6a nilfs2: fix inode number range checks
| * 98c8958980 Revert "igc: fix a log entry using uninitialized netdev"
| * 89a5f0625f platform/x86: toshiba_acpi: Fix quickstart quirk handling
| * ab557f5cd9 mlxsw: core_linecards: Fix double memory deallocation in case of invalid INI file
| * d6f487e070 inet_diag: Initialize pad field in struct inet_diag_req_v2
| * 8d9fa5e82e selftests: make order checking verbose in msg_zerocopy selftest
| * fb8fc89b5c selftests: fix OOM in msg_zerocopy selftest
| * c8eb8ab9a4 bonding: Fix out-of-bounds read in bond_option_arp_ip_targets_set()
| * 4c06c13317 netfilter: nf_tables: unconditionally flush pending work before notifier
| * 653deee48a riscv: kexec: Avoid deadlock in kexec crash path
| * b610a87538 wifi: wilc1000: fix ies_len type in connect path
| * 4b3b6c7efe net: ntb_netdev: Move ntb_netdev_rx_handler() to call netif_rx() from __netif_rx()
| * 12f6119d86 net: allow skb_datagram_iter to be called from any context
| * b368762d1e e1000e: Fix S0ix residency on corporate systems
| * c159afd3b5 KVM: s390: fix LPSWEY handling
| * 31f03bb041 tcp_metrics: validate source addr length
| * f8b7bd500d net/mlx5e: Add mqprio_rl cleanup and free in mlx5e_priv_cleanup()
| * bc3ff8d3c0 net/mlx5: E-switch, Create ingress ACL when needed
| * 965fbc6d9a UPSTREAM: tcp: fix DSACK undo in fast recovery to call tcp_try_to_open()
| * a0d1afe8a9 mac802154: fix time calculation in ieee802154_configure_durations()
| * 325d8659b8 tools/power turbostat: Remember global max_die_id
| * 0c97527e91 cdrom: rearrange last_media_change check to avoid unintentional overflow
| * c0d7a3b290 btrfs: scrub: initialize ret in scrub_simple_mirror() to fix compilation warning
| * c51795885c s390/pkey: Wipe sensitive data on failure
| * 751987a5d8 jffs2: Fix potential illegal address access in jffs2_free_inode
| * e1683ff4eb serial: imx: Raise TX trigger level to 8
| * b869ec89d2 scsi: mpi3mr: Sanitise num_phys
| * bc84dd2c33 f2fs: check validation of fault attrs in f2fs_build_fault_attr()
| * a21d76bd0b bpf: Avoid uninitialized value in BPF_CORE_READ_BITFIELD
| * 2e9d8aa52b igc: fix a log entry using uninitialized netdev
| * ce8d496786 powerpc/xmon: Check cpu id in commands "c#", "dp#" and "dx#"
| * ae9edc2b17 kunit: Fix timeout message
| * 74159d409d orangefs: fix out-of-bounds fsid access
| * 9c06fe8cfb powerpc/64: Set _IO_BASE to POISON_POINTER_DELTA not 0 for CONFIG_PCI=n
| * d4889c95bc i2c: i801: Annotate apanel_addr as __ro_after_init
| * 1663e2474e media: dvb-frontends: tda10048: Fix integer overflow
| * 1aa04c84a3 media: s2255: Use refcount_t instead of atomic_t for num_channels
| * fa547cdd7b media: dvb-frontends: tda18271c2dd: Remove casting during div
| * aa03f591ef net: dsa: mv88e6xxx: Correct check for empty list
| * 22ea2a7f0b wifi: mt76: replace skb_put with skb_put_zero
| * 948554f1bb usb: xhci: prevent potential failure in handle_tx_event() for Transfer events without TRB
| * 46c82c5e4c Input: ff-core - prefer struct_size over open coded arithmetic
| * d792fc8f7a firmware: dmi: Stop decoding on broken entry
| * f2c9c42f6b sctp: prefer struct_size over open coded arithmetic
| * a010daa33e media: dw2102: Don't translate i2c read into write
| * ee18ed34a2 drm/amdgpu: fix uninitialized scalar variable warning
| * 874261358d drm/amd/display: Skip finding free audio for unknown engine_id
| * d2c3645a4a drm/amd/display: Check pipe offset before setting vblank
| * ae91ffbc8b drm/amd/display: Check index msg_id before read or write
| * bf312c0529 drm/amdgpu: Initialize timestamp for some legacy SOCs
| * 7eb74d14c7 drm/amdgpu: Fix uninitialized variable warnings
| * 28c8d27484 crypto: aead,cipher - zeroize key buffer after use
| * fa49c65a1c scsi: qedf: Make qedf_execute_tmf() non-preemptible
| * 63d202d948 IB/core: Implement a limit on UMAD receive List
| * 95e9377c7c media: dvb-usb: dib0700_devices: Add missing release_firmware()
| * c72990a6a7 media: dvb: as102-fe: Fix as10x_register_addr packing
| * 8d3f83dfb2 powerpc: Avoid nmi_enter/nmi_exit in real mode interrupt.
| * 0a487e977c drm/lima: fix shared irq handling on driver remove
| * eda60520cf crypto: hisilicon/debugfs - Fix debugfs uninit process issue
| * 42d64dbe4b locking/mutex: Introduce devm_mutex_init()
* | e44db5756e ANDROID: db845c symbol list additions
* | ab63f81b3a Revert "mm/page_alloc: Separate THP PCP into movable and non-movable categories"
* | 9a2454ec58 Merge 6.1.97 into android14-6.1-lts
|\|
| * 7753af06ee Linux 6.1.97
| * f19cca5d16 tracing/net_sched: NULL pointer dereference in perf_trace_qdisc_reset()
| * fbfd2c876c serial: 8250_omap: Fix Errata i2310 with RX FIFO level check
| * 1dc9d05040 serial: imx: only set receiver level if it is zero
| * 16d92a6dfa arm64: dts: rockchip: Add sound-dai-cells for RK3368
| * 4e66009d35 arm64: dts: rockchip: fix PMIC interrupt pin on ROCK Pi E
| * 2581e814d7 ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node
| * bccc0c847f arm64: dts: rockchip: Rename LED related pinctrl nodes on rk3308-rock-pi-s
| * b619f741b6 arm64: dts: rockchip: Fix SD NAND and eMMC init on rk3308-rock-pi-s
| * fcafdf32ac efi/x86: Free EFI memory map only when installing a new one.
| * 01b3cddfa6 efi: xen: Set EFI_PARAVIRT for Xen dom0 boot on all architectures
| * 0d01140e92 efi: memmap: Move manipulation routines into x86 arch tree
| * 7ad4e0a4f6 gfs2: Fix slab-use-after-free in gfs2_qd_dealloc
| * 447434eaaf mm/page_alloc: Separate THP PCP into movable and non-movable categories
| * 978e27ff31 Revert "cpufreq: amd-pstate: Fix the inconsistency in max frequency units"
| * d2b5636883 pwm: stm32: Refuse too small period requests
| * f910aee90b syscalls: fix sys_fanotify_mark prototype
| * e1b88ac1fe syscalls: fix compat_sys_io_pgetevents_time64 usage
| * 5ae6af6841 ftruncate: pass a signed offset
| * 702c1edbaf ata: libata-core: Fix double free on error
| * 5f0d0bf9f5 ata: ahci: Clean up sysfs file on error
| * f926c022eb can: mcp251xfd: fix infinite loop when xmit fails
| * 778a8e67c7 batman-adv: Don't accept TT entries for out-of-spec VIDs
| * c92a15b3b2 drm/amdgpu/atomfirmware: fix parsing of vram_info
| * 30cbf6ffaf drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_modes
| * ca0fabd365 drm/i915/gt: Fix potential UAF by revoke of fence registers
| * 6ce0544cab drm/amdgpu: avoid using null object of framebuffer
| * f95ed0f54b drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes
| * 948dc69f4b hexagon: fix fadvise64_64 calling conventions
| * 0f92275527 csky, hexagon: fix broken sys_sync_file_range
| * 87936f517b btrfs: zoned: fix initial free space detection
| * 41dd6b0ec7 sh: rework sync_file_range ABI
| * bf3c44f67c kbuild: Install dtb files as 0644 in Makefile.dtbinst
| * 84394f35b6 irqchip/loongson-liointc: Set different ISRs for different cores
| * 71af0f2f22 cpu/hotplug: Fix dynstate assignment in __cpuhp_setup_state_cpuslocked()
| * e0560219db cpufreq: intel_pstate: Use HWP to initialize ITMT if CPPC is missing
| * 26b18dd30e net: can: j1939: enhanced error handling for tightly received RTS messages in xtp_rx_rts_session_new
| * 4ff6978921 net: can: j1939: recover socket queue on CAN bus error during BAM transmission
| * f97cbce633 net: can: j1939: Initialize unused data in j1939_send_one()
| * a44aedd512 tty: mcf: MCF54418 has 10 UARTS
| * 94307bc31b ALSA: hda/realtek: fix mute/micmute LEDs don't work for EliteBook 645/665 G11.
| * e97ef9a3a3 serial: imx: set receiver level before starting uart
| * 98840e410d serial: 8250_omap: Implementation of Errata i2310
| * a47407ae12 usb: ucsi: stm32: fix command completion handling
| * a11b71624b usb: gadget: aspeed_udc: fix device address configuration
| * d77e2b5104 usb: dwc3: core: remove lock of otg mode during gadget suspend/resume to avoid deadlock
| * 5584c776a1 usb: atm: cxacru: fix endpoint checking in cxacru_bind()
| * 7afa50ce46 usb: musb: da8xx: fix a resource leak in probe()
| * e9835f39a8 usb: gadget: printer: fix races against disable
| * e48b92ed16 usb: gadget: printer: SS+ support
| * a59d84377d net: usb: ax88179_178a: improve link status logs
| * d441ad2aa9 iio: chemical: bme680: Fix sensor data read operation
| * ba1bb3e2a3 iio: chemical: bme680: Fix overflows in compensate() functions
| * 94f303ed7b iio: chemical: bme680: Fix calibration data variable
| * 4decfc47a1 iio: chemical: bme680: Fix pressure value output
| * 90d4d02b37 iio: accel: fxls8962af: select IIO_BUFFER & IIO_KFIFO_BUF
| * df188072b5 iio: adc: ad7266: Fix variable checking bug
| * 274239d9f8 i2c: testunit: discard write requests while old command is running
| * 86826b1ffd i2c: testunit: don't erase registers after STOP
| * 8cfb468a67 counter: ti-eqep: enable clock at probe
| * 70516c5ff3 iio: xilinx-ams: Don't include ams_ctrl_channels in scan_mask
| * f8ec1677ce mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro()
| * 2f3555c20a mmc: sdhci: Do not invert write-protect twice
| * dca15c1861 mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos
| * 81027f81c4 mmc: sdhci-brcmstb: check R1_STATUS for erase/trim/discard
| * ea6beb811b nfs: drop the incorrect assertion in nfs_swap_rw()
| * 9ea2d1c678 ocfs2: fix DIO failure due to insufficient transaction credits
| * a4f9251e4b pinctrl: qcom: spmi-gpio: drop broken pm8008 support
| * ceabd79fd4 Revert "MIPS: pci: lantiq: restore reset gpio polarity"
| * 3ae15c0238 parisc: use generic sys_fanotify_mark implementation
| * 161cef8185 x86: stop playing stack games in profile_pc()
| * 7fb374981e ima: Fix use-after-free on a dentry's dname.name
| * b793177141 randomize_kstack: Remove non-functional per-arch entropy filtering
| * 31594c5a42 gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1)
| * c3b425744d riscv: stacktrace: convert arch_stack_walk() to noinstr
| * 09f64e7ad7 drm/amdgpu: Fix pci state save during mode-1 reset
| * 87a2448efc drm/amd/amdgpu: Fix style errors in amdgpu_drv.c & amdgpu_device.c
| * 89d7008af4 gpio: davinci: Validate the obtained number of IRQs
| * c717cef1ff drm/panel: simple: Add missing display timing flags for KOE TX26D202VM0BWA
| * d8e2766655 nvme: fixup comment for nvme RDMA Provider Type
| * b719f2bc76 drm/radeon/radeon_display: Decrease the size of allocated memory
| * 9e424deb9a soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message
| * 06c5331047 media: dvbdev: Initialize sbuf
| * d0ff2443fc ALSA: emux: improve patch ioctl data validation
| * fd7ef32591 crypto: ecdh - explicitly zeroize private_key
| * 48147337d7 net/dpaa2: Avoid explicit cpumask var allocation on stack
| * d85ca8179a net/iucv: Avoid explicit cpumask var allocation on stack
| * 782bdaf9d0 RDMA/restrack: Fix potential invalid address access
| * b30f3197a6 bpf: Mark bpf prog stack with kmsan_unposion_memory in interpreter mode
| * 5bcb9cf62f bpf: Add a check for struct bpf_fib_lookup size
| * cc33a7a2f1 wifi: ieee80211: check for NULL in ieee80211_mle_size_ok()
| * 081938266a mtd: partitions: redboot: Added conversion of operands to a larger type
| * ed1fa6d6af x86/fpu: Fix AMD X86_BUG_FXSAVE_LEAK fixup
| * 7d18ab6e4f vduse: Temporarily fail if control queue feature requested
| * d99a4e147b vduse: validate block features only with block devices
| * 5f41401219 drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep
| * e4f602e3ff bpf: Take return from set_memory_ro() into account with bpf_prog_lock_ro()
| * efb27ad059 netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers
| * 736c74dc60 tcp: fix tcp_rcv_fastopen_synack() to enter TCP_CA_Loss for failed TFO
| * 853c0387ac powerpc: restore some missing spu syscalls
| * 2eb9a4bc63 parisc: use correct compat recv/recvfrom syscalls
| * ef03810c9a sparc: fix compat recv/recvfrom syscalls
| * 04c1271243 sparc: fix old compat_sys_select()
| * f75c21bf73 net: dsa: microchip: fix wrong register write when masking interrupt
| * c14f3c3793 Fix race for duplicate reqsk on identical SYN
| * 4e0c539ee2 xdp: Remove WARN() from __xdp_reg_mem_model()
| * 75fabdc911 net: dsa: microchip: use collision based back pressure mode
| * aecaaf8abd net: phy: micrel: add Microchip KSZ 9477 to the device table
| * 5516c9ee2a ibmvnic: Free any outstanding tx skbs during scrq reset
| * d1b9df0435 bpf: Fix overrunning reservations in ringbuf
| * bfa86a9691 mlxsw: spectrum_buffers: Fix memory corruptions on Spectrum-4 systems
| * 2dfaf2c4b3 net: dsa: microchip: fix initial port flush problem
| * 8faf91e584 ASoC: fsl-asoc-card: set priv->pdev before using it
| * 20f19c91da ASoC: amd: acp: remove i2s configuration check in acp_i2s_probe()
| * d9912994a0 s390/pci: Add missing virt_to_phys() for directed DIBV
| * 87358401ed ASoC: rockchip: i2s-tdm: Fix trcm mode by setting clock on right mclk
| * b45176b869 netfilter: nf_tables: use timestamp to check for set element timeout
| * 7491c3c55c dt-bindings: i2c: atmel,at91sam: correct path to i2c-controller schema
| * 58d65ce94b dt-bindings: i2c: Drop unneeded quotes
| * 777f3c9954 MIPS: pci: lantiq: restore reset gpio polarity
| * ae7b2aa805 pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set
| * 8a5859bb14 pinctrl: rockchip: use dedicated pinctrl type for RK3328
| * 6bed115e5e pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins
| * 940ce6f283 pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins
| * b36efd2e3e pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER
| * 4312eace43 Input: ili210x - fix ili251x_read_touch_data() return value
| * b2f1ce6cc9 ACPI: x86: Force StorageD3Enable on more products
| * c538c8861c ACPI: x86: utils: Add Picasso to the list for forcing StorageD3Enable
| * 411e6aa90a usb: typec: ucsi: Ack also failed Get Error commands
| * 8cace39c77 usb: typec: ucsi: Never send a lone connector change ack
* | 47b24bf8ea Revert "net/sched: fix false lockdep warning on qdisc root lock"
* | 0a6ad70f07 Revert "net/sched: unregister lockdep keys in qdisc_create/qdisc_alloc error path"
* | 325f5b8ed9 Revert "tty: add the option to have a tty reject a new ldisc"
* | 7455bf543f Merge 6.1.96 into android14-6.1-lts
|\|
| * 99e6a620de Linux 6.1.96
| * 19526f54ec Revert "mm: mmap: allow for the maximum number of bits for randomizing mmap_base by default"
| * 8a630e8acd hid: asus: asus_report_fixup: fix potential read out of bounds
| * 48d3f91d83 net/sched: unregister lockdep keys in qdisc_create/qdisc_alloc error path
| * d04943bb69 drm/amd/display: revert Exit idle optimizations before HDCP execution
| * 5efe0b5deb kheaders: explicitly define file modes for archived headers
| * f0b5d1d9fe Revert "kheaders: substituting --sort in archive creation"
| * 8ab1361b2e x86/cpu: Fix x86_match_cpu() to match just X86_VENDOR_INTEL
| * b0727ed7ba x86/cpu/vfm: Add new macros to work with (vendor/family/model) values
| * 6efd1d4b1f tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test
| * 8d5d123f62 pmdomain: ti-sci: Fix duplicate PD referrals
| * 95881ebdb4 ARM: dts: samsung: smdk4412: fix keypad no-autorepeat
| * 7c1448ea11 ARM: dts: samsung: exynos4412-origen: fix keypad no-autorepeat
| * 2df48353fa ARM: dts: samsung: smdkv310: fix keypad no-autorepeat
| * 8154edd62a perf script: Show also errors for --insn-trace option
| * 4bd6f883bd perf: script: add raw|disasm arguments to --insn-trace option
| * 520f28926a spi: stm32: qspi: Clamp stm32_qspi_get_mode() output to CCR_BUSWIDTH_4
| * 56de6648a4 arm64: dts: imx8qm-mek: fix gpio number for reg_usdhc2_vmmc
| * 065494adab spi: stm32: qspi: Fix dual flash mode sanity test in stm32_qspi_setup()
| * fd6cfb11d7 dt-bindings: i2c: google,cros-ec-i2c-tunnel: correct path to i2c-controller schema
| * 92278b2dd1 i2c: ocores: set IACK bit after core is enabled
| * 51897f9935 mm/page_table_check: fix crash on ZONE_DEVICE
| * 6f7c39a675 tcp: clear tp->retrans_stamp in tcp_rcv_fastopen_synack()
| * 665e932600 mm: mmap: allow for the maximum number of bits for randomizing mmap_base by default
| * 4cb3b5bc4c kcov: don't lose track of remote references during softirqs
| * 9ad023010e gcov: add support for GCC 14
| * fc5cb952e6 drm/amdgpu: fix UBSAN warning in kv_dpm.c
| * f803532bc3 drm/radeon: fix UBSAN warning in kv_dpm.c
| * 013e8f2371 drm/i915/mso: using joiner is not possible with eDP MSO
| * 661882cfe5 ALSA: hda/realtek: Limit mic boost on N14AP7
| * 72eed766d9 ALSA: hda/realtek: fix mute/micmute LEDs don't work for ProBook 445/465 G11.
| * 9e6e37d9d6 KVM: x86: Always sync PIR to IRR prior to scanning I/O APIC routes
| * 68df4fc449 KVM: arm64: Disassociate vcpus from redistributor region on teardown
| * 92c77807d9 KVM: Fix a data race on last_boosted_vcpu in kvm_vcpu_on_spin()
| * b95fce863b cifs: fix typo in module parameter enable_gcm_256
| * 15cb476ceb btrfs: retry block group reclaim without infinite loop
| * 893eeba94c net: do not leave a dangling sk pointer, when socket creation fails
| * 44f521431f net: usb: ax88179_178a: improve reset check
| * dda369a760 net: stmmac: Assign configured channel value to EXTTS event
| * d8abba1e3c MIPS: dts: bcm63268: Add missing properties to the TWD node
| * 2703312590 kbuild: Remove support for Clang's ThinLTO caching
| * 9995864186 RDMA/mlx5: Add check for srq max_sge attribute
| * a331f275cb firmware: psci: Fix return value from psci_system_suspend()
| * ddc1f5f124 ACPICA: Revert "ACPICA: avoid Info: mapping multiple BARs. Your kernel is fine."
| * 87d2639f8a arm64: dts: freescale: imx8mm-verdin: enable hysteresis on slow input pin
| * 97af5de2cb arm64: dts: imx93-11x11-evk: Remove the 'no-sdio' property
| * 474a1661f4 regulator: bd71815: fix ramp values
| * 6136f19e52 dmaengine: ioatdma: Fix missing kmem_cache_destroy()
| * 6a104377d4 dmaengine: ioatdma: Fix kmemleak in ioat_pci_probe()
| * 98b35b2b7e dmaengine: ioatdma: Fix error path in ioat3_dma_probe()
| * d7f4e58f1b dmaengine: ioat: use PCI core macros for PCIe Capability
| * 98d79caf37 dmaengine: ioatdma: Fix leaking on version mismatch
| * 95dc59ba94 dmaengine: ioat: Drop redundant pci_enable_pcie_error_reporting()
| * 83163667d8 dmaengine: idxd: Fix possible Use-After-Free in irq_process_work_list
| * 1bd1857fed regulator: core: Fix modpost error "regulator_get_regmap" undefined
| * 1803875fef net: usb: rtl8150 fix unintiatilzed variables in rtl8150_get_link_ksettings
| * e214f102e0 bnxt_en: Restore PTP tx_avail count in case of skb_pad() error
| * dd37b86999 ice: Fix VSI list rule with ICE_SW_LKUP_LAST type
| * ec4d970b59 seg6: fix parameter passing when calling NF_HOOK() in End.DX4 and End.DX6 behaviors
| * 788d585e62 netfilter: ipset: Fix suspicious rcu_dereference_protected()
| * 49780570bf octeontx2-pf: Add error handling to VLAN unoffload handling
| * 04619db397 virtio_net: checksum offloading handling fix
| * 521d42a1c2 net: stmmac: No need to calculate speed divider when offload is disabled
| * d50d62d5e6 ptp: fix integer overflow in max_vclocks_store
| * 2f82f75f84 sched: act_ct: add netns into the key of tcf_ct_flow_table
| * 623c90d86a tipc: force a dst refcount before doing decryption
| * 6fc78d67f5 net/sched: act_api: fix possible infinite loop in tcf_idr_check_alloc()
| * 668be2b635 net/sched: act_api: rely on rcu in tcf_idr_check_alloc
| * 5bd1b7ab6a net: phy: mxl-gpy: Remove interrupt mask clearing from config_init
| * 70993aca4f net: phy: mxl-gpy: enhance delay time required by loopback disable function
| * 7d0606bdd7 net: lan743x: Support WOL at both the PHY and MAC appropriately
| * 2af9aa9ac6 net: lan743x: disable WOL upon resume to restore full data path operation
| * e2ec071727 qca_spi: Make interrupt remembering atomic
| * 1b631bffcb netns: Make get_net_ns() handle zero refcount net
| * 83c02fb2cc xfrm6: check ip6_dst_idev() return value in xfrm6_get_saddr()
| * 51ee2f7c30 ipv6: prevent possible NULL dereference in rt6_probe()
| * 88b9a55e2e ipv6: prevent possible NULL deref in fib6_nh_init()
| * a02fd5d775 netrom: Fix a memory leak in nr_heartbeat_expiry()
| * eb1bde62d6 ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
| * dacc15e9cb bpf: Avoid splat in pskb_pull_reason
| * 7dabc4b45b cipso: fix total option length computation
| * 224b69e875 ice: avoid IRQ collision to fix init failure on ACPI S3 resume
| * 531d85b4fb ice: move RDMA init to ice_idc.c
| * 7de448db67 ALSA/hda: intel-dsp-config: Document AVS as dsp_driver option
| * 71b027d3c0 ALSA: hda/realtek: Remove Framework Laptop 16 from quirks
| * 32ef4dc2b1 tracing: Build event generation tests only as modules
| * 6c0f6ccd93 mips: bmips: BCM6358: make sure CBR is correctly set
| * a6061f60e1 MIPS: Routerboard 532: Fix vendor retry check code
| * 3c6332f3bb tty: add the option to have a tty reject a new ldisc
| * 6466b91968 usb: gadget: function: Remove usage of the deprecated ida_simple_xx() API
| * 3b3655a1d3 serial: exar: adding missing CTI and Exar PCI ids
| * 7f9e70c68b serial: imx: Introduce timeout when waiting on transmitter empty
| * d996deb803 MIPS: Octeon: Add PCIe link status check
| * 70196feadb PCI/PM: Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports
| * 29dfe9e844 udf: udftime: prevent overflow in udf_disk_stamp_to_time()
| * 69170a888e usb: dwc3: pci: Don't set "linux,phy_charger_detect" property on Lenovo Yoga Tab2 1380
| * dd42570018 Avoid hw_desc array overrun in dw-axi-dmac
| * 8fc246a8a4 usb: misc: uss720: check for incompatible versions of the Belkin F5U002
| * a9cea0489c f2fs: remove clear SB_INLINECRYPT flag in default_options
| * 8092775cb6 iommu/arm-smmu-v3: Free MSIs in case of ENOMEM
| * 10c19cf7a1 power: supply: cros_usbpd: provide ID table for avoiding fallback match
| * 5cb3339b6d platform/x86: p2sb: Don't init until unassigned resources have been assigned
| * 7bbcd3b1c2 powerpc/io: Avoid clang null pointer arithmetic warnings
| * 8aa11aa001 powerpc/pseries: Enforce hcall result buffer validity and size
| * cf56640e9a ALSA: hda/realtek: Add quirks for Lenovo 13X
| * 9fd8ddd237 drm/lima: mask irqs in timeout path before hard reset
| * 394d660678 drm/lima: add mask irq callback to gp and pp
| * 4cd1360c63 ASoC: Intel: sof_sdw: add JD2 quirk for HP Omen 14
| * 6239d65b91 platform/x86: toshiba_acpi: Add quirk for buttons on Z830
| * fc1f030978 drm/amd/display: Exit idle optimizations before HDCP execution
| * be4a1fc857 Bluetooth: ath3k: Fix multiple issues reported by checkpatch.pl
| * aa2fb9c54c HID: asus: fix more n-key report descriptors if n-key quirked
| * 5368c463bc HID: Add quirk for Logitech Casa touchpad
| * 0b81faa05b wifi: mt76: mt7921s: fix potential hung tasks during chip recovery
| * 96826b16ef netpoll: Fix race condition in netpoll_owner_active
| * e8fc7647a8 net: dsa: realtek: keep default LED state in rtl8366rb
| * d927fae287 kselftest: arm64: Add a null pointer check
| * 048b33817a net/sched: fix false lockdep warning on qdisc root lock
| * eaddb86637 scsi: qedi: Fix crash while reading debugfs attribute
| * f251ccef1d drop_monitor: replace spin_lock by raw_spin_lock
| * 63310043ac af_packet: avoid a false positive warning in packet_setsockopt()
| * 2e48d73577 wifi: ath9k: work around memset overflow warning
| * fed7914858 batman-adv: bypass empty buckets in batadv_purge_orig_ref()
| * 63f2d5373d selftests/bpf: Fix flaky test btf_map_in_map/lookup_update
| * fb9088a7a7 selftests/bpf: Prevent client connect before server bind in test_tc_tunnel.sh
| * 61ec76ec93 block/ioctl: prefer different overflow check
| * cf9b1652b4 rcutorture: Fix invalid context warning when enable srcu barrier testing
| * dbd4175e5e rcutorture: Make stall-tasks directly exit when rcutorture tests end
| * 9bc282fb8a rcutorture: Fix rcu_torture_one_read() pipe_count overflow comment
| * 55c22375cb io_uring/sqpoll: work around a potential audit memory leak
| * 7c42ce556f crypto: hisilicon/sec - Fix memory leak for sec resource release
| * 4925da0896 padata: Disable BH when taking works lock on MT path
* | cb7d32c26d Merge aosp/android14-6.1 to aosp/android14-6.1-lts
* | 6f4a686ac9 Revert "i2c: add fwnode APIs"
* | efbc7c7549 Revert "i2c: acpi: Unbind mux adapters before delete"
* | ced5058778 Merge 6.1.95 into android14-6.1-lts
|\|
| * a6398e3730 Linux 6.1.95
| * edd2754a62 zap_pid_ns_processes: clear TIF_NOTIFY_SIGNAL along with TIF_SIGPENDING
| * e44999ec0b i2c: designware: Fix the functionality flags of the slave-only interface
| * 1a0bbb90f3 i2c: at91: Fix the functionality flags of the slave-only interface
| * ea25a4c0de misc: microchip: pci1xxxx: Fix a memory leak in the error handling of gp_aux_bus_probe()
| * e0e2eec769 usb-storage: alauda: Check whether the media is initialized
| * ae917519ba serial: core: Add UPIO_UNKNOWN constant for unknown port type
| * 29d35f0b53 serial: 8250_dw: fall back to poll if there's no interrupt
| * 9a733d69a4 greybus: Fix use-after-free bug in gb_interface_release due to race condition.
| * 12a4a28eae Bluetooth: qca: generalise device address check
| * 47988653a4 Bluetooth: qca: fix wcn3991 device address check
| * 9afc658ce7 cachefiles, erofs: Fix NULL deref in when cachefiles is not doing ondemand-mode
| * 4733dea73c remoteproc: k3-r5: Jump to error handling labels in start/stop errors
| * 04b0c41912 Revert "fork: defer linking file vma until vma is fully initialized"
| * 35e395373e mptcp: pm: update add_addr counters after connect
| * 51861fc086 serial: 8250_pxa: Configure tx_loadsz to match FIFO IRQ level
| * 00b0752c7f mm/memory-failure: fix handling of dissolved but not taken off from buddy pages
| * b2494506f3 mm/huge_memory: don't unpoison huge_zero_folio
| * 2641261b93 tick/nohz_full: Don't abuse smp_call_function_single() in tick_setup_device()
| * 271dcd977c nilfs2: fix potential kernel bug due to lack of writeback flag waiting
| * 1776596470 btrfs: zoned: fix use-after-free due to race with dev replace
| * babfd2d0d5 btrfs: zoned: factor out DUP bg handling from btrfs_load_block_group_zone_info
| * 43a89d48bd btrfs: zoned: factor out single bg handling from btrfs_load_block_group_zone_info
| * 7fd274c062 btrfs: zoned: factor out per-zone logic from btrfs_load_block_group_zone_info
| * c60f0a442d btrfs: zoned: introduce a zone_info struct in btrfs_load_block_group_zone_info
| * d2fa51eb9c intel_th: pci: Add Lunar Lake support
| * 5b64a368e3 intel_th: pci: Add Meteor Lake-S support
| * a1fb1bd6c0 intel_th: pci: Add Sapphire Rapids SOC support
| * b7b6bc60ed intel_th: pci: Add Granite Rapids SOC support
| * bb8b9d91f7 intel_th: pci: Add Granite Rapids support
| * 3272801490 drm/i915/dpt: Make DPT object unshrinkable
| * d205e30216 drm/i915/gt: Disarm breadcrumbs if engines are already idle
| * 919f862609 riscv: rewrite __kernel_map_pages() to fix sleeping in invalid context
| * dd5042eed5 remoteproc: k3-r5: Do not allow core1 to power up before core0 via sysfs
| * 2a1ec20b17 remoteproc: k3-r5: Wait for core0 power-up before powering up core1
| * f6a426a0c4 dmaengine: axi-dmac: fix possible race in remove()
| * eab9d5a846 PCI: rockchip-ep: Remove wrong mask on subsys_vendor_id
| * ea042dc2be ocfs2: fix races between hole punching and AIO+DIO
| * a2e8105eb2 ocfs2: use coarse time for new created files
| * a373ad833a fs/proc: fix softlockup in __read_vmcore
| * 06bea44b93 knfsd: LOOKUP can return an illegal error value
| * bbce9fb50c spmi: hisi-spmi-controller: Do not override device identifier
| * 95bac1c8be vmci: prevent speculation leaks by sanitizing event in event_deliver()
| * 5eabdf17fe sock_map: avoid race between sock_map_close and sk_psock_put
| * ae080302bf null_blk: Print correct max open zones limit in null_init_zoned_dev()
| * e2585bc1d8 tracing/selftests: Fix kprobe event name test for .isra. functions
| * 6625417dfe riscv: fix overlap of allocated page and PTR_ERR
| * c81705d66f perf/core: Fix missing wakeup when waiting for context reference
| * 355784a5c0 x86/amd_nb: Check for invalid SMN reads
| * 2458f2362f irqchip/gic-v3-its: Fix potential race condition in its_vlpi_prop_update()
| * 9dc3200a5c mptcp: pm: inc RmAddr MIB counter once per RM_ADDR ID
| * f03c46eabb mptcp: ensure snd_una is properly initialized on connect
| * c3ca24dfe9 drm/exynos: hdmi: report safe 640x480 mode as a fallback when no EDID found
| * dcba6bedb4 drm/exynos/vidi: fix memory leak in .get_modes()
| * 08891eeaa9 drivers: core: synchronize really_probe() and dev_uevent()
| * cc09e1d351 iio: imu: inv_icm42600: delete unneeded update watermark call
| * 1b82cc8664 iio: dac: ad5592r: fix temperature channel scaling value
| * f35eb2c486 iio: adc: ad9467: fix scan type sign
| * b9da7e9653 x86/boot: Don't add the EFI stub to targets, again
| * 34ae447b13 misc: microchip: pci1xxxx: fix double free in the error handling of gp_aux_bus_probe()
| * cde177fa23 bnxt_en: Adjust logging of firmware messages in case of released token in __hwrm_send()
| * e9c6513cff af_unix: Read with MSG_PEEK loops if the first unread byte is OOB
| * 60cd714871 ionic: fix use after netif_napi_del()
| * caaa212978 net: bridge: mst: fix suspicious rcu usage in br_mst_set_state
| * 09f4337c27 net: bridge: mst: pass vlan group directly to br_mst_vlan_set_state
| * cd68f84910 net/ipv6: Fix the RT cache flush via sysctl using a previous delay
| * 5872043bcf nvmet-passthru: propagate status from id override functions
| * a6ea39fd2d net: stmmac: replace priv->speed with the portTransmitRate from the tc-cbs parameters
| * c495ebe90b gve: ignore nonrelevant GSO type bits when processing TSO headers
| * 950217d97c net: pse-pd: Use EOPNOTSUPP error code instead of ENOTSUPP
| * 390b353d1a netfilter: ipset: Fix race between namespace cleanup and gc in the list:set type
| * 4431d37498 Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ
| * 0f99dc35cb net/mlx5e: Fix features validation check for tunneled UDP (non-VXLAN) packets
| * 11f1f0c4f7 geneve: Fix incorrect inner network header offset when innerprotoinherit is set
| * 0b160b127c tcp: fix race in tcp_v6_syn_recv_sock()
| * c8879a39c7 drm/bridge/panel: Fix runtime warning on panel bridge release
| * 3b1cf943b0 drm/komeda: check for error-valued pointer
| * f1ab15a094 liquidio: Adjust a NULL pointer handling path in lio_vf_rep_copy_packet
| * f2583f8172 net: hns3: add cond_resched() to hns3 ring buffer init process
| * 6d0007f7b6 net: hns3: fix kernel crash problem in concurrent scenario
| * 84a0d86853 net: sfp: Always call `sfp_sm_mod_remove()` on remove
| * 2b7be0eb79 drm/vmwgfx: Remove STDU logic from generic mode_valid function
| * b1aae9c5d7 drm/vmwgfx: 3D disabled should not effect STDU memory limits
| * b7479b39b7 drm/vmwgfx: Filter modes which exceed graphics memory
| * 862bd36daf drm/vmwgfx: Refactor drm connector probing for display modes
| * 67adcfae2e drm/vmwgfx: Port the framebuffer code to drm fb helpers
| * 789c99a1d7 HID: logitech-dj: Fix memory leak in logi_dj_recv_switch_to_dj_mode()
| * f2af9dbad8 iommu/amd: Fix sysfs leak in iommu init
| * bfd546fc7f HID: core: remove unnecessary WARN_ON() in implement()
| * 2df8c16ea4 gpio: tqmx86: fix broken IRQ_TYPE_EDGE_BOTH interrupt type
| * 4ada932c43 gpio: tqmx86: store IRQ trigger type and unmask status separately
| * 0f6b55f9f7 gpio: tqmx86: Convert to immutable irq_chip
| * 8c2e28a209 gpio: tqmx86: introduce shadow register for GPIO output value
| * a09c3dbe59 gpio: tqmx86: remove unneeded call to platform_set_drvdata()
| * 8200440578 gpio: tqmx86: fix typo in Kconfig label
| * 3150d4e4b9 platform/x86: dell-smbios: Fix wrong token data in sysfs
| * 0abb51acfb NFS: add barriers when testing for NFS_FSDATA_BLOCKED
| * 3cde566d9f SUNRPC: return proper error from gss_wrap_req_priv
| * e6ddef11c0 NFSv4.1 enforce rootpath check in fs_location query
| * 81fce119df clk: sifive: Do not register clkdevs for PRCI clocks
| * fcb4ce61a5 selftests/ftrace: Fix to check required event file
| * 320ba9cbca cachefiles: flush all requests after setting CACHEFILES_DEAD
| * eac51d9daa cachefiles: defer exposing anon_fd until after copy_to_user() succeeds
| * 1fd5f317b5 cachefiles: never get a new anonymous fd if ondemand_id is valid
| * bb00aef6d9 cachefiles: remove err_put_fd label in cachefiles_ondemand_daemon_read()
| * cb55625f8e cachefiles: fix slab-use-after-free in cachefiles_ondemand_daemon_read()
| * 99e9c5bd27 cachefiles: fix slab-use-after-free in cachefiles_ondemand_get_fd()
| * a0cc87f866 cachefiles: add restore command to recover inflight ondemand read requests
| * 5344f2ab31 cachefiles: add spin_lock for cachefiles_ondemand_info
| * f17443d52d cachefiles: resend an open request if the read request's object is closed
| * bb512c8587 cachefiles: extract ondemand info field from cachefiles_object
| * e43fb9a20d cachefiles: introduce object ondemand state
| * 9f13aacdd4 cachefiles: remove requests from xarray during flushing requests
| * dad925266a cachefiles: add output string to cachefiles_obj_[get|put]_ondemand_fd
| * bee55952ff cxl/test: Add missing vmalloc.h for tools/testing/cxl/test/mem.c
| * 6dfa1d80ea Input: try trimming too long modalias strings
| * ce1afd733b powerpc/uaccess: Fix build errors seen with GCC 13/14
| * d221284991 gve: Clear napi->skb before dev_kfree_skb_any()
| * d19254d891 scsi: sd: Use READ(16) when reading block zero on large capacity disks
| * 46bab2bcd7 scsi: mpt3sas: Avoid test/set_bit() operating in non-allocated memory
| * a9624afc91 scsi: mpi3mr: Fix ATA NCQ priority support
| * a136698d1e thunderbolt: debugfs: Fix margin debugfs node creation condition
| * 0daacb57b9 xhci: Apply broken streams quirk to Etron EJ188 xHCI host
| * 633f72cb61 xhci: Handle TD clearing for multiple streams case
| * 0a1c2a581d xhci: Apply reset resume quirk to Etron EJ188 xHCI host
| * f6559d28c0 xhci: Set correct transferred length for cancelled bulk transfers
| * 33aecc5799 jfs: xattr: fix buffer overflow for invalid xattr
| * b6e5e69643 landlock: Fix d_parent walk
| * 03f916e56a tty: n_tty: Fix buffer offsets when lookahead is used
| * 185a1b1fcc mei: me: release irq in mei_me_pci_resume error path
| * 2ad7e02c2e usb: typec: tcpm: Ignore received Hard Reset in TOGGLING state
| * 4053696594 usb: typec: tcpm: fix use-after-free case in tcpm_register_source_caps
| * fb9f366ae6 USB: xen-hcd: Traverse host/ when CONFIG_USB_XEN_HCD is selected
| * 02a4c0499f USB: class: cdc-wdm: Fix CPU lockup caused by excessive log messages
| * c2844d5e58 io_uring: check for non-NULL file pointer in io_file_can_poll()
| * 129dcd3e7d nilfs2: fix nilfs_empty_dir() misjudgment and long loop on I/O errors
| * ea2ac9238d nilfs2: return the mapped address from nilfs_get_page()
| * 8b0d6d1879 btrfs: fix leak of qgroup extent records after transaction abort
| * b1a5d3f79b btrfs: make btrfs_destroy_delayed_refs() return void
| * 95e69b16d0 btrfs: remove unnecessary prototype declarations at disk-io.c
| * be70a6c516 wifi: ath10k: fix QCOM_RPROC_COMMON dependency
| * 46a072e050 selftests/mm: compaction_test: fix bogus test success on Aarch64
| * 264b8a7e15 selftests/mm: log a consistent test name for check_compaction
| * 5ba39134b6 selftests/mm: conform test to TAP format output
| * 499fd1db08 selftests/mm: compaction_test: fix incorrect write of zero to nr_hugepages
| * 198a80833e mm/vmalloc: fix vmalloc which may return null if called with __GFP_NOFAIL
| * fe5c2bdcb1 mm, vmalloc: fix high order __GFP_NOFAIL allocations
| * b1574c8c0a i2c: acpi: Unbind mux adapters before delete
| * ef1e9b624d i2c: add fwnode APIs
| * c0cd2d8800 HID: i2c-hid: elan: fix reset suspend current leakage
| * 274ecd4001 HID: i2c-hid: elan: Add ili9882t timing
| * 0fce1c959a firmware: qcom_scm: disable clocks if qcom_scm_bw_enable() fails
| * 5ee241f72e mmc: davinci: Don't strip remove function when driver is builtin
| * c3d39fdc33 serial: sc16is7xx: fix bug in sc16is7xx_set_baud() when using prescaler
| * aeb2b22e4f serial: sc16is7xx: replace hardcoded divisor value with BIT() macro
| * c0b8f49183 misc/pvpanic-pci: register attributes via pci_driver
| * 96826e74d7 misc/pvpanic: deduplicate common code
| * 1529c86da6 arm64: dts: qcom: sa8155p-adp: fix SDHC2 CD pin configuration
| * eedbb969a4 arm64: dts: qcom: sm8150: align TLMM pin configuration with DT schema
| * a869a9b604 drm/amd/display: Fix incorrect DSC instance for MST
| * ed82dc58c7 drm/amd/display: drop unnecessary NULL checks in debugfs
| * b6621895b4 xtensa: fix MAKE_PC_FROM_RA second argument
| * eccf114abd xtensa: stacktrace: include <asm/ftrace.h> for prototype
| * 5253a35ea5 iio: accel: mxc4005: Reset chip on probe() and resume()
| * 02db59533b iio: accel: mxc4005: allow module autoloading via OF compatible
| * a0fdccb1c9 usb: gadget: f_fs: Fix race between aio_cancel() and AIO request complete
| * b55bc52521 usb: gadget: f_fs: use io_data->status consistently
| * e8b8582355 btrfs: fix wrong block_start calculation for btrfs_drop_extent_map_range()
| * b45cfd9bde Bluetooth: qca: fix invalid device address check
| * 2498960dac ipv6: fix possible race in __fib6_drop_pcpu_from()
| * 6b9ff1620d af_unix: Annotate data-race of sk->sk_shutdown in sk_diag_fill().
| * 4a967bac16 af_unix: Use skb_queue_len_lockless() in sk_diag_show_rqlen().
| * e3f2599e9a af_unix: Use skb_queue_empty_lockless() in unix_release_sock().
| * 4c64c3e2f5 af_unix: annotate lockless accesses to sk->sk_err
| * f5c4276607 af_unix: Use unix_recvq_full_lockless() in unix_stream_connect().
| * 8b29fcd7f3 af_unix: Annotate data-race of net->unx.sysctl_max_dgram_qlen.
| * 19425cfe59 af_unix: Annotate data-races around sk->sk_state in UNIX_DIAG.
| * fda68a7da8 af_unix: Annotate data-race of sk->sk_state in unix_stream_read_skb().
| * f53cf0449e af_unix: Annotate data-races around sk->sk_state in sendmsg() and recvmsg().
| * 018fc5d9db af_unix: Annotate data-race of sk->sk_state in unix_stream_connect().
| * 35bdc364e1 af_unix: Annotate data-races around sk->sk_state in unix_write_space() and poll().
| * a8814322e5 af_unix: Annotate data-race of sk->sk_state in unix_inq_len().
| * a59dc9cb03 af_unix: Annodate data-races around sk->sk_state for writers.
| * ca32605565 af_unix: Set sk->sk_state under unix_state_lock() for truly disconencted peer.
| * fe394d59cd net: wwan: iosm: Fix tainted pointer delete is case of region creation fail
| * a62c50545b ice: remove af_xdp_zc_qps bitmap
| * 447a5433bd ice: remove null checks before devm_kfree() calls
| * a388961be5 ice: Introduce new parameters in ice_sched_node
| * 17ccdebe5a ice: fix iteration of TLVs in Preserved Fields Area
| * 952557eb6e ptp: Fix error message on failed pin verification
| * 0bf6cc9661 net/sched: taprio: always validate TCA_TAPRIO_ATTR_PRIOMAP
| * 531eab2da2 net/mlx5: Fix tainted pointer delete is case of flow rules creation fail
| * e7d4485d47 net/mlx5: Always stop health timer during driver removal
| * 0819acb87b net/mlx5: Split function_setup() to enable and open functions
| * 0c42eef3f0 net/mlx5: Stop waiting for PCI if pci channel is offline
| * e4df7b53a4 net/mlx5: Stop waiting for PCI up if teardown was triggered
| * a2ab7dae67 tcp: count CLOSE-WAIT sockets for TCP_MIB_CURRESTAB
| * a31d0e5deb vxlan: Fix regression when dropping packets due to invalid src addresses
| * 0f208fad86 net: sched: sch_multiq: fix possible OOB write in multiq_tune()
| * 1a0c20c056 net/smc: avoid overwriting when adjusting sock bufsizes
| * 87ef68f3af octeontx2-af: Always allocate PF entries from low prioriy zone
| * 3708b6c254 bpf: Set run context for rawtp test_run callback
| * a170d5a40f ipv6: sr: block BH in seg6_output_core() and seg6_input_core()
| * 9b3d1ba4a4 ipv6: ioam: block BH from ioam6_output()
| * 9bcdfdc6a6 net/ncsi: Fix the multi thread manner of NCSI driver
| * f2cd7e1b48 net/ncsi: Simplify Kconfig/dts control flow
| * e6ad2311e0 ax25: Replace kfree() in ax25_dev_free() with ax25_dev_put()
| * f4df9d6c8d ax25: Fix refcount imbalance on inbound connections
| * bd403f3989 wifi: mac80211: correctly parse Spatial Reuse Parameter Set element
| * a8bc8276af wifi: iwlwifi: mvm: don't read past the mfuart notifcation
| * 9e719ae3ab wifi: iwlwifi: mvm: check n_ssids before accessing the ssids
| * ca4c230788 wifi: iwlwifi: dbg_ini: move iwl_dbg_tlv_free outside of debugfs ifdef
| * 8014a7dbbf wifi: iwlwifi: mvm: revert gen2 TX A-MPDU size to 64
| * a5c20830fb wifi: cfg80211: pmsr: use correct nla_get_uX functions
| * 6d540b0317 wifi: cfg80211: Lock wiphy in cfg80211_get_station
| * 96c950d6b0 wifi: cfg80211: fully move wiphy work to unbound workqueue
| * 9c49b58b9a wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup()
| * 617dadbfb2 wifi: mac80211: mesh: Fix leak of mesh_preq_queue objects
* | c6bbb760e9 ANDROID: ABI fixup for abi break in struct dst_ops
* | 079775fd35 Merge 6.1.94 into android14-6.1-lts
|/
* eb44d83053 Linux 6.1.94
* 6d6fe13cca smp: Provide 'setup_max_cpus' definition on UP too
* b09b556e48 smb: client: fix deadlock in smb2_find_smb_tcon()
* 3174d8b7c9 powerpc/bpf: enforce full ordering for ATOMIC operations with BPF_FETCH
* 1ff2bd566f btrfs: fix crash on racing fsync and size-extending write into prealloc
* e601937b5b NFS: Fix READ_PLUS when server doesn't support OP_READ_PLUS
* a54419e60e nfs: fix undefined behavior in nfs_block_bits()
* 728b663f5e EDAC/igen6: Convert PCIBIOS_* return codes to errnos
* 4e060b308d i3c: master: svc: fix invalidate IBI type and miss call client IBI handler
* 07c8050f8c s390/cpacf: Make use of invalid opcode produce a link error
* 1d39dcff47 s390/cpacf: Split and rework cpacf query functions
* 8c5f5911c1 s390/ap: Fix crash in AP internal function modify_bitmap()
* ff19ea00a5 parisc: Define sigset_t in parisc uapi header
* bca17801fb parisc: Define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
* e941b712e7 ext4: fix mb_cache_entry's e_refcnt leak in ext4_xattr_block_cache_find()
* 16a392f66a ext4: set type of ac_groups_linear_remaining to __u32 to avoid overflow
* d47445b041 sparc: move struct termio to asm/termios.h
* 81dd3c82a4 net: fix __dst_negative_advice() race
* 10938be35e kdb: Use format-specifiers rather than memset() for padding in kdb_read()
* 60e2a14a81 kdb: Merge identical case statements in kdb_read()
* 0ec478e7a1 kdb: Fix console handling when editing and tab-completing commands
* b4e6a259f8 kdb: Use format-strings rather than '\0' injection in kdb_read()
* 33d9c81465 kdb: Fix buffer overflow during tab-complete
* 6da1ffc4bc watchdog: rti_wdt: Set min_hw_heartbeat_ms to accommodate a safety margin
* c7071d3052 mm/hugetlb: pass correct order_per_bit to cma_declare_contiguous_nid
* 04b4278245 mm/cma: drop incorrect alignment check in cma_init_reserved_mem
* 14a339e7d7 sparc64: Fix number of online CPUs
* 3ec82c9a15 intel_th: pci: Add Meteor Lake-S CPU support
* 82590ce3a0 cpufreq: amd-pstate: Fix the inconsistency in max frequency units
* 9ff078f5ba kmsan: do not wipe out origin when doing partial unpoisoning
* ca71f20471 net/9p: fix uninit-value in p9_client_rpc()
* 6684086359 net/ipv6: Fix route deleting failure when metric equals 0
* 65bb86fbc8 scsi: core: Handle devices which return an unusually large VPD page count
* 7a2bc8b34e mm: fix race between __split_huge_pmd_locked() and GUP-fast
* e7428e7e3f crypto: qat - Fix ADF_DEV_RESET_SYNC memory leak
* dd999fdeee crypto: ecrdsa - Fix module auto-load on add_key
* 458458c130 crypto: ecdsa - Fix module auto-load on add-key
* e0032f5c08 KVM: arm64: AArch32: Fix spurious trapping of conditional instructions
* 5b12ce0b6f KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode
* 4f902f03ef KVM: arm64: Fix AArch32 register narrowing on userspace write
* 7da44257e6 drm/amd: Fix shutdown (again) on some SMU v13.0.4/11 platforms
* cb299cdba0 9p: add missing locking around taking dentry fid list
* 97820893f2 drm/amdgpu/atomfirmware: add intergrated info v2.3 table
* edaa57480b fbdev: savage: Handle err return when savagefb_check_var failed
* 1a156761fc mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA
* 4ac34dc6b4 mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A
* 21109f137a mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not working
* c2107d3024 mmc: sdhci-acpi: Sort DMI quirks alphabetically
* 32b76505ba mmc: sdhci: Add support for "Tuning Error" interrupts
* 36a28616d4 mmc: core: Add mmc_gpiod_set_cd_config() function
* 7170d0c0da media: v4l2-core: hold videodev_lock until dev reg, finishes
* 5d931a2694 media: mxl5xx: Move xpt structures off stack
* 9ef7ee4cb6 media: mc: mark the media devnode as registered from the, start
* 788fd0f11e media: mc: Fix graph walk in media_pipeline_start
* 9d180538de arm64: dts: hi3798cv200: fix the size of GICR
* 46fe2af45c wifi: rtlwifi: rtl8192de: Fix endianness issue in RX path
* 6973383af5 wifi: rtlwifi: rtl8192de: Fix low speed with WPA3-SAE
* 83daddb601 wifi: rtlwifi: rtl8192de: Fix 5 GHz TX power
* 2c13c9f6ca wifi: rtl8xxxu: Fix the TX power of RTL8192CU, RTL8723AU
* c365394a41 wifi: rtw89: pci: correct TX resource checking for PCI DMA channel of firmware command
* 3f8d5e802d md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING
* 3f09972198 arm64: dts: qcom: qcs404: fix bluetooth device address
* 2eea8b448e arm64: tegra: Correct Tegra132 I2C alias
* ef2f4d60c3 ACPI: resource: Do IRQ override on TongFang GXxHRXx and GMxHGxx
* 3988a2850b soc: qcom: rpmh-rsc: Enhance check for VRM in-flight request
* 560d69c975 thermal/drivers/qcom/lmh: Check for SCM availability at probe
* 5e0d41aa53 ata: pata_legacy: make legacy_exit() work again
* 336b8b2e90 wifi: rtw89: correct aSIFSTime for 6GHz band
* 934e1e4331 bcache: fix variable length array abuse in btree_iter
* 011552f29f drm/amdgpu: add error handle to avoid out-of-bounds
* d082757b83 media: lgdt3306a: Add a check against null-pointer-def
* 8c8aa473fe f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode()
* 376fad5e52 scripts/gdb: fix SB_* constants parsing
* 6bbd9c021c vxlan: Fix regression when dropping packets due to invalid src addresses
* 7a898d5ed4 mptcp: fix full TCP keep-alive support
* dc62d53f01 mptcp: cleanup SOL_TCP handling
* e7d48faa15 mptcp: avoid some duplicate code in socket option handling
* 164320fc22 drm/i915/audio: Fix audio time stamp programming for DP
* 86a30d6302 nilfs2: fix use-after-free of timer for log writer thread
* 79fc40a29d riscv: signal: handle syscall restart before get_signal
* bc20a0a290 afs: Don't cross .backup mountpoint from backup volume
* 265426254d mmc: core: Do not force a retune before RPMB switch
* 883e5d542b maple_tree: fix mas_empty_area_rev() null pointer dereference
* 34f3005303 maple_tree: fix allocation in mas_sparse_area()
* cf0df43520 Bluetooth: btrtl: Add missing MODULE_FIRMWARE declarations
* a17e06d709 drm: Check polling initialized before enabling in drm_helper_probe_single_connector_modes
* 4ad8d57d90 drm: Check output polling initialized before disabling

Change-Id: I849966e53c4a46d2ee81b3b6078f953a08502872
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman
2024-09-12 11:15:32 +00:00
committed by Treehugger Robot
645 changed files with 6857 additions and 5372 deletions

View File

@@ -2,8 +2,8 @@
# Copyright 2019 BayLibre, SAS
%YAML 1.2
---
$id: "http://devicetree.org/schemas/i2c/amlogic,meson6-i2c.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
$id: http://devicetree.org/schemas/i2c/amlogic,meson6-i2c.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amlogic Meson I2C Controller

View File

@@ -1,8 +1,8 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/i2c/apple,i2c.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
$id: http://devicetree.org/schemas/i2c/apple,i2c.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Apple/PASemi I2C controller

View File

@@ -75,7 +75,7 @@ required:
- clocks
allOf:
- $ref: "i2c-controller.yaml"
- $ref: /schemas/i2c/i2c-controller.yaml#
- if:
properties:
compatible:

View File

@@ -1,8 +1,8 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/i2c/cdns,i2c-r1p10.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
$id: http://devicetree.org/schemas/i2c/cdns,i2c-r1p10.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cadence I2C controller

View File

@@ -21,7 +21,7 @@ description: |
google,cros-ec-spi or google,cros-ec-i2c.
allOf:
- $ref: i2c-controller.yaml#
- $ref: /schemas/i2c/i2c-controller.yaml#
properties:
compatible:

View File

@@ -45,7 +45,7 @@ properties:
i2c-parent:
description: phandle of the I2C bus that this multiplexer's master-side port is connected to
$ref: "/schemas/types.yaml#/definitions/phandle"
$ref: /schemas/types.yaml#/definitions/phandle
mux-gpios:
description: list of GPIOs used to control the muxer
@@ -55,7 +55,7 @@ properties:
idle-state:
description: Value to set the muxer to when idle. When no value is given, it defaults to the
last value used.
$ref: "/schemas/types.yaml#/definitions/uint32"
$ref: /schemas/types.yaml#/definitions/uint32
allOf:
- $ref: i2c-mux.yaml

View File

@@ -1,8 +1,8 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/i2c/qcom,i2c-geni-qcom.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
$id: http://devicetree.org/schemas/i2c/qcom,i2c-geni-qcom.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Geni based QUP I2C Controller

View File

@@ -90,7 +90,7 @@ properties:
st,syscfg-fmp:
description: Use to set Fast Mode Plus bit within SYSCFG when Fast Mode
Plus speed is selected by slave.
$ref: "/schemas/types.yaml#/definitions/phandle-array"
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- description: phandle to syscfg

View File

@@ -1,8 +1,8 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/i2c/xlnx,xps-iic-2.00.a.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
$id: http://devicetree.org/schemas/i2c/xlnx,xps-iic-2.00.a.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Xilinx IIC controller

View File

@@ -136,7 +136,8 @@ PMD Page Table Helpers
+---------------------------+--------------------------------------------------+
| pmd_swp_clear_soft_dirty | Clears a soft dirty swapped PMD |
+---------------------------+--------------------------------------------------+
| pmd_mkinvalid | Invalidates a mapped PMD [1] |
| pmd_mkinvalid | Invalidates a present PMD; do not call for |
| | non-present PMD [1] |
+---------------------------+--------------------------------------------------+
| pmd_set_huge | Creates a PMD huge mapping |
+---------------------------+--------------------------------------------------+
@@ -192,7 +193,8 @@ PUD Page Table Helpers
+---------------------------+--------------------------------------------------+
| pud_mkdevmap | Creates a ZONE_DEVICE mapped PUD |
+---------------------------+--------------------------------------------------+
| pud_mkinvalid | Invalidates a mapped PUD [1] |
| pud_mkinvalid | Invalidates a present PUD; do not call for |
| | non-present PUD [1] |
+---------------------------+--------------------------------------------------+
| pud_set_huge | Creates a PUD huge mapping |
+---------------------------+--------------------------------------------------+

View File

@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 6
PATCHLEVEL = 1
SUBLEVEL = 93
SUBLEVEL = 99
EXTRAVERSION =
NAME = Curry Ramen
@@ -1002,7 +1002,6 @@ endif
ifdef CONFIG_LTO_CLANG
ifdef CONFIG_LTO_CLANG_THIN
CC_FLAGS_LTO := -flto=thin -fsplit-lto-unit
KBUILD_LDFLAGS += --thinlto-cache-dir=$(extmod_prefix).thinlto-cache
else
CC_FLAGS_LTO := -flto
endif
@@ -1629,7 +1628,7 @@ endif # CONFIG_MODULES
# Directories & files removed with 'make clean'
CLEAN_FILES += include/ksym vmlinux.symvers modules-only.symvers \
modules.builtin modules.builtin.modinfo modules.nsdeps \
compile_commands.json .thinlto-cache rust/test rust/doc \
compile_commands.json rust/test rust/doc \
.vmlinux.objs .vmlinux.export.c
# Directories & files removed with 'make mrproper'
@@ -1925,7 +1924,7 @@ PHONY += compile_commands.json
clean-dirs := $(KBUILD_EXTMOD)
clean: rm-files := $(KBUILD_EXTMOD)/Module.symvers $(KBUILD_EXTMOD)/modules.nsdeps \
$(KBUILD_EXTMOD)/compile_commands.json $(KBUILD_EXTMOD)/.thinlto-cache
$(KBUILD_EXTMOD)/compile_commands.json
PHONY += prepare
# now expand this into a simple variable to reduce the cost of shell evaluations

View File

@@ -1262,6 +1262,7 @@
can_ethtool_op_get_ts_info_hwts
can_fd_dlc2len
can_fd_len2dlc
can_free_echo_skb
can_put_echo_skb
can_rx_offload_add_manual
can_rx_offload_del
@@ -1294,6 +1295,7 @@
timecounter_read
unregister_candev
__vmalloc
work_busy
# required by mhi.ko
get_random_u32

View File

@@ -84,7 +84,7 @@
&keypad {
samsung,keypad-num-rows = <2>;
samsung,keypad-num-columns = <8>;
linux,keypad-no-autorepeat;
linux,input-no-autorepeat;
wakeup-source;
pinctrl-names = "default";
pinctrl-0 = <&keypad_rows &keypad_cols>;

View File

@@ -448,7 +448,7 @@
&keypad {
samsung,keypad-num-rows = <3>;
samsung,keypad-num-columns = <2>;
linux,keypad-no-autorepeat;
linux,input-no-autorepeat;
wakeup-source;
pinctrl-0 = <&keypad_rows &keypad_cols>;
pinctrl-names = "default";

View File

@@ -65,7 +65,7 @@
&keypad {
samsung,keypad-num-rows = <3>;
samsung,keypad-num-columns = <8>;
linux,keypad-no-autorepeat;
linux,input-no-autorepeat;
wakeup-source;
pinctrl-0 = <&keypad_rows &keypad_cols>;
pinctrl-names = "default";

View File

@@ -123,6 +123,7 @@
pinctrl-0 = <&hdmii2c_xfer>, <&hdmi_hpd>;
power-domains = <&power RK3066_PD_VIO>;
rockchip,grf = <&grf>;
#sound-dai-cells = <0>;
status = "disabled";
ports {

View File

@@ -930,7 +930,7 @@
/* Verdin GPIO_9_DSI (pulled-up as active-low) */
pinctrl_gpio_9_dsi: gpio9dsigrp {
fsl,pins =
<MX8MM_IOMUXC_NAND_RE_B_GPIO3_IO15 0x146>; /* SODIMM 17 */
<MX8MM_IOMUXC_NAND_RE_B_GPIO3_IO15 0x1c6>; /* SODIMM 17 */
};
/* Verdin GPIO_10_DSI (pulled-up as active-low) */

View File

@@ -32,7 +32,7 @@
regulator-name = "SD1_SPWR";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
gpio = <&lsio_gpio4 19 GPIO_ACTIVE_HIGH>;
gpio = <&lsio_gpio4 7 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};

View File

@@ -60,7 +60,6 @@
vmmc-supply = <&reg_usdhc2_vmmc>;
bus-width = <4>;
status = "okay";
no-sdio;
no-mmc;
};

View File

@@ -58,7 +58,7 @@
gic: interrupt-controller@f1001000 {
compatible = "arm,gic-400";
reg = <0x0 0xf1001000 0x0 0x1000>, /* GICD */
<0x0 0xf1002000 0x0 0x100>; /* GICC */
<0x0 0xf1002000 0x0 0x2000>; /* GICC */
#address-cells = <0>;
#interrupt-cells = <3>;
interrupt-controller;

View File

@@ -9,8 +9,8 @@
compatible = "nvidia,norrin", "nvidia,tegra132", "nvidia,tegra124";
aliases {
rtc0 = "/i2c@7000d000/as3722@40";
rtc1 = "/rtc@7000e000";
rtc0 = &as3722;
rtc1 = &tegra_rtc;
serial0 = &uarta;
};

View File

@@ -579,7 +579,7 @@
status = "disabled";
};
rtc@7000e000 {
tegra_rtc: rtc@7000e000 {
compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc";
reg = <0x0 0x7000e000 0x0 0x100>;
interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;

View File

@@ -60,7 +60,7 @@
vddrf-supply = <&vreg_l1_1p3>;
vddch0-supply = <&vdd_ch0_3p3>;
local-bd-address = [ 02 00 00 00 5a ad ];
local-bd-address = [ 00 00 00 00 00 00 ];
max-speed = <3200000>;
};

View File

@@ -372,6 +372,16 @@
};
};
&pmm8155au_1_gpios {
pmm8155au_1_sdc2_cd: sdc2-cd-default-state {
pins = "gpio4";
function = "normal";
input-enable;
bias-pull-up;
power-source = <0>;
};
};
&qupv3_id_1 {
status = "okay";
};
@@ -389,10 +399,10 @@
&sdhc_2 {
status = "okay";
cd-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
cd-gpios = <&pmm8155au_1_gpios 4 GPIO_ACTIVE_LOW>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&sdc2_on>;
pinctrl-1 = <&sdc2_off>;
pinctrl-0 = <&sdc2_on &pmm8155au_1_sdc2_cd>;
pinctrl-1 = <&sdc2_off &pmm8155au_1_sdc2_cd>;
vqmmc-supply = <&vreg_l13c_2p96>; /* IO line power */
vmmc-supply = <&vreg_l17a_2p96>; /* Card power line */
bus-width = <4>;
@@ -488,120 +498,102 @@
&tlmm {
gpio-reserved-ranges = <0 4>;
sdc2_on: sdc2_on {
clk {
sdc2_on: sdc2-on-state {
clk-pins {
pins = "sdc2_clk";
bias-disable; /* No pull */
drive-strength = <16>; /* 16 MA */
};
cmd {
cmd-pins {
pins = "sdc2_cmd";
bias-pull-up; /* pull up */
drive-strength = <16>; /* 16 MA */
};
data {
data-pins {
pins = "sdc2_data";
bias-pull-up; /* pull up */
drive-strength = <16>; /* 16 MA */
};
sd-cd {
pins = "gpio96";
function = "gpio";
bias-pull-up; /* pull up */
drive-strength = <2>; /* 2 MA */
};
};
sdc2_off: sdc2_off {
clk {
sdc2_off: sdc2-off-state {
clk-pins {
pins = "sdc2_clk";
bias-disable; /* No pull */
drive-strength = <2>; /* 2 MA */
};
cmd {
cmd-pins {
pins = "sdc2_cmd";
bias-pull-up; /* pull up */
drive-strength = <2>; /* 2 MA */
};
data {
data-pins {
pins = "sdc2_data";
bias-pull-up; /* pull up */
drive-strength = <2>; /* 2 MA */
};
sd-cd {
pins = "gpio96";
function = "gpio";
bias-pull-up; /* pull up */
drive-strength = <2>; /* 2 MA */
};
};
usb2phy_ac_en1_default: usb2phy_ac_en1_default {
mux {
pins = "gpio113";
function = "usb2phy_ac";
bias-disable;
drive-strength = <2>;
};
usb2phy_ac_en1_default: usb2phy-ac-en1-default-state {
pins = "gpio113";
function = "usb2phy_ac";
bias-disable;
drive-strength = <2>;
};
usb2phy_ac_en2_default: usb2phy_ac_en2_default {
mux {
pins = "gpio123";
function = "usb2phy_ac";
bias-disable;
drive-strength = <2>;
};
usb2phy_ac_en2_default: usb2phy-ac-en2-default-state {
pins = "gpio123";
function = "usb2phy_ac";
bias-disable;
drive-strength = <2>;
};
ethernet_defaults: ethernet-defaults {
mdc {
ethernet_defaults: ethernet-defaults-state {
mdc-pins {
pins = "gpio7";
function = "rgmii";
bias-pull-up;
};
mdio {
mdio-pins {
pins = "gpio59";
function = "rgmii";
bias-pull-up;
};
rgmii-rx {
rgmii-rx-pins {
pins = "gpio117", "gpio118", "gpio119", "gpio120", "gpio115", "gpio116";
function = "rgmii";
bias-disable;
drive-strength = <2>;
};
rgmii-tx {
rgmii-tx-pins {
pins = "gpio122", "gpio4", "gpio5", "gpio6", "gpio114", "gpio121";
function = "rgmii";
bias-pull-up;
drive-strength = <16>;
};
phy-intr {
phy-intr-pins {
pins = "gpio124";
function = "emac_phy";
bias-disable;
drive-strength = <8>;
};
pps {
pps-pins {
pins = "gpio81";
function = "emac_pps";
bias-disable;
drive-strength = <8>;
};
phy-reset {
phy-reset-pins {
pins = "gpio79";
function = "gpio";
bias-pull-up;

View File

@@ -475,7 +475,7 @@
&tlmm {
gpio-reserved-ranges = <126 4>;
da7280_intr_default: da7280-intr-default {
da7280_intr_default: da7280-intr-default-state {
pins = "gpio42";
function = "gpio";
bias-pull-up;

View File

@@ -2284,422 +2284,302 @@
#interrupt-cells = <2>;
wakeup-parent = <&pdc>;
qup_i2c0_default: qup-i2c0-default {
mux {
pins = "gpio0", "gpio1";
function = "qup0";
};
config {
pins = "gpio0", "gpio1";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c0_default: qup-i2c0-default-state {
pins = "gpio0", "gpio1";
function = "qup0";
drive-strength = <0x02>;
bias-disable;
};
qup_spi0_default: qup-spi0-default {
qup_spi0_default: qup-spi0-default-state {
pins = "gpio0", "gpio1", "gpio2", "gpio3";
function = "qup0";
drive-strength = <6>;
bias-disable;
};
qup_i2c1_default: qup-i2c1-default {
mux {
pins = "gpio114", "gpio115";
function = "qup1";
};
config {
pins = "gpio114", "gpio115";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c1_default: qup-i2c1-default-state {
pins = "gpio114", "gpio115";
function = "qup1";
drive-strength = <2>;
bias-disable;
};
qup_spi1_default: qup-spi1-default {
qup_spi1_default: qup-spi1-default-state {
pins = "gpio114", "gpio115", "gpio116", "gpio117";
function = "qup1";
drive-strength = <6>;
bias-disable;
};
qup_i2c2_default: qup-i2c2-default {
mux {
pins = "gpio126", "gpio127";
function = "qup2";
};
config {
pins = "gpio126", "gpio127";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c2_default: qup-i2c2-default-state {
pins = "gpio126", "gpio127";
function = "qup2";
drive-strength = <2>;
bias-disable;
};
qup_spi2_default: qup-spi2-default {
qup_spi2_default: qup-spi2-default-state {
pins = "gpio126", "gpio127", "gpio128", "gpio129";
function = "qup2";
drive-strength = <6>;
bias-disable;
};
qup_i2c3_default: qup-i2c3-default {
mux {
pins = "gpio144", "gpio145";
function = "qup3";
};
config {
pins = "gpio144", "gpio145";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c3_default: qup-i2c3-default-state {
pins = "gpio144", "gpio145";
function = "qup3";
drive-strength = <2>;
bias-disable;
};
qup_spi3_default: qup-spi3-default {
qup_spi3_default: qup-spi3-default-state {
pins = "gpio144", "gpio145", "gpio146", "gpio147";
function = "qup3";
drive-strength = <6>;
bias-disable;
};
qup_i2c4_default: qup-i2c4-default {
mux {
pins = "gpio51", "gpio52";
function = "qup4";
};
config {
pins = "gpio51", "gpio52";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c4_default: qup-i2c4-default-state {
pins = "gpio51", "gpio52";
function = "qup4";
drive-strength = <2>;
bias-disable;
};
qup_spi4_default: qup-spi4-default {
qup_spi4_default: qup-spi4-default-state {
pins = "gpio51", "gpio52", "gpio53", "gpio54";
function = "qup4";
drive-strength = <6>;
bias-disable;
};
qup_i2c5_default: qup-i2c5-default {
mux {
pins = "gpio121", "gpio122";
function = "qup5";
};
config {
pins = "gpio121", "gpio122";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c5_default: qup-i2c5-default-state {
pins = "gpio121", "gpio122";
function = "qup5";
drive-strength = <2>;
bias-disable;
};
qup_spi5_default: qup-spi5-default {
qup_spi5_default: qup-spi5-default-state {
pins = "gpio119", "gpio120", "gpio121", "gpio122";
function = "qup5";
drive-strength = <6>;
bias-disable;
};
qup_i2c6_default: qup-i2c6-default {
mux {
pins = "gpio6", "gpio7";
function = "qup6";
};
config {
pins = "gpio6", "gpio7";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c6_default: qup-i2c6-default-state {
pins = "gpio6", "gpio7";
function = "qup6";
drive-strength = <2>;
bias-disable;
};
qup_spi6_default: qup-spi6_default {
qup_spi6_default: qup-spi6_default-state {
pins = "gpio4", "gpio5", "gpio6", "gpio7";
function = "qup6";
drive-strength = <6>;
bias-disable;
};
qup_i2c7_default: qup-i2c7-default {
mux {
pins = "gpio98", "gpio99";
function = "qup7";
};
config {
pins = "gpio98", "gpio99";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c7_default: qup-i2c7-default-state {
pins = "gpio98", "gpio99";
function = "qup7";
drive-strength = <2>;
bias-disable;
};
qup_spi7_default: qup-spi7_default {
qup_spi7_default: qup-spi7_default-state {
pins = "gpio98", "gpio99", "gpio100", "gpio101";
function = "qup7";
drive-strength = <6>;
bias-disable;
};
qup_i2c8_default: qup-i2c8-default {
mux {
pins = "gpio88", "gpio89";
function = "qup8";
};
config {
pins = "gpio88", "gpio89";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c8_default: qup-i2c8-default-state {
pins = "gpio88", "gpio89";
function = "qup8";
drive-strength = <2>;
bias-disable;
};
qup_spi8_default: qup-spi8-default {
qup_spi8_default: qup-spi8-default-state {
pins = "gpio88", "gpio89", "gpio90", "gpio91";
function = "qup8";
drive-strength = <6>;
bias-disable;
};
qup_i2c9_default: qup-i2c9-default {
mux {
pins = "gpio39", "gpio40";
function = "qup9";
};
config {
pins = "gpio39", "gpio40";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c9_default: qup-i2c9-default-state {
pins = "gpio39", "gpio40";
function = "qup9";
drive-strength = <2>;
bias-disable;
};
qup_spi9_default: qup-spi9-default {
qup_spi9_default: qup-spi9-default-state {
pins = "gpio39", "gpio40", "gpio41", "gpio42";
function = "qup9";
drive-strength = <6>;
bias-disable;
};
qup_i2c10_default: qup-i2c10-default {
mux {
pins = "gpio9", "gpio10";
function = "qup10";
};
config {
pins = "gpio9", "gpio10";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c10_default: qup-i2c10-default-state {
pins = "gpio9", "gpio10";
function = "qup10";
drive-strength = <2>;
bias-disable;
};
qup_spi10_default: qup-spi10-default {
qup_spi10_default: qup-spi10-default-state {
pins = "gpio9", "gpio10", "gpio11", "gpio12";
function = "qup10";
drive-strength = <6>;
bias-disable;
};
qup_i2c11_default: qup-i2c11-default {
mux {
pins = "gpio94", "gpio95";
function = "qup11";
};
config {
pins = "gpio94", "gpio95";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c11_default: qup-i2c11-default-state {
pins = "gpio94", "gpio95";
function = "qup11";
drive-strength = <2>;
bias-disable;
};
qup_spi11_default: qup-spi11-default {
qup_spi11_default: qup-spi11-default-state {
pins = "gpio92", "gpio93", "gpio94", "gpio95";
function = "qup11";
drive-strength = <6>;
bias-disable;
};
qup_i2c12_default: qup-i2c12-default {
mux {
pins = "gpio83", "gpio84";
function = "qup12";
};
config {
pins = "gpio83", "gpio84";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c12_default: qup-i2c12-default-state {
pins = "gpio83", "gpio84";
function = "qup12";
drive-strength = <2>;
bias-disable;
};
qup_spi12_default: qup-spi12-default {
qup_spi12_default: qup-spi12-default-state {
pins = "gpio83", "gpio84", "gpio85", "gpio86";
function = "qup12";
drive-strength = <6>;
bias-disable;
};
qup_i2c13_default: qup-i2c13-default {
mux {
pins = "gpio43", "gpio44";
function = "qup13";
};
config {
pins = "gpio43", "gpio44";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c13_default: qup-i2c13-default-state {
pins = "gpio43", "gpio44";
function = "qup13";
drive-strength = <2>;
bias-disable;
};
qup_spi13_default: qup-spi13-default {
qup_spi13_default: qup-spi13-default-state {
pins = "gpio43", "gpio44", "gpio45", "gpio46";
function = "qup13";
drive-strength = <6>;
bias-disable;
};
qup_i2c14_default: qup-i2c14-default {
mux {
pins = "gpio47", "gpio48";
function = "qup14";
};
config {
pins = "gpio47", "gpio48";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c14_default: qup-i2c14-default-state {
pins = "gpio47", "gpio48";
function = "qup14";
drive-strength = <2>;
bias-disable;
};
qup_spi14_default: qup-spi14-default {
qup_spi14_default: qup-spi14-default-state {
pins = "gpio47", "gpio48", "gpio49", "gpio50";
function = "qup14";
drive-strength = <6>;
bias-disable;
};
qup_i2c15_default: qup-i2c15-default {
mux {
pins = "gpio27", "gpio28";
function = "qup15";
};
config {
pins = "gpio27", "gpio28";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c15_default: qup-i2c15-default-state {
pins = "gpio27", "gpio28";
function = "qup15";
drive-strength = <2>;
bias-disable;
};
qup_spi15_default: qup-spi15-default {
qup_spi15_default: qup-spi15-default-state {
pins = "gpio27", "gpio28", "gpio29", "gpio30";
function = "qup15";
drive-strength = <6>;
bias-disable;
};
qup_i2c16_default: qup-i2c16-default {
mux {
pins = "gpio86", "gpio85";
function = "qup16";
};
config {
pins = "gpio86", "gpio85";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c16_default: qup-i2c16-default-state {
pins = "gpio86", "gpio85";
function = "qup16";
drive-strength = <2>;
bias-disable;
};
qup_spi16_default: qup-spi16-default {
qup_spi16_default: qup-spi16-default-state {
pins = "gpio83", "gpio84", "gpio85", "gpio86";
function = "qup16";
drive-strength = <6>;
bias-disable;
};
qup_i2c17_default: qup-i2c17-default {
mux {
pins = "gpio55", "gpio56";
function = "qup17";
};
config {
pins = "gpio55", "gpio56";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c17_default: qup-i2c17-default-state {
pins = "gpio55", "gpio56";
function = "qup17";
drive-strength = <2>;
bias-disable;
};
qup_spi17_default: qup-spi17-default {
qup_spi17_default: qup-spi17-default-state {
pins = "gpio55", "gpio56", "gpio57", "gpio58";
function = "qup17";
drive-strength = <6>;
bias-disable;
};
qup_i2c18_default: qup-i2c18-default {
mux {
pins = "gpio23", "gpio24";
function = "qup18";
};
config {
pins = "gpio23", "gpio24";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c18_default: qup-i2c18-default-state {
pins = "gpio23", "gpio24";
function = "qup18";
drive-strength = <2>;
bias-disable;
};
qup_spi18_default: qup-spi18-default {
qup_spi18_default: qup-spi18-default-state {
pins = "gpio23", "gpio24", "gpio25", "gpio26";
function = "qup18";
drive-strength = <6>;
bias-disable;
};
qup_i2c19_default: qup-i2c19-default {
mux {
pins = "gpio57", "gpio58";
function = "qup19";
};
config {
pins = "gpio57", "gpio58";
drive-strength = <0x02>;
bias-disable;
};
qup_i2c19_default: qup-i2c19-default-state {
pins = "gpio57", "gpio58";
function = "qup19";
drive-strength = <2>;
bias-disable;
};
qup_spi19_default: qup-spi19-default {
qup_spi19_default: qup-spi19-default-state {
pins = "gpio55", "gpio56", "gpio57", "gpio58";
function = "qup19";
drive-strength = <6>;
bias-disable;
};
pcie0_default_state: pcie0-default {
perst {
pcie0_default_state: pcie0-default-state {
perst-pins {
pins = "gpio35";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
clkreq {
clkreq-pins {
pins = "gpio36";
function = "pci_e0";
drive-strength = <2>;
bias-pull-up;
};
wake {
wake-pins {
pins = "gpio37";
function = "gpio";
drive-strength = <2>;
@@ -2707,22 +2587,22 @@
};
};
pcie1_default_state: pcie1-default {
perst {
pcie1_default_state: pcie1-default-state {
perst-pins {
pins = "gpio102";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
clkreq {
clkreq-pins {
pins = "gpio103";
function = "pci_e1";
drive-strength = <2>;
bias-pull-up;
};
wake {
wake-pins {
pins = "gpio104";
function = "gpio";
drive-strength = <2>;

View File

@@ -5,6 +5,8 @@
*/
/dts-v1/;
#include <dt-bindings/leds/common.h>
#include "rk3308.dtsi"
/ {
@@ -24,17 +26,21 @@
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&green_led_gio>, <&heartbeat_led_gpio>;
pinctrl-0 = <&green_led>, <&heartbeat_led>;
green-led {
color = <LED_COLOR_ID_GREEN>;
default-state = "on";
function = LED_FUNCTION_POWER;
gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
label = "rockpis:green:power";
linux,default-trigger = "default-on";
};
blue-led {
color = <LED_COLOR_ID_BLUE>;
default-state = "on";
function = LED_FUNCTION_HEARTBEAT;
gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
label = "rockpis:blue:user";
linux,default-trigger = "heartbeat";
@@ -127,10 +133,12 @@
};
&emmc {
bus-width = <4>;
cap-mmc-highspeed;
mmc-hs200-1_8v;
cap-sd-highspeed;
no-sdio;
non-removable;
pinctrl-names = "default";
pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>;
vmmc-supply = <&vcc_io>;
status = "okay";
};
@@ -153,11 +161,11 @@
pinctrl-0 = <&rtc_32k>;
leds {
green_led_gio: green-led-gpio {
green_led: green-led {
rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
};
heartbeat_led_gpio: heartbeat-led-gpio {
heartbeat_led: heartbeat-led {
rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
};
};

View File

@@ -186,8 +186,8 @@
rk805: pmic@18 {
compatible = "rockchip,rk805";
reg = <0x18>;
interrupt-parent = <&gpio2>;
interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
interrupt-parent = <&gpio0>;
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
#clock-cells = <1>;
clock-output-names = "xin32k", "rk805-clkout2";
gpio-controller;

View File

@@ -790,6 +790,7 @@
dma-names = "tx";
pinctrl-names = "default";
pinctrl-0 = <&spdif_tx>;
#sound-dai-cells = <0>;
status = "disabled";
};
@@ -801,6 +802,7 @@
clocks = <&cru SCLK_I2S_2CH>, <&cru HCLK_I2S_2CH>;
dmas = <&dmac_bus 6>, <&dmac_bus 7>;
dma-names = "tx", "rx";
#sound-dai-cells = <0>;
status = "disabled";
};
@@ -814,6 +816,7 @@
dma-names = "tx", "rx";
pinctrl-names = "default";
pinctrl-0 = <&i2s_8ch_bus>;
#sound-dai-cells = <0>;
status = "disabled";
};

View File

@@ -290,7 +290,7 @@
regulator-name = "vdd_gpu";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <900000>;
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1350000>;
regulator-init-microvolt = <900000>;
regulator-ramp-delay = <6001>;

View File

@@ -840,7 +840,7 @@ __SYSCALL(__NR_pselect6_time64, compat_sys_pselect6_time64)
#define __NR_ppoll_time64 414
__SYSCALL(__NR_ppoll_time64, compat_sys_ppoll_time64)
#define __NR_io_pgetevents_time64 416
__SYSCALL(__NR_io_pgetevents_time64, sys_io_pgetevents)
__SYSCALL(__NR_io_pgetevents_time64, compat_sys_io_pgetevents_time64)
#define __NR_recvmmsg_time64 417
__SYSCALL(__NR_recvmmsg_time64, compat_sys_recvmmsg_time64)
#define __NR_mq_timedsend_time64 418

View File

@@ -57,17 +57,15 @@ static void invoke_syscall(struct pt_regs *regs, unsigned int scno,
syscall_set_return_value(current, regs, 0, ret);
/*
* Ultimately, this value will get limited by KSTACK_OFFSET_MAX(),
* but not enough for arm64 stack utilization comfort. To keep
* reasonable stack head room, reduce the maximum offset to 9 bits.
* This value will get limited by KSTACK_OFFSET_MAX(), which is 10
* bits. The actual entropy will be further reduced by the compiler
* when applying stack alignment constraints: the AAPCS mandates a
* 16-byte aligned SP at function boundaries, which will remove the
* 4 low bits from any entropy chosen here.
*
* The actual entropy will be further reduced by the compiler when
* applying stack alignment constraints: the AAPCS mandates a
* 16-byte (i.e. 4-bit) aligned SP at function boundaries.
*
* The resulting 5 bits of entropy is seen in SP[8:4].
* The resulting 6 bits of entropy is seen in SP[9:4].
*/
choose_random_kstack_offset(get_random_u16() & 0x1FF);
choose_random_kstack_offset(get_random_u16());
}
static inline bool has_syscall_work(unsigned long flags)

View File

@@ -252,6 +252,7 @@ static int set_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg)
case PSR_AA32_MODE_SVC:
case PSR_AA32_MODE_ABT:
case PSR_AA32_MODE_UND:
case PSR_AA32_MODE_SYS:
if (!vcpu_el1_is_32bit(vcpu))
return -EINVAL;
break;
@@ -272,7 +273,7 @@ static int set_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg)
if (*vcpu_cpsr(vcpu) & PSR_MODE32_BIT) {
int i, nr_reg;
switch (*vcpu_cpsr(vcpu)) {
switch (*vcpu_cpsr(vcpu) & PSR_AA32_MODE_MASK) {
/*
* Either we are dealing with user mode, and only the
* first 15 registers (+ PC) must be narrowed to 32bit.

View File

@@ -50,9 +50,23 @@ bool kvm_condition_valid32(const struct kvm_vcpu *vcpu)
u32 cpsr_cond;
int cond;
/* Top two bits non-zero? Unconditional. */
if (kvm_vcpu_get_esr(vcpu) >> 30)
/*
* These are the exception classes that could fire with a
* conditional instruction.
*/
switch (kvm_vcpu_trap_get_class(vcpu)) {
case ESR_ELx_EC_CP15_32:
case ESR_ELx_EC_CP15_64:
case ESR_ELx_EC_CP14_MR:
case ESR_ELx_EC_CP14_LS:
case ESR_ELx_EC_FP_ASIMD:
case ESR_ELx_EC_CP10_ID:
case ESR_ELx_EC_CP14_64:
case ESR_ELx_EC_SVC32:
break;
default:
return true;
}
/* Is condition field valid? */
cond = kvm_vcpu_get_condition(vcpu);

View File

@@ -355,7 +355,7 @@ static void kvm_vgic_dist_destroy(struct kvm *kvm)
if (dist->vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) {
list_for_each_entry_safe(rdreg, next, &dist->rd_regions, list)
vgic_v3_free_redist_region(rdreg);
vgic_v3_free_redist_region(kvm, rdreg);
INIT_LIST_HEAD(&dist->rd_regions);
} else {
dist->vgic_cpu_base = VGIC_ADDR_UNDEF;

View File

@@ -942,8 +942,19 @@ free:
return ret;
}
void vgic_v3_free_redist_region(struct vgic_redist_region *rdreg)
void vgic_v3_free_redist_region(struct kvm *kvm, struct vgic_redist_region *rdreg)
{
struct kvm_vcpu *vcpu;
unsigned long c;
lockdep_assert_held(&kvm->arch.config_lock);
/* Garbage collect the region */
kvm_for_each_vcpu(c, vcpu, kvm) {
if (vcpu->arch.vgic_cpu.rdreg == rdreg)
vcpu->arch.vgic_cpu.rdreg = NULL;
}
list_del(&rdreg->list);
kfree(rdreg);
}
@@ -968,7 +979,7 @@ int vgic_v3_set_redist_base(struct kvm *kvm, u32 index, u64 addr, u32 count)
mutex_lock(&kvm->arch.config_lock);
rdreg = vgic_v3_rdist_region_from_index(kvm, index);
vgic_v3_free_redist_region(rdreg);
vgic_v3_free_redist_region(kvm, rdreg);
mutex_unlock(&kvm->arch.config_lock);
return ret;
}

View File

@@ -310,7 +310,7 @@ vgic_v3_rd_region_size(struct kvm *kvm, struct vgic_redist_region *rdreg)
struct vgic_redist_region *vgic_v3_rdist_region_from_index(struct kvm *kvm,
u32 index);
void vgic_v3_free_redist_region(struct vgic_redist_region *rdreg);
void vgic_v3_free_redist_region(struct kvm *kvm, struct vgic_redist_region *rdreg);
bool vgic_v3_rdist_overlap(struct kvm *kvm, gpa_t base, size_t size);

View File

@@ -6,6 +6,7 @@
#define __ARCH_WANT_SYS_CLONE3
#define __ARCH_WANT_SET_GET_RLIMIT
#define __ARCH_WANT_TIME32_SYSCALLS
#define __ARCH_WANT_SYNC_FILE_RANGE2
#include <asm-generic/unistd.h>
#define __NR_set_thread_area (__NR_arch_specific_syscall + 0)

View File

@@ -0,0 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0 */
#include <asm-generic/syscalls.h>
asmlinkage long sys_hexagon_fadvise64_64(int fd, int advice,
u32 a2, u32 a3, u32 a4, u32 a5);

View File

@@ -36,5 +36,6 @@
#define __ARCH_WANT_SYS_VFORK
#define __ARCH_WANT_SYS_FORK
#define __ARCH_WANT_TIME32_SYSCALLS
#define __ARCH_WANT_SYNC_FILE_RANGE2
#include <asm-generic/unistd.h>

View File

@@ -14,6 +14,13 @@
#undef __SYSCALL
#define __SYSCALL(nr, call) [nr] = (call),
SYSCALL_DEFINE6(hexagon_fadvise64_64, int, fd, int, advice,
SC_ARG64(offset), SC_ARG64(len))
{
return ksys_fadvise64_64(fd, SC_VAL64(loff_t, offset), SC_VAL64(loff_t, len), advice);
}
#define sys_fadvise64_64 sys_hexagon_fadvise64_64
void *sys_call_table[__NR_syscalls] = {
#include <asm/unistd.h>
};

View File

@@ -111,7 +111,8 @@ static void bcm6358_quirks(void)
* RAC flush causes kernel panics on BCM6358 when booting from TP1
* because the bootloader is not initializing it properly.
*/
bmips_rac_flush_disable = !!(read_c0_brcm_cmt_local() & (1 << 31));
bmips_rac_flush_disable = !!(read_c0_brcm_cmt_local() & (1 << 31)) ||
!!BMIPS_GET_CBR();
}
static void bcm6368_quirks(void)

View File

@@ -109,6 +109,8 @@
compatible = "brcm,bcm7038-twd", "simple-mfd", "syscon";
reg = <0x10000080 0x30>;
ranges = <0x0 0x10000080 0x30>;
#address-cells = <1>;
#size-cells = <1>;
wdt: watchdog@1c {
compatible = "brcm,bcm7038-wdt";

View File

@@ -354,7 +354,7 @@
412 n32 utimensat_time64 sys_utimensat
413 n32 pselect6_time64 compat_sys_pselect6_time64
414 n32 ppoll_time64 compat_sys_ppoll_time64
416 n32 io_pgetevents_time64 sys_io_pgetevents
416 n32 io_pgetevents_time64 compat_sys_io_pgetevents_time64
417 n32 recvmmsg_time64 compat_sys_recvmmsg_time64
418 n32 mq_timedsend_time64 sys_mq_timedsend
419 n32 mq_timedreceive_time64 sys_mq_timedreceive

View File

@@ -403,7 +403,7 @@
412 o32 utimensat_time64 sys_utimensat sys_utimensat
413 o32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64
414 o32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64
416 o32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents
416 o32 io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64
417 o32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64
418 o32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend
419 o32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive

View File

@@ -112,8 +112,8 @@ retry:
* gives them time to settle
*/
if (where == PCI_VENDOR_ID) {
if (ret == 0xffffffff || ret == 0x00000000 ||
ret == 0x0000ffff || ret == 0xffff0000) {
if (*val == 0xffffffff || *val == 0x00000000 ||
*val == 0x0000ffff || *val == 0xffff0000) {
if (delay > 4)
return 0;
delay *= 2;

6
arch/mips/pci/pcie-octeon.c Normal file → Executable file
View File

@@ -230,12 +230,18 @@ static inline uint64_t __cvmx_pcie_build_config_addr(int pcie_port, int bus,
{
union cvmx_pcie_address pcie_addr;
union cvmx_pciercx_cfg006 pciercx_cfg006;
union cvmx_pciercx_cfg032 pciercx_cfg032;
pciercx_cfg006.u32 =
cvmx_pcie_cfgx_read(pcie_port, CVMX_PCIERCX_CFG006(pcie_port));
if ((bus <= pciercx_cfg006.s.pbnum) && (dev != 0))
return 0;
pciercx_cfg032.u32 =
cvmx_pcie_cfgx_read(pcie_port, CVMX_PCIERCX_CFG032(pcie_port));
if ((pciercx_cfg032.s.dlla == 0) || (pciercx_cfg032.s.lt == 1))
return 0;
pcie_addr.u64 = 0;
pcie_addr.config.upper = 2;
pcie_addr.config.io = 1;

View File

@@ -14,6 +14,7 @@ config PARISC
select ARCH_HAS_UBSAN_SANITIZE_ALL
select ARCH_HAS_PTE_SPECIAL
select ARCH_NO_SG_CHAIN
select ARCH_SPLIT_ARG64 if !64BIT
select ARCH_SUPPORTS_HUGETLBFS if PA20
select ARCH_SUPPORTS_MEMORY_FAILURE
select ARCH_STACKWALK

View File

@@ -16,6 +16,7 @@
#define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
#ifndef __ASSEMBLY__

View File

@@ -4,23 +4,11 @@
#include <uapi/asm/signal.h>
#define _NSIG 64
/* bits-per-word, where word apparently means 'long' not 'int' */
#define _NSIG_BPW BITS_PER_LONG
#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
# ifndef __ASSEMBLY__
/* Most things should be clean enough to redefine this at will, if care
is taken to make libc match. */
typedef unsigned long old_sigset_t; /* at least 32 bits */
typedef struct {
/* next_signal() assumes this is a long - no choice */
unsigned long sig[_NSIG_WORDS];
} sigset_t;
#include <asm/sigcontext.h>
#endif /* !__ASSEMBLY */

View File

@@ -57,10 +57,20 @@
#include <asm-generic/signal-defs.h>
#define _NSIG 64
#define _NSIG_BPW (sizeof(unsigned long) * 8)
#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
# ifndef __ASSEMBLY__
# include <linux/types.h>
typedef unsigned long old_sigset_t; /* at least 32 bits */
typedef struct {
unsigned long sig[_NSIG_WORDS];
} sigset_t;
/* Avoid too many header ordering problems. */
struct siginfo;

View File

@@ -23,12 +23,3 @@ asmlinkage long sys32_unimplemented(int r26, int r25, int r24, int r23,
current->comm, current->pid, r20);
return -ENOSYS;
}
asmlinkage long sys32_fanotify_mark(compat_int_t fanotify_fd, compat_uint_t flags,
compat_uint_t mask0, compat_uint_t mask1, compat_int_t dfd,
const char __user * pathname)
{
return sys_fanotify_mark(fanotify_fd, flags,
((__u64)mask1 << 32) | mask0,
dfd, pathname);
}

View File

@@ -108,7 +108,7 @@
95 common fchown sys_fchown
96 common getpriority sys_getpriority
97 common setpriority sys_setpriority
98 common recv sys_recv
98 common recv sys_recv compat_sys_recv
99 common statfs sys_statfs compat_sys_statfs
100 common fstatfs sys_fstatfs compat_sys_fstatfs
101 common stat64 sys_stat64
@@ -135,7 +135,7 @@
120 common clone sys_clone_wrapper
121 common setdomainname sys_setdomainname
122 common sendfile sys_sendfile compat_sys_sendfile
123 common recvfrom sys_recvfrom
123 common recvfrom sys_recvfrom compat_sys_recvfrom
124 32 adjtimex sys_adjtimex_time32
124 64 adjtimex sys_adjtimex
125 common mprotect sys_mprotect
@@ -364,7 +364,7 @@
320 common accept4 sys_accept4
321 common prlimit64 sys_prlimit64
322 common fanotify_init sys_fanotify_init
323 common fanotify_mark sys_fanotify_mark sys32_fanotify_mark
323 common fanotify_mark sys_fanotify_mark compat_sys_fanotify_mark
324 32 clock_adjtime sys_clock_adjtime32
324 64 clock_adjtime sys_clock_adjtime
325 common name_to_handle_at sys_name_to_handle_at

View File

@@ -493,7 +493,7 @@ long plpar_hcall_norets_notrace(unsigned long opcode, ...);
* Used for all but the craziest of phyp interfaces (see plpar_hcall9)
*/
#define PLPAR_HCALL_BUFSIZE 4
long plpar_hcall(unsigned long opcode, unsigned long *retbuf, ...);
long plpar_hcall(unsigned long opcode, unsigned long retbuf[static PLPAR_HCALL_BUFSIZE], ...);
/**
* plpar_hcall_raw: - Make a hypervisor call without calculating hcall stats
@@ -507,7 +507,7 @@ long plpar_hcall(unsigned long opcode, unsigned long *retbuf, ...);
* plpar_hcall, but plpar_hcall_raw works in real mode and does not
* calculate hypervisor call statistics.
*/
long plpar_hcall_raw(unsigned long opcode, unsigned long *retbuf, ...);
long plpar_hcall_raw(unsigned long opcode, unsigned long retbuf[static PLPAR_HCALL_BUFSIZE], ...);
/**
* plpar_hcall9: - Make a pseries hypervisor call with up to 9 return arguments
@@ -518,8 +518,8 @@ long plpar_hcall_raw(unsigned long opcode, unsigned long *retbuf, ...);
* PLPAR_HCALL9_BUFSIZE to size the return argument buffer.
*/
#define PLPAR_HCALL9_BUFSIZE 9
long plpar_hcall9(unsigned long opcode, unsigned long *retbuf, ...);
long plpar_hcall9_raw(unsigned long opcode, unsigned long *retbuf, ...);
long plpar_hcall9(unsigned long opcode, unsigned long retbuf[static PLPAR_HCALL9_BUFSIZE], ...);
long plpar_hcall9_raw(unsigned long opcode, unsigned long retbuf[static PLPAR_HCALL9_BUFSIZE], ...);
/* pseries hcall tracing */
extern struct static_key hcall_tracepoint_key;

View File

@@ -355,6 +355,14 @@ static inline void interrupt_nmi_enter_prepare(struct pt_regs *regs, struct inte
if (IS_ENABLED(CONFIG_KASAN))
return;
/*
* Likewise, do not use it in real mode if percpu first chunk is not
* embedded. With CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK enabled there
* are chances where percpu allocation can come from vmalloc area.
*/
if (percpu_first_chunk_is_paged)
return;
/* Otherwise, it should be safe to call it */
nmi_enter();
}
@@ -370,6 +378,8 @@ static inline void interrupt_nmi_exit_prepare(struct pt_regs *regs, struct inter
// no nmi_exit for a pseries hash guest taking a real mode exception
} else if (IS_ENABLED(CONFIG_KASAN)) {
// no nmi_exit for KASAN in real mode
} else if (percpu_first_chunk_is_paged) {
// no nmi_exit if percpu first chunk is not embedded
} else {
nmi_exit();
}

View File

@@ -42,7 +42,7 @@ extern struct pci_dev *isa_bridge_pcidev;
* define properly based on the platform
*/
#ifndef CONFIG_PCI
#define _IO_BASE 0
#define _IO_BASE POISON_POINTER_DELTA
#define _ISA_MEM_BASE 0
#define PCI_DRAM_OFFSET 0
#elif defined(CONFIG_PPC32)
@@ -553,12 +553,12 @@ __do_out_asm(_rec_outl, "stwbrx")
#define __do_inw(port) _rec_inw(port)
#define __do_inl(port) _rec_inl(port)
#else /* CONFIG_PPC32 */
#define __do_outb(val, port) writeb(val,(PCI_IO_ADDR)_IO_BASE+port);
#define __do_outw(val, port) writew(val,(PCI_IO_ADDR)_IO_BASE+port);
#define __do_outl(val, port) writel(val,(PCI_IO_ADDR)_IO_BASE+port);
#define __do_inb(port) readb((PCI_IO_ADDR)_IO_BASE + port);
#define __do_inw(port) readw((PCI_IO_ADDR)_IO_BASE + port);
#define __do_inl(port) readl((PCI_IO_ADDR)_IO_BASE + port);
#define __do_outb(val, port) writeb(val,(PCI_IO_ADDR)(_IO_BASE+port));
#define __do_outw(val, port) writew(val,(PCI_IO_ADDR)(_IO_BASE+port));
#define __do_outl(val, port) writel(val,(PCI_IO_ADDR)(_IO_BASE+port));
#define __do_inb(port) readb((PCI_IO_ADDR)(_IO_BASE + port));
#define __do_inw(port) readw((PCI_IO_ADDR)(_IO_BASE + port));
#define __do_inl(port) readl((PCI_IO_ADDR)(_IO_BASE + port));
#endif /* !CONFIG_PPC32 */
#ifdef CONFIG_EEH
@@ -574,12 +574,12 @@ __do_out_asm(_rec_outl, "stwbrx")
#define __do_writesw(a, b, n) _outsw(PCI_FIX_ADDR(a),(b),(n))
#define __do_writesl(a, b, n) _outsl(PCI_FIX_ADDR(a),(b),(n))
#define __do_insb(p, b, n) readsb((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
#define __do_insw(p, b, n) readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
#define __do_insl(p, b, n) readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
#define __do_outsb(p, b, n) writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
#define __do_outsw(p, b, n) writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
#define __do_outsl(p, b, n) writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
#define __do_insb(p, b, n) readsb((PCI_IO_ADDR)(_IO_BASE+(p)), (b), (n))
#define __do_insw(p, b, n) readsw((PCI_IO_ADDR)(_IO_BASE+(p)), (b), (n))
#define __do_insl(p, b, n) readsl((PCI_IO_ADDR)(_IO_BASE+(p)), (b), (n))
#define __do_outsb(p, b, n) writesb((PCI_IO_ADDR)(_IO_BASE+(p)),(b),(n))
#define __do_outsw(p, b, n) writesw((PCI_IO_ADDR)(_IO_BASE+(p)),(b),(n))
#define __do_outsl(p, b, n) writesl((PCI_IO_ADDR)(_IO_BASE+(p)),(b),(n))
#define __do_memset_io(addr, c, n) \
_memset_io(PCI_FIX_ADDR(addr), c, n)

View File

@@ -15,6 +15,16 @@
#endif /* CONFIG_SMP */
#endif /* __powerpc64__ */
#if defined(CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK) && defined(CONFIG_SMP)
#include <linux/jump_label.h>
DECLARE_STATIC_KEY_FALSE(__percpu_first_chunk_is_paged);
#define percpu_first_chunk_is_paged \
(static_key_enabled(&__percpu_first_chunk_is_paged.key))
#else
#define percpu_first_chunk_is_paged false
#endif /* CONFIG_PPC64 && CONFIG_SMP */
#include <asm-generic/percpu.h>
#include <asm/paca.h>

View File

@@ -80,9 +80,20 @@ __pu_failed: \
: \
: label)
#ifdef CONFIG_CC_IS_CLANG
#define DS_FORM_CONSTRAINT "Z<>"
#else
#define DS_FORM_CONSTRAINT "YZ<>"
#endif
#ifdef __powerpc64__
#define __put_user_asm2_goto(x, ptr, label) \
__put_user_asm_goto(x, ptr, label, "std")
#define __put_user_asm2_goto(x, addr, label) \
asm goto ("1: std%U1%X1 %0,%1 # put_user\n" \
EX_TABLE(1b, %l2) \
: \
: "r" (x), DS_FORM_CONSTRAINT (*addr) \
: \
: label)
#else /* __powerpc64__ */
#define __put_user_asm2_goto(x, addr, label) \
asm goto( \

View File

@@ -834,6 +834,7 @@ static __init int pcpu_cpu_to_node(int cpu)
unsigned long __per_cpu_offset[NR_CPUS] __read_mostly;
EXPORT_SYMBOL(__per_cpu_offset);
DEFINE_STATIC_KEY_FALSE(__percpu_first_chunk_is_paged);
void __init setup_per_cpu_areas(void)
{
@@ -876,6 +877,7 @@ void __init setup_per_cpu_areas(void)
if (rc < 0)
panic("cannot initialize percpu area (err=%d)", rc);
static_key_enable(&__percpu_first_chunk_is_paged.key);
delta = (unsigned long)pcpu_base_addr - (unsigned long)__per_cpu_start;
for_each_possible_cpu(cpu) {
__per_cpu_offset[cpu] = delta + pcpu_unit_offsets[cpu];

View File

@@ -230,8 +230,10 @@
178 nospu rt_sigsuspend sys_rt_sigsuspend compat_sys_rt_sigsuspend
179 32 pread64 sys_ppc_pread64 compat_sys_ppc_pread64
179 64 pread64 sys_pread64
179 spu pread64 sys_pread64
180 32 pwrite64 sys_ppc_pwrite64 compat_sys_ppc_pwrite64
180 64 pwrite64 sys_pwrite64
180 spu pwrite64 sys_pwrite64
181 common chown sys_chown
182 common getcwd sys_getcwd
183 common capget sys_capget
@@ -246,6 +248,7 @@
190 common ugetrlimit sys_getrlimit compat_sys_getrlimit
191 32 readahead sys_ppc_readahead compat_sys_ppc_readahead
191 64 readahead sys_readahead
191 spu readahead sys_readahead
192 32 mmap2 sys_mmap2 compat_sys_mmap2
193 32 truncate64 sys_ppc_truncate64 compat_sys_ppc_truncate64
194 32 ftruncate64 sys_ppc_ftruncate64 compat_sys_ppc_ftruncate64
@@ -293,6 +296,7 @@
232 nospu set_tid_address sys_set_tid_address
233 32 fadvise64 sys_ppc32_fadvise64 compat_sys_ppc32_fadvise64
233 64 fadvise64 sys_fadvise64
233 spu fadvise64 sys_fadvise64
234 nospu exit_group sys_exit_group
235 nospu lookup_dcookie sys_lookup_dcookie compat_sys_lookup_dcookie
236 common epoll_create sys_epoll_create
@@ -502,7 +506,7 @@
412 32 utimensat_time64 sys_utimensat sys_utimensat
413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64
414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64
416 32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents
416 32 io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64
417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64
418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend
419 32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive

View File

@@ -26,6 +26,7 @@
#include <asm/paca.h>
#include <asm/mmu.h>
#include <asm/sections.h> /* _end */
#include <asm/setup.h>
#include <asm/smp.h>
#include <asm/hw_breakpoint.h>
#include <asm/svm.h>
@@ -316,6 +317,16 @@ void default_machine_kexec(struct kimage *image)
if (!kdump_in_progress())
kexec_prepare_cpus();
#ifdef CONFIG_PPC_PSERIES
/*
* This must be done after other CPUs have shut down, otherwise they
* could execute the 'scv' instruction, which is not supported with
* reloc disabled (see configure_exceptions()).
*/
if (firmware_has_feature(FW_FEATURE_SET_MODE))
pseries_disable_reloc_on_exc();
#endif
printk("kexec: Starting switchover sequence.\n");
/* switch to a staticly allocated stack. Based on irq stack code.

View File

@@ -124,6 +124,7 @@ pmd_t pmdp_invalidate(struct vm_area_struct *vma, unsigned long address,
{
unsigned long old_pmd;
VM_WARN_ON_ONCE(!pmd_present(*pmdp));
old_pmd = pmd_hugepage_update(vma->vm_mm, address, pmdp, _PAGE_PRESENT, _PAGE_INVALID);
flush_pmd_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
return __pmd(old_pmd);

View File

@@ -814,6 +814,15 @@ int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, struct codegen_context *
/* Get offset into TMP_REG */
EMIT(PPC_RAW_LI(tmp_reg, off));
/*
* Enforce full ordering for operations with BPF_FETCH by emitting a 'sync'
* before and after the operation.
*
* This is a requirement in the Linux Kernel Memory Model.
* See __cmpxchg_u32() in asm/cmpxchg.h as an example.
*/
if ((imm & BPF_FETCH) && IS_ENABLED(CONFIG_SMP))
EMIT(PPC_RAW_SYNC());
tmp_idx = ctx->idx * 4;
/* load value from memory into r0 */
EMIT(PPC_RAW_LWARX(_R0, tmp_reg, dst_reg, 0));
@@ -867,6 +876,9 @@ int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, struct codegen_context *
/* For the BPF_FETCH variant, get old data into src_reg */
if (imm & BPF_FETCH) {
/* Emit 'sync' to enforce full ordering */
if (IS_ENABLED(CONFIG_SMP))
EMIT(PPC_RAW_SYNC());
EMIT(PPC_RAW_MR(ret_reg, ax_reg));
if (!fp->aux->verifier_zext)
EMIT(PPC_RAW_LI(ret_reg - 1, 0)); /* higher 32-bit */

View File

@@ -784,6 +784,15 @@ emit_clear:
/* Get offset into TMP_REG_1 */
EMIT(PPC_RAW_LI(tmp1_reg, off));
/*
* Enforce full ordering for operations with BPF_FETCH by emitting a 'sync'
* before and after the operation.
*
* This is a requirement in the Linux Kernel Memory Model.
* See __cmpxchg_u64() in asm/cmpxchg.h as an example.
*/
if ((imm & BPF_FETCH) && IS_ENABLED(CONFIG_SMP))
EMIT(PPC_RAW_SYNC());
tmp_idx = ctx->idx * 4;
/* load value from memory into TMP_REG_2 */
if (size == BPF_DW)
@@ -846,6 +855,9 @@ emit_clear:
PPC_BCC_SHORT(COND_NE, tmp_idx);
if (imm & BPF_FETCH) {
/* Emit 'sync' to enforce full ordering */
if (IS_ENABLED(CONFIG_SMP))
EMIT(PPC_RAW_SYNC());
EMIT(PPC_RAW_MR(ret_reg, _R0));
/*
* Skip unnecessary zero-extension for 32-bit cmpxchg.

View File

@@ -61,11 +61,3 @@ void pseries_kexec_cpu_down(int crash_shutdown, int secondary)
} else
xics_kexec_teardown_cpu(secondary);
}
void pseries_machine_kexec(struct kimage *image)
{
if (firmware_has_feature(FW_FEATURE_SET_MODE))
pseries_disable_reloc_on_exc();
default_machine_kexec(image);
}

View File

@@ -38,7 +38,6 @@ static inline void smp_init_pseries(void) { }
#endif
extern void pseries_kexec_cpu_down(int crash_shutdown, int secondary);
void pseries_machine_kexec(struct kimage *image);
extern void pSeries_final_fixup(void);

View File

@@ -1149,7 +1149,6 @@ define_machine(pseries) {
.machine_check_exception = pSeries_machine_check_exception,
.machine_check_log_err = pSeries_machine_check_log_err,
#ifdef CONFIG_KEXEC_CORE
.machine_kexec = pseries_machine_kexec,
.kexec_cpu_down = pseries_kexec_cpu_down,
#endif
#ifdef CONFIG_MEMORY_HOTPLUG

View File

@@ -1354,7 +1354,7 @@ static int cpu_cmd(void)
}
termch = cpu;
if (!scanhex(&cpu)) {
if (!scanhex(&cpu) || cpu >= num_possible_cpus()) {
/* print cpus waiting or in xmon */
printf("cpus stopped:");
last_cpu = first_cpu = NR_CPUS;
@@ -2776,7 +2776,7 @@ static void dump_pacas(void)
termch = c; /* Put c back, it wasn't 'a' */
if (scanhex(&num))
if (scanhex(&num) && num < num_possible_cpus())
dump_one_paca(num);
else
dump_one_paca(xmon_owner);
@@ -2849,7 +2849,7 @@ static void dump_xives(void)
termch = c; /* Put c back, it wasn't 'a' */
if (scanhex(&num))
if (scanhex(&num) && num < num_possible_cpus())
dump_one_xive(num);
else
dump_one_xive(xmon_owner);

View File

@@ -147,20 +147,12 @@ static void machine_kexec_mask_interrupts(void)
for_each_irq_desc(i, desc) {
struct irq_chip *chip;
int ret;
chip = irq_desc_get_chip(desc);
if (!chip)
continue;
/*
* First try to remove the active state. If this
* fails, try to EOI the interrupt.
*/
ret = irq_set_irqchip_state(i, IRQCHIP_STATE_ACTIVE, false);
if (ret && irqd_irq_inprogress(&desc->irq_data) &&
chip->irq_eoi)
if (chip->irq_eoi && irqd_irq_inprogress(&desc->irq_data))
chip->irq_eoi(&desc->irq_data);
if (chip->irq_mask)

View File

@@ -246,30 +246,6 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
sigset_t *oldset = sigmask_to_save();
int ret;
/* Are we from a system call? */
if (regs->cause == EXC_SYSCALL) {
/* Avoid additional syscall restarting via ret_from_exception */
regs->cause = -1UL;
/* If so, check system call restarting.. */
switch (regs->a0) {
case -ERESTART_RESTARTBLOCK:
case -ERESTARTNOHAND:
regs->a0 = -EINTR;
break;
case -ERESTARTSYS:
if (!(ksig->ka.sa.sa_flags & SA_RESTART)) {
regs->a0 = -EINTR;
break;
}
fallthrough;
case -ERESTARTNOINTR:
regs->a0 = regs->orig_a0;
regs->epc -= 0x4;
break;
}
}
rseq_signal_deliver(ksig, regs);
/* Set up the stack frame */
@@ -283,34 +259,65 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
static void do_signal(struct pt_regs *regs)
{
unsigned long continue_addr = 0, restart_addr = 0;
int retval = 0;
struct ksignal ksig;
bool syscall = (regs->cause == EXC_SYSCALL);
/* If we were from a system call, check for system call restarting */
if (syscall) {
continue_addr = regs->epc;
restart_addr = continue_addr - 4;
retval = regs->a0;
/* Avoid additional syscall restarting via ret_from_exception */
regs->cause = -1UL;
/*
* Prepare for system call restart. We do this here so that a
* debugger will see the already changed PC.
*/
switch (retval) {
case -ERESTARTNOHAND:
case -ERESTARTSYS:
case -ERESTARTNOINTR:
case -ERESTART_RESTARTBLOCK:
regs->a0 = regs->orig_a0;
regs->epc = restart_addr;
break;
}
}
/*
* Get the signal to deliver. When running under ptrace, at this point
* the debugger may change all of our registers.
*/
if (get_signal(&ksig)) {
/*
* Depending on the signal settings, we may need to revert the
* decision to restart the system call, but skip this if a
* debugger has chosen to restart at a different PC.
*/
if (regs->epc == restart_addr &&
(retval == -ERESTARTNOHAND ||
retval == -ERESTART_RESTARTBLOCK ||
(retval == -ERESTARTSYS &&
!(ksig.ka.sa.sa_flags & SA_RESTART)))) {
regs->a0 = -EINTR;
regs->epc = continue_addr;
}
/* Actually deliver the signal */
handle_signal(&ksig, regs);
return;
}
/* Did we come from a system call? */
if (regs->cause == EXC_SYSCALL) {
/* Avoid additional syscall restarting via ret_from_exception */
regs->cause = -1UL;
/* Restart the system call - no handlers present */
switch (regs->a0) {
case -ERESTARTNOHAND:
case -ERESTARTSYS:
case -ERESTARTNOINTR:
regs->a0 = regs->orig_a0;
regs->epc -= 0x4;
break;
case -ERESTART_RESTARTBLOCK:
regs->a0 = regs->orig_a0;
regs->a7 = __NR_restart_syscall;
regs->epc -= 0x4;
break;
}
}
/*
* Handle restarting a different system call. As above, if a debugger
* has chosen to restart at a different PC, ignore the restart.
*/
if (syscall && regs->epc == restart_addr && retval == -ERESTART_RESTARTBLOCK)
regs->a7 = __NR_restart_syscall;
/*
* If there is no signal to deliver, we just put the saved

View File

@@ -156,7 +156,7 @@ unsigned long __get_wchan(struct task_struct *task)
return pc;
}
noinline void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
noinline noinstr void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
struct task_struct *task, struct pt_regs *regs)
{
walk_stackframe(task, regs, consume_entry, cookie);

View File

@@ -213,18 +213,19 @@ static void __init setup_bootmem(void)
if (!IS_ENABLED(CONFIG_XIP_KERNEL))
phys_ram_base = memblock_start_of_DRAM();
/*
* memblock allocator is not aware of the fact that last 4K bytes of
* the addressable memory can not be mapped because of IS_ERR_VALUE
* macro. Make sure that last 4k bytes are not usable by memblock
* if end of dram is equal to maximum addressable memory. For 64-bit
* kernel, this problem can't happen here as the end of the virtual
* address space is occupied by the kernel mapping then this check must
* be done as soon as the kernel mapping base address is determined.
* Reserve physical address space that would be mapped to virtual
* addresses greater than (void *)(-PAGE_SIZE) because:
* - This memory would overlap with ERR_PTR
* - This memory belongs to high memory, which is not supported
*
* This is not applicable to 64-bit kernel, because virtual addresses
* after (void *)(-PAGE_SIZE) are not linearly mapped: they are
* occupied by kernel mapping. Also it is unrealistic for high memory
* to exist on 64-bit platforms.
*/
if (!IS_ENABLED(CONFIG_64BIT)) {
max_mapped_addr = __pa(~(ulong)0);
if (max_mapped_addr == (phys_ram_end - 1))
memblock_set_current_limit(max_mapped_addr - 4096);
max_mapped_addr = __va_to_pa_nodebug(-PAGE_SIZE);
memblock_reserve(max_mapped_addr, (phys_addr_t)-max_mapped_addr);
}
min_low_pfn = PFN_UP(phys_ram_base);

View File

@@ -387,17 +387,33 @@ int set_direct_map_default_noflush(struct page *page)
}
#ifdef CONFIG_DEBUG_PAGEALLOC
static int debug_pagealloc_set_page(pte_t *pte, unsigned long addr, void *data)
{
int enable = *(int *)data;
unsigned long val = pte_val(ptep_get(pte));
if (enable)
val |= _PAGE_PRESENT;
else
val &= ~_PAGE_PRESENT;
set_pte(pte, __pte(val));
return 0;
}
void __kernel_map_pages(struct page *page, int numpages, int enable)
{
if (!debug_pagealloc_enabled())
return;
if (enable)
__set_memory((unsigned long)page_address(page), numpages,
__pgprot(_PAGE_PRESENT), __pgprot(0));
else
__set_memory((unsigned long)page_address(page), numpages,
__pgprot(0), __pgprot(_PAGE_PRESENT));
unsigned long start = (unsigned long)page_address(page);
unsigned long size = PAGE_SIZE * numpages;
apply_to_existing_page_range(&init_mm, start, size, debug_pagealloc_set_page, &enable);
flush_tlb_kernel_range(start, start + size);
}
#endif

View File

@@ -161,28 +161,86 @@
typedef struct { unsigned char bytes[16]; } cpacf_mask_t;
/**
* cpacf_query() - check if a specific CPACF function is available
* @opcode: the opcode of the crypto instruction
* @func: the function code to test for
*
* Executes the query function for the given crypto instruction @opcode
* and checks if @func is available
*
* Returns 1 if @func is available for @opcode, 0 otherwise
/*
* Prototype for a not existing function to produce a link
* error if __cpacf_query() or __cpacf_check_opcode() is used
* with an invalid compile time const opcode.
*/
static __always_inline void __cpacf_query(unsigned int opcode, cpacf_mask_t *mask)
void __cpacf_bad_opcode(void);
static __always_inline void __cpacf_query_rre(u32 opc, u8 r1, u8 r2,
cpacf_mask_t *mask)
{
asm volatile(
" lghi 0,0\n" /* query function */
" lgr 1,%[mask]\n"
" spm 0\n" /* pckmo doesn't change the cc */
/* Parameter regs are ignored, but must be nonzero and unique */
"0: .insn rrf,%[opc] << 16,2,4,6,0\n"
" brc 1,0b\n" /* handle partial completion */
: "=m" (*mask)
: [mask] "d" ((unsigned long)mask), [opc] "i" (opcode)
: "cc", "0", "1");
" la %%r1,%[mask]\n"
" xgr %%r0,%%r0\n"
" .insn rre,%[opc] << 16,%[r1],%[r2]\n"
: [mask] "=R" (*mask)
: [opc] "i" (opc),
[r1] "i" (r1), [r2] "i" (r2)
: "cc", "r0", "r1");
}
static __always_inline void __cpacf_query_rrf(u32 opc,
u8 r1, u8 r2, u8 r3, u8 m4,
cpacf_mask_t *mask)
{
asm volatile(
" la %%r1,%[mask]\n"
" xgr %%r0,%%r0\n"
" .insn rrf,%[opc] << 16,%[r1],%[r2],%[r3],%[m4]\n"
: [mask] "=R" (*mask)
: [opc] "i" (opc), [r1] "i" (r1), [r2] "i" (r2),
[r3] "i" (r3), [m4] "i" (m4)
: "cc", "r0", "r1");
}
static __always_inline void __cpacf_query(unsigned int opcode,
cpacf_mask_t *mask)
{
switch (opcode) {
case CPACF_KDSA:
__cpacf_query_rre(CPACF_KDSA, 0, 2, mask);
break;
case CPACF_KIMD:
__cpacf_query_rre(CPACF_KIMD, 0, 2, mask);
break;
case CPACF_KLMD:
__cpacf_query_rre(CPACF_KLMD, 0, 2, mask);
break;
case CPACF_KM:
__cpacf_query_rre(CPACF_KM, 2, 4, mask);
break;
case CPACF_KMA:
__cpacf_query_rrf(CPACF_KMA, 2, 4, 6, 0, mask);
break;
case CPACF_KMAC:
__cpacf_query_rre(CPACF_KMAC, 0, 2, mask);
break;
case CPACF_KMC:
__cpacf_query_rre(CPACF_KMC, 2, 4, mask);
break;
case CPACF_KMCTR:
__cpacf_query_rrf(CPACF_KMCTR, 2, 4, 6, 0, mask);
break;
case CPACF_KMF:
__cpacf_query_rre(CPACF_KMF, 2, 4, mask);
break;
case CPACF_KMO:
__cpacf_query_rre(CPACF_KMO, 2, 4, mask);
break;
case CPACF_PCC:
__cpacf_query_rre(CPACF_PCC, 0, 0, mask);
break;
case CPACF_PCKMO:
__cpacf_query_rre(CPACF_PCKMO, 0, 0, mask);
break;
case CPACF_PRNO:
__cpacf_query_rre(CPACF_PRNO, 2, 4, mask);
break;
default:
__cpacf_bad_opcode();
}
}
static __always_inline int __cpacf_check_opcode(unsigned int opcode)
@@ -206,10 +264,21 @@ static __always_inline int __cpacf_check_opcode(unsigned int opcode)
case CPACF_KMA:
return test_facility(146); /* check for MSA8 */
default:
BUG();
__cpacf_bad_opcode();
return 0;
}
}
/**
* cpacf_query() - check if a specific CPACF function is available
* @opcode: the opcode of the crypto instruction
* @func: the function code to test for
*
* Executes the query function for the given crypto instruction @opcode
* and checks if @func is available
*
* Returns 1 if @func is available for @opcode, 0 otherwise
*/
static __always_inline int cpacf_query(unsigned int opcode, cpacf_mask_t *mask)
{
if (__cpacf_check_opcode(opcode)) {

View File

@@ -55,7 +55,7 @@ static __always_inline void arch_exit_to_user_mode(void)
static inline void arch_exit_to_user_mode_prepare(struct pt_regs *regs,
unsigned long ti_work)
{
choose_random_kstack_offset(get_tod_clock_fast() & 0xff);
choose_random_kstack_offset(get_tod_clock_fast());
}
#define arch_exit_to_user_mode_prepare arch_exit_to_user_mode_prepare

View File

@@ -427,6 +427,7 @@ struct kvm_vcpu_stat {
u64 instruction_io_other;
u64 instruction_lpsw;
u64 instruction_lpswe;
u64 instruction_lpswey;
u64 instruction_pfmf;
u64 instruction_ptff;
u64 instruction_sck;

View File

@@ -1686,8 +1686,10 @@ static inline pmd_t pmdp_huge_clear_flush(struct vm_area_struct *vma,
static inline pmd_t pmdp_invalidate(struct vm_area_struct *vma,
unsigned long addr, pmd_t *pmdp)
{
pmd_t pmd = __pmd(pmd_val(*pmdp) | _SEGMENT_ENTRY_INVALID);
pmd_t pmd;
VM_WARN_ON_ONCE(!pmd_present(*pmdp));
pmd = __pmd(pmd_val(*pmdp) | _SEGMENT_ENTRY_INVALID);
return pmdp_xchg_direct(vma->vm_mm, addr, pmdp, pmd);
}

View File

@@ -418,7 +418,7 @@
412 32 utimensat_time64 - sys_utimensat
413 32 pselect6_time64 - compat_sys_pselect6_time64
414 32 ppoll_time64 - compat_sys_ppoll_time64
416 32 io_pgetevents_time64 - sys_io_pgetevents
416 32 io_pgetevents_time64 - compat_sys_io_pgetevents_time64
417 32 recvmmsg_time64 - compat_sys_recvmmsg_time64
418 32 mq_timedsend_time64 - sys_mq_timedsend
419 32 mq_timedreceive_time64 - sys_mq_timedreceive

View File

@@ -132,6 +132,7 @@ const struct _kvm_stats_desc kvm_vcpu_stats_desc[] = {
STATS_DESC_COUNTER(VCPU, instruction_io_other),
STATS_DESC_COUNTER(VCPU, instruction_lpsw),
STATS_DESC_COUNTER(VCPU, instruction_lpswe),
STATS_DESC_COUNTER(VCPU, instruction_lpswey),
STATS_DESC_COUNTER(VCPU, instruction_pfmf),
STATS_DESC_COUNTER(VCPU, instruction_ptff),
STATS_DESC_COUNTER(VCPU, instruction_sck),

View File

@@ -119,6 +119,21 @@ static inline u64 kvm_s390_get_base_disp_s(struct kvm_vcpu *vcpu, u8 *ar)
return (base2 ? vcpu->run->s.regs.gprs[base2] : 0) + disp2;
}
static inline u64 kvm_s390_get_base_disp_siy(struct kvm_vcpu *vcpu, u8 *ar)
{
u32 base1 = vcpu->arch.sie_block->ipb >> 28;
s64 disp1;
/* The displacement is a 20bit _SIGNED_ value */
disp1 = sign_extend64(((vcpu->arch.sie_block->ipb & 0x0fff0000) >> 16) +
((vcpu->arch.sie_block->ipb & 0xff00) << 4), 19);
if (ar)
*ar = base1;
return (base1 ? vcpu->run->s.regs.gprs[base1] : 0) + disp1;
}
static inline void kvm_s390_get_base_disp_sse(struct kvm_vcpu *vcpu,
u64 *address1, u64 *address2,
u8 *ar_b1, u8 *ar_b2)

View File

@@ -794,6 +794,36 @@ static int handle_lpswe(struct kvm_vcpu *vcpu)
return 0;
}
static int handle_lpswey(struct kvm_vcpu *vcpu)
{
psw_t new_psw;
u64 addr;
int rc;
u8 ar;
vcpu->stat.instruction_lpswey++;
if (!test_kvm_facility(vcpu->kvm, 193))
return kvm_s390_inject_program_int(vcpu, PGM_OPERATION);
if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE)
return kvm_s390_inject_program_int(vcpu, PGM_PRIVILEGED_OP);
addr = kvm_s390_get_base_disp_siy(vcpu, &ar);
if (addr & 7)
return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
rc = read_guest(vcpu, addr, ar, &new_psw, sizeof(new_psw));
if (rc)
return kvm_s390_inject_prog_cond(vcpu, rc);
vcpu->arch.sie_block->gpsw = new_psw;
if (!is_valid_psw(&vcpu->arch.sie_block->gpsw))
return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
return 0;
}
static int handle_stidp(struct kvm_vcpu *vcpu)
{
u64 stidp_data = vcpu->kvm->arch.model.cpuid;
@@ -1460,6 +1490,8 @@ int kvm_s390_handle_eb(struct kvm_vcpu *vcpu)
case 0x61:
case 0x62:
return handle_ri(vcpu);
case 0x71:
return handle_lpswey(vcpu);
default:
return -EOPNOTSUPP;
}

View File

@@ -410,7 +410,7 @@ static void __init cpu_enable_directed_irq(void *unused)
union zpci_sic_iib iib = {{0}};
union zpci_sic_iib ziib = {{0}};
iib.cdiib.dibv_addr = (u64) zpci_ibv[smp_processor_id()]->vector;
iib.cdiib.dibv_addr = virt_to_phys(zpci_ibv[smp_processor_id()]->vector);
zpci_set_irq_ctrl(SIC_IRQ_MODE_SET_CPU, 0, &iib);
zpci_set_irq_ctrl(SIC_IRQ_MODE_D_SINGLE, PCI_ISC, &ziib);

View File

@@ -59,3 +59,14 @@ asmlinkage int sys_fadvise64_64_wrapper(int fd, u32 offset0, u32 offset1,
(u64)len0 << 32 | len1, advice);
#endif
}
/*
* swap the arguments the way that libc wants them instead of
* moving flags ahead of the 64-bit nbytes argument
*/
SYSCALL_DEFINE6(sh_sync_file_range6, int, fd, SC_ARG64(offset),
SC_ARG64(nbytes), unsigned int, flags)
{
return ksys_sync_file_range(fd, SC_VAL64(loff_t, offset),
SC_VAL64(loff_t, nbytes), flags);
}

View File

@@ -321,7 +321,7 @@
311 common set_robust_list sys_set_robust_list
312 common get_robust_list sys_get_robust_list
313 common splice sys_splice
314 common sync_file_range sys_sync_file_range
314 common sync_file_range sys_sh_sync_file_range6
315 common tee sys_tee
316 common vmsplice sys_vmsplice
317 common move_pages sys_move_pages
@@ -395,6 +395,7 @@
385 common pkey_alloc sys_pkey_alloc
386 common pkey_free sys_pkey_free
387 common rseq sys_rseq
388 common sync_file_range2 sys_sync_file_range2
# room for arch specific syscalls
393 common semget sys_semget
394 common semctl sys_semctl

View File

@@ -47,7 +47,6 @@ void arch_send_call_function_ipi_mask(const struct cpumask *mask);
int hard_smp_processor_id(void);
#define raw_smp_processor_id() (current_thread_info()->cpu)
void smp_fill_in_cpu_possible_map(void);
void smp_fill_in_sib_core_maps(void);
void cpu_play_dead(void);
@@ -77,7 +76,6 @@ void __cpu_die(unsigned int cpu);
#define smp_fill_in_sib_core_maps() do { } while (0)
#define smp_fetch_global_regs() do { } while (0)
#define smp_fetch_global_pmu() do { } while (0)
#define smp_fill_in_cpu_possible_map() do { } while (0)
#define smp_init_cpu_poke() do { } while (0)
#define scheduler_poke() do { } while (0)

View File

@@ -10,16 +10,6 @@ typedef unsigned int tcflag_t;
typedef unsigned long tcflag_t;
#endif
#define NCC 8
struct termio {
unsigned short c_iflag; /* input mode flags */
unsigned short c_oflag; /* output mode flags */
unsigned short c_cflag; /* control mode flags */
unsigned short c_lflag; /* local mode flags */
unsigned char c_line; /* line discipline */
unsigned char c_cc[NCC]; /* control characters */
};
#define NCCS 17
struct termios {
tcflag_t c_iflag; /* input mode flags */

View File

@@ -40,5 +40,14 @@ struct winsize {
unsigned short ws_ypixel;
};
#define NCC 8
struct termio {
unsigned short c_iflag; /* input mode flags */
unsigned short c_oflag; /* output mode flags */
unsigned short c_cflag; /* control mode flags */
unsigned short c_lflag; /* local mode flags */
unsigned char c_line; /* line discipline */
unsigned char c_cc[NCC]; /* control characters */
};
#endif /* _UAPI_SPARC_TERMIOS_H */

View File

@@ -483,7 +483,9 @@ static void *record_one_cpu(struct device_node *dp, int cpuid, int arg)
ncpus_probed++;
#ifdef CONFIG_SMP
set_cpu_present(cpuid, true);
set_cpu_possible(cpuid, true);
if (num_possible_cpus() < nr_cpu_ids)
set_cpu_possible(cpuid, true);
#endif
return NULL;
}

View File

@@ -684,7 +684,6 @@ void __init setup_arch(char **cmdline_p)
paging_init();
init_sparc64_elf_hwcap();
smp_fill_in_cpu_possible_map();
/*
* Once the OF device tree and MDESC have been setup and nr_cpus has
* been parsed, we know the list of possible cpus. Therefore we can

View File

@@ -1204,20 +1204,6 @@ void __init smp_setup_processor_id(void)
xcall_deliver_impl = hypervisor_xcall_deliver;
}
void __init smp_fill_in_cpu_possible_map(void)
{
int possible_cpus = num_possible_cpus();
int i;
if (possible_cpus > nr_cpu_ids)
possible_cpus = nr_cpu_ids;
for (i = 0; i < possible_cpus; i++)
set_cpu_possible(i, true);
for (; i < NR_CPUS; i++)
set_cpu_possible(i, false);
}
void smp_fill_in_sib_core_maps(void)
{
unsigned int i;

View File

@@ -18,224 +18,3 @@ sys32_mmap2:
sethi %hi(sys_mmap), %g1
jmpl %g1 + %lo(sys_mmap), %g0
sllx %o5, 12, %o5
.align 32
.globl sys32_socketcall
sys32_socketcall: /* %o0=call, %o1=args */
cmp %o0, 1
bl,pn %xcc, do_einval
cmp %o0, 18
bg,pn %xcc, do_einval
sub %o0, 1, %o0
sllx %o0, 5, %o0
sethi %hi(__socketcall_table_begin), %g2
or %g2, %lo(__socketcall_table_begin), %g2
jmpl %g2 + %o0, %g0
nop
do_einval:
retl
mov -EINVAL, %o0
.align 32
__socketcall_table_begin:
/* Each entry is exactly 32 bytes. */
do_sys_socket: /* sys_socket(int, int, int) */
1: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_socket), %g1
2: ldswa [%o1 + 0x8] %asi, %o2
jmpl %g1 + %lo(sys_socket), %g0
3: ldswa [%o1 + 0x4] %asi, %o1
nop
nop
nop
do_sys_bind: /* sys_bind(int fd, struct sockaddr *, int) */
4: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_bind), %g1
5: ldswa [%o1 + 0x8] %asi, %o2
jmpl %g1 + %lo(sys_bind), %g0
6: lduwa [%o1 + 0x4] %asi, %o1
nop
nop
nop
do_sys_connect: /* sys_connect(int, struct sockaddr *, int) */
7: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_connect), %g1
8: ldswa [%o1 + 0x8] %asi, %o2
jmpl %g1 + %lo(sys_connect), %g0
9: lduwa [%o1 + 0x4] %asi, %o1
nop
nop
nop
do_sys_listen: /* sys_listen(int, int) */
10: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_listen), %g1
jmpl %g1 + %lo(sys_listen), %g0
11: ldswa [%o1 + 0x4] %asi, %o1
nop
nop
nop
nop
do_sys_accept: /* sys_accept(int, struct sockaddr *, int *) */
12: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_accept), %g1
13: lduwa [%o1 + 0x8] %asi, %o2
jmpl %g1 + %lo(sys_accept), %g0
14: lduwa [%o1 + 0x4] %asi, %o1
nop
nop
nop
do_sys_getsockname: /* sys_getsockname(int, struct sockaddr *, int *) */
15: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_getsockname), %g1
16: lduwa [%o1 + 0x8] %asi, %o2
jmpl %g1 + %lo(sys_getsockname), %g0
17: lduwa [%o1 + 0x4] %asi, %o1
nop
nop
nop
do_sys_getpeername: /* sys_getpeername(int, struct sockaddr *, int *) */
18: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_getpeername), %g1
19: lduwa [%o1 + 0x8] %asi, %o2
jmpl %g1 + %lo(sys_getpeername), %g0
20: lduwa [%o1 + 0x4] %asi, %o1
nop
nop
nop
do_sys_socketpair: /* sys_socketpair(int, int, int, int *) */
21: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_socketpair), %g1
22: ldswa [%o1 + 0x8] %asi, %o2
23: lduwa [%o1 + 0xc] %asi, %o3
jmpl %g1 + %lo(sys_socketpair), %g0
24: ldswa [%o1 + 0x4] %asi, %o1
nop
nop
do_sys_send: /* sys_send(int, void *, size_t, unsigned int) */
25: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_send), %g1
26: lduwa [%o1 + 0x8] %asi, %o2
27: lduwa [%o1 + 0xc] %asi, %o3
jmpl %g1 + %lo(sys_send), %g0
28: lduwa [%o1 + 0x4] %asi, %o1
nop
nop
do_sys_recv: /* sys_recv(int, void *, size_t, unsigned int) */
29: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_recv), %g1
30: lduwa [%o1 + 0x8] %asi, %o2
31: lduwa [%o1 + 0xc] %asi, %o3
jmpl %g1 + %lo(sys_recv), %g0
32: lduwa [%o1 + 0x4] %asi, %o1
nop
nop
do_sys_sendto: /* sys_sendto(int, u32, compat_size_t, unsigned int, u32, int) */
33: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_sendto), %g1
34: lduwa [%o1 + 0x8] %asi, %o2
35: lduwa [%o1 + 0xc] %asi, %o3
36: lduwa [%o1 + 0x10] %asi, %o4
37: ldswa [%o1 + 0x14] %asi, %o5
jmpl %g1 + %lo(sys_sendto), %g0
38: lduwa [%o1 + 0x4] %asi, %o1
do_sys_recvfrom: /* sys_recvfrom(int, u32, compat_size_t, unsigned int, u32, u32) */
39: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_recvfrom), %g1
40: lduwa [%o1 + 0x8] %asi, %o2
41: lduwa [%o1 + 0xc] %asi, %o3
42: lduwa [%o1 + 0x10] %asi, %o4
43: lduwa [%o1 + 0x14] %asi, %o5
jmpl %g1 + %lo(sys_recvfrom), %g0
44: lduwa [%o1 + 0x4] %asi, %o1
do_sys_shutdown: /* sys_shutdown(int, int) */
45: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_shutdown), %g1
jmpl %g1 + %lo(sys_shutdown), %g0
46: ldswa [%o1 + 0x4] %asi, %o1
nop
nop
nop
nop
do_sys_setsockopt: /* sys_setsockopt(int, int, int, char *, int) */
47: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_setsockopt), %g1
48: ldswa [%o1 + 0x8] %asi, %o2
49: lduwa [%o1 + 0xc] %asi, %o3
50: ldswa [%o1 + 0x10] %asi, %o4
jmpl %g1 + %lo(sys_setsockopt), %g0
51: ldswa [%o1 + 0x4] %asi, %o1
nop
do_sys_getsockopt: /* sys_getsockopt(int, int, int, u32, u32) */
52: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_getsockopt), %g1
53: ldswa [%o1 + 0x8] %asi, %o2
54: lduwa [%o1 + 0xc] %asi, %o3
55: lduwa [%o1 + 0x10] %asi, %o4
jmpl %g1 + %lo(sys_getsockopt), %g0
56: ldswa [%o1 + 0x4] %asi, %o1
nop
do_sys_sendmsg: /* compat_sys_sendmsg(int, struct compat_msghdr *, unsigned int) */
57: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(compat_sys_sendmsg), %g1
58: lduwa [%o1 + 0x8] %asi, %o2
jmpl %g1 + %lo(compat_sys_sendmsg), %g0
59: lduwa [%o1 + 0x4] %asi, %o1
nop
nop
nop
do_sys_recvmsg: /* compat_sys_recvmsg(int, struct compat_msghdr *, unsigned int) */
60: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(compat_sys_recvmsg), %g1
61: lduwa [%o1 + 0x8] %asi, %o2
jmpl %g1 + %lo(compat_sys_recvmsg), %g0
62: lduwa [%o1 + 0x4] %asi, %o1
nop
nop
nop
do_sys_accept4: /* sys_accept4(int, struct sockaddr *, int *, int) */
63: ldswa [%o1 + 0x0] %asi, %o0
sethi %hi(sys_accept4), %g1
64: lduwa [%o1 + 0x8] %asi, %o2
65: ldswa [%o1 + 0xc] %asi, %o3
jmpl %g1 + %lo(sys_accept4), %g0
66: lduwa [%o1 + 0x4] %asi, %o1
nop
nop
.section __ex_table,"a"
.align 4
.word 1b, __retl_efault, 2b, __retl_efault
.word 3b, __retl_efault, 4b, __retl_efault
.word 5b, __retl_efault, 6b, __retl_efault
.word 7b, __retl_efault, 8b, __retl_efault
.word 9b, __retl_efault, 10b, __retl_efault
.word 11b, __retl_efault, 12b, __retl_efault
.word 13b, __retl_efault, 14b, __retl_efault
.word 15b, __retl_efault, 16b, __retl_efault
.word 17b, __retl_efault, 18b, __retl_efault
.word 19b, __retl_efault, 20b, __retl_efault
.word 21b, __retl_efault, 22b, __retl_efault
.word 23b, __retl_efault, 24b, __retl_efault
.word 25b, __retl_efault, 26b, __retl_efault
.word 27b, __retl_efault, 28b, __retl_efault
.word 29b, __retl_efault, 30b, __retl_efault
.word 31b, __retl_efault, 32b, __retl_efault
.word 33b, __retl_efault, 34b, __retl_efault
.word 35b, __retl_efault, 36b, __retl_efault
.word 37b, __retl_efault, 38b, __retl_efault
.word 39b, __retl_efault, 40b, __retl_efault
.word 41b, __retl_efault, 42b, __retl_efault
.word 43b, __retl_efault, 44b, __retl_efault
.word 45b, __retl_efault, 46b, __retl_efault
.word 47b, __retl_efault, 48b, __retl_efault
.word 49b, __retl_efault, 50b, __retl_efault
.word 51b, __retl_efault, 52b, __retl_efault
.word 53b, __retl_efault, 54b, __retl_efault
.word 55b, __retl_efault, 56b, __retl_efault
.word 57b, __retl_efault, 58b, __retl_efault
.word 59b, __retl_efault, 60b, __retl_efault
.word 61b, __retl_efault, 62b, __retl_efault
.word 63b, __retl_efault, 64b, __retl_efault
.word 65b, __retl_efault, 66b, __retl_efault
.previous

View File

@@ -117,7 +117,7 @@
90 common dup2 sys_dup2
91 32 setfsuid32 sys_setfsuid
92 common fcntl sys_fcntl compat_sys_fcntl
93 common select sys_select
93 common select sys_select compat_sys_select
94 32 setfsgid32 sys_setfsgid
95 common fsync sys_fsync
96 common setpriority sys_setpriority
@@ -155,7 +155,7 @@
123 32 fchown sys_fchown16
123 64 fchown sys_fchown
124 common fchmod sys_fchmod
125 common recvfrom sys_recvfrom
125 common recvfrom sys_recvfrom compat_sys_recvfrom
126 32 setreuid sys_setreuid16
126 64 setreuid sys_setreuid
127 32 setregid sys_setregid16
@@ -247,7 +247,7 @@
204 32 readdir sys_old_readdir compat_sys_old_readdir
204 64 readdir sys_nis_syscall
205 common readahead sys_readahead compat_sys_readahead
206 common socketcall sys_socketcall sys32_socketcall
206 common socketcall sys_socketcall compat_sys_socketcall
207 common syslog sys_syslog
208 common lookup_dcookie sys_lookup_dcookie compat_sys_lookup_dcookie
209 common fadvise64 sys_fadvise64 compat_sys_fadvise64
@@ -461,7 +461,7 @@
412 32 utimensat_time64 sys_utimensat sys_utimensat
413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64
414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64
416 32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents
416 32 io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64
417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64
418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend
419 32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive

View File

@@ -245,6 +245,7 @@ pmd_t pmdp_invalidate(struct vm_area_struct *vma, unsigned long address,
{
pmd_t old, entry;
VM_WARN_ON_ONCE(!pmd_present(*pmdp));
entry = __pmd(pmd_val(*pmdp) & ~_PAGE_VALID);
old = pmdp_establish(vma, address, pmdp, entry);
flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE);

View File

@@ -115,9 +115,9 @@ vmlinux-objs-$(CONFIG_INTEL_TDX_GUEST) += $(obj)/tdx.o $(obj)/tdcall.o
vmlinux-objs-$(CONFIG_EFI) += $(obj)/efi.o
vmlinux-objs-$(CONFIG_EFI_MIXED) += $(obj)/efi_mixed.o
vmlinux-objs-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a
vmlinux-libs-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a
$(obj)/vmlinux: $(vmlinux-objs-y) FORCE
$(obj)/vmlinux: $(vmlinux-objs-y) $(vmlinux-libs-y) FORCE
$(call if_changed,ld)
OBJCOPYFLAGS_vmlinux.bin := -R .comment -S

View File

@@ -420,7 +420,7 @@
412 i386 utimensat_time64 sys_utimensat
413 i386 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64
414 i386 ppoll_time64 sys_ppoll compat_sys_ppoll_time64
416 i386 io_pgetevents_time64 sys_io_pgetevents
416 i386 io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64
417 i386 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64
418 i386 mq_timedsend_time64 sys_mq_timedsend
419 i386 mq_timedreceive_time64 sys_mq_timedreceive

View File

@@ -2,6 +2,39 @@
#ifndef _ASM_X86_CPU_DEVICE_ID
#define _ASM_X86_CPU_DEVICE_ID
/*
* Can't use <linux/bitfield.h> because it generates expressions that
* cannot be used in structure initializers. Bitfield construction
* here must match the union in struct cpuinfo_86:
* union {
* struct {
* __u8 x86_model;
* __u8 x86;
* __u8 x86_vendor;
* __u8 x86_reserved;
* };
* __u32 x86_vfm;
* };
*/
#define VFM_MODEL_BIT 0
#define VFM_FAMILY_BIT 8
#define VFM_VENDOR_BIT 16
#define VFM_RSVD_BIT 24
#define VFM_MODEL_MASK GENMASK(VFM_FAMILY_BIT - 1, VFM_MODEL_BIT)
#define VFM_FAMILY_MASK GENMASK(VFM_VENDOR_BIT - 1, VFM_FAMILY_BIT)
#define VFM_VENDOR_MASK GENMASK(VFM_RSVD_BIT - 1, VFM_VENDOR_BIT)
#define VFM_MODEL(vfm) (((vfm) & VFM_MODEL_MASK) >> VFM_MODEL_BIT)
#define VFM_FAMILY(vfm) (((vfm) & VFM_FAMILY_MASK) >> VFM_FAMILY_BIT)
#define VFM_VENDOR(vfm) (((vfm) & VFM_VENDOR_MASK) >> VFM_VENDOR_BIT)
#define VFM_MAKE(_vendor, _family, _model) ( \
((_model) << VFM_MODEL_BIT) | \
((_family) << VFM_FAMILY_BIT) | \
((_vendor) << VFM_VENDOR_BIT) \
)
/*
* Declare drivers belonging to specific x86 CPUs
* Similar in spirit to pci_device_id and related PCI functions
@@ -20,6 +53,9 @@
#define X86_CENTAUR_FAM6_C7_D 0xd
#define X86_CENTAUR_FAM6_NANO 0xf
/* x86_cpu_id::flags */
#define X86_CPU_ID_FLAG_ENTRY_VALID BIT(0)
#define X86_STEPPINGS(mins, maxs) GENMASK(maxs, mins)
/**
* X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE - Base macro for CPU matching
@@ -46,6 +82,18 @@
.model = _model, \
.steppings = _steppings, \
.feature = _feature, \
.flags = X86_CPU_ID_FLAG_ENTRY_VALID, \
.driver_data = (unsigned long) _data \
}
#define X86_MATCH_VENDORID_FAM_MODEL_STEPPINGS_FEATURE(_vendor, _family, _model, \
_steppings, _feature, _data) { \
.vendor = _vendor, \
.family = _family, \
.model = _model, \
.steppings = _steppings, \
.feature = _feature, \
.flags = X86_CPU_ID_FLAG_ENTRY_VALID, \
.driver_data = (unsigned long) _data \
}
@@ -164,6 +212,56 @@
X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE(INTEL, 6, INTEL_FAM6_##model, \
steppings, X86_FEATURE_ANY, data)
/**
* X86_MATCH_VFM - Match encoded vendor/family/model
* @vfm: Encoded 8-bits each for vendor, family, model
* @data: Driver specific data or NULL. The internal storage
* format is unsigned long. The supplied value, pointer
* etc. is cast to unsigned long internally.
*
* Stepping and feature are set to wildcards
*/
#define X86_MATCH_VFM(vfm, data) \
X86_MATCH_VENDORID_FAM_MODEL_STEPPINGS_FEATURE( \
VFM_VENDOR(vfm), \
VFM_FAMILY(vfm), \
VFM_MODEL(vfm), \
X86_STEPPING_ANY, X86_FEATURE_ANY, data)
/**
* X86_MATCH_VFM_STEPPINGS - Match encoded vendor/family/model/stepping
* @vfm: Encoded 8-bits each for vendor, family, model
* @steppings: Bitmask of steppings to match
* @data: Driver specific data or NULL. The internal storage
* format is unsigned long. The supplied value, pointer
* etc. is cast to unsigned long internally.
*
* feature is set to wildcard
*/
#define X86_MATCH_VFM_STEPPINGS(vfm, steppings, data) \
X86_MATCH_VENDORID_FAM_MODEL_STEPPINGS_FEATURE( \
VFM_VENDOR(vfm), \
VFM_FAMILY(vfm), \
VFM_MODEL(vfm), \
steppings, X86_FEATURE_ANY, data)
/**
* X86_MATCH_VFM_FEATURE - Match encoded vendor/family/model/feature
* @vfm: Encoded 8-bits each for vendor, family, model
* @feature: A X86_FEATURE bit
* @data: Driver specific data or NULL. The internal storage
* format is unsigned long. The supplied value, pointer
* etc. is cast to unsigned long internally.
*
* Steppings is set to wildcard
*/
#define X86_MATCH_VFM_FEATURE(vfm, feature, data) \
X86_MATCH_VENDORID_FAM_MODEL_STEPPINGS_FEATURE( \
VFM_VENDOR(vfm), \
VFM_FAMILY(vfm), \
VFM_MODEL(vfm), \
X86_STEPPING_ANY, feature, data)
/*
* Match specific microcode revisions.
*

View File

@@ -416,6 +416,17 @@ static inline void efi_fake_memmap_early(void)
}
#endif
extern int __init efi_memmap_alloc(unsigned int num_entries,
struct efi_memory_map_data *data);
extern void __efi_memmap_free(u64 phys, unsigned long size,
unsigned long flags);
extern int __init efi_memmap_install(struct efi_memory_map_data *data);
extern int __init efi_memmap_split_count(efi_memory_desc_t *md,
struct range *range);
extern void __init efi_memmap_insert(struct efi_memory_map *old_memmap,
void *buf, struct efi_mem_range *mem);
#define arch_ima_efi_boot_mode \
({ extern struct boot_params boot_params; boot_params.secure_boot; })

View File

@@ -73,19 +73,16 @@ static inline void arch_exit_to_user_mode_prepare(struct pt_regs *regs,
#endif
/*
* Ultimately, this value will get limited by KSTACK_OFFSET_MAX(),
* but not enough for x86 stack utilization comfort. To keep
* reasonable stack head room, reduce the maximum offset to 8 bits.
*
* The actual entropy will be further reduced by the compiler when
* applying stack alignment constraints (see cc_stack_align4/8 in
* This value will get limited by KSTACK_OFFSET_MAX(), which is 10
* bits. The actual entropy will be further reduced by the compiler
* when applying stack alignment constraints (see cc_stack_align4/8 in
* arch/x86/Makefile), which will remove the 3 (x86_64) or 2 (ia32)
* low bits from any entropy chosen here.
*
* Therefore, final stack offset entropy will be 5 (x86_64) or
* 6 (ia32) bits.
* Therefore, final stack offset entropy will be 7 (x86_64) or
* 8 (ia32) bits.
*/
choose_random_kstack_offset(rdtsc() & 0xFF);
choose_random_kstack_offset(rdtsc());
}
#define arch_exit_to_user_mode_prepare arch_exit_to_user_mode_prepare

View File

@@ -195,7 +195,14 @@ out:
int amd_smn_read(u16 node, u32 address, u32 *value)
{
return __amd_smn_rw(node, address, value, false);
int err = __amd_smn_rw(node, address, value, false);
if (PCI_POSSIBLE_ERROR(*value)) {
err = -ENODEV;
*value = 0;
}
return err;
}
EXPORT_SYMBOL_GPL(amd_smn_read);

View File

@@ -39,9 +39,7 @@ const struct x86_cpu_id *x86_match_cpu(const struct x86_cpu_id *match)
const struct x86_cpu_id *m;
struct cpuinfo_x86 *c = &boot_cpu_data;
for (m = match;
m->vendor | m->family | m->model | m->steppings | m->feature;
m++) {
for (m = match; m->flags & X86_CPU_ID_FLAG_ENTRY_VALID; m++) {
if (m->vendor != X86_VENDOR_ANY && c->x86_vendor != m->vendor)
continue;
if (m->family != X86_FAMILY_ANY && c->x86 != m->family)

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