Merge tag 'android12-5.10.223_r00' into android12-5.10
This merges up to the 5.10.222 LTS release into the android12-5.10 branch. Included in here are the following commits: *c6acc5f079
Revert "scsi: core: Fix a use-after-free" *dc67fccdbe
ANDROID: properly backport filelock fix in 5.10.223 *72f4574b8d
Revert "ext4: Send notifications on error" *306e16d49c
Revert "net: mac802154: Fix racy device stats updates by DEV_STATS_INC() and DEV_STATS_ADD()" *8c417688f0
Merge 5.10.223 into android12-5.10-lts |\ | *b15dc4170c
Linux 5.10.223 | *7431144b40
tap: add missing verification for short frame | *6100e02372
tun: add missing verification for short frame | *911cc83e56
filelock: Fix fcntl/close race recovery compat path | *7fa9d1d252
ALSA: pcm_dmaengine: Don't synchronize DMA channel when DMA is paused | *ddf0caf012
arm64: dts: qcom: msm8996: Disable SS instance in Parkmode for USB | *a7ec8a5a7f
ALSA: hda/realtek: Fix the speaker output on Samsung Galaxy Book Pro 360 | *74c6b151a8
ALSA: hda/realtek: Enable headset mic on Positivo SU C1400 | *6386f1b6a1
jfs: don't walk off the end of ealist | *77495e5da5
ocfs2: add bounds checking to ocfs2_check_dir_entry() | *6e03006548
net: relax socket state check at accept time. | *a5224e2123
drm/amdgpu: Fix signedness bug in sdma_v4_0_process_trap_irq() | *9760c6ceb2
ext4: Send notifications on error | *88e44424a6
ext4: fix error code saved on super block during file system abort | *5ce8fad941
scsi: core: Fix a use-after-free | *c0809c128d
bpf, skmsg: Fix NULL pointer dereference in sk_psock_skb_ingress_enqueue | *be35504b95
bpf: Fix overrunning reservations in ringbuf | *9e2b0a5e25
ACPI: processor_idle: Fix invalid comparison with insertion sort for latency | *c85e6b7d9e
ARM: 9324/1: fix get_user() broken with veneer | *727ed4810c
spi: mux: set ctlr->bits_per_word_mask | *34f8efd274
hfsplus: fix uninit-value in copy_name | *f236af7561
selftests/vDSO: fix clang build errors and warnings | *38c2028bb3
spi: imx: Don't expect DMA for i.MX{25,35,50,51,53} cspi devices | *f65bffb464
fs: better handle deep ancestor chains in is_subdir() | *ddeda6ca5f
Bluetooth: hci_core: cancel all works upon hci_unregister_dev() | *739d8d0082
scsi: libsas: Fix exp-attached device scan after probe failure scanned in again after probe failed | *033c51dfdb
powerpc/eeh: avoid possible crash when edev->pdev changes | *6b16098148
powerpc/pseries: Whitelist dtl slub object for copying to userspace | *d1e4e94cb8
net: mac802154: Fix racy device stats updates by DEV_STATS_INC() and DEV_STATS_ADD() | *909f4c2fc9
net: usb: qmi_wwan: add Telit FN912 compositions | *8acf8801f3
ALSA: dmaengine_pcm: terminate dmaengine before synchronize | *2a28531dd0
ALSA: hda/relatek: Enable Mute LED on HP Laptop 15-gw0xxx | *94818bdb00
btrfs: qgroup: fix quota root leak after quota disable failure | *2e51db7ab7
s390/sclp: Fix sclp_init() cleanup on failure | *71db8dc6f8
can: kvaser_usb: fix return value for hif_usb_send_regout | *6e90cd1696
ASoC: ti: omap-hdmi: Fix too long driver name | *96414bf037
ASoC: ti: davinci-mcasp: Set min period size using FIFO config | *072f6348c5
ALSA: dmaengine: Synchronize dma channel after drop() | *73bb3e0194
bytcr_rt5640 : inverse jack detect for Archos 101 cesium | *a87d15d1a3
Input: i8042 - add Ayaneo Kun to i8042 quirk table | *9b32a13486
Input: elantech - fix touchpad state on resume for Lenovo N24 | *cf704e7d04
mips: fix compat_sys_lseek syscall | *134b12f0c5
ALSA: hda/realtek: Add more codec ID to no shutup pins list | *4cdf6926f4
KVM: PPC: Book3S HV: Prevent UAF in kvm_spapr_tce_attach_iommu_group() | *6295bad58f
wifi: cfg80211: wext: add extra SIOCSIWSCAN data check | *9774641b25
mei: demote client disconnect warning on suspend to debug | *229bce543b
fs/file: fix the check in find_next_fd() | *ffe47bf986
kconfig: remove wrong expr_trans_bool() | *4beba24085
kconfig: gconf: give a proper initial state to the Save button | *9625afe1dd
null_blk: fix validation of block size | *9934cda0e7
arm64: armv8_deprecated: Fix warning in isndep cpuhp starting process | *a0cafb7b0b
ila: block BH in ila_output() | *34eb7ab9af
net: ipv6: rpl_iptunnel: block BH in rpl_output() and rpl_input() | *fe855e5b16
Input: silead - Always support 10 fingers | *42e60f3bde
selftests/openat2: Fix build warnings on ppc64 | *bb8ace6794
wifi: mac80211: fix UBSAN noise in ieee80211_prep_hw_scan() | *60cf36f290
wifi: mac80211: mesh: init nonpeer_pm to active by default in mesh sdata | *6df01b7eab
ACPI: EC: Avoid returning AE_OK on errors in address space handler | *fd57dbffd9
ACPI: EC: Abort address space access upon error | *cd9472c43f
scsi: qedf: Set qed_slowpath_params to zero before use | *5661b9c7ec
filelock: Remove locks reliably when fcntl/close race is detected | *2e272e7d71
gcc-plugins: Rename last_stmt() for GCC 14+ * |b7647fb740
Merge branch 'android12-5.10' into branch 'android12-5.10-lts' * |875057880e
Merge 5.10.222 into android12-5.10-lts |\| | *83a48a4503
Linux 5.10.222 | *f52913e5d6
i2c: rcar: fix error code in probe() | *2907dd5855
i2c: rcar: clear NO_RXDMA flag after resetting | *41f62c95e0
i2c: rcar: ensure Gen3+ reset does not disturb local targets | *88046f94cc
i2c: rcar: introduce Gen4 devices | *a720e2e42f
i2c: rcar: reset controller is mandatory for Gen3+ | *b4c11a53e1
i2c: rcar: Add R-Car Gen4 support | *785290cb16
i2c: mark HostNotify target address as used | *8d99f26b55
i2c: rcar: bring hardware to known state when probing | *a9a466a69b
nilfs2: fix kernel bug on rename operation of broken directory | *ca42be8dd1
bpf: Allow reads from uninit stack | *9df3b2474a
ipv6: prevent NULL dereference in ip6_output() | *5edef79864
ipv6: annotate data-races around cnf.disable_ipv6 | *96c58b0966
efi: ia64: move IA64-only declarations to new asm/efi.h header | *596dedc6fa
x86/retpoline: Move a NOENDBR annotation to the SRSO dummy return thunk | *b6d942365d
wireguard: send: annotate intentional data race in checking empty queue | *0bdb5a7444
wireguard: queueing: annotate intentional data race in cpu round robin | *ae630de24e
wireguard: allowedips: avoid unaligned 64-bit memory accesses | *34b76d1922
libceph: fix race between delayed_work() and ceph_monc_stop() | *f70b51a365
ALSA: hda/realtek: Limit mic boost on VAIO PRO PX | *4d62aa6247
ALSA: hda/realtek: Enable Mute LED on HP 250 G7 | *7810928842
nvmem: meson-efuse: Fix return value of nvmem callbacks | *bdb9c58e80
hpet: Support 32-bit userspace | *d09dd21bb5
USB: core: Fix duplicate endpoint bug by clearing reserved bits in the descriptor | *e8474a10c5
usb: gadget: configfs: Prevent OOB read/write in usb_string_copy() | *10ae6b364b
USB: Add USB_QUIRK_NO_SET_INTF quirk for START BP-850k | *932a86a711
USB: serial: mos7840: fix crash on resume | *868bc44086
USB: serial: option: add Rolling RW350-GL variants | *2dc6aad6ea
USB: serial: option: add Netprisma LCUK54 series modules | *fb9ff51396
USB: serial: option: add support for Foxconn T99W651 | *c9e1030198
USB: serial: option: add Fibocom FM350-GL | *9fb7367423
USB: serial: option: add Telit FN912 rmnet compositions | *8e4e917f9d
USB: serial: option: add Telit generic core-dump composition | *26b4d6802e
net: ks8851: Fix potential TX stall after interface reopen | *5d7e64d70a
tcp: avoid too many retransmit packets | *24b9fafe34
tcp: use signed arithmetic in tcp_rtx_probe0_timed_out() | *b4e9f8905d
octeontx2-af: fix detection of IP layer | *7e0297c80f
ARM: davinci: Convert comma to semicolon | *148d549425
s390: Mark psw in __load_psw_mask() as __unitialized | *b81a523d54
net/sched: Fix UAF when resolving a clash | *9f965684c5
udp: Set SOCK_RCU_FREE earlier in udp_lib_get_port(). | *c184be30b1
ethtool: netlink: do not return SQI value if link is down | *3ba12c2afd
ppp: reject claimed-as-LCP but actually malformed packets | *22b16618a8
net: ethernet: lantiq_etop: fix double free in detach | *b4ac93b041
net: lantiq_etop: add blank line after declaration | *efc05a5fdc
octeontx2-af: Fix incorrect value output on error path in rvu_check_rsrc_availability() | *893e140dcc
tcp: fix incorrect undo caused by DSACK of TLP retransmit | *1b95de9433
vfs: don't mod negative dentry count when on shrinker list | *7092f1e582
fs/dcache: Re-use value stored to dentry->d_flags instead of re-reading | *7d4c14f4b5
filelock: fix potential use-after-free in posix_lock_inode | *0100aeb8a1
mm: prevent derefencing NULL ptr in pfn_section_valid() | *1e99ce37e9
nilfs2: fix incorrect inode allocation from reserved inodes | *3affee779b
kbuild: fix short log for AS in link-vmlinux.sh | *2f3c22b1d3
nvmet: fix a possible leak when destroy a ctrl during qp establishment | *1fa5c6eef4
platform/x86: touchscreen_dmi: Add info for the EZpad 6s Pro | *8802d23350
platform/x86: touchscreen_dmi: Add info for GlobalSpace SolT IVW 11.6" tablet | *560eaa1af0
nvme: adjust multiples of NVME_CTRL_PAGE_SIZE in offset | *2d428a07e8
nvme-multipath: find NUMA path only for online numa-node | *97982c3106
ALSA: hda/realtek: Enable headset mic of JP-IK LEAP W502 with ALC897 | *2849a1b747
i2c: pnx: Fix potential deadlock warning from del_timer_sync() call in isr | *2032e5dfae
media: dw2102: fix a potential buffer overflow | *a6176a802c
ima: Avoid blocking in RCU read-side critical section | *37c59198bc
bpf, sockmap: Fix sk->sk_forward_alloc warn_on in sk_stream_kill_queues | *8b17cec338
bnx2x: Fix multiple UBSAN array-index-out-of-bounds | *55d6a97cf0
mtd: rawnand: Bypass a couple of sanity checks during NAND identification | *fac2544b8c
drm/amdgpu/atomfirmware: silence UBSAN warning | *274cba8d2d
drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes | *145faa3d03
Revert "mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again" | *c9f715f1b4
fsnotify: Do not generate events for O_PATH file descriptors | *9528e95d6e
can: kvaser_usb: Explicitly initialize family in leafimx driver_info struct | *215a26c240
Bluetooth: qca: Fix BT enable failure again for QCA6390 after warm reboot | *7a49389771
mm: avoid overflows in dirty throttling logic | *f033241a7c
mm: optimize the redundant loop of mm_update_owner_next() | *2f2fa9cf7c
nilfs2: add missing check for inode numbers on directory entries | *731011ac6c
nilfs2: fix inode number range checks | *7ef519c8ef
inet_diag: Initialize pad field in struct inet_diag_req_v2 | *3908637dce
selftests: make order checking verbose in msg_zerocopy selftest | *1782a42ca2
selftests: fix OOM in msg_zerocopy selftest | *707c85ba35
bonding: Fix out-of-bounds read in bond_option_arp_ip_targets_set() | *df76fb67ea
wifi: wilc1000: fix ies_len type in connect path | *cdffc35871
tcp_metrics: validate source addr length | *febed740a3
UPSTREAM: tcp: fix DSACK undo in fast recovery to call tcp_try_to_open() | *93c034c431
s390/pkey: Wipe sensitive data on failure | *6d6d94287f
jffs2: Fix potential illegal address access in jffs2_free_inode | *b694989bb1
bpf: Avoid uninitialized value in BPF_CORE_READ_BITFIELD | *6b84e9d53b
powerpc/xmon: Check cpu id in commands "c#", "dp#" and "dx#" | *9d046f697e
kunit: Fix timeout message | *1617249e24
orangefs: fix out-of-bounds fsid access | *19cd1d96d6
powerpc/64: Set _IO_BASE to POISON_POINTER_DELTA not 0 for CONFIG_PCI=n | *158bcaa2e3
i2c: i801: Annotate apanel_addr as __ro_after_init | *e1ba226187
media: dvb-frontends: tda10048: Fix integer overflow | *7d2fbd822d
media: s2255: Use refcount_t instead of atomic_t for num_channels | *39e7a27813
media: dvb-frontends: tda18271c2dd: Remove casting during div | *2a2fe25a10
net: dsa: mv88e6xxx: Correct check for empty list | *8eac1cc159
Input: ff-core - prefer struct_size over open coded arithmetic | *402825a23a
firmware: dmi: Stop decoding on broken entry | *5a18ea7d86
sctp: prefer struct_size over open coded arithmetic | *4dcce63a6f
media: dw2102: Don't translate i2c read into write | *ffa7bd3ca9
drm/amd/display: Skip finding free audio for unknown engine_id | *b2e9abc955
drm/amd/display: Check pipe offset before setting vblank | *b5b8837d06
drm/amd/display: Check index msg_id before read or write | *f0645c99c2
drm/amdgpu: Initialize timestamp for some legacy SOCs | *9db8c299a5
crypto: aead,cipher - zeroize key buffer after use | *5ceb40cdee
scsi: qedf: Make qedf_execute_tmf() non-preemptible | *62349fbf86
IB/core: Implement a limit on UMAD receive List | *167afd3fed
media: dvb-usb: dib0700_devices: Add missing release_firmware() | *82ef3fa640
media: dvb: as102-fe: Fix as10x_register_addr packing | *25d0d9b83d
drm/lima: fix shared irq handling on driver remove | *94ffdde326
Compiler Attributes: Add __uninitialized macro * |a297eae7e6
ANDROID: fix build error in ksz9477.c * |2ebd481b31
Merge 5.10.221 into android12-5.10-lts |\| | *6ab8b697d7
Linux 5.10.221 | *ec3adc2af0
tracing/net_sched: NULL pointer dereference in perf_trace_qdisc_reset() | *0a95f0f6d6
serial: 8250_omap: Fix Errata i2310 with RX FIFO level check | *1bd2dc7702
xdp: xdp_mem_allocator can be NULL in trace_mem_connect(). | *4686892f61
arm64: dts: rockchip: Add sound-dai-cells for RK3368 | *e9918954e3
ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node | *b63d015b7a
KVM: arm64: vgic-v4: Make the doorbell request robust w.r.t preemption | *91efb15b5a
efi/x86: Free EFI memory map only when installing a new one. | *e5d730882d
efi: xen: Set EFI_PARAVIRT for Xen dom0 boot on all architectures | *31e0721aea
efi: memmap: Move manipulation routines into x86 arch tree | *52dc463a76
efi: Correct comment on efi_memmap_alloc | *d204beedc8
drivers: fix typo in firmware/efi/memmap.c | *3b32f26580
tcp: Fix data races around icsk->icsk_af_ops. | *ea2ed3f78a
ipv6: Fix data races around sk->sk_prot. | *d3bf338e9c
ipv6: annotate some data-races around sk->sk_prot | *ed07b26c54
nfs: Leave pages in the pagecache if readpage failed | *2e6bbfa1ab
pwm: stm32: Refuse too small period requests | *2c43adf364
mtd: spinand: macronix: Add support for serial NAND flash | *d5f75f0199
syscalls: fix compat_sys_io_pgetevents_time64 usage | *84bf6b64a1
ftruncate: pass a signed offset | *010de9acbe
ata: libata-core: Fix double free on error | *be5016ae5a
ata: ahci: Clean up sysfs file on error | *692858d9ed
batman-adv: Don't accept TT entries for out-of-spec VIDs | *56fc4d3b0b
drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_modes | *f771b91f21
drm/i915/gt: Fix potential UAF by revoke of fence registers | *259549b2cc
drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes | *9ec84770e4
hexagon: fix fadvise64_64 calling conventions | *6906335529
csky, hexagon: fix broken sys_sync_file_range | *bf4a43c533
kbuild: Install dtb files as 0644 in Makefile.dtbinst | *f6c839e717
net: can: j1939: enhanced error handling for tightly received RTS messages in xtp_rx_rts_session_new | *3f177e46c9
net: can: j1939: recover socket queue on CAN bus error during BAM transmission | *a2a0ebff7f
net: can: j1939: Initialize unused data in j1939_send_one() | *44add57b5b
tty: mcf: MCF54418 has 10 UARTS | *cb87930066
serial: 8250_omap: Implementation of Errata i2310 | *75ddbf776d
usb: atm: cxacru: fix endpoint checking in cxacru_bind() | *621e90201c
usb: musb: da8xx: fix a resource leak in probe() | *2798fc1560
usb: gadget: printer: fix races against disable | *84ca47192f
usb: gadget: printer: SS+ support | *ee88636607
net: usb: ax88179_178a: improve link status logs | *59a84bcf1c
iio: chemical: bme680: Fix sensor data read operation | *c326551e99
iio: chemical: bme680: Fix overflows in compensate() functions | *3d78fc351b
iio: chemical: bme680: Fix calibration data variable | *44f04b1a88
iio: chemical: bme680: Fix pressure value output | *28f6d0b5ff
iio: adc: ad7266: Fix variable checking bug | *78ece307f8
counter: ti-eqep: enable clock at probe | *76da476a4c
mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro() | *803835fda3
mmc: sdhci: Do not invert write-protect twice | *5048a44a25
mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos | *a68b896aa5
ocfs2: fix DIO failure due to insufficient transaction credits | *49c09ca35a
x86: stop playing stack games in profile_pc() | *38ce307939
gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1) | *e44a83bf15
gpio: davinci: Validate the obtained number of IRQs | *98eae65cb5
drm/panel: simple: Add missing display timing flags for KOE TX26D202VM0BWA | *cb4e7a8f39
nvme: fixup comment for nvme RDMA Provider Type | *1a7a494184
drm/radeon/radeon_display: Decrease the size of allocated memory | *a45c45767b
soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message | *e47d3babaa
media: dvbdev: Initialize sbuf | *d23982ea9a
ALSA: emux: improve patch ioctl data validation | *763896ab62
net/dpaa2: Avoid explicit cpumask var allocation on stack | *9dadab0db7
net/iucv: Avoid explicit cpumask var allocation on stack | *3d6432f20f
bpf: Add a check for struct bpf_fib_lookup size | *37f646c604
mtd: partitions: redboot: Added conversion of operands to a larger type | *cae52f61fd
drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep | *5d43d789b5
netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers | *4e6367fe32
parisc: use correct compat recv/recvfrom syscalls | *7620738513
sparc: fix compat recv/recvfrom syscalls | *2a700b8de5
sparc: fix old compat_sys_select() | *1095b8efbb
xdp: Remove WARN() from __xdp_reg_mem_model() | *5a3035306a
xdp: Allow registering memory model without rxq reference | *f4aa8268d7
xdp: Move the rxq_info.mem clearing to unreg_mem_model() | *0427f74a79
net: phy: micrel: add Microchip KSZ 9477 to the device table | *65a9383389
net: dsa: microchip: fix initial port flush problem | *3662eb2170
ASoC: fsl-asoc-card: set priv->pdev before using it | *229e145a81
nfsd: hold a lighter-weight client reference over CB_RECALL_ANY | *a4f3907ab5
SUNRPC: Fix svcxdr_init_encode's buflen calculation | *f1ef3dc758
SUNRPC: Fix svcxdr_init_decode's end-of-buffer calculation | *be20af2458
SUNRPC: Fix a NULL pointer deref in trace_svc_stats_latency() | *3de81c1e84
SUNRPC: Fix null pointer dereference in svc_rqst_free() | *310dee7235
netfilter: nf_tables: validate family when identifying table via handle | *d8a04a6bfa
drm/amdgpu: fix UBSAN warning in kv_dpm.c | *52af94393d
pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set | *6531f8c666
pinctrl: rockchip: use dedicated pinctrl type for RK3328 | *926cb583b9
pinctrl/rockchip: separate struct rockchip_pin_bank to a head file | *cfa2527ac8
pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins | *6ff152b2be
pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins | *b813e3fd10
pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER | *b6be2b025c
Input: ili210x - fix ili251x_read_touch_data() return value | *f0ef5ca85f
ACPI: x86: Force StorageD3Enable on more products | *3f830c2484
ACPI: x86: utils: Add Picasso to the list for forcing StorageD3Enable | *bb1758cc4a
ACPI: x86: utils: Add Cezanne to the list for forcing StorageD3Enable | *c2a6ab506f
ACPI: x86: Add another system to quirk list for forcing StorageD3Enable | *fe73b1d080
ACPI: x86: Add a quirk for Dell Inspiron 14 2-in-1 for StorageD3Enable | *83f6522210
ACPI: Add quirks for AMD Renoir/Lucienne CPUs to force the D3 hint | *b055752675
smb: client: fix deadlock in smb2_find_smb_tcon() | *78ebec450e
cifs: missed ref-counting smb session in find | *b03555a8fa
x86/amd_nb: Check for invalid SMN reads | *0caf70a8e8
PCI: Add PCI_ERROR_RESPONSE and related definitions | *a335ad77bd
perf/core: Fix missing wakeup when waiting for context reference | *695f20c678
kheaders: explicitly define file modes for archived headers | *247c3f8958
Revert "kheaders: substituting --sort in archive creation" | *61c1c98e26
r8169: Fix possible ring buffer corruption on fragmented Tx packets. | *5c88f4f634
r8169: remove not needed check in rtl8169_start_xmit | *48833226fb
r8169: remove nr_frags argument from rtl_tx_slots_avail | *41eeb13459
r8169: improve rtl8169_start_xmit | *04f9d0cd39
r8169: improve rtl_tx | *6d3eb1658b
r8169: remove unneeded memory barrier in rtl_tx | *40a697e345
x86/cpu: Fix x86_match_cpu() to match just X86_VENDOR_INTEL | *50b1b4e4f3
x86/cpu/vfm: Add new macros to work with (vendor/family/model) values | *0e84701753
tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test | *2c3d7b03b6
bcache: fix variable length array abuse in btree_iter | *6337072467
spmi: hisi-spmi-controller: Do not override device identifier | *90551062fd
knfsd: LOOKUP can return an illegal error value | *f77c8a2ce2
pmdomain: ti-sci: Fix duplicate PD referrals | *5fe1b2c72e
wifi: rtlwifi: rtl8192de: Fix 5 GHz TX power | *33628b6ed3
rtlwifi: rtl8192de: Style clean-ups | *77942a0272
ARM: dts: samsung: smdk4412: fix keypad no-autorepeat | *1fdaecc326
ARM: dts: samsung: exynos4412-origen: fix keypad no-autorepeat | *b263a895d8
ARM: dts: samsung: smdkv310: fix keypad no-autorepeat | *cc255080c1
drm/amd/display: revert Exit idle optimizations before HDCP execution | *5d7fef7522
dt-bindings: i2c: google,cros-ec-i2c-tunnel: correct path to i2c-controller schema | *7884f4afec
i2c: ocores: set IACK bit after core is enabled | *7879b54f0b
kcov: don't lose track of remote references during softirqs | *b1684798a3
gcov: add support for GCC 14 | *febe794b83
drm/radeon: fix UBSAN warning in kv_dpm.c | *71bea3e648
ALSA: hda/realtek: Limit mic boost on N14AP7 | *7186b81c1f
RDMA/mlx5: Add check for srq max_sge attribute | *6eca23100e
ACPICA: Revert "ACPICA: avoid Info: mapping multiple BARs. Your kernel is fine." | *f3d17826d6
dmaengine: ioatdma: Fix missing kmem_cache_destroy() | *34cc20a544
dmaengine: ioatdma: Fix kmemleak in ioat_pci_probe() | *768ae5e025
dmaengine: ioatdma: Fix error path in ioat3_dma_probe() | *a486fca282
dmaengine: ioat: use PCI core macros for PCIe Capability | *c017a8e3e3
dmaengine: ioatdma: Fix leaking on version mismatch | *f99b00ed9b
dmaengine: ioat: Drop redundant pci_enable_pcie_error_reporting() | *d293db11cb
dmaengine: ioat: switch from 'pci_' to 'dma_' API | *97509608b7
regulator: core: Fix modpost error "regulator_get_regmap" undefined | *6a0f5d540f
net: usb: rtl8150 fix unintiatilzed variables in rtl8150_get_link_ksettings | *72d9611968
netfilter: ipset: Fix suspicious rcu_dereference_protected() | *333c0a1f7d
virtio_net: checksum offloading handling fix | *b4bca4722f
net: stmmac: No need to calculate speed divider when offload is disabled | *03f625505e
sched: act_ct: add netns into the key of tcf_ct_flow_table | *b4899d75b8
net/sched: act_ct: set 'net' pointer when creating new nf_flow_table | *3eb1b39627
tipc: force a dst refcount before doing decryption | *c6a7da65a2
net/sched: act_api: fix possible infinite loop in tcf_idr_check_alloc() | *66c7aa157a
net/sched: act_api: rely on rcu in tcf_idr_check_alloc | *fb910ac2d3
qca_spi: Make interrupt remembering atomic | *2b82028a1f
netns: Make get_net_ns() handle zero refcount net | *20427b8578
xfrm6: check ip6_dst_idev() return value in xfrm6_get_saddr() | *1ed9849fdf
ipv6: prevent possible NULL dereference in rt6_probe() | *de5ad4d45c
ipv6: prevent possible NULL deref in fib6_nh_init() | *5391f9db2c
netrom: Fix a memory leak in nr_heartbeat_expiry() | *1aabe0f850
cipso: fix total option length computation | *a85bae262c
tracing: Build event generation tests only as modules | *36d771ce60
mips: bmips: BCM6358: make sure CBR is correctly set | *7117969bff
MIPS: Routerboard 532: Fix vendor retry check code | *15c8b2e1d6
serial: exar: adding missing CTI and Exar PCI ids | *6c1b9fe148
MIPS: Octeon: Add PCIe link status check | *c59f79e2b4
PCI/PM: Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports | *bffff80d10
udf: udftime: prevent overflow in udf_disk_stamp_to_time() | *04736c1bc3
usb: misc: uss720: check for incompatible versions of the Belkin F5U002 | *38a82c8d00
f2fs: remove clear SB_INLINECRYPT flag in default_options | *d8481016c2
iommu/arm-smmu-v3: Free MSIs in case of ENOMEM | *449d55871c
power: supply: cros_usbpd: provide ID table for avoiding fallback match | *1939648b3a
powerpc/io: Avoid clang null pointer arithmetic warnings | *a8c988d752
powerpc/pseries: Enforce hcall result buffer validity and size | *03e7b2f7ae
drm/lima: mask irqs in timeout path before hard reset | *e12c363cf5
drm/lima: add mask irq callback to gp and pp | *2db63bf7d8
ASoC: Intel: sof_sdw: add JD2 quirk for HP Omen 14 | *b4291f58a9
drm/amd/display: Exit idle optimizations before HDCP execution | *52d4cfa56b
Bluetooth: ath3k: Fix multiple issues reported by checkpatch.pl | *6fdc98bcc6
ACPI: video: Add backlight=native quirk for Lenovo Slim 7 16ARH7 | *6f6cb07482
HID: Add quirk for Logitech Casa touchpad | *43c0ca793a
netpoll: Fix race condition in netpoll_owner_active | *1b577bb1cb
kselftest: arm64: Add a null pointer check | *144d76a676
scsi: qedi: Fix crash while reading debugfs attribute | *96941f29eb
drop_monitor: replace spin_lock by raw_spin_lock | *a720d71dd4
af_packet: avoid a false positive warning in packet_setsockopt() | *b5a53d14dd
wifi: ath9k: work around memset overflow warning | *82cdea8f3a
batman-adv: bypass empty buckets in batadv_purge_orig_ref() | *e1c3f5fb1b
selftests/bpf: Fix flaky test btf_map_in_map/lookup_update | *973b32034c
selftests/bpf: Prevent client connect before server bind in test_tc_tunnel.sh | *58706e482b
block/ioctl: prefer different overflow check | *c15df6f498
rcutorture: Fix invalid context warning when enable srcu barrier testing | *dd2cb39afc
rcutorture: Fix rcu_torture_one_read() pipe_count overflow comment | *ec58e6ff29
padata: Disable BH when taking works lock on MT path | *82c7acf9a1
zap_pid_ns_processes: clear TIF_NOTIFY_SIGNAL along with TIF_SIGPENDING | *864963d269
i2c: designware: Fix the functionality flags of the slave-only interface | *0f37d22a62
i2c: at91: Fix the functionality flags of the slave-only interface | *f68820f125
usb-storage: alauda: Check whether the media is initialized | *2b6bb0b4ab
greybus: Fix use-after-free bug in gb_interface_release due to race condition. | *d6c26a59e6
remoteproc: k3-r5: Jump to error handling labels in start/stop errors | *990d071010
mptcp: pm: update add_addr counters after connect | *5a4efafcf8
mptcp: pm: inc RmAddr MIB counter once per RM_ADDR ID | *208cd22ef5
mptcp: ensure snd_una is properly initialized on connect | *73014c77ec
hugetlb_encode.h: fix undefined behaviour (34 << 26) | *0047568dbd
serial: 8250_pxa: Configure tx_loadsz to match FIFO IRQ level | *33eae51f65
tick/nohz_full: Don't abuse smp_call_function_single() in tick_setup_device() | *0ecfe3a928
nilfs2: fix potential kernel bug due to lack of writeback flag waiting | *f699f9f8b2
intel_th: pci: Add Lunar Lake support | *31f3136fd6
intel_th: pci: Add Meteor Lake-S support | *c02003a97a
intel_th: pci: Add Sapphire Rapids SOC support | *dbfe50b50e
intel_th: pci: Add Granite Rapids SOC support | *78a41b1614
intel_th: pci: Add Granite Rapids support | *02d3b5e48d
remoteproc: k3-r5: Do not allow core1 to power up before core0 via sysfs | *fe5b53c602
dmaengine: axi-dmac: fix possible race in remove() | *42ed6bfc2d
PCI: rockchip-ep: Remove wrong mask on subsys_vendor_id | *050ce8af68
ocfs2: fix races between hole punching and AIO+DIO | *11a075a1c8
ocfs2: use coarse time for new created files | *70c1835e77
fs/proc: fix softlockup in __read_vmcore | *f70ff73734
vmci: prevent speculation leaks by sanitizing event in event_deliver() | *4dfffb5031
drm/exynos: hdmi: report safe 640x480 mode as a fallback when no EDID found | *0acc356da8
drm/exynos/vidi: fix memory leak in .get_modes() | *760603e30b
drivers: core: synchronize really_probe() and dev_uevent() | *fd45d6f194
iio: imu: inv_icm42600: delete unneeded update watermark call | *9d4dce5870
iio: dac: ad5592r: fix temperature channel scaling value | *e4ce76890e
iio: adc: ad9467: fix scan type sign | *ff9c2a9426
ionic: fix use after netif_napi_del() | *b278f9b458
net/ipv6: Fix the RT cache flush via sysctl using a previous delay | *01ce5bdfdf
net: stmmac: replace priv->speed with the portTransmitRate from the tc-cbs parameters | *93b53c202b
netfilter: ipset: Fix race between namespace cleanup and gc in the list:set type | *ea1a98c9a3
Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ | *dfd7f46707
net/mlx5e: Fix features validation check for tunneled UDP (non-VXLAN) packets | *330c8661c9
tcp: fix race in tcp_v6_syn_recv_sock() | *9b164605c1
drm/bridge/panel: Fix runtime warning on panel bridge release | *bda7cdaeeb
drm/komeda: check for error-valued pointer | *cbf18d8128
liquidio: Adjust a NULL pointer handling path in lio_vf_rep_copy_packet | *187e293c82
net: hns3: add cond_resched() to hns3 ring buffer init process | *bd8e1e6af6
net: sfp: Always call `sfp_sm_mod_remove()` on remove | *abc55e738b
drm/vmwgfx: 3D disabled should not effect STDU memory limits | *caa9c9acb9
HID: logitech-dj: Fix memory leak in logi_dj_recv_switch_to_dj_mode() | *cf34f8f669
iommu: Return right value in iommu_sva_bind_device() | *d4673a34d8
iommu/amd: Fix sysfs leak in iommu init | *c0f1bd317b
iommu/amd: Introduce pci segment structure | *a843c0e9da
gpio: tqmx86: store IRQ trigger type and unmask status separately | *33f6832798
HID: core: remove unnecessary WARN_ON() in implement() | *544015b945
gpio: tqmx86: fix typo in Kconfig label | *66c79c5acc
SUNRPC: return proper error from gss_wrap_req_priv | *b6a204f937
Input: try trimming too long modalias strings | *20b3f435b7
powerpc/uaccess: Fix build errors seen with GCC 13/14 | *0081d2b3ae
scsi: mpt3sas: Avoid test/set_bit() operating in non-allocated memory | *baeae72258
xhci: Apply broken streams quirk to Etron EJ188 xHCI host | *0b05b12e2d
xhci: Apply reset resume quirk to Etron EJ188 xHCI host | *22de7c9cba
xhci: Set correct transferred length for cancelled bulk transfers | *fc745f6e83
jfs: xattr: fix buffer overflow for invalid xattr | *498ff29800
mei: me: release irq in mei_me_pci_resume error path | *c0747d76eb
USB: class: cdc-wdm: Fix CPU lockup caused by excessive log messages | *c77ad608df
nilfs2: fix nilfs_empty_dir() misjudgment and long loop on I/O errors | *adf1b931d5
nilfs2: return the mapped address from nilfs_get_page() | *8b56df81b3
nilfs2: Remove check for PageError | *05544fd3f1
btrfs: fix leak of qgroup extent records after transaction abort | *79bf1ea0d5
selftests/mm: compaction_test: fix bogus test success on Aarch64 | *7c1cc0a5d4
selftests/mm: conform test to TAP format output | *9d3886a160
selftests/mm: compaction_test: fix incorrect write of zero to nr_hugepages | *6ff7cfa02b
mmc: davinci: Don't strip remove function when driver is builtin | *b5a2a69081
serial: sc16is7xx: fix bug in sc16is7xx_set_baud() when using prescaler | *9a2e0aa9a8
serial: sc16is7xx: replace hardcoded divisor value with BIT() macro | *e8b8054f5e
drm/amd/display: Handle Y carry-over in VCP X.Y calculation | *e500b1c4e2
usb: gadget: f_fs: Fix race between aio_cancel() and AIO request complete | *c693698787
ipv6: fix possible race in __fib6_drop_pcpu_from() | *74c97c8003
af_unix: Annotate data-race of sk->sk_shutdown in sk_diag_fill(). | *35a69f9e5d
af_unix: Use skb_queue_len_lockless() in sk_diag_show_rqlen(). | *a64e4b8f9b
af_unix: Use unix_recvq_full_lockless() in unix_stream_connect(). | *f70ef84b82
af_unix: Annotate data-race of net->unx.sysctl_max_dgram_qlen. | *44a2437c60
af_unix: Annotate data-races around sk->sk_state in UNIX_DIAG. | *b5a6507c61
af_unix: Annotate data-races around sk->sk_state in sendmsg() and recvmsg(). | *cc5d123ce4
af_unix: Annotate data-races around sk->sk_state in unix_write_space() and poll(). | *d2c53bedeb
af_unix: Annotate data-race of sk->sk_state in unix_inq_len(). | *13f61e503e
ptp: Fix error message on failed pin verification | *6db4af0998
net/sched: taprio: always validate TCA_TAPRIO_ATTR_PRIOMAP | *d8c79ae03e
tcp: count CLOSE-WAIT sockets for TCP_MIB_CURRESTAB | *dd254cde57
vxlan: Fix regression when dropping packets due to invalid src addresses | *52b1aa07cd
net: sched: sch_multiq: fix possible OOB write in multiq_tune() | *f9f69e3f69
ipv6: sr: block BH in seg6_output_core() and seg6_input_core() | *3cbb2ba0a0
net/ncsi: Fix the multi thread manner of NCSI driver | *7329bc66b4
net/ncsi: Simplify Kconfig/dts control flow | *f40cac4e70
net/ncsi: add NCSI Intel OEM command to keep PHY up | *7c9b9f822e
wifi: mac80211: correctly parse Spatial Reuse Parameter Set element | *46c59a2533
wifi: iwlwifi: mvm: don't read past the mfuart notifcation | *3c4771091e
wifi: iwlwifi: mvm: check n_ssids before accessing the ssids | *2c80bd07c1
wifi: iwlwifi: dbg_ini: move iwl_dbg_tlv_free outside of debugfs ifdef | *99c4903dce
wifi: iwlwifi: mvm: revert gen2 TX A-MPDU size to 64 | *8d5c7d7bfd
wifi: cfg80211: pmsr: use correct nla_get_uX functions | *e7e916d693
wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup() | *7518e20a18
wifi: mac80211: mesh: Fix leak of mesh_preq_queue objects | *f64d566f43
null_blk: Print correct max open zones limit in null_init_zoned_dev() | *8f48a7f8b9
tracing/selftests: Fix kprobe event name test for .isra. functions * |88eb084d18
Revert "Merge 5.10.220 into android12-5.10-lts" * |87a7f35a24
Merge 5.10.220 into android12-5.10-lts |\| | *3a3877de44
Linux 5.10.220 | *9444ce5cd4
nfsd: Fix a regression in nfsd_setattr() | *a1a153fc73
nfsd: don't call locks_release_private() twice concurrently | *feb3352af7
nfsd: don't take fi_lock in nfsd_break_deleg_cb() | *99fb654d01
nfsd: fix RELEASE_LOCKOWNER | *ca791e1a31
nfsd: drop the nfsd_put helper | *838a602db7
nfsd: call nfsd_last_thread() before final nfsd_put() | *e35cb663a4
NFSD: fix possible oops when nfsd/pool_stats is closed. | *3add01e067
Documentation: Add missing documentation for EXPORT_OP flags | *d31cd25f55
nfsd: separate nfsd_last_thread() from nfsd_put() | *987c0e1028
nfsd: Simplify code around svc_exit_thread() call in nfsd() | *7229200f68
nfsd: don't allow nfsd threads to be signalled. | *8ef87fe6e8
nfsd: Fix creation time serialization order | *72f28b5ad0
NFSD: Add an nfsd4_encode_nfstime4() helper | *b4417c53d4
lockd: drop inappropriate svc_get() from locked_get() | *b28b5c726e
nfsd: fix double fget() bug in __write_ports_addfd() | *8157832461
nfsd: make a copy of struct iattr before calling notify_change | *05f45f3981
NFSD: Fix problem of COMMIT and NFS4ERR_DELAY in infinite loop | *6c05d25ca8
nfsd: simplify the delayed disposal list code | *56b36b8960
NFSD: Convert filecache to rhltable | *5a132ffa76
nfsd: allow reaping files still under writeback | *f7b157737c
nfsd: update comment over __nfsd_file_cache_purge | *f593ea1423
nfsd: don't take/put an extra reference when putting a file | *c3677c14b3
nfsd: add some comments to nfsd_file_do_acquire | *c9e8ed6efa
nfsd: don't kill nfsd_files because of lease break error | *2c95ad0a0c
nfsd: simplify test_bit return in NFSD_FILE_KEY_FULL comparator | *e378da8357
nfsd: NFSD_FILE_KEY_INODE only needs to find GC'ed entries | *9c599dee87
nfsd: don't open-code clear_and_wake_up_bit | *65a33135e9
nfsd: call op_release, even when op_func returns an error | *50827896c3
NFSD: Avoid calling OPDESC() with ops->opnum == OP_ILLEGAL | *8235cd619d
nfsd: don't replace page in rq_pages if it's a continuation of last page | *37b34eb567
lockd: set file_lock start and end when decoding nlm4 testargs | *b0f3373279
NFSD: Protect against filesystem freezing | *37cd49faaa
NFSD: copy the whole verifier in nfsd_copy_write_verifier | *dd7d50c695
nfsd: don't fsync nfsd_files on last close | *1178547637
nfsd: fix courtesy client with deny mode handling in nfs4_upgrade_open | *3db6c79de9
NFSD: fix problems with cleanup on errors in nfsd4_copy | *e5e1dc8284
nfsd: don't hand out delegation on setuid files being opened for write | *2da5014998
NFSD: fix leaked reference count of nfsd4_ssc_umount_item | *fd63299db8
nfsd: clean up potential nfsd_file refcount leaks in COPY codepath | *3c7b9b3487
nfsd: allow nfsd_file_get to sanely handle a NULL pointer | *9d7608dc4b
NFSD: enhance inter-server copy cleanup | *6856f1385d
nfsd: don't destroy global nfs4_file table in per-net shutdown | *e997a230d8
nfsd: don't free files unconditionally in __nfsd_file_cache_purge | *2bbf10861d
NFSD: replace delayed_work with work_struct for nfsd_client_shrinker | *438ef64bbf
NFSD: register/unregister of nfsd-client shrinker at nfsd startup/shutdown time | *6ac4c383c3
NFSD: fix use-after-free in nfsd4_ssc_setup_dul() | *2ecc439931
NFSD: Use set_bit(RQ_DROPME) | *115b58b56f
Revert "SUNRPC: Use RMW bitops in single-threaded hot paths" | *45c08a7529
nfsd: fix handling of cached open files in nfsd4_open codepath | *f31bc0bc12
nfsd: rework refcounting in filecache | *dfbf3066d9
NFSD: Avoid clashing function prototypes | *ea46809860
NFSD: Use only RQ_DROPME to signal the need to drop a reply | *71a98737cd
NFSD: add delegation reaper to react to low memory condition | *80a81db01a
NFSD: add support for sending CB_RECALL_ANY | *87098b663f
NFSD: refactoring courtesy_client_reaper to a generic low memory shrinker | *35a48412f6
NFSD: pass range end to vfs_fsync_range() instead of count | *0d5f3de2b4
lockd: fix file selection in nlmsvc_cancel_blocked | *7ecaa9aff9
lockd: ensure we use the correct file descriptor when unlocking | *781c3f3d18
lockd: set missing fl_flags field when retrieving args | *ae8f2bb3dd
NFSD: Use struct_size() helper in alloc_session() | *e2505cb851
nfsd: return error if nfs4_setacl fails | *31c93ee5f1
lockd: set other missing fields when unlocking files | *739202b2b9
NFSD: Add an nfsd_file_fsync tracepoint | *4453e0c1bb
nfsd: fix up the filecache laundrette scheduling | *3d479899f4
nfsd: reorganize filecache.c | *605a5acd6f
nfsd: remove the pages_flushed statistic from filecache | *384b23f136
NFSD: Fix licensing header in filecache.c | *56eedeaf71
NFSD: Use rhashtable for managing nfs4_file objects | *8fdef89612
NFSD: Refactor find_file() | *5e92a16849
NFSD: Clean up find_or_add_file() | *5aa2c4a1fe
NFSD: Add a nfsd4_file_hash_remove() helper | *e77b1d63c0
NFSD: Clean up nfsd4_init_file() | *c152e4ffb9
NFSD: Update file_hashtbl() helpers | *b0952d4948
NFSD: Use const pointers as parameters to fh_ helpers | *a10d111fd0
NFSD: Trace delegation revocations | *88cf6a1e76
NFSD: Trace stateids returned via DELEGRETURN | *14c9c091f2
NFSD: Clean up nfs4_preprocess_stateid_op() call sites | *d9991b0b9d
NFSD: Flesh out a documenting comment for filecache.c | *5f866f5a86
NFSD: Add an NFSD_FILE_GC flag to enable nfsd_file garbage collection | *c09b456a81
NFSD: Revert "NFSD: NFSv4 CLOSE should release an nfsd_file immediately" | *caa6270201
NFSD: Pass the target nfsd_file to nfsd_commit() | *599d5c2291
exportfs: use pr_debug for unreachable debug statements | *4ab1211c28
nfsd: allow disabling NFSv2 at compile time | *68f7bd7f29
nfsd: move nfserrno() to vfs.c | *abbd1215c3
nfsd: ignore requests to disable unsupported versions | *81714ef8e3
NFSD: Finish converting the NFSv3 GETACL result encoder | *a20b0abab9
NFSD: Finish converting the NFSv2 GETACL result encoder | *1dd04600f6
NFSD: Remove redundant assignment to variable host_err | *48a237cb5e
NFSD: Simplify READ_PLUS | *10727ce312
nfsd: use locks_inode_context helper | *32c59062f8
lockd: use locks_inode_context helper | *70ffaa7896
filelock: add a new locks_inode_context accessor function | *7ea635fc47
NFSD: Fix reads with a non-zero offset that don't end on a page boundary | *7d867c6c30
nfsd: put the export reference in nfsd4_verify_deleg_dentry | *551f17db65
nfsd: fix use-after-free in nfsd_file_do_acquire tracepoint | *31268eb457
nfsd: fix net-namespace logic in __nfsd_file_cache_purge | *5428383c6f
NFSD: unregister shrinker when nfsd_init_net() fails | *1bb3349257
nfsd: rework hashtable handling in nfsd_do_file_acquire | *2db3e73f9a
nfsd: fix nfsd_file_unhash_and_dispose | *683fb922e7
fanotify: Remove obsoleted fanotify_event_has_path() | *229e73a0f4
fsnotify: remove unused declaration | *a2d440dce6
fs/notify: constify path | *241685bab2
nfsd: extra checks when freeing delegation stateids | *345e3bb5e8
nfsd: make nfsd4_run_cb a bool return function | *d7f2774d8c
nfsd: fix comments about spinlock handling with delegations | *89b6362704
nfsd: only fill out return pointer on success in nfsd4_lookup_stateid | *31b16e6b0b
NFSD: Cap rsize_bop result based on send buffer size | *60b46564e0
NFSD: Rename the fields in copy_stateid_t | *b7aea45a67
nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_file_cache_stats_fops | *21e18dd5eb
nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_reply_cache_stats_fops | *443e648425
nfsd: use DEFINE_SHOW_ATTRIBUTE to define client_info_fops | *615d761a6b
nfsd: use DEFINE_SHOW_ATTRIBUTE to define export_features_fops and supported_enctypes_fops | *a063abefc6
nfsd: use DEFINE_PROC_SHOW_ATTRIBUTE to define nfsd_proc_ops | *cda3e9b8cd
NFSD: Pack struct nfsd4_compoundres | *a54822e64d
NFSD: Remove unused nfsd4_compoundargs::cachetype field | *17bb698078
NFSD: Remove "inline" directives on op_rsize_bop helpers | *f533a01b09
NFSD: Clean up nfs4svc_encode_compoundres() | *918054d2d8
NFSD: Clean up WRITE arg decoders | *c92e8b295a
NFSD: Use xdr_inline_decode() to decode NFSv3 symlinks | *d08acee648
NFSD: Refactor common code out of dirlist helpers | *5e76b25d7c
NFSD: Reduce amount of struct nfsd4_compoundargs that needs clearing | *5ed2524893
SUNRPC: Parametrize how much of argsize should be zeroed | *6e50de3b3a
NFSD: add shrinker to reap courtesy clients on low memory condition | *67302ef04e
NFSD: keep track of the number of courtesy clients in the system | *1022fe63c5
NFSD: Make nfsd4_remove() wait before returning NFS4ERR_DELAY | *235738ccea
NFSD: Make nfsd4_rename() wait before returning NFS4ERR_DELAY | *b6c6c7153b
NFSD: Make nfsd4_setattr() wait before returning NFS4ERR_DELAY | *f326970df1
NFSD: Refactor nfsd_setattr() | *95dce2279c
NFSD: Add a mechanism to wait for a DELEGRETURN | *3c0e831b87
NFSD: Add tracepoints to report NFSv4 callback completions | *bc6bead0af
nfsd: remove nfsd4_prepare_cb_recall() declaration | *330914c342
nfsd: clean up mounted_on_fileid handling | *f574d41b1b
NFSD: Fix handling of oversized NFSv4 COMPOUND requests | *b0062184a1
NFSD: drop fname and flen args from nfsd_create_locked() | *c23687911f
NFSD: Protect against send buffer overflow in NFSv3 READ | *2007867c58
NFSD: Protect against send buffer overflow in NFSv2 READ | *57774b1526
NFSD: Protect against send buffer overflow in NFSv3 READDIR | *0e57d696f6
NFSD: Protect against send buffer overflow in NFSv2 READDIR | *2bd6f95ff9
NFSD: Increase NFSD_MAX_OPS_PER_COMPOUND | *d40bef3801
nfsd: Propagate some error code returned by memdup_user() | *490af5b07d
nfsd: Avoid some useless tests | *cef1ab71ae
NFSD: remove redundant variable status | *30b0e49a95
NFSD enforce filehandle check for source file in COPY | *9dc20a662f
lockd: move from strlcpy with unused retval to strscpy | *91eebaa181
NFSD: move from strlcpy with unused retval to strscpy | *57afda7bf2
nfsd_splice_actor(): handle compound pages | *c7d320e620
NFSD: fix regression with setting ACLs. | *1f87122d34
lockd: detect and reject lock arguments that overflow | *b15656dfa2
NFSD: discard fh_locked flag and fh_lock/fh_unlock | *5a8d428f5e
NFSD: use (un)lock_inode instead of fh_(un)lock for file operations | *9ef325edea
NFSD: use explicit lock/unlock for directory ops | *203f09fae4
NFSD: reduce locking in nfsd_lookup() | *bedd266b1f
NFSD: only call fh_unlock() once in nfsd_link() | *77f83bc2ed
NFSD: always drop directory lock in nfsd_unlink() | *617f72a1aa
NFSD: change nfsd_create()/nfsd_symlink() to unlock directory before returning. | *c5409ce523
NFSD: add posix ACLs to struct nfsd_attrs | *18ee0869d6
NFSD: add security label to struct nfsd_attrs | *2a5642abeb
NFSD: set attributes when creating symlinks | *45cf4b1bb1
NFSD: introduce struct nfsd_attrs | *3aac39eaa6
NFSD: verify the opened dentry after setting a delegation | *820bf1383d
NFSD: drop fh argument from alloc_init_deleg | *c62dcf8633
NFSD: Move copy offload callback arguments into a separate structure | *e1d1b6574e
NFSD: Add nfsd4_send_cb_offload() | *d87486acbd
NFSD: Remove kmalloc from nfsd4_do_async_copy() | *a860bd179e
NFSD: Refactor nfsd4_do_copy() | *8153ed38cc
NFSD: Refactor nfsd4_cleanup_inter_ssc() (2/2) | *0d592d96d6
NFSD: Refactor nfsd4_cleanup_inter_ssc() (1/2) | *ac774e1eeb
NFSD: Replace boolean fields in struct nfsd4_copy | *627b896c52
NFSD: Make nfs4_put_copy() static | *0d7e3df76b
NFSD: Reorder the fields in struct nfsd4_op | *94fd87568e
NFSD: Shrink size of struct nfsd4_copy | *7c6fd14057
NFSD: Shrink size of struct nfsd4_copy_notify | *02bc4d514c
NFSD: nfserrno(-ENOMEM) is nfserr_jukebox | *8ce03085cc
NFSD: Fix strncpy() fortify warning | *0a1b9a216f
NFSD: Clean up nfsd4_encode_readlink() | *c7863472e5
NFSD: Use xdr_pad_size() | *c587004a76
NFSD: Simplify starting_len | *e77d3f5ee5
NFSD: Optimize nfsd4_encode_readv() | *d176e7348b
NFSD: Add an nfsd4_read::rd_eof field | *427bd174a4
NFSD: Clean up SPLICE_OK in nfsd4_encode_read() | *8fd87bf897
NFSD: Optimize nfsd4_encode_fattr() | *d8c3d70408
NFSD: Optimize nfsd4_encode_operation() | *3b5dcf6b46
nfsd: silence extraneous printk on nfsd.ko insertion | *f81ab23756
NFSD: limit the number of v4 clients to 1024 per 1GB of system memory | *ec16f5f7fa
NFSD: keep track of the number of v4 clients in the system | *4e7a739f63
NFSD: refactoring v4 specific code to a helper in nfs4state.c | *705e2cb1fe
NFSD: Ensure nf_inode is never dereferenced | *451b2c2125
NFSD: NFSv4 CLOSE should release an nfsd_file immediately | *c553e79c08
NFSD: Move nfsd_file_trace_alloc() tracepoint | *26664203dd
NFSD: Separate tracepoints for acquire and create | *de070f66d2
NFSD: Clean up unused code after rhashtable conversion | *a174ce98b3
NFSD: Convert the filecache to use rhashtable | *ebe886ac37
NFSD: Set up an rhashtable for the filecache | *1ea9b51f73
NFSD: Replace the "init once" mechanism | *bbb260f3ce
NFSD: Remove nfsd_file::nf_hashval | *12494d98fe
NFSD: nfsd_file_hash_remove can compute hashval | *10ba39f788
NFSD: Refactor __nfsd_file_close_inode() | *a86953523e
NFSD: nfsd_file_unhash can compute hashval from nf->nf_inode | *ef7fe4908a
NFSD: Remove lockdep assertion from unhash_and_release_locked() | *525c2c81fd
NFSD: No longer record nf_hashval in the trace log | *99735b8d82
NFSD: Never call nfsd_file_gc() in foreground paths | *586e8d6c3d
NFSD: Fix the filecache LRU shrinker | *51fc2b2c79
NFSD: Leave open files out of the filecache LRU | *c15db0869e
NFSD: Trace filecache LRU activity | *7cca6908fa
NFSD: WARN when freeing an item still linked via nf_lru | *0c426d4621
NFSD: Hook up the filecache stat file | *6dc5cab808
NFSD: Zero counters when the filecache is re-initialized | *04b9376a10
NFSD: Record number of flush calls | *2cba48b3d0
NFSD: Report the number of items evicted by the LRU walk | *af057e5884
NFSD: Refactor nfsd_file_lru_scan() | *e7d5efd20e
NFSD: Refactor nfsd_file_gc() | *8d038e72e7
NFSD: Add nfsd_file_lru_dispose_list() helper | *d176e98400
NFSD: Report average age of filecache items | *ca9cc17ec0
NFSD: Report count of freed filecache items | *a38dff5964
NFSD: Report count of calls to nfsd_file_acquire() | *91c03a6124
NFSD: Report filecache LRU size | *4ff0e22e54
NFSD: Demote a WARN to a pr_warn() | *cc3b111e3b
nfsd: remove redundant assignment to variable len | *0a18cd2b94
NFSD: Fix space and spelling mistake | *b5b79fc3ff
NLM: Defend against file_lock changes after vfs_test_lock() | *16acc0677f
SUNRPC: Fix xdr_encode_bool() | *bcaac325dd
nfsd: eliminate the NFSD_FILE_BREAK_* flags | *302ae1fb80
fsnotify: Fix comment typo | *85c640adf9
fanotify: introduce FAN_MARK_IGNORE | *99a022c4bc
fanotify: cleanups for fanotify_mark() input validations | *b8d06d1187
fanotify: prepare for setting event flags in ignore mask | *71860cc4e4
fs: inotify: Fix typo in inotify comment | *795f9fa1b5
lockd: fix nlm_close_files | *486c1acf14
lockd: set fl_owner when unlocking files | *845b309cf5
NFSD: Decode NFSv4 birth time attribute | *58f985d688
NFS: restore module put when manager exits. | *e9156a2431
fanotify: refine the validation checks on non-dir inode mask | *6943f1073a
SUNRPC: Optimize xdr_reserve_space() | *ada1757b25
NFSD: Fix potential use-after-free in nfsd_file_put() | *4862b61886
NFSD: nfsd_file_put() can sleep | *06252d1bd5
NFSD: Add documenting comment for nfsd4_release_lockowner() | *345e2e48d8
NFSD: Modernize nfsd4_release_lockowner() | *13459d2225
nfsd: destroy percpu stats counters after reply cache shutdown | *15081df04a
nfsd: Fix null-ptr-deref in nfsd_fill_super() | *ff4e7a4b49
nfsd: Unregister the cld notifier when laundry_wq create failed | *e1e87709c4
SUNRPC: Use RMW bitops in single-threaded hot paths | *f7a1ecf2aa
NFSD: Clean up the show_nf_flags() macro | *7b8462f22a
NFSD: Trace filecache opens | *a38be00474
NFSD: Move documenting comment for nfsd4_process_open2() | *bfe9aab120
NFSD: Fix whitespace | *2805c5439c
NFSD: Remove dprintk call sites from tail of nfsd4_open() | *c20097329d
NFSD: Instantiate a struct file when creating a regular NFSv4 file | *d8714bda3f
NFSD: Clean up nfsd_open_verified() | *274fd0f9c2
NFSD: Remove do_nfsd_create() | *66af1db0cc
NFSD: Refactor NFSv4 OPEN(CREATE) | *a019add1b4
NFSD: Refactor NFSv3 CREATE | *a132795b61
NFSD: Refactor nfsd_create_setattr() | *ee0742a93c
NFSD: Avoid calling fh_drop_write() twice in do_nfsd_create() | *304505e2e8
NFSD: Clean up nfsd3_proc_create() | *c6207942b2
NFSD: Show state of courtesy client in client info | *4a39f029e7
NFSD: add support for lock conflict to courteous server | *97f77d7d50
fs/lock: add 2 callbacks to lock_manager_operations to resolve conflict | *eb2eb6b6af
fs/lock: add helper locks_owner_has_blockers to check for blockers | *461d0b57c9
NFSD: move create/destroy of laundry_wq to init_nfsd and exit_nfsd | *a26848e2bc
NFSD: add support for share reservation conflict to courteous server | *67ef9e5fd7
NFSD: add courteous server support for thread with only delegation | *bf1cbe2f36
NFSD: Clean up nfsd_splice_actor() | *2723d479f5
fanotify: fix incorrect fmode_t casts | *4cd725129e
fsnotify: consistent behavior for parent not watching children | *e3bce57ffc
fsnotify: introduce mark type iterator | *f6017a718b
fanotify: enable "evictable" inode marks | *3083d602ba
fanotify: use fsnotify group lock helpers | *f85d590059
fanotify: implement "evictable" inode marks | *80fb0ae4b1
fanotify: factor out helper fanotify_mark_update_flags() | *b9576077ee
fanotify: create helper fanotify_mark_user_flags() | *ff34ebaa6f
fsnotify: allow adding an inode mark without pinning inode | *3bd557cfdf
dnotify: use fsnotify group lock helpers | *cc1c875b69
nfsd: use fsnotify group lock helpers | *c2c6ced500
inotify: use fsnotify group lock helpers | *f91ba4a49b
fsnotify: create helpers for group mark_mutex lock | *74f9be7f64
fsnotify: make allow_dups a property of the group | *4dc30393bd
fsnotify: pass flags argument to fsnotify_alloc_group() | *1c47d87317
inotify: move control flags from mask to mark flags | *aecfd231bf
fs/lock: documentation cleanup. Replace inode->i_lock with flc_lock. | *d71ea54835
fanotify: do not allow setting dirent events in mask of non-dir | *9862064ca8
nfsd: Clean up nfsd_file_put() | *cf04df21a4
nfsd: Fix a write performance regression | *997575f1a1
SUNRPC: Return true/false (not 1/0) from bool functions | *a5fa9c824d
fsnotify: remove redundant parameter judgment | *552c24a32c
fsnotify: optimize FS_MODIFY events with no ignored masks | *5e84e33832
fsnotify: fix merge with parent's ignored mask | *62fa144b85
nfsd: fix using the correct variable for sizeof() | *e96076f579
NFSD: Clean up _lm_ operation names | *ec3b252a55
NFSD: Remove CONFIG_NFSD_V3 | *7e4328b3b9
NFSD: Move svc_serv_ops::svo_function into struct svc_serv | *9802c57460
NFSD: Remove svc_serv_ops::svo_module | *36c57b27a7
SUNRPC: Remove svc_shutdown_net() | *a4bbb1ab69
SUNRPC: Rename svc_close_xprt() | *c58a9cfd20
SUNRPC: Rename svc_create_xprt() | *9a43ddd6b6
SUNRPC: Remove svo_shutdown method | *8c60a47670
SUNRPC: Merge svc_do_enqueue_xprt() into svc_enqueue_xprt() | *99ab6abc88
SUNRPC: Remove the .svo_enqueue_xprt method | *194071d46c
NFSD: Streamline the rare "found" case | *3304d16c24
NFSD: Skip extra computation for RC_NOCACHE case | *4aa8dac58c
NFSD: De-duplicate hash bucket indexing | *ca6761d39a
nfsd: Add support for the birth time attribute | *0d1bbb0efe
NFSD: Deprecate NFS_OFFSET_MAX | *70a80c7e8d
NFSD: COMMIT operations must not return NFS?ERR_INVAL | *a231ae6bb5
NFSD: Fix NFSv3 SETATTR/CREATE's handling of large file sizes | *38d02ba22e
NFSD: Fix ia_size underflow | *1726a39b08
NFSD: Fix the behavior of READ near OFFSET_MAX | *fc2d8c153d
lockd: fix failure to cleanup client locks | *20a74a6911
lockd: fix server crash on reboot of client holding lock | *a667e1df40
fanotify: remove variable set but not used | *11bcfabf24
nfsd: fix crash on COPY_NOTIFY with special stateid | *4eefd1125b
NFSD: Move fill_pre_wcc() and fill_post_wcc() | *695719e5e6
Revert "nfsd: skip some unnecessary stats in the v4 case" | *5e07d49f4a
NFSD: Trace boot verifier resets | *a1c9bcfd16
NFSD: Rename boot verifier functions | *e49677ff33
NFSD: Clean up the nfsd_net::nfssvc_boot field | *083d44094f
NFSD: Write verifier might go backwards | *306d2c1c08
nfsd: Add a tracepoint for errors in nfsd4_clone_file_range() | *45ef8b7aea
NFSD: De-duplicate net_generic(nf->nf_net, nfsd_net_id) | *5a1575c02b
NFSD: De-duplicate net_generic(SVC_NET(rqstp), nfsd_net_id) | *aa9ea9ec29
NFSD: Clean up nfsd_vfs_write() | *30282a70aa
nfsd: Retry once in nfsd_open on an -EOPENSTALE return | *3128aa9c98
nfsd: Add errno mapping for EREMOTEIO | *f12557372b
nfsd: map EBADF | *9175fcf39c
NFSD: Fix zero-length NFSv3 WRITEs | *fab02e9799
nfsd4: add refcount for nfsd4_blocked_lock | *535204ecae
nfs: block notification on fs with its own ->lock | *bf5e7e1fa1
NFSD: De-duplicate nfsd4_decode_bitmap4() | *5a0710a6b4
nfsd: improve stateid access bitmask documentation | *f0dbe05f6d
NFSD: Combine XDR error tracepoints | *e8f923e1e9
NFSD: simplify per-net file cache management | *677fd67d8b
NFSD: Fix inconsistent indenting | *0bc12c1289
NFSD: Remove be32_to_cpu() from DRC hash function | *e072a635c1
NFS: switch the callback service back to non-pooled. | *948e4664cc
lockd: use svc_set_num_threads() for thread start and stop | *deeda24a67
SUNRPC: always treat sv_nrpools==1 as "not pooled" | *74a0e37a20
SUNRPC: move the pool_map definitions (back) into svc.c | *9fe19a48a3
lockd: rename lockd_create_svc() to lockd_get() | *e5087b3d58
lockd: introduce lockd_put() | *8304dd04fb
lockd: move svc_exit_thread() into the thread | *7077a00703
lockd: move lockd_start_svc() call into lockd_create_svc() | *a389baad91
lockd: simplify management of network status notifiers | *32f3e5a70f
lockd: introduce nlmsvc_serv | *d95899dadb
NFSD: simplify locking for network notifier. | *7149250bee
SUNRPC: discard svo_setup and rename svc_set_num_threads_sync() | *3614523741
NFSD: Make it possible to use svc_set_num_threads_sync | *6343271d53
NFSD: narrow nfsd_mutex protection in nfsd thread | *61d12fc30a
SUNRPC: use sv_lock to protect updates to sv_nrthreads. | *4efe0b9d11
nfsd: make nfsd_stats.th_cnt atomic_t | *17041f0140
SUNRPC: stop using ->sv_nrthreads as a refcount | *64312a7c9f
SUNRPC/NFSD: clean up get/put functions. | *e9a4156137
SUNRPC: change svc_get() to return the svc. | *e0bf899352
NFSD: handle errors better in write_ports_addfd() | *307b391221
NFSD: Fix sparse warning | *c59dc174b2
exit: Rename module_put_and_exit to module_put_and_kthread_exit | *15606c8d52
exit: Implement kthread_exit | *63b8c19231
fanotify: wire up FAN_RENAME event | *a860dd8bf5
fanotify: report old and/or new parent+name in FAN_RENAME event | *c76fa85159
fanotify: record either old name new name or both for FAN_RENAME | *da527da33b
fanotify: record old and new parent and name in FAN_RENAME event | *f59e978cfa
fanotify: support secondary dir fh and name in fanotify_info | *967ae13720
fanotify: use helpers to parcel fanotify_info buffer | *4e63ce9199
fanotify: use macros to get the offset to fanotify_info buffer | *580eb8de84
fsnotify: generate FS_RENAME event with rich information | *4e59c7b3e3
fanotify: introduce group flag FAN_REPORT_TARGET_FID | *be14cab43d
fsnotify: separate mark iterator type from object type enum | *c0a5f0b561
fsnotify: clarify object type argument | *9e291a6a28
NFSD: Fix READDIR buffer overflow | *1abf3ec558
NFSD: Fix exposure in nfsd4_decode_bitmap() | *88ccda1a81
nfsd4: remove obselete comment | *f4e9e9565e
NFSD:fix boolreturn.cocci warning | *022723fe15
nfsd: update create verifier comment | *c7b0a9c75d
SUNRPC: Change return value type of .pc_encode | *61cf681507
SUNRPC: Replace the "__be32 *p" parameter to .pc_encode | *47047d40af
NFSD: Save location of NFSv4 COMPOUND status | *f747ce574c
SUNRPC: Change return value type of .pc_decode | *0696b6b513
SUNRPC: Replace the "__be32 *p" parameter to .pc_decode | *396b359832
NFSD: Have legacy NFSD WRITE decoders use xdr_stream_subsegment() | *c23b25dd19
NFSD: Initialize pointer ni with NULL and not plain integer 0 | *6784188090
NFSD: simplify struct nfsfh | *25054b04ec
NFSD: drop support for ancient filehandles | *918bc45a57
NFSD: move filehandle format declarations out of "uapi". | *d2815110a7
NFSD: Optimize DRC bucket pruning | *2b2963c72c
SUNRPC: Trace calls to .rpc_call_done | *2eda014477
fanotify: Allow users to request FAN_FS_ERROR events | *b0f01b7c08
fanotify: Emit generic error info for error event | *aefd9029fa
fanotify: Report fid info for file related file system errors | *bb247feb22
fanotify: WARN_ON against too large file handles | *7fa20568b6
fanotify: Add helpers to decide whether to report FID/DFID | *7935cf4070
fanotify: Wrap object_fh inline space in a creator macro | *b974c8aa00
fanotify: Support merging of error events | *9b98f4ff51
fanotify: Support enqueueing of error events | *68aacb60a7
fanotify: Pre-allocate pool of error events | *eec22d03a9
fanotify: Reserve UAPI bits for FAN_FS_ERROR | *badbf879de
fsnotify: Support FS_ERROR event type | *8ccc724f50
fanotify: Require fid_mode for any non-fd event | *2f65be6209
fanotify: Encode empty file handle when no inode is provided | *86bda2d752
fanotify: Allow file handle encoding for unhashed events | *44ce59c254
fanotify: Support null inode event in fanotify_dfid_inode | *313234a93e
fsnotify: Pass group argument to free_event | *c9f9d99ea4
fsnotify: Protect fsnotify_handle_inode_event from no-inode events | *5c4ce075c9
fsnotify: Retrieve super block from the data field | *44844158ee
fsnotify: Add wrapper around fsnotify_add_event | *24eda1b5e6
fsnotify: Add helper to detect overflow_event | *7c9ba74cb3
inotify: Don't force FS_IN_IGNORED | *9539a89f28
fanotify: Split fsid check from other fid mode checks | *326be73a59
fanotify: Fold event size calculation to its own function | *7fee789540
fsnotify: Don't insert unmergeable events in hashtable | *60b6dab8c8
fsnotify: clarify contract for create event hooks | *9601d20734
fsnotify: pass dentry instead of inode data | *f114860f72
fsnotify: pass data_type to fsnotify_name() | *6719531e67
nfsd: Fix a warning for nfsd_file_close_inode | *7918a95bc2
NLM: Fix svcxdr_encode_owner() | *b801327ba3
fsnotify: fix sb_connectors leak | *1773901afb
NFS: Remove unused callback void decoder | *edf220fe15
NFS: Add a private local dispatcher for NFSv4 callback operations | *91bbbffece
SUNRPC: Eliminate the RQ_AUTHERR flag | *febf43bcdc
SUNRPC: Set rq_auth_stat in the pg_authenticate() callout | *a96da583ff
SUNRPC: Add svc_rqst::rq_auth_stat | *efea5d558e
nfs: don't allow reexport reclaims | *bd5b3deed0
lockd: don't attempt blocking locks on nfs reexports | *5ea5be84dd
nfs: don't atempt blocking locks on nfs reexports | *e580323ac0
Keep read and write fds with each nlm_file | *b4bf52174b
lockd: update nlm_lookup_file reexport comment | *14c2a0fad5
nlm: minor refactoring | *3fbc744783
nlm: minor nlm_lookup_file argument change | *860f01260e
lockd: change the proc_handler for nsm_use_hostnames | *f469e60f9a
sysctl: introduce new proc handler proc_dobool | *130dcbf77a
NFSD: remove vanity comments | *86df138e8d
NFSD: Batch release pages during splice read | *a4f616afb4
SUNRPC: Add svc_rqst_replace_page() API | *9e5f2e0ae0
NFSD: Clean up splice actor | *860893f9e3
fsnotify: optimize the case of no marks of any type | *9917e1bda3
fsnotify: count all objects with attached connectors | *44858a3488
fsnotify: count s_fsnotify_inode_refs for attached connectors | *cdbf9c5f81
fsnotify: replace igrab() with ihold() on attach connector | *cde8883b0b
fanotify: add pidfd support to the fanotify API | *77bc7f529a
fanotify: introduce a generic info record copying helper | *3ddcb19396
fanotify: minor cosmetic adjustments to fid labels | *03b5d3ee50
kernel/pid.c: implement additional checks upon pidfd_create() parameters | *774c2dbca7
kernel/pid.c: remove static qualifier from pidfd_create() | *e79057d15d
nfsd: fix NULL dereference in nfs3svc_encode_getaclres | *5610ed80e8
NFSD: Prevent a possible oops in the nfs_dirent() tracepoint | *17600880e1
nfsd: remove redundant assignment to pointer 'this' | *ce18198762
lockd: Update the NLMv4 SHARE results encoder to use struct xdr_stream | *fec0730992
lockd: Update the NLMv4 nlm_res results encoder to use struct xdr_stream | *e1e61d647f
lockd: Update the NLMv4 TEST results encoder to use struct xdr_stream | *4f5ba2e6b4
lockd: Update the NLMv4 void results encoder to use struct xdr_stream | *0add7c13bf
lockd: Update the NLMv4 FREE_ALL arguments decoder to use struct xdr_stream | *604c8a432c
lockd: Update the NLMv4 SHARE arguments decoder to use struct xdr_stream | *300a4b1632
lockd: Update the NLMv4 SM_NOTIFY arguments decoder to use struct xdr_stream | *33f31f6e85
lockd: Update the NLMv4 nlm_res arguments decoder to use struct xdr_stream | *9e1daae630
lockd: Update the NLMv4 UNLOCK arguments decoder to use struct xdr_stream | *0652983fbe
lockd: Update the NLMv4 CANCEL arguments decoder to use struct xdr_stream | *101d45274a
lockd: Update the NLMv4 LOCK arguments decoder to use struct xdr_stream | *360159aafa
lockd: Update the NLMv4 TEST arguments decoder to use struct xdr_stream | *c8f4048250
lockd: Update the NLMv4 void arguments decoder to use struct xdr_stream | *45c1384bd7
lockd: Update the NLMv1 SHARE results encoder to use struct xdr_stream | *b049476790
lockd: Update the NLMv1 nlm_res results encoder to use struct xdr_stream | *d0ddd21bd5
lockd: Update the NLMv1 TEST results encoder to use struct xdr_stream | *e6c92714e9
lockd: Update the NLMv1 void results encoder to use struct xdr_stream | *02a3c81665
lockd: Update the NLMv1 FREE_ALL arguments decoder to use struct xdr_stream | *6c522daf60
lockd: Update the NLMv1 SHARE arguments decoder to use struct xdr_stream | *56c936af53
lockd: Update the NLMv1 SM_NOTIFY arguments decoder to use struct xdr_stream | *90f483a775
lockd: Update the NLMv1 nlm_res arguments decoder to use struct xdr_stream | *b4ea38d69d
lockd: Update the NLMv1 UNLOCK arguments decoder to use struct xdr_stream | *2025b3acf6
lockd: Update the NLMv1 CANCEL arguments decoder to use struct xdr_stream | *3e8675ff1e
lockd: Update the NLMv1 LOCK arguments decoder to use struct xdr_stream | *8f9f41ebfa
lockd: Update the NLMv1 TEST arguments decoder to use struct xdr_stream | *4c3f448aaa
lockd: Update the NLMv1 void argument decoder to use struct xdr_stream | *fa4b890c0d
lockd: Common NLM XDR helpers | *3595ff1c2c
lockd: Create a simplified .vs_dispatch method for NLM requests | *eeea3b96d1
lockd: Remove stale comments | *c58120ab47
nfsd: rpc_peeraddr2str needs rcu lock | *2983611a66
NFSD: Fix error return code in nfsd4_interssc_connect() | *c5a305d93e
nfsd: fix kernel test robot warning in SSC code | *22b7c93d96
nfsd4: Expose the callback address and state of each NFS4 client | *dbc0aa4795
nfsd: move fsnotify on client creation outside spinlock | *a4bc287943
NFSD: delay unmount source's export after inter-server copy completed. | *817c6eb975
NFSD add vfs_fsync after async copy is done | *94a8924701
nfsd: move some commit_metadata()s outside the inode lock | *f666a75ccd
nfsd: Prevent truncation of an unlinked inode from blocking access to its directory | *e7bbdd7dee
NFSD: Update nfsd_cb_args tracepoint | *3e8aeb13a7
NFSD: Remove the nfsd_cb_work and nfsd_cb_done tracepoints | *3a63aa2459
NFSD: Add an nfsd_cb_probe tracepoint | *a577eb06de
NFSD: Replace the nfsd_deleg_break tracepoint | *9f76187f0a
NFSD: Add an nfsd_cb_offload tracepoint | *60aac21534
NFSD: Add an nfsd_cb_lm_notify tracepoint | *59ddc5a82b
NFSD: Enhance the nfsd_cb_setup tracepoint | *fc3b4f0188
NFSD: Adjust cb_shutdown tracepoint | *634816f9d3
NFSD: Add cb_lost tracepoint | *3076ede3fc
NFSD: Drop TRACE_DEFINE_ENUM for NFSD4_CB_<state> macros | *2be1f22751
NFSD: Capture every CB state transition | *b6ba775ccc
NFSD: Constify @fh argument of knfsd_fh_hash() | *88b3cdfd48
NFSD: Add tracepoints for EXCHANGEID edge cases | *5070351cdc
NFSD: Add tracepoints for SETCLIENTID edge cases | *650530d522
NFSD: Add a couple more nfsd_clid_expired call sites | *056332823c
NFSD: Add nfsd_clid_destroyed tracepoint | *580ec8b653
NFSD: Add nfsd_clid_reclaim_complete tracepoint | *3b6808c793
NFSD: Add nfsd_clid_confirmed tracepoint | *c6889b75a6
NFSD: Remove trace_nfsd_clid_inuse_err | *8da1871206
NFSD: Add nfsd_clid_verf_mismatch tracepoint | *c8493d7308
NFSD: Add nfsd_clid_cred_mismatch tracepoint | *b00bb7dfe2
NFSD: Add an RPC authflavor tracepoint display helper | *a4d250f510
fanotify: fix permission model of unprivileged group | *0245993ace
NFS: fix nfs_fetch_iversion() | *b2c0c7cb7f
NFSv4.2: Remove ifdef CONFIG_NFSD from NFSv4.2 client SSC code. | *3793f28102
nfsd: Fix fall-through warnings for Clang | *39ab09108e
nfsd: grant read delegations to clients holding writes | *d2431cc967
nfsd: reshuffle some code | *ee548b1629
nfsd: track filehandle aliasing in nfs4_files | *cc6d658669
nfsd: hash nfs4_files by inode number | *e63b956b2d
nfsd: removed unused argument in nfsd_startup_generic() | *856b0c4979
nfsd: remove unused function | *bd373a90d0
fanotify_user: use upper_32_bits() to verify mask | *4ac0ad2372
fanotify: support limited functionality for unprivileged users | *3e441a872a
fanotify: configurable limits via sysfs | *7df80a90e1
fanotify: limit number of event merge attempts | *40e1e98c1b
fsnotify: use hash table for faster events merge | *ae7fd89dae
fanotify: mix event info and pid into merge key hash | *5b57a2b74d
fanotify: reduce event objectid to 29-bit hash | *4f14948942
Revert "fanotify: limit number of event merge attempts" | *62b7f38473
fsnotify: allow fsnotify_{peek,remove}_first_event with empty queue | *d9168ab8d7
NFSD: Use DEFINE_SPINLOCK() for spinlock | *b20d88bf1e
UAPI: nfsfh.h: Replace one-element array with flexible-array member | *117dac268d
SUNRPC: Export svc_xprt_received() | *289adc864d
nfsd: report client confirmation status in "info" file | *14b13e0603
nfsd: don't ignore high bits of copy count | *1f76b1e659
nfsd: COPY with length 0 should copy to end of file | *ed01819390
nfsd: Fix typo "accesible" | *2a5df97ba4
nfsd: Log client tracking type log message as info instead of warning | *0fa20162bf
nfsd: helper for laundromat expiry calculations | *aab7be2475
NFSD: Clean up NFSDDBG_FACILITY macro | *e7dac943b4
NFSD: Add a tracepoint to record directory entry encoding | *a6d9f6f371
NFSD: Clean up after updating NFSv3 ACL encoders | *857a37235c
NFSD: Update the NFSv3 SETACL result encoder to use struct xdr_stream | *d505e66191
NFSD: Update the NFSv3 GETACL result encoder to use struct xdr_stream | *67d4f36707
NFSD: Clean up after updating NFSv2 ACL encoders | *3d2033a58c
NFSD: Update the NFSv2 ACL ACCESS result encoder to use struct xdr_stream | *6ef7a56fd7
NFSD: Update the NFSv2 ACL GETATTR result encoder to use struct xdr_stream | *82ac35b167
NFSD: Update the NFSv2 SETACL result encoder to use struct xdr_stream | *6677b0d16a
NFSD: Update the NFSv2 GETACL result encoder to use struct xdr_stream | *89ac9a8101
NFSD: Add an xdr_stream-based encoder for NFSv2/3 ACLs | *93584780eb
NFSD: Remove unused NFSv2 directory entry encoders | *b8658c947d
NFSD: Update the NFSv2 READDIR entry encoder to use struct xdr_stream | *801e4d79b7
NFSD: Update the NFSv2 READDIR result encoder to use struct xdr_stream | *bc17759a4e
NFSD: Count bytes instead of pages in the NFSv2 READDIR encoder | *c4e2727589
NFSD: Add a helper that encodes NFSv3 directory offset cookies | *60bc5af5b8
NFSD: Update the NFSv2 STATFS result encoder to use struct xdr_stream | *ad0614d3a8
NFSD: Update the NFSv2 READ result encoder to use struct xdr_stream | *27909a583c
NFSD: Update the NFSv2 READLINK result encoder to use struct xdr_stream | *9aab4f03e8
NFSD: Update the NFSv2 diropres encoder to use struct xdr_stream | *c64d5d0ca9
NFSD: Update the NFSv2 attrstat encoder to use struct xdr_stream | *816c23c911
NFSD: Update the NFSv2 stat encoder to use struct xdr_stream | *e4e6019ce5
NFSD: Reduce svc_rqst::rq_pages churn during READDIR operations | *d855480201
NFSD: Remove unused NFSv3 directory entry encoders | *37aa5e6402
NFSD: Update NFSv3 READDIR entry encoders to use struct xdr_stream | *7cbec0dc09
NFSD: Update the NFSv3 READDIR3res encoder to use struct xdr_stream | *cacfe8f6d8
NFSD: Count bytes instead of pages in the NFSv3 READDIR encoder | *3b2fef48b7
NFSD: Add a helper that encodes NFSv3 directory offset cookies | *30dabf1d4f
NFSD: Update the NFSv3 COMMIT3res encoder to use struct xdr_stream | *349d96b070
NFSD: Update the NFSv3 PATHCONF3res encoder to use struct xdr_stream | *4c06f831d2
NFSD: Update the NFSv3 FSINFO3res encoder to use struct xdr_stream | *f6908e2bcd
NFSD: Update the NFSv3 FSSTAT3res encoder to use struct xdr_stream | *066dc317fa
NFSD: Update the NFSv3 LINK3res encoder to use struct xdr_stream | *0404cffec4
NFSD: Update the NFSv3 RENAMEv3res encoder to use struct xdr_stream | *1863ca4c9e
NFSD: Update the NFSv3 CREATE family of encoders to use struct xdr_stream | *8737a75f26
NFSD: Update the NFSv3 WRITE3res encoder to use struct xdr_stream | *b241ab9823
NFSD: Update the NFSv3 READ3res encode to use struct xdr_stream | *170e6bd25e
NFSD: Update the NFSv3 READLINK3res encoder to use struct xdr_stream | *c3995f8be1
NFSD: Update the NFSv3 wccstat result encoder to use struct xdr_stream | *f74e0652a6
NFSD: Update the NFSv3 LOOKUP3res encoder to use struct xdr_stream | *fd9e183df6
NFSD: Update the NFSv3 ACCESS3res encoder to use struct xdr_stream | *0ef12d755c
NFSD: Update the GETATTR3res encoder to use struct xdr_stream | *48aadfa75b
NFSD: Extract the svcxdr_init_encode() helper | *e864d4d834
namei: introduce struct renamedata | *b0fa673c8c
fs: add file and path permissions helpers | *666a413295
kallsyms: only build {,module_}kallsyms_on_each_symbol when required | *f8d8568627
kallsyms: refactor {,module_}kallsyms_on_each_symbol | *bef9d8b4f8
module: use RCU to synchronize find_module | *32edffff86
module: unexport find_module and module_mutex | *51f620fcc4
inotify, memcg: account inotify instances to kmemcg | *c1fe2bb305
nfsd: skip some unnecessary stats in the v4 case | *0220d51186
nfs: use change attribute for NFS re-exports | *5a0b45626f
NFSv4_2: SSC helper should use its own config. | *b267f61182
nfsd: cstate->session->se_client -> cstate->clp | *bc6015541c
nfsd: simplify nfsd4_check_open_reclaim | *25ac4fdbdc
nfsd: remove unused set_client argument | *87ab73c1cc
nfsd: find_cpntf_state cleanup | *1d4ccfdc7d
nfsd: refactor set_client | *1700657468
nfsd: rename lookup_clientid->set_client | *ea92c0768f
nfsd: simplify nfsd_renew | *52923f25be
nfsd: simplify process_lock | *4f26b1747a
nfsd4: simplify process_lookup1 | *42cf742d86
nfsd: report per-export stats | *65b1df1358
nfsd: protect concurrent access to nfsd stats counters | *d1344de0d6
nfsd: remove unused stats counters | *0a13baa6ab
NFSD: Clean up after updating NFSv3 ACL decoders | *22af3dfbe6
NFSD: Update the NFSv2 SETACL argument decoder to use struct xdr_stream | *f89e3fa89e
NFSD: Update the NFSv3 GETACL argument decoder to use struct xdr_stream | *5ea5e56cfb
NFSD: Clean up after updating NFSv2 ACL decoders | *81f79eb223
NFSD: Update the NFSv2 ACL ACCESS argument decoder to use struct xdr_stream | *9eea3915dd
NFSD: Update the NFSv2 ACL GETATTR argument decoder to use struct xdr_stream | *508a791fbe
NFSD: Update the NFSv2 SETACL argument decoder to use struct xdr_stream | *e077857ef0
NFSD: Add an xdr_stream-based decoder for NFSv2/3 ACLs | *ea6b0e02dc
NFSD: Update the NFSv2 GETACL argument decoder to use struct xdr_stream | *e440613886
NFSD: Remove argument length checking in nfsd_dispatch() | *7e6746027b
NFSD: Update the NFSv2 SYMLINK argument decoder to use struct xdr_stream | *1db54ce543
NFSD: Update the NFSv2 CREATE argument decoder to use struct xdr_stream | *40de4113f8
NFSD: Update the NFSv2 SETATTR argument decoder to use struct xdr_stream | *ebfb21605f
NFSD: Update the NFSv2 LINK argument decoder to use struct xdr_stream | *a362dd478b
NFSD: Update the NFSv2 RENAME argument decoder to use struct xdr_stream | *0047abd4c4
NFSD: Update NFSv2 diropargs decoding to use struct xdr_stream | *7d9ab8ee57
NFSD: Update the NFSv2 READDIR argument decoder to use struct xdr_stream | *672111a408
NFSD: Add helper to set up the pages where the dirlist is encoded | *365835d2ff
NFSD: Update the NFSv2 READLINK argument decoder to use struct xdr_stream | *ecee6ba592
NFSD: Update the NFSv2 WRITE argument decoder to use struct xdr_stream | *6e88b7ec6c
NFSD: Update the NFSv2 READ argument decoder to use struct xdr_stream | *ba7e0412fb
NFSD: Update the NFSv2 GETATTR argument decoder to use struct xdr_stream | *9ceeee0ec8
NFSD: Update the MKNOD3args decoder to use struct xdr_stream | *8841760f68
NFSD: Update the SYMLINK3args decoder to use struct xdr_stream | *b5d1ae6cc4
NFSD: Update the MKDIR3args decoder to use struct xdr_stream | *bd54084b58
NFSD: Update the CREATE3args decoder to use struct xdr_stream | *48ea0cb79b
NFSD: Update the SETATTR3args decoder to use struct xdr_stream | *71d7e7c6a6
NFSD: Update the LINK3args decoder to use struct xdr_stream | *e84af23391
NFSD: Update the RENAME3args decoder to use struct xdr_stream | *69e54a4470
NFSD: Update the NFSv3 DIROPargs decoder to use struct xdr_stream | *47614a374e
NFSD: Update COMMIT3arg decoder to use struct xdr_stream | *fbcd668016
NFSD: Update READDIR3args decoders to use struct xdr_stream | *e0ddafcc25
NFSD: Add helper to set up the pages where the dirlist is encoded | *29270d477f
NFSD: Fix returned READDIR offset cookie | *19285d319f
NFSD: Update READLINK3arg decoder to use struct xdr_stream | *5f36ae59d6
NFSD: Update WRITE3arg decoder to use struct xdr_stream | *b77a4a968d
NFSD: Update READ3arg decoder to use struct xdr_stream | *7bb23be450
NFSD: Update ACCESS3arg decoder to use struct xdr_stream | *d668aa92a6
NFSD: Update GETATTR3args decoder to use struct xdr_stream | *22b19656ea
SUNRPC: Move definition of XDR_UNIT | *97d254cba3
SUNRPC: Display RPC procedure names instead of proc numbers | *c336597d03
SUNRPC: Make trace_svc_process() display the RPC procedure symbolically | *5b82798f78
NFSD: Restore NFSv4 decoding's SAVEMEM functionality | *bca0057f68
NFSD: Fix sparse warning in nfssvc.c | *131676b824
fs/lockd: convert comma to semicolon | *185e81a977
inotify: Increase default inotify.max_user_watches limit to 1048576 | *1aecdaa7e2
file: Replace ksys_close with close_fd | *6d256a904c
file: Rename __close_fd to close_fd and remove the files parameter | *7458c5ae46
file: Merge __alloc_fd into alloc_fd | *9e8ef54ca8
file: In f_dupfd read RLIMIT_NOFILE once. | *89f9e52964
file: Merge __fd_install into fd_install | *b4b827da90
proc/fd: In fdinfo seq_show don't use get_files_struct | *c0e3f6df04
proc/fd: In proc_readfd_common use task_lookup_next_fd_rcu | *a6da7536e4
file: Implement task_lookup_next_fd_rcu | *6007aeeaef
kcmp: In get_file_raw_ptr use task_lookup_fd_rcu | *c2291f7bdf
proc/fd: In tid_fd_mode use task_lookup_fd_rcu | *32ac87287d
file: Implement task_lookup_fd_rcu | *c4716bb296
file: Rename fcheck lookup_fd_rcu | *23f5564992
file: Replace fcheck_files with files_lookup_fd_rcu | *9080557c56
file: Factor files_lookup_fd_locked out of fcheck_files | *ddb21f9984
file: Rename __fcheck_files to files_lookup_fd_raw | *e6f42bc11a
Revert "fget: clarify and improve __fget_files() implementation" | *4d037e1173
proc/fd: In proc_fd_link use fget_task | *c874ec02cb
bpf: In bpf_task_fd_query use fget_task | *fe1722255e
kcmp: In kcmp_epoll_target use fget_task | *ba7aac19b4
exec: Remove reset_files_struct | *44f79df28b
exec: Simplify unshare_files | *5091d051c5
exec: Move unshare_files to fix posix file locking during exec | *527c9b6eb1
exec: Don't open code get_close_on_exec | *8f1df3d0c1
nfsd: Record NFSv4 pre/post-op attributes as non-atomic | *0750e494c7
nfsd: Set PF_LOCAL_THROTTLE on local filesystems only | *f3056a0ac2
nfsd: Fix up nfsd to ensure that timeout errors don't result in ESTALE | *38e213c1e4
exportfs: Add a function to return the raw output from fh_to_dentry() | *93f7d515d8
nfsd: close cached files prior to a REMOVE or RENAME that would replace target | *203ca3253b
nfsd: allow filesystems to opt out of subtree checking | *d5314c9bb7
nfsd: add a new EXPORT_OP_NOWCC flag to struct export_operations | *34de27ed84
Revert "nfsd4: support change_attr_type attribute" | *b720ceec88
nfsd4: don't query change attribute in v2/v3 case | *796785a79b
nfsd: minor nfsd4_change_attribute cleanup | *88dea0f92b
nfsd: simplify nfsd4_change_info | *f8032b859d
nfsd: only call inode_query_iversion in the I_VERSION case | *3aea16e6b7
NFSD: Remove macros that are no longer used | *b24e6a40ee
NFSD: Replace READ* macros in nfsd4_decode_compound() | *6b48808835
NFSD: Make nfsd4_ops::opnum a u32 | *c2d0c16990
NFSD: Replace READ* macros in nfsd4_decode_listxattrs() | *8e1b8a78a9
NFSD: Replace READ* macros in nfsd4_decode_setxattr() | *9bc67df0f9
NFSD: Replace READ* macros in nfsd4_decode_xattr_name() | *b719fc9375
NFSD: Replace READ* macros in nfsd4_decode_clone() | *a2f6c16ad1
NFSD: Replace READ* macros in nfsd4_decode_seek() | *f8eb5424e3
NFSD: Replace READ* macros in nfsd4_decode_offload_status() | *c2d2a919b2
NFSD: Replace READ* macros in nfsd4_decode_copy_notify() | *8604d294c1
NFSD: Replace READ* macros in nfsd4_decode_copy() | *dc1a31ca8e
NFSD: Replace READ* macros in nfsd4_decode_nl4_server() | *a0b8dabc59
NFSD: Replace READ* macros in nfsd4_decode_fallocate() | *de0dc37a79
NFSD: Replace READ* macros in nfsd4_decode_reclaim_complete() | *093f9d2c8f
NFSD: Replace READ* macros in nfsd4_decode_destroy_clientid() | *7675420fde
NFSD: Replace READ* macros in nfsd4_decode_test_stateid() | *f0de0b6895
NFSD: Replace READ* macros in nfsd4_decode_sequence() | *1ea743dc48
NFSD: Replace READ* macros in nfsd4_decode_secinfo_no_name() | *b63e313dce
NFSD: Replace READ* macros in nfsd4_decode_layoutreturn() | *40e627c502
NFSD: Replace READ* macros in nfsd4_decode_layoutget() | *40770a0f8e
NFSD: Replace READ* macros in nfsd4_decode_layoutcommit() | *c0a4c4e46b
NFSD: Replace READ* macros in nfsd4_decode_getdeviceinfo() | *5f892c1178
NFSD: Replace READ* macros in nfsd4_decode_free_stateid() | *92ae309a99
NFSD: Replace READ* macros in nfsd4_decode_destroy_session() | *73684a8118
NFSD: Replace READ* macros in nfsd4_decode_create_session() | *2bd9ef494a
NFSD: Add a helper to decode channel_attrs4 | *d01f41320d
NFSD: Add a helper to decode nfs_impl_id4 | *d50a76f1f3
NFSD: Add a helper to decode state_protect4_a | *0c935af3cf
NFSD: Add a separate decoder for ssv_sp_parms | *cb568dbdef
NFSD: Add a separate decoder to handle state_protect_ops | *b736338042
NFSD: Replace READ* macros in nfsd4_decode_bind_conn_to_session() | *7d21084074
NFSD: Replace READ* macros in nfsd4_decode_backchannel_ctl() | *5658ca0651
NFSD: Replace READ* macros in nfsd4_decode_cb_sec() | *79f1a8323a
NFSD: Replace READ* macros in nfsd4_decode_release_lockowner() | *eeab2f3bf2
NFSD: Replace READ* macros in nfsd4_decode_write() | *b1af8f131e
NFSD: Replace READ* macros in nfsd4_decode_verify() | *19a4c05e81
NFSD: Replace READ* macros in nfsd4_decode_setclientid_confirm() | *2503dcf0f6
NFSD: Replace READ* macros in nfsd4_decode_setclientid() | *7c06ba5c8b
NFSD: Replace READ* macros in nfsd4_decode_setattr() | *5277d60346
NFSD: Replace READ* macros in nfsd4_decode_secinfo() | *2cef1009f8
NFSD: Replace READ* macros in nfsd4_decode_renew() | *e2b287a53c
NFSD: Replace READ* macros in nfsd4_decode_rename() | *274b8f0597
NFSD: Replace READ* macros in nfsd4_decode_remove() | *c24e2a4943
NFSD: Replace READ* macros in nfsd4_decode_readdir() | *d0a0219a35
NFSD: Replace READ* macros in nfsd4_decode_read() | *4b28cd7e83
NFSD: Replace READ* macros in nfsd4_decode_putfh() | *ad1ea32c97
NFSD: Replace READ* macros in nfsd4_decode_open_downgrade() | *e557a2eabb
NFSD: Replace READ* macros in nfsd4_decode_open_confirm() | *f6eb911d79
NFSD: Replace READ* macros in nfsd4_decode_open() | *4507c23e42
NFSD: Add helper to decode OPEN's open_claim4 argument | *48385b58bc
NFSD: Replace READ* macros in nfsd4_decode_share_deny() | *fa60cc6971
NFSD: Replace READ* macros in nfsd4_decode_share_access() | *070df4a4e9
NFSD: Add helper to decode OPEN's openflag4 argument | *c1ea8812d4
NFSD: Add helper to decode OPEN's createhow4 argument | *11ea3e65f0
NFSD: Add helper to decode NFSv4 verifiers | *def95074db
NFSD: Replace READ* macros in nfsd4_decode_lookup() | *340878b2e0
NFSD: Replace READ* macros in nfsd4_decode_locku() | *3625de1522
NFSD: Replace READ* macros in nfsd4_decode_lockt() | *8357985d21
NFSD: Replace READ* macros in nfsd4_decode_lock() | *d27f2dceda
NFSD: Add helper for decoding locker4 | *0c281b7083
NFSD: Add helpers to decode a clientid4 and an NFSv4 state owner | *753bb6b0e7
NFSD: Relocate nfsd4_decode_opaque() | *84bc365eee
NFSD: Replace READ* macros in nfsd4_decode_link() | *42c4437d78
NFSD: Replace READ* macros in nfsd4_decode_getattr() | *42e319695e
NFSD: Replace READ* macros in nfsd4_decode_delegreturn() | *3012fe5fea
NFSD: Replace READ* macros in nfsd4_decode_create() | *57516a96ca
NFSD: Replace READ* macros in nfsd4_decode_fattr() | *9737a9a8f9
NFSD: Replace READ* macros that decode the fattr4 umask attribute | *91a6752dad
NFSD: Replace READ* macros that decode the fattr4 security label attribute | *064e439bef
NFSD: Replace READ* macros that decode the fattr4 time_set attributes | *df42ebb61b
NFSD: Replace READ* macros that decode the fattr4 owner_group attribute | *dec78fb66d
NFSD: Replace READ* macros that decode the fattr4 owner attribute | *8801b0c284
NFSD: Replace READ* macros that decode the fattr4 mode attribute | *3d3690b662
NFSD: Replace READ* macros that decode the fattr4 acl attribute | *ee02662724
NFSD: Replace READ* macros that decode the fattr4 size attribute | *2a8ae03957
NFSD: Change the way the expected length of a fattr4 is checked | *f82c6ad7e2
NFSD: Replace READ* macros in nfsd4_decode_commit() | *c701c0e5a9
NFSD: Replace READ* macros in nfsd4_decode_close() | *9921353a52
NFSD: Replace READ* macros in nfsd4_decode_access() | *bbb0a710a2
NFSD: Replace the internals of the READ_BUF() macro | *2994c88884
NFSD: Add tracepoints in nfsd4_decode/encode_compound() | *568f9ca73d
NFSD: Add tracepoints in nfsd_dispatch() | *fbffaddb76
NFSD: Add common helpers to decode void args and encode void results | *79e4e0d489
SUNRPC: Prepare for xdr_stream-style decoding on the server-side | *2f46cc8141
SUNRPC: Add xdr_set_scratch_page() and xdr_reset_scratch_buffer() | *164937edca
nfsd: Fix error return code in nfsd_file_cache_init() | *9393f1628f
NFSD: Add SPDX header for fs/nfsd/trace.c | *a7b8e883ce
NFSD: Remove extra "0x" in tracepoint format specifier | *9f8405182b
NFSD: Clean up the show_nf_may macro | *e513685101
nfsd/nfs3: remove unused macro nfsd3_fhandleres | *92f59545b9
NFSD: A semicolon is not needed after a switch statement. | *a2f25c3208
NFSD: Invoke svc_encode_result_payload() in "read" NFSD encoders | *9aa0a43a55
SUNRPC: Rename svc_encode_read_payload() * |640645c85b
Revert "drm/mipi-dsi: use correct return type for the DSC functions" * |e4f3376872
Revert "media: cec: fix a deadlock situation" * |12d97237e4
Revert "media: cec: call enable_adap on s_log_addrs" * |f257da513d
Revert "media: cec: abort if the current transmit was canceled" * |baa6c4164b
Revert "media: cec: correctly pass on reply results" * |802e36bc55
Revert "media: cec: use call_op and check for !unregistered" * |590dc9d34f
Revert "media: cec-adap.c: drop activate_cnt, use state info instead" * |c0342019d8
Revert "media: cec: core: avoid confusing "transmit timed out" message" * |8047831dc6
Revert "media: cec: core: avoid recursive cec_claim_log_addrs" * |0546f6a05d
Revert "media: cec: core: add adap_nb_transmit_canceled() callback" * |054258ff89
ANDROID: ABI fixup for abi break in struct dst_ops * |fedef46c69
Merge 5.10.219 into android12-5.10-lts |/ *a2ed160621
Linux 5.10.219 *487489c4c8
RDMA/hns: Fix CQ and QP cache affinity *68a9559376
RDMA/hns: Use mutex instead of spinlock for ida allocation *5fe764c781
f2fs: compress: fix compression chksum *d7ae4792b5
scsi: ufs: ufs-qcom: Clear qunipro_g4_sel for HW major version > 5 *6285d50a23
NFS: Fix READ_PLUS when server doesn't support OP_READ_PLUS *3e41609e62
nfs: fix undefined behavior in nfs_block_bits() *7360cef95a
s390/ap: Fix crash in AP internal function modify_bitmap() *76dc776153
ext4: fix mb_cache_entry's e_refcnt leak in ext4_xattr_block_cache_find() *08018302f2
sparc: move struct termio to asm/termios.h *2295a7ef5c
net: fix __dst_negative_advice() race *51664ef6ac
kdb: Use format-specifiers rather than memset() for padding in kdb_read() *e3d11ff45f
kdb: Merge identical case statements in kdb_read() *2b5e1534df
kdb: Fix console handling when editing and tab-completing commands *7c19e28f3a
kdb: Use format-strings rather than '\0' injection in kdb_read() *cfdc2fa4db
kdb: Fix buffer overflow during tab-complete *b487b48efd
watchdog: rti_wdt: Set min_hw_heartbeat_ms to accommodate a safety margin *161f5a1189
sparc64: Fix number of online CPUs *6e7dd338c0
intel_th: pci: Add Meteor Lake-S CPU support *1249478555
net/9p: fix uninit-value in p9_client_rpc() *3cc7687f7f
net/ipv6: Fix route deleting failure when metric equals 0 *a718b6d2a3
crypto: qat - Fix ADF_DEV_RESET_SYNC memory leak *6815376b7f
crypto: ecrdsa - Fix module auto-load on add_key *4d8226bc7e
KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode *32f92b0078
fbdev: savage: Handle err return when savagefb_check_var failed *68447c350f
mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A *63eda0f3eb
mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not working *b3418751cc
mmc: sdhci-acpi: Sort DMI quirks alphabetically *24b7af86a8
mmc: core: Add mmc_gpiod_set_cd_config() function *e6823bb7f4
media: v4l2-core: hold videodev_lock until dev reg, finishes *567d3a4959
media: mxl5xx: Move xpt structures off stack *1514e1fb2a
media: mc: mark the media devnode as registered from the, start *82e6eba1a5
arm64: dts: hi3798cv200: fix the size of GICR *c539721e90
wifi: rtlwifi: rtl8192de: Fix endianness issue in RX path *6d5bfcd2cc
wifi: rtlwifi: rtl8192de: Fix low speed with WPA3-SAE *8dffc574c7
wifi: rtl8xxxu: Fix the TX power of RTL8192CU, RTL8723AU *aa64464c8f
md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING *1f26711c08
arm64: dts: qcom: qcs404: fix bluetooth device address *5cd0428356
arm64: tegra: Correct Tegra132 I2C alias *e2c6a9b342
ACPI: resource: Do IRQ override on TongFang GXxHRXx and GMxHGxx *73485d6bd9
ata: pata_legacy: make legacy_exit() work again *8112fa72b7
drm/amdgpu: add error handle to avoid out-of-bounds *b479fd59a1
media: lgdt3306a: Add a check against null-pointer-def *75c87e2ac6
f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode() *cade34279c
netfilter: nf_tables: Fix potential data-race in __nft_obj_type_get() *9c1c2ea099
netfilter: nf_tables: restrict tunnel object to NFPROTO_NETDEV *a447f26830
x86/mm: Remove broken vsyscall emulation code from the page fault code *3ee36f0048
vxlan: Fix regression when dropping packets due to invalid src addresses *67fa90d4a2
nilfs2: fix use-after-free of timer for log writer thread *e31fe702ed
afs: Don't cross .backup mountpoint from backup volume *b6920325ac
io_uring: fail NOP if non-zero op flags is passed in *54e8f88d2b
mmc: core: Do not force a retune before RPMB switch *75805481c3
binder: fix max_thread type inconsistency *4cefcd0af7
SUNRPC: Fix loop termination condition in gss_free_in_token_pages() *0cf6693d3f
media: cec: core: add adap_nb_transmit_canceled() callback *6752dfcfff
genirq/cpuhotplug, x86/vector: Prevent vector leak during CPU offline *bdd0aa055b
ALSA: timer: Set lower bound of start tick time *1f4b848935
hwmon: (shtc1) Fix property misspelling *1abbf079da
ipvlan: Dont Use skb->sk in ipvlan_process_v{4,6}_outbound *3c5caaef46
spi: stm32: Don't warn about spurious interrupts *19e5a3d771
kconfig: fix comparison to constant symbols, 'm', 'n' *07eeedafc5
netfilter: tproxy: bail out if IP has been disabled on the device *ddd2912a94
net:fec: Add fec_enet_deinit() *29467edc23
bpf: Allow delete from sockmap/sockhash only if update is allowed *117cacd72c
net: usb: smsc95xx: fix changing LED_SEL bit value updated from EEPROM *3c0d36972e
enic: Validate length of nl attributes in enic_set_vf_port *540d73a5c0
bpf: Fix potential integer overflow in resolve_btfids *ae6fc4e6a3
dma-buf/sw-sync: don't enable IRQ from sync_print_obj() *72c6038d23
net/mlx5e: Use rx_missed_errors instead of rx_dropped for reporting buffer exhaustion *82fdfbf242
nvmet: fix ns enable/disable possible hang *5f72ba46f1
spi: Don't mark message DMA mapped when no transfer in it is *7ca9cf24b0
netfilter: nft_payload: restore vlan q-in-q match support *e01065b339
netfilter: nfnetlink_queue: acquire rcu_read_lock() in instance_destroy_rcu() *0f26983c24
nfc: nci: Fix handling of zero-length payload packets in nci_rx_work() *728fb8b3b5
nfc: nci: Fix kcov check in nci_rx_work() *d72e126e9a
tls: fix missing memory barrier in tls_init *cb95173e6c
net: fec: avoid lock evasion when reading pps_enable *7fbe54f02a
virtio: delete vq in vp_find_vqs_msix() when request_irq() fails *461a760d57
arm64: asm-bug: Add .align 2 to the end of __BUG_ENTRY *8cae65ace4
openvswitch: Set the skbuff pkt_type for proper pmtud support. *e9b2f60636
tcp: Fix shift-out-of-bounds in dctcp_update_alpha(). *42bd4e491c
params: lift param_set_uint_minmax to common code *daf341e0a2
ipv6: sr: fix memleak in seg6_hmac_init_algo *1c65ebce7d
rpcrdma: fix handling for RDMA_CM_EVENT_DEVICE_REMOVAL *f2b326b774
sunrpc: fix NFSACL RPC retry on soft mount *6f39d5aae6
ASoC: tas2552: Add TX path for capturing AUDIO-OUT data *f80b786ab0
nfc: nci: Fix uninit-value in nci_rx_work *ee6a497844
x86/kconfig: Select ARCH_WANT_FRAME_POINTERS again when UNWINDER_FRAME_POINTER=y *8fb8be0e3b
regulator: bd71828: Don't overwrite runtime voltages *a2b0c3a6d4
null_blk: Fix the WARNING: modpost: missing MODULE_DESCRIPTION() *3166b2dffa
media: cec: core: avoid confusing "transmit timed out" message *5103090f4e
media: cec: core: avoid recursive cec_claim_log_addrs *3e938b7d40
media: cec-adap.c: drop activate_cnt, use state info instead *73ef9ae980
media: cec: use call_op and check for !unregistered *8fa7e4896f
media: cec: correctly pass on reply results *b64cb24a9e
media: cec: abort if the current transmit was canceled *2c67f3634f
media: cec: call enable_adap on s_log_addrs *0ab74ae99f
media: cec: fix a deadlock situation *ca55f013be
media: core headers: fix kernel-doc warnings *9f6da5da3d
media: cec: cec-api: add locking in cec_release() *a0ca5ff242
media: cec: cec-adap: always cancel work in cec_transmit_msg_fh *6be4923ade
um: Fix the -Wmissing-prototypes warning for __switch_mm *12ea1ec137
powerpc/pseries: Add failure related checks for h_get_mpp and h_get_ppp *a2d61b328e
media: flexcop-usb: fix sanity check of bNumEndpoints *c11caf1339
media: flexcop-usb: clean up endpoint sanity checks *ca17da9000
scsi: qla2xxx: Replace all non-returning strlcpy() with strscpy() *a16775828a
media: stk1160: fix bounds checking in stk1160_copy_video() *f4b3d2585b
drm/bridge: tc358775: fix support for jeida-18 and jeida-24 *4d5ef7face
um: vector: fix bpfflash parameter evaluation *351d1a6454
um: Add winch to winch_handlers before registering winch IRQ *1ef5d235be
um: Fix return value in ubd_init() *96b9ed94dc
drm/msm/dpu: Always flush the slave INTF on the CTL *a3bb8070b7
Input: pm8xxx-vibrator - correct VIB_MAX_LEVELS calculation *580e47c282
mmc: sdhci_am654: Fix ITAPDLY for HS400 timing *2621bf50f5
mmc: sdhci_am654: Add ITAPDLYSEL in sdhci_j721e_4bit_set_clock *b55d988df1
mmc: sdhci_am654: Add OTAP/ITAP delay enable *76f2b3ccbd
mmc: sdhci_am654: Drop lookup for deprecated ti,otap-del-sel *8dcfbb27e4
mmc: sdhci_am654: Write ITAPDLY for DDR52 timing *e7a444a35e
mmc: sdhci_am654: Add tuning algorithm for delay chain *52f8d76769
Input: ioc3kbd - add device table *0096d223f7
Input: ioc3kbd - convert to platform remove callback returning void *abeaeaee7f
Input: ims-pcu - fix printf string overflow *adc7dc29b7
s390/ipl: Fix incorrect initialization of nvme dump block *66a02effb8
s390/ipl: Fix incorrect initialization of len fields in nvme reipl block *ec43f32f66
libsubcmd: Fix parse-options memory leak *158adcb7fd
serial: sh-sci: protect invalidating RXDMA on shutdown *b8962cf985
f2fs: compress: don't allow unaligned truncation on released compress inode *c1958b978d
f2fs: fix to release node block count in error path of f2fs_new_node_page() *a6e1f7744e
f2fs: compress: fix to cover {reserve,release}_compress_blocks() w/ cp_rwsem lock *4b6e5edefd
PCI/EDR: Align EDR_PORT_LOCATE_DSM with PCI Firmware r3.3 *d2e2e90c76
PCI/EDR: Align EDR_PORT_DPC_ENABLE_DSM with PCI Firmware r3.3 *9ca02da316
extcon: max8997: select IRQ_DOMAIN instead of depending on it *d32caf5137
ppdev: Add an error check in register_device *9349e1f2c9
ppdev: Remove usage of the deprecated ida_simple_xx() API *713fc00c57
stm class: Fix a double free in stm_register_device() *7716b201d2
usb: gadget: u_audio: Clear uac pointer when freed. *23209f947d
microblaze: Remove early printk call from cpuinfo-static.c *34ff72bb5d
microblaze: Remove gcc flag for non existing early_printk.c file *26e6e25d74
fpga: region: add owner module and take its refcount *af02dec83a
fpga: region: Use standard dev_release for class driver *b089bb733c
docs: driver-api: fpga: avoid using UTF-8 chars *9fdd3d1cd0
fpga: region: Rename dev to parent for parent device *840c9c7d6a
fpga: region: change FPGA indirect article to an *be76107dc4
iio: pressure: dps310: support negative temperature values *cdbe0477a0
f2fs: fix to check pinfile flag in f2fs_move_file_range() *2b16554fb2
f2fs: fix to relocate check condition in f2fs_fallocate() *f1169d2b2a
f2fs: fix typos in comments *bdca4b6786
f2fs: do not allow partial truncation on pinned file *d992b78026
f2fs: fix to force keeping write barrier for strict fsync mode *eebbc4eb7e
f2fs: add cp_error check in f2fs_write_compressed_pages *431ecafbff
f2fs: compress: fix to relocate check condition in f2fs_{release,reserve}_compress_blocks() *8e1651cd66
f2fs: introduce FI_COMPRESS_RELEASED instead of using IMMUTABLE bit *486009bc2f
f2fs: compress: remove unneeded preallocation *df4978d968
f2fs: compress: clean up parameter of __f2fs_cluster_blocks() *5b09d2e790
f2fs: add compress_mode mount option *70fb69e05a
f2fs: compress: support chksum *1ada965692
serial: sc16is7xx: add proper sched.h include for sched_set_fifo() *276bc8a7dc
greybus: arche-ctrl: move device table to its right location *d1f67d1d8c
serial: max3100: Fix bitwise types *e8e2a4339d
serial: max3100: Update uart_driver_registered on driver removal *cc121e3722
serial: max3100: Lock port->lock when calling uart_handle_cts_change() *bc40d0e356
firmware: dmi-id: add a release callback function *83e078085f
dmaengine: idma64: Add check for dma_set_max_seg_size *fd4bcb991e
soundwire: cadence: fix invalid PDI offset *7b98f1493a
f2fs: fix to wait on page writeback in __clone_blkaddrs() *eac10cf3a9
greybus: lights: check return of get_channel_from_mode *ae20865fe6
sched/fair: Allow disabling sched_balance_newidle with sched_relax_domain_level *e892f9932d
af_packet: do not call packet_read_pending() from tpacket_destruct_skb() *b117e5b4f2
netrom: fix possible dead-lock in nr_rt_ioctl() *cafccde429
net: qrtr: ns: Fix module refcnt *66fd37d0a8
net: qrtr: fix null-ptr-deref in qrtr_ns_remove *3e83903cd4
RDMA/IPoIB: Fix format truncation compilation errors *68e8c44c0d
selftests/kcmp: remove unused open mode *08df7b006c
selftests/kcmp: Make the test output consistent and clear *f148a95f68
SUNRPC: Fix gss_free_in_token_pages() *e28a16af4c
ext4: fix potential unnitialized variable *4deaa4d5f8
ext4: remove unused parameter from ext4_mb_new_blocks_simple() *fdbce45449
ext4: try all groups in ext4_mb_new_blocks_simple *e498c2f441
ext4: fix unit mismatch in ext4_mb_new_blocks_simple *f49c865d5b
ext4: simplify calculation of blkoff in ext4_mb_new_blocks_simple *2a2bba3cbd
sunrpc: removed redundant procp check *7c9ab0a449
ext4: avoid excessive credit estimate in ext4_tmpfile() *4d693ca24a
x86/insn: Fix PUSH instruction in x86 instruction decoder opcode map *9ff328de02
clk: qcom: mmcc-msm8998: fix venus clock issue *45b31be4dd
RDMA/hns: Modify the print level of CQE error *9cce44567f
RDMA/hns: Use complete parentheses in macros *9efed7448b
RDMA/hns: Fix return value in hns_roce_map_mr_sg *4c91ad5ed5
RDMA/hns: Fix incorrect symbol types *e612e695d3
RDMA/hns: Create QP with selected QPN for bank load balance *3c3744c309
RDMA/hns: Refactor the hns_roce_buf allocation flow *eb9635b4a9
drm/mipi-dsi: use correct return type for the DSC functions *5d344b3089
drm/panel: simple: Add missing Innolux G121X1-L03 format, flags, connector *f10aa595ee
drm/bridge: tc358775: Don't log an error when DSI host can't be found *ee751403fb
drm/bridge: lt9611: Don't log an error when DSI host can't be found *3ce31a0e37
ASoC: tracing: Export SND_SOC_DAPM_DIR_OUT to its value *2d9adecc88
drm: vc4: Fix possible null pointer dereference *a5fa5b40a2
drm/arm/malidp: fix a possible null pointer dereference *4b68b861b5
media: atomisp: ssh_css: Fix a null-pointer dereference in load_video_binaries *08ce354f3d
fbdev: sh7760fb: allow modular build *85d1a27402
drm: bridge: cdns-mhdp8546: Fix possible null pointer dereference *552280a992
media: radio-shark2: Avoid led_names truncations *409f20085d
media: ngene: Add dvb_ca_en50221_init return value check *bb3c425921
fbdev: sisfb: hide unused variables *94349e015c
powerpc/fsl-soc: hide unused const variable *d17b75ee9c
drm/mediatek: Add 0 size check to mtk_drm_gem_obj *7441f9e056
drm/meson: vclk: fix calculation of 59.94 fractional rates *078e02dcb4
fbdev: shmobile: fix snprintf truncation *d3727d6e2b
mtd: rawnand: hynix: fixed typo *613a349cbf
ASoC: Intel: Disable route checks for Skylake boards *ece8098579
ASoC: soc-acpi: add helper to identify parent driver. *04bc4d1090
drm/amd/display: Fix potential index out of bounds in color transformation function *f6fbb8535e
net/mlx5: Discard command completions in internal error *00e6335329
ipv6: sr: fix invalid unregister error path *d33327a7c0
ipv6: sr: fix incorrect unregister order *1ba1b4cc3a
ipv6: sr: add missing seg6_local_exit *5ab6aecbed
net: openvswitch: fix overwriting ct original tuple for ICMPv6 *c3dc80f633
net: usb: smsc95xx: stop lying about skb->truesize *4d51845d73
af_unix: Fix data races in unix_release_sock/unix_stream_sendmsg *161e43067b
net: ethernet: cortina: Locking fixes *e22b23f588
eth: sungem: remove .ndo_poll_controller to avoid deadlocks *ad31e0e765
net: ipv6: fix wrong start position when receive hop-by-hop fragment *3eccf76b57
m68k: mac: Fix reboot hang on Mac IIci *4eeffecc8e
m68k: Fix spinlock race in kernel thread creation *d50b11c21f
net: usb: sr9700: stop lying about skb->truesize *2093cc6e87
usb: aqc111: stop lying about skb->truesize *4cff6817ee
wifi: mwl8k: initialize cmd->addr[] properly *769b9fd2af
scsi: qedf: Ensure the copied buf is NUL terminated *00b425ff08
scsi: bfa: Ensure the copied buf is NUL terminated *2321281f19
HID: intel-ish-hid: ipc: Add check for pci_alloc_irq_vectors *2bd97a0868
selftests/binderfs: use the Makefile's rules, not Make's implicit rules *019ae041a5
Revert "sh: Handle calling csum_partial with misaligned data" *3557a7fc5c
sh: kprobes: Merge arch_copy_kprobe() into arch_prepare_kprobe() *ee25389df8
wifi: ar5523: enable proper endpoint verification *8650725bb0
wifi: carl9170: add a proper sanity check for endpoints *280619bbde
macintosh/via-macii: Fix "BUG: sleeping function called from invalid context" *9d13202922
net: give more chances to rcu in netdev_wait_allrefs_any() *bc7cae63fa
tcp: avoid premature drops in tcp_add_backlog() *88aa40df8e
wifi: ath10k: populate board data for WCN3990 *5c4756e0fb
wifi: ath10k: Fix an error code problem in ath10k_dbg_sta_write_peer_debug_trigger() *1b27468dbe
x86/purgatory: Switch to the position-independent small code model *176fb7770d
scsi: hpsa: Fix allocation size for Scsi_Host private data *0dc60ee1ed
scsi: libsas: Fix the failure of adding phy with zero-address to port *69fab9d2e2
udp: Avoid call to compute_score on multiple sites *452f8dc251
net: remove duplicate reuseport_lookup functions *0ce990e6ef
net: export inet_lookup_reuseport and inet6_lookup_reuseport *dfc56ff5ec
cpufreq: exit() callback is optional *92aca16797
cpufreq: Rearrange locking in cpufreq_remove_dev() *19b06dec36
cpufreq: Split cpufreq_offline() *3a28fbf533
cpufreq: Reorganize checks in cpufreq_offline() *7a4d18a27d
selftests/bpf: Fix umount cgroup2 error in test_sockmap *dd52e3bc4f
gfs2: Fix "ignore unlock failures after withdraw" *11f9bd1102
ACPI: disable -Wstringop-truncation *a8f0a14c3b
irqchip/loongson-pch-msi: Fix off-by-one on allocation error path *f31b49ba36
irqchip/alpine-msi: Fix off-by-one in allocation error path *bb291d4d08
scsi: ufs: core: Perform read back after disabling UIC_COMMAND_COMPL *3bbfbd5a36
scsi: ufs: core: Perform read back after disabling interrupts *bbc00d1b7a
scsi: ufs: cdns-pltfrm: Perform read back after writing HCLKDIV *dca9754276
scsi: ufs: qcom: Perform read back after writing CGC enable *c8f2eefc49
scsi: ufs: qcom: Perform read back after writing unipro mode *506f63e97d
scsi: ufs: ufs-qcom: Clear qunipro_g4_sel for HW version major 5 *ee4bf03d26
scsi: ufs: ufs-qcom: Fix the Qcom register name for offset 0xD0 *d113c66bb4
scsi: ufs: qcom: Perform read back after writing REG_UFS_SYS1CLK_1US *82783759e8
scsi: ufs-qcom: Fix ufs RST_n spec violation *d193f4a153
scsi: ufs: qcom: Perform read back after writing reset bit *742f580670
qed: avoid truncating work queue length *01ea6818fa
x86/boot: Ignore relocations in .notes sections in walk_relocs() too *5fb37c456d
wifi: ath10k: poll service ready message before failing *3f5b73ef8f
md: fix resync softlockup when bitmap size is less than array size *c62f315238
null_blk: Fix missing mutex_destroy() at module removal *b2f8354f73
soc: mediatek: cmdq: Fix typo of CMDQ_JUMP_RELATIVE *f0eea095ce
jffs2: prevent xattr node from overflowing the eraseblock *de1207e5fd
s390/cio: fix tracepoint subchannel type field *9f6dbd0aa1
crypto: x86/sha256-avx2 - add missing vzeroupper *0ceb0a40c5
crypto: x86/nh-avx2 - add missing vzeroupper *6cd2cbd553
crypto: ccp - drop platform ifdef checks *f24cac6459
parisc: add missing export of __cmpxchg_u8() *dae53e39cd
nilfs2: fix out-of-range warning *edbfc42ab0
ecryptfs: Fix buffer size for tag 66 packet *e05ee61361
firmware: raspberrypi: Use correct device for DMA mappings *ebed0d666f
crypto: bcm - Fix pointer arithmetic *a81f072e50
openpromfs: finish conversion to the new mount API *904a590dab
nvme: find numa distance only if controller has valid numa id *5b4d14a0bc
drm/amdkfd: Flush the process wq before creating a kfd_process *eb464a8d82
ASoC: da7219-aad: fix usage of device_get_named_child_node() *43ff957b96
ASoC: rt715: add vendor clear control register *0c71bfad14
regulator: vqmmc-ipq4019: fix module autoloading *fcc54151a9
ASoC: dt-bindings: rt5645: add cbj sleeve gpio property *6cd625926e
ASoC: rt5645: Fix the electric noise due to the CBJ contacts floating *c9c742eaa5
drm/amd/display: Set color_mgmt_changed to true on unsuspend *c393ce8157
net: usb: qmi_wwan: add Telit FN920C04 compositions *c7d22022ec
wifi: cfg80211: fix the order of arguments for trace events of the tx_rx_evt class *d7ff29a429
ALSA: core: Fix NULL module pointer assignment at card init *eff7cdf890
nilfs2: fix potential hang in nilfs_detach_log_writer() *89e07418a6
nilfs2: fix unexpected freezing of nilfs_segctor_sync() *0d0ecd841f
net: smc91x: Fix m68k kernel compilation for ColdFire CPU *1e16019604
ring-buffer: Fix a race between readers and resize checks *07ef95cc7a
speakup: Fix sizeof() vs ARRAY_SIZE() bug *0fb736c993
tty: n_gsm: fix possible out-of-bounds in gsm0_receive() *03a7939453
x86/tsc: Trust initial offset in architectural TSC-adjust MSRs Change-Id: I1e3b04e5bcd7844daa82bc19f6db4faa4c8f9f7d Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
commit
95fd17f446
@ -22,7 +22,7 @@ description: |
|
||||
google,cros-ec-spi or google,cros-ec-i2c.
|
||||
|
||||
allOf:
|
||||
- $ref: i2c-controller.yaml#
|
||||
- $ref: /schemas/i2c/i2c-controller.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
|
@ -20,6 +20,11 @@ Optional properties:
|
||||
a GPIO spec for the external headphone detect pin. If jd-mode = 0,
|
||||
we will get the JD status by getting the value of hp-detect-gpios.
|
||||
|
||||
- cbj-sleeve-gpios:
|
||||
a GPIO spec to control the external combo jack circuit to tie the sleeve/ring2
|
||||
contacts to the ground or floating. It could avoid some electric noise from the
|
||||
active speaker jacks.
|
||||
|
||||
- realtek,in2-differential
|
||||
Boolean. Indicate MIC2 input are differential, rather than single-ended.
|
||||
|
||||
@ -68,6 +73,7 @@ codec: rt5650@1a {
|
||||
compatible = "realtek,rt5650";
|
||||
reg = <0x1a>;
|
||||
hp-detect-gpios = <&gpio 19 0>;
|
||||
cbj-sleeve-gpios = <&gpio 20 0>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
|
||||
realtek,dmic-en = "true";
|
||||
|
@ -4,11 +4,11 @@ FPGA Bridge
|
||||
API to implement a new FPGA bridge
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* struct fpga_bridge — The FPGA Bridge structure
|
||||
* struct fpga_bridge_ops — Low level Bridge driver ops
|
||||
* devm_fpga_bridge_create() — Allocate and init a bridge struct
|
||||
* fpga_bridge_register() — Register a bridge
|
||||
* fpga_bridge_unregister() — Unregister a bridge
|
||||
* struct fpga_bridge - The FPGA Bridge structure
|
||||
* struct fpga_bridge_ops - Low level Bridge driver ops
|
||||
* devm_fpga_bridge_create() - Allocate and init a bridge struct
|
||||
* fpga_bridge_register() - Register a bridge
|
||||
* fpga_bridge_unregister() - Unregister a bridge
|
||||
|
||||
.. kernel-doc:: include/linux/fpga/fpga-bridge.h
|
||||
:functions: fpga_bridge
|
||||
|
@ -101,12 +101,12 @@ in state.
|
||||
API for implementing a new FPGA Manager driver
|
||||
----------------------------------------------
|
||||
|
||||
* ``fpga_mgr_states`` — Values for :c:expr:`fpga_manager->state`.
|
||||
* struct fpga_manager — the FPGA manager struct
|
||||
* struct fpga_manager_ops — Low level FPGA manager driver ops
|
||||
* devm_fpga_mgr_create() — Allocate and init a manager struct
|
||||
* fpga_mgr_register() — Register an FPGA manager
|
||||
* fpga_mgr_unregister() — Unregister an FPGA manager
|
||||
* ``fpga_mgr_states`` - Values for :c:expr:`fpga_manager->state`.
|
||||
* struct fpga_manager - the FPGA manager struct
|
||||
* struct fpga_manager_ops - Low level FPGA manager driver ops
|
||||
* devm_fpga_mgr_create() - Allocate and init a manager struct
|
||||
* fpga_mgr_register() - Register an FPGA manager
|
||||
* fpga_mgr_unregister() - Unregister an FPGA manager
|
||||
|
||||
.. kernel-doc:: include/linux/fpga/fpga-mgr.h
|
||||
:functions: fpga_mgr_states
|
||||
|
@ -84,10 +84,10 @@ will generate that list. Here's some sample code of what to do next::
|
||||
API for programming an FPGA
|
||||
---------------------------
|
||||
|
||||
* fpga_region_program_fpga() — Program an FPGA
|
||||
* fpga_image_info() — Specifies what FPGA image to program
|
||||
* fpga_image_info_alloc() — Allocate an FPGA image info struct
|
||||
* fpga_image_info_free() — Free an FPGA image info struct
|
||||
* fpga_region_program_fpga() - Program an FPGA
|
||||
* fpga_image_info() - Specifies what FPGA image to program
|
||||
* fpga_image_info_alloc() - Allocate an FPGA image info struct
|
||||
* fpga_image_info_free() - Free an FPGA image info struct
|
||||
|
||||
.. kernel-doc:: drivers/fpga/fpga-region.c
|
||||
:functions: fpga_region_program_fpga
|
||||
|
@ -45,19 +45,25 @@ An example of usage can be seen in the probe function of [#f2]_.
|
||||
API to add a new FPGA region
|
||||
----------------------------
|
||||
|
||||
* struct fpga_region — The FPGA region struct
|
||||
* devm_fpga_region_create() — Allocate and init a region struct
|
||||
* fpga_region_register() — Register an FPGA region
|
||||
* fpga_region_unregister() — Unregister an FPGA region
|
||||
* struct fpga_region - The FPGA region struct
|
||||
* struct fpga_region_info - Parameter structure for __fpga_region_register_full()
|
||||
* __fpga_region_register_full() - Create and register an FPGA region using the
|
||||
fpga_region_info structure to provide the full flexibility of options
|
||||
* __fpga_region_register() - Create and register an FPGA region using standard
|
||||
arguments
|
||||
* fpga_region_unregister() - Unregister an FPGA region
|
||||
|
||||
Helper macros ``fpga_region_register()`` and ``fpga_region_register_full()``
|
||||
automatically set the module that registers the FPGA region as the owner.
|
||||
|
||||
The FPGA region's probe function will need to get a reference to the FPGA
|
||||
Manager it will be using to do the programming. This usually would happen
|
||||
during the region's probe function.
|
||||
|
||||
* fpga_mgr_get() — Get a reference to an FPGA manager, raise ref count
|
||||
* of_fpga_mgr_get() — Get a reference to an FPGA manager, raise ref count,
|
||||
* fpga_mgr_get() - Get a reference to an FPGA manager, raise ref count
|
||||
* of_fpga_mgr_get() - Get a reference to an FPGA manager, raise ref count,
|
||||
given a device node.
|
||||
* fpga_mgr_put() — Put an FPGA manager
|
||||
* fpga_mgr_put() - Put an FPGA manager
|
||||
|
||||
The FPGA region will need to specify which bridges to control while programming
|
||||
the FPGA. The region driver can build a list of bridges during probe time
|
||||
@ -66,20 +72,23 @@ the list of bridges to program just before programming
|
||||
(:c:expr:`fpga_region->get_bridges`). The FPGA bridge framework supplies the
|
||||
following APIs to handle building or tearing down that list.
|
||||
|
||||
* fpga_bridge_get_to_list() — Get a ref of an FPGA bridge, add it to a
|
||||
* fpga_bridge_get_to_list() - Get a ref of an FPGA bridge, add it to a
|
||||
list
|
||||
* of_fpga_bridge_get_to_list() — Get a ref of an FPGA bridge, add it to a
|
||||
* of_fpga_bridge_get_to_list() - Get a ref of an FPGA bridge, add it to a
|
||||
list, given a device node
|
||||
* fpga_bridges_put() — Given a list of bridges, put them
|
||||
* fpga_bridges_put() - Given a list of bridges, put them
|
||||
|
||||
.. kernel-doc:: include/linux/fpga/fpga-region.h
|
||||
:functions: fpga_region
|
||||
|
||||
.. kernel-doc:: drivers/fpga/fpga-region.c
|
||||
:functions: devm_fpga_region_create
|
||||
.. kernel-doc:: include/linux/fpga/fpga-region.h
|
||||
:functions: fpga_region_info
|
||||
|
||||
.. kernel-doc:: drivers/fpga/fpga-region.c
|
||||
:functions: fpga_region_register
|
||||
:functions: __fpga_region_register_full
|
||||
|
||||
.. kernel-doc:: drivers/fpga/fpga-region.c
|
||||
:functions: __fpga_region_register
|
||||
|
||||
.. kernel-doc:: drivers/fpga/fpga-region.c
|
||||
:functions: fpga_region_unregister
|
||||
|
2
Makefile
2
Makefile
@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 5
|
||||
PATCHLEVEL = 10
|
||||
SUBLEVEL = 218
|
||||
SUBLEVEL = 223
|
||||
EXTRAVERSION =
|
||||
NAME = Dare mighty things
|
||||
|
||||
|
@ -84,7 +84,7 @@ eeprom@52 {
|
||||
&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>;
|
||||
|
@ -447,7 +447,7 @@ buck9_reg: BUCK9 {
|
||||
&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";
|
||||
|
@ -65,7 +65,7 @@ cooling_map1: map1 {
|
||||
&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";
|
||||
|
@ -124,6 +124,7 @@ hdmi: hdmi@10116000 {
|
||||
pinctrl-0 = <&hdmii2c_xfer>, <&hdmi_hpd>;
|
||||
power-domains = <&power RK3066_PD_VIO>;
|
||||
rockchip,grf = <&grf>;
|
||||
#sound-dai-cells = <0>;
|
||||
status = "disabled";
|
||||
|
||||
ports {
|
||||
|
@ -147,16 +147,6 @@ extern int __get_user_64t_1(void *);
|
||||
extern int __get_user_64t_2(void *);
|
||||
extern int __get_user_64t_4(void *);
|
||||
|
||||
#define __GUP_CLOBBER_1 "lr", "cc"
|
||||
#ifdef CONFIG_CPU_USE_DOMAINS
|
||||
#define __GUP_CLOBBER_2 "ip", "lr", "cc"
|
||||
#else
|
||||
#define __GUP_CLOBBER_2 "lr", "cc"
|
||||
#endif
|
||||
#define __GUP_CLOBBER_4 "lr", "cc"
|
||||
#define __GUP_CLOBBER_32t_8 "lr", "cc"
|
||||
#define __GUP_CLOBBER_8 "lr", "cc"
|
||||
|
||||
#define __get_user_x(__r2, __p, __e, __l, __s) \
|
||||
__asm__ __volatile__ ( \
|
||||
__asmeq("%0", "r0") __asmeq("%1", "r2") \
|
||||
@ -164,7 +154,7 @@ extern int __get_user_64t_4(void *);
|
||||
"bl __get_user_" #__s \
|
||||
: "=&r" (__e), "=r" (__r2) \
|
||||
: "0" (__p), "r" (__l) \
|
||||
: __GUP_CLOBBER_##__s)
|
||||
: "ip", "lr", "cc")
|
||||
|
||||
/* narrowing a double-word get into a single 32bit word register: */
|
||||
#ifdef __ARMEB__
|
||||
@ -186,7 +176,7 @@ extern int __get_user_64t_4(void *);
|
||||
"bl __get_user_64t_" #__s \
|
||||
: "=&r" (__e), "=r" (__r2) \
|
||||
: "0" (__p), "r" (__l) \
|
||||
: __GUP_CLOBBER_##__s)
|
||||
: "ip", "lr", "cc")
|
||||
#else
|
||||
#define __get_user_x_64t __get_user_x
|
||||
#endif
|
||||
|
@ -62,7 +62,7 @@ static void davinci_pm_suspend(void)
|
||||
|
||||
/* Configure sleep count in deep sleep register */
|
||||
val = __raw_readl(pm_config.deepsleep_reg);
|
||||
val &= ~DEEPSLEEP_SLEEPCOUNT_MASK,
|
||||
val &= ~DEEPSLEEP_SLEEPCOUNT_MASK;
|
||||
val |= pm_config.sleepcount;
|
||||
__raw_writel(val, pm_config.deepsleep_reg);
|
||||
|
||||
|
@ -58,7 +58,7 @@ cpu@3 {
|
||||
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;
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -573,7 +573,7 @@ spi@7000de00 {
|
||||
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>;
|
||||
|
@ -1796,6 +1796,7 @@ dwc3@6a00000 {
|
||||
snps,dis_u2_susphy_quirk;
|
||||
snps,dis_enblslpm_quirk;
|
||||
snps,is-utmi-l1-suspend;
|
||||
snps,parkmode-disable-ss-quirk;
|
||||
tx-fifo-resize;
|
||||
};
|
||||
};
|
||||
|
@ -60,7 +60,7 @@ bluetooth {
|
||||
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>;
|
||||
};
|
||||
|
@ -687,6 +687,7 @@ spdif: spdif@ff880000 {
|
||||
dma-names = "tx";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spdif_tx>;
|
||||
#sound-dai-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@ -698,6 +699,7 @@ i2s_2ch: i2s-2ch@ff890000 {
|
||||
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";
|
||||
};
|
||||
|
||||
@ -711,6 +713,7 @@ i2s_8ch: i2s-8ch@ff898000 {
|
||||
dma-names = "tx", "rx";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_8ch_bus>;
|
||||
#sound-dai-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -28,6 +28,7 @@
|
||||
14470: .long 14471f - 14470b; \
|
||||
_BUGVERBOSE_LOCATION(__FILE__, __LINE__) \
|
||||
.short flags; \
|
||||
.align 2; \
|
||||
.popsection; \
|
||||
14471:
|
||||
#else
|
||||
|
@ -408,6 +408,7 @@ struct kvm_vcpu_arch {
|
||||
#define KVM_ARM64_EXCEPT_MASK (7 << 9) /* Target EL/MODE */
|
||||
#define KVM_ARM64_DEBUG_STATE_SAVE_SPE (1 << 12) /* Save SPE context if active */
|
||||
#define KVM_ARM64_DEBUG_STATE_SAVE_TRBE (1 << 13) /* Save TRBE context if active */
|
||||
#define KVM_ARM64_VCPU_IN_WFI (1 << 14) /* WFI instruction trapped */
|
||||
|
||||
/*
|
||||
* When KVM_ARM64_PENDING_EXCEPTION is set, KVM_ARM64_EXCEPT_MASK can
|
||||
|
@ -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
|
||||
|
@ -366,13 +366,15 @@ void kvm_arch_vcpu_blocking(struct kvm_vcpu *vcpu)
|
||||
*/
|
||||
preempt_disable();
|
||||
kvm_vgic_vmcr_sync(vcpu);
|
||||
vgic_v4_put(vcpu, true);
|
||||
vcpu->arch.flags |= KVM_ARM64_VCPU_IN_WFI;
|
||||
vgic_v4_put(vcpu);
|
||||
preempt_enable();
|
||||
}
|
||||
|
||||
void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
preempt_disable();
|
||||
vcpu->arch.flags &= ~KVM_ARM64_VCPU_IN_WFI;
|
||||
vgic_v4_load(vcpu);
|
||||
preempt_enable();
|
||||
}
|
||||
@ -683,7 +685,7 @@ static void check_vcpu_requests(struct kvm_vcpu *vcpu)
|
||||
if (kvm_check_request(KVM_REQ_RELOAD_GICv4, vcpu)) {
|
||||
/* The distributor enable bits were changed */
|
||||
preempt_disable();
|
||||
vgic_v4_put(vcpu, false);
|
||||
vgic_v4_put(vcpu);
|
||||
vgic_v4_load(vcpu);
|
||||
preempt_enable();
|
||||
}
|
||||
|
@ -233,6 +233,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;
|
||||
|
@ -679,7 +679,7 @@ void vgic_v3_put(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
struct vgic_v3_cpu_if *cpu_if = &vcpu->arch.vgic_cpu.vgic_v3;
|
||||
|
||||
WARN_ON(vgic_v4_put(vcpu, false));
|
||||
WARN_ON(vgic_v4_put(vcpu));
|
||||
|
||||
vgic_v3_vmcr_sync(vcpu);
|
||||
|
||||
|
@ -310,14 +310,15 @@ void vgic_v4_teardown(struct kvm *kvm)
|
||||
its_vm->vpes = NULL;
|
||||
}
|
||||
|
||||
int vgic_v4_put(struct kvm_vcpu *vcpu, bool need_db)
|
||||
int vgic_v4_put(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
struct its_vpe *vpe = &vcpu->arch.vgic_cpu.vgic_v3.its_vpe;
|
||||
|
||||
if (!vgic_supports_direct_msis(vcpu->kvm) || !vpe->resident)
|
||||
return 0;
|
||||
|
||||
return its_make_vpe_non_resident(vpe, need_db);
|
||||
return its_make_vpe_non_resident(vpe,
|
||||
vcpu->arch.flags & KVM_ARM64_VCPU_IN_WFI);
|
||||
}
|
||||
|
||||
int vgic_v4_load(struct kvm_vcpu *vcpu)
|
||||
@ -328,6 +329,9 @@ int vgic_v4_load(struct kvm_vcpu *vcpu)
|
||||
if (!vgic_supports_direct_msis(vcpu->kvm) || vpe->resident)
|
||||
return 0;
|
||||
|
||||
if (vcpu->arch.flags & KVM_ARM64_VCPU_IN_WFI)
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* Before making the VPE resident, make sure the redistributor
|
||||
* corresponding to our current CPU expects us here. See the
|
||||
|
@ -7,6 +7,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)
|
||||
|
6
arch/hexagon/include/asm/syscalls.h
Normal file
6
arch/hexagon/include/asm/syscalls.h
Normal 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);
|
@ -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>
|
||||
|
@ -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>
|
||||
};
|
||||
|
13
arch/ia64/include/asm/efi.h
Normal file
13
arch/ia64/include/asm/efi.h
Normal file
@ -0,0 +1,13 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _ASM_EFI_H
|
||||
#define _ASM_EFI_H
|
||||
|
||||
typedef int (*efi_freemem_callback_t) (u64 start, u64 end, void *arg);
|
||||
|
||||
void *efi_get_pal_addr(void);
|
||||
void efi_map_pal_code(void);
|
||||
void efi_memmap_walk(efi_freemem_callback_t, void *);
|
||||
void efi_memmap_walk_uc(efi_freemem_callback_t, void *);
|
||||
void efi_gettimeofday(struct timespec64 *ts);
|
||||
|
||||
#endif
|
@ -34,6 +34,7 @@
|
||||
#include <linux/kexec.h>
|
||||
#include <linux/mm.h>
|
||||
|
||||
#include <asm/efi.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/kregs.h>
|
||||
#include <asm/meminit.h>
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include <linux/numa.h>
|
||||
#include <linux/mmzone.h>
|
||||
|
||||
#include <asm/efi.h>
|
||||
#include <asm/numa.h>
|
||||
#include <asm/mmu_context.h>
|
||||
#include <asm/setup.h>
|
||||
|
@ -91,6 +91,7 @@
|
||||
#include <linux/gfp.h>
|
||||
|
||||
#include <asm/delay.h>
|
||||
#include <asm/efi.h>
|
||||
#include <asm/meminit.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/ptrace.h>
|
||||
|
@ -45,6 +45,7 @@
|
||||
#include <asm/cache.h>
|
||||
#include <asm/current.h>
|
||||
#include <asm/delay.h>
|
||||
#include <asm/efi.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mca.h>
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include <linux/sched/cputime.h>
|
||||
|
||||
#include <asm/delay.h>
|
||||
#include <asm/efi.h>
|
||||
#include <asm/hw_irq.h>
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/sal.h>
|
||||
|
@ -20,14 +20,12 @@
|
||||
#include <linux/genalloc.h>
|
||||
#include <linux/gfp.h>
|
||||
#include <linux/pgtable.h>
|
||||
#include <asm/efi.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/pal.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <asm/tlbflush.h>
|
||||
|
||||
|
||||
extern void __init efi_memmap_walk_uc(efi_freemem_callback_t, void *);
|
||||
|
||||
struct uncached_pool {
|
||||
struct gen_pool *pool;
|
||||
struct mutex add_chunk_mutex; /* serialize adding a converted chunk */
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include <linux/nmi.h>
|
||||
#include <linux/swap.h>
|
||||
|
||||
#include <asm/efi.h>
|
||||
#include <asm/meminit.h>
|
||||
#include <asm/sections.h>
|
||||
#include <asm/mca.h>
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include <linux/efi.h>
|
||||
#include <linux/nodemask.h>
|
||||
#include <linux/slab.h>
|
||||
#include <asm/efi.h>
|
||||
#include <asm/tlb.h>
|
||||
#include <asm/meminit.h>
|
||||
#include <asm/numa.h>
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include <linux/swiotlb.h>
|
||||
|
||||
#include <asm/dma.h>
|
||||
#include <asm/efi.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/numa.h>
|
||||
#include <asm/patch.h>
|
||||
|
@ -432,7 +432,9 @@ resume:
|
||||
movec %a0,%dfc
|
||||
|
||||
/* restore status register */
|
||||
movew %a1@(TASK_THREAD+THREAD_SR),%sr
|
||||
movew %a1@(TASK_THREAD+THREAD_SR),%d0
|
||||
oriw #0x0700,%d0
|
||||
movew %d0,%sr
|
||||
|
||||
rts
|
||||
|
||||
|
@ -452,30 +452,18 @@ void mac_poweroff(void)
|
||||
|
||||
void mac_reset(void)
|
||||
{
|
||||
if (macintosh_config->adb_type == MAC_ADB_II &&
|
||||
macintosh_config->ident != MAC_MODEL_SE30) {
|
||||
/* need ROMBASE in booter */
|
||||
/* indeed, plus need to MAP THE ROM !! */
|
||||
|
||||
if (mac_bi_data.rombase == 0)
|
||||
mac_bi_data.rombase = 0x40800000;
|
||||
|
||||
/* works on some */
|
||||
rom_reset = (void *) (mac_bi_data.rombase + 0xa);
|
||||
|
||||
local_irq_disable();
|
||||
rom_reset();
|
||||
#ifdef CONFIG_ADB_CUDA
|
||||
} else if (macintosh_config->adb_type == MAC_ADB_EGRET ||
|
||||
macintosh_config->adb_type == MAC_ADB_CUDA) {
|
||||
if (macintosh_config->adb_type == MAC_ADB_EGRET ||
|
||||
macintosh_config->adb_type == MAC_ADB_CUDA) {
|
||||
cuda_restart();
|
||||
} else
|
||||
#endif
|
||||
#ifdef CONFIG_ADB_PMU
|
||||
} else if (macintosh_config->adb_type == MAC_ADB_PB2) {
|
||||
if (macintosh_config->adb_type == MAC_ADB_PB2) {
|
||||
pmu_restart();
|
||||
} else
|
||||
#endif
|
||||
} else if (CPU_IS_030) {
|
||||
|
||||
if (CPU_IS_030) {
|
||||
/* 030-specific reset routine. The idea is general, but the
|
||||
* specific registers to reset are '030-specific. Until I
|
||||
* have a non-030 machine, I can't test anything else.
|
||||
@ -523,6 +511,18 @@ void mac_reset(void)
|
||||
"jmp %/a0@\n\t" /* jump to the reset vector */
|
||||
".chip 68k"
|
||||
: : "r" (offset), "a" (rombase) : "a0");
|
||||
} else {
|
||||
/* need ROMBASE in booter */
|
||||
/* indeed, plus need to MAP THE ROM !! */
|
||||
|
||||
if (mac_bi_data.rombase == 0)
|
||||
mac_bi_data.rombase = 0x40800000;
|
||||
|
||||
/* works on some */
|
||||
rom_reset = (void *)(mac_bi_data.rombase + 0xa);
|
||||
|
||||
local_irq_disable();
|
||||
rom_reset();
|
||||
}
|
||||
|
||||
/* should never get here */
|
||||
|
@ -7,7 +7,6 @@ ifdef CONFIG_FUNCTION_TRACER
|
||||
# Do not trace early boot code and low level code
|
||||
CFLAGS_REMOVE_timer.o = -pg
|
||||
CFLAGS_REMOVE_intc.o = -pg
|
||||
CFLAGS_REMOVE_early_printk.o = -pg
|
||||
CFLAGS_REMOVE_ftrace.o = -pg
|
||||
CFLAGS_REMOVE_process.o = -pg
|
||||
endif
|
||||
|
@ -18,7 +18,7 @@ static const char family_string[] = CONFIG_XILINX_MICROBLAZE0_FAMILY;
|
||||
static const char cpu_ver_string[] = CONFIG_XILINX_MICROBLAZE0_HW_VER;
|
||||
|
||||
#define err_printk(x) \
|
||||
early_printk("ERROR: Microblaze " x "-different for kernel and DTS\n");
|
||||
pr_err("ERROR: Microblaze " x "-different for kernel and DTS\n");
|
||||
|
||||
void __init set_cpuinfo_static(struct cpuinfo *ci, struct device_node *cpu)
|
||||
{
|
||||
|
@ -110,7 +110,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)
|
||||
|
@ -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
|
||||
|
@ -27,7 +27,7 @@
|
||||
17 o32 break sys_ni_syscall
|
||||
# 18 was sys_stat
|
||||
18 o32 unused18 sys_ni_syscall
|
||||
19 o32 lseek sys_lseek
|
||||
19 o32 lseek sys_lseek compat_sys_lseek
|
||||
20 o32 getpid sys_getpid
|
||||
21 o32 mount sys_mount
|
||||
22 o32 umount sys_oldumount
|
||||
@ -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
|
||||
|
@ -112,8 +112,8 @@ static int read_config_dword(struct pci_bus *bus, unsigned int devfn,
|
||||
* 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
6
arch/mips/pci/pcie-octeon.c
Normal file → Executable 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;
|
||||
|
@ -21,6 +21,7 @@ EXPORT_SYMBOL(memset);
|
||||
#include <linux/atomic.h>
|
||||
EXPORT_SYMBOL(__xchg8);
|
||||
EXPORT_SYMBOL(__xchg32);
|
||||
EXPORT_SYMBOL(__cmpxchg_u8);
|
||||
EXPORT_SYMBOL(__cmpxchg_u32);
|
||||
EXPORT_SYMBOL(__cmpxchg_u64);
|
||||
#ifdef CONFIG_SMP
|
||||
|
@ -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
|
||||
|
@ -453,7 +453,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
|
||||
@ -467,7 +467,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
|
||||
@ -478,8 +478,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], ...);
|
||||
|
||||
struct hvcall_mpp_data {
|
||||
unsigned long entitled_mem;
|
||||
@ -494,7 +494,7 @@ struct hvcall_mpp_data {
|
||||
unsigned long backing_mem;
|
||||
};
|
||||
|
||||
int h_get_mpp(struct hvcall_mpp_data *);
|
||||
long h_get_mpp(struct hvcall_mpp_data *mpp_data);
|
||||
|
||||
struct hvcall_mpp_x_data {
|
||||
unsigned long coalesced_bytes;
|
||||
|
@ -45,7 +45,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)
|
||||
@ -541,12 +541,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
|
||||
@ -562,12 +562,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)
|
||||
|
@ -186,9 +186,20 @@ do { \
|
||||
: \
|
||||
: 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_volatile_goto( \
|
||||
|
@ -849,6 +849,7 @@ struct pci_bus *eeh_pe_bus_get(struct eeh_pe *pe)
|
||||
{
|
||||
struct eeh_dev *edev;
|
||||
struct pci_dev *pdev;
|
||||
struct pci_bus *bus = NULL;
|
||||
|
||||
if (pe->type & EEH_PE_PHB)
|
||||
return pe->phb->bus;
|
||||
@ -859,9 +860,11 @@ struct pci_bus *eeh_pe_bus_get(struct eeh_pe *pe)
|
||||
|
||||
/* Retrieve the parent PCI bus of first (top) PCI device */
|
||||
edev = list_first_entry_or_null(&pe->edevs, struct eeh_dev, entry);
|
||||
pci_lock_rescan_remove();
|
||||
pdev = eeh_dev_to_pci_dev(edev);
|
||||
if (pdev)
|
||||
return pdev->bus;
|
||||
bus = pdev->bus;
|
||||
pci_unlock_rescan_remove();
|
||||
|
||||
return NULL;
|
||||
return bus;
|
||||
}
|
||||
|
@ -503,7 +503,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
|
||||
|
@ -117,14 +117,16 @@ extern long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,
|
||||
}
|
||||
rcu_read_unlock();
|
||||
|
||||
fdput(f);
|
||||
|
||||
if (!found)
|
||||
if (!found) {
|
||||
fdput(f);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
table_group = iommu_group_get_iommudata(grp);
|
||||
if (WARN_ON(!table_group))
|
||||
if (WARN_ON(!table_group)) {
|
||||
fdput(f);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
for (i = 0; i < IOMMU_TABLE_GROUP_MAX_TABLES; ++i) {
|
||||
struct iommu_table *tbltmp = table_group->tables[i];
|
||||
@ -145,8 +147,10 @@ extern long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!tbl)
|
||||
if (!tbl) {
|
||||
fdput(f);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
rcu_read_lock();
|
||||
list_for_each_entry_rcu(stit, &stt->iommu_tables, next) {
|
||||
@ -157,6 +161,7 @@ extern long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,
|
||||
/* stit is being destroyed */
|
||||
iommu_tce_table_put(tbl);
|
||||
rcu_read_unlock();
|
||||
fdput(f);
|
||||
return -ENOTTY;
|
||||
}
|
||||
/*
|
||||
@ -164,6 +169,7 @@ extern long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,
|
||||
* its KVM reference counter and can return.
|
||||
*/
|
||||
rcu_read_unlock();
|
||||
fdput(f);
|
||||
return 0;
|
||||
}
|
||||
rcu_read_unlock();
|
||||
@ -171,6 +177,7 @@ extern long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,
|
||||
stit = kzalloc(sizeof(*stit), GFP_KERNEL);
|
||||
if (!stit) {
|
||||
iommu_tce_table_put(tbl);
|
||||
fdput(f);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
@ -179,6 +186,7 @@ extern long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,
|
||||
|
||||
list_add_rcu(&stit->next, &stt->iommu_tables);
|
||||
|
||||
fdput(f);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1883,10 +1883,10 @@ void __trace_hcall_exit(long opcode, long retval, unsigned long *retbuf)
|
||||
* h_get_mpp
|
||||
* H_GET_MPP hcall returns info in 7 parms
|
||||
*/
|
||||
int h_get_mpp(struct hvcall_mpp_data *mpp_data)
|
||||
long h_get_mpp(struct hvcall_mpp_data *mpp_data)
|
||||
{
|
||||
int rc;
|
||||
unsigned long retbuf[PLPAR_HCALL9_BUFSIZE];
|
||||
unsigned long retbuf[PLPAR_HCALL9_BUFSIZE] = {0};
|
||||
long rc;
|
||||
|
||||
rc = plpar_hcall9(H_GET_MPP, retbuf);
|
||||
|
||||
|
@ -112,8 +112,8 @@ struct hvcall_ppp_data {
|
||||
*/
|
||||
static unsigned int h_get_ppp(struct hvcall_ppp_data *ppp_data)
|
||||
{
|
||||
unsigned long rc;
|
||||
unsigned long retbuf[PLPAR_HCALL9_BUFSIZE];
|
||||
unsigned long retbuf[PLPAR_HCALL9_BUFSIZE] = {0};
|
||||
long rc;
|
||||
|
||||
rc = plpar_hcall9(H_GET_PPP, retbuf);
|
||||
|
||||
@ -192,7 +192,7 @@ static void parse_ppp_data(struct seq_file *m)
|
||||
struct hvcall_ppp_data ppp_data;
|
||||
struct device_node *root;
|
||||
const __be32 *perf_level;
|
||||
int rc;
|
||||
long rc;
|
||||
|
||||
rc = h_get_ppp(&ppp_data);
|
||||
if (rc)
|
||||
|
@ -312,8 +312,8 @@ static int alloc_dispatch_log_kmem_cache(void)
|
||||
{
|
||||
void (*ctor)(void *) = get_dtl_cache_ctor();
|
||||
|
||||
dtl_cache = kmem_cache_create("dtl", DISPATCH_LOG_BYTES,
|
||||
DISPATCH_LOG_BYTES, 0, ctor);
|
||||
dtl_cache = kmem_cache_create_usercopy("dtl", DISPATCH_LOG_BYTES,
|
||||
DISPATCH_LOG_BYTES, 0, 0, DISPATCH_LOG_BYTES, ctor);
|
||||
if (!dtl_cache) {
|
||||
pr_warn("Failed to create dispatch trace log buffer cache\n");
|
||||
pr_warn("Stolen time statistics will be unreliable\n");
|
||||
|
@ -573,10 +573,12 @@ static const struct fsl_msi_feature ipic_msi_feature = {
|
||||
.msiir_offset = 0x38,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_EPAPR_PARAVIRT
|
||||
static const struct fsl_msi_feature vmpic_msi_feature = {
|
||||
.fsl_pic_ip = FSL_PIC_IP_VMPIC,
|
||||
.msiir_offset = 0,
|
||||
};
|
||||
#endif
|
||||
|
||||
static const struct of_device_id fsl_of_msi_ids[] = {
|
||||
{
|
||||
|
@ -1249,7 +1249,7 @@ static int cpu_cmd(void)
|
||||
unsigned long cpu, first_cpu, last_cpu;
|
||||
int timeout;
|
||||
|
||||
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;
|
||||
@ -2680,7 +2680,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);
|
||||
@ -2777,7 +2777,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);
|
||||
|
@ -252,8 +252,8 @@ static inline void __load_psw(psw_t psw)
|
||||
*/
|
||||
static __always_inline void __load_psw_mask(unsigned long mask)
|
||||
{
|
||||
psw_t psw __uninitialized;
|
||||
unsigned long addr;
|
||||
psw_t psw;
|
||||
|
||||
psw.mask = mask;
|
||||
|
||||
|
@ -832,8 +832,8 @@ static ssize_t reipl_nvme_scpdata_write(struct file *filp, struct kobject *kobj,
|
||||
scpdata_len += padding;
|
||||
}
|
||||
|
||||
reipl_block_nvme->hdr.len = IPL_BP_FCP_LEN + scpdata_len;
|
||||
reipl_block_nvme->nvme.len = IPL_BP0_FCP_LEN + scpdata_len;
|
||||
reipl_block_nvme->hdr.len = IPL_BP_NVME_LEN + scpdata_len;
|
||||
reipl_block_nvme->nvme.len = IPL_BP0_NVME_LEN + scpdata_len;
|
||||
reipl_block_nvme->nvme.scp_data_len = scpdata_len;
|
||||
|
||||
return count;
|
||||
@ -1602,9 +1602,9 @@ static int __init dump_nvme_init(void)
|
||||
}
|
||||
dump_block_nvme->hdr.len = IPL_BP_NVME_LEN;
|
||||
dump_block_nvme->hdr.version = IPL_PARM_BLOCK_VERSION;
|
||||
dump_block_nvme->fcp.len = IPL_BP0_NVME_LEN;
|
||||
dump_block_nvme->fcp.pbt = IPL_PBT_NVME;
|
||||
dump_block_nvme->fcp.opt = IPL_PB0_NVME_OPT_DUMP;
|
||||
dump_block_nvme->nvme.len = IPL_BP0_NVME_LEN;
|
||||
dump_block_nvme->nvme.pbt = IPL_PBT_NVME;
|
||||
dump_block_nvme->nvme.opt = IPL_PB0_NVME_OPT_DUMP;
|
||||
dump_capabilities |= DUMP_TYPE_NVME;
|
||||
return 0;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -44,17 +44,12 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p)
|
||||
if (OPCODE_RTE(opcode))
|
||||
return -EFAULT; /* Bad breakpoint */
|
||||
|
||||
memcpy(p->ainsn.insn, p->addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
|
||||
p->opcode = opcode;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void __kprobes arch_copy_kprobe(struct kprobe *p)
|
||||
{
|
||||
memcpy(p->ainsn.insn, p->addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
|
||||
p->opcode = *p->addr;
|
||||
}
|
||||
|
||||
void __kprobes arch_arm_kprobe(struct kprobe *p)
|
||||
{
|
||||
*p->addr = BREAKPOINT_INSTRUCTION;
|
||||
|
@ -33,7 +33,8 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* asmlinkage __wsum csum_partial(const void *buf, int len, __wsum sum);
|
||||
* unsigned int csum_partial(const unsigned char *buf, int len,
|
||||
* unsigned int sum);
|
||||
*/
|
||||
|
||||
.text
|
||||
@ -45,31 +46,11 @@ ENTRY(csum_partial)
|
||||
* Fortunately, it is easy to convert 2-byte alignment to 4-byte
|
||||
* alignment for the unrolled loop.
|
||||
*/
|
||||
mov r5, r1
|
||||
mov r4, r0
|
||||
tst #3, r0 ! Check alignment.
|
||||
bt/s 2f ! Jump if alignment is ok.
|
||||
mov r4, r7 ! Keep a copy to check for alignment
|
||||
tst #2, r0 ! Check alignment.
|
||||
bt 2f ! Jump if alignment is ok.
|
||||
!
|
||||
tst #1, r0 ! Check alignment.
|
||||
bt 21f ! Jump if alignment is boundary of 2bytes.
|
||||
|
||||
! buf is odd
|
||||
tst r5, r5
|
||||
add #-1, r5
|
||||
bt 9f
|
||||
mov.b @r4+, r0
|
||||
extu.b r0, r0
|
||||
addc r0, r6 ! t=0 from previous tst
|
||||
mov r6, r0
|
||||
shll8 r6
|
||||
shlr16 r0
|
||||
shlr8 r0
|
||||
or r0, r6
|
||||
mov r4, r0
|
||||
tst #2, r0
|
||||
bt 2f
|
||||
21:
|
||||
! buf is 2 byte aligned (len could be 0)
|
||||
add #-2, r5 ! Alignment uses up two bytes.
|
||||
cmp/pz r5 !
|
||||
bt/s 1f ! Jump if we had at least two bytes.
|
||||
@ -77,17 +58,16 @@ ENTRY(csum_partial)
|
||||
bra 6f
|
||||
add #2, r5 ! r5 was < 2. Deal with it.
|
||||
1:
|
||||
mov r5, r1 ! Save new len for later use.
|
||||
mov.w @r4+, r0
|
||||
extu.w r0, r0
|
||||
addc r0, r6
|
||||
bf 2f
|
||||
add #1, r6
|
||||
2:
|
||||
! buf is 4 byte aligned (len could be 0)
|
||||
mov r5, r1
|
||||
mov #-5, r0
|
||||
shld r0, r1
|
||||
tst r1, r1
|
||||
shld r0, r5
|
||||
tst r5, r5
|
||||
bt/s 4f ! if it's =0, go to 4f
|
||||
clrt
|
||||
.align 2
|
||||
@ -109,31 +89,30 @@ ENTRY(csum_partial)
|
||||
addc r0, r6
|
||||
addc r2, r6
|
||||
movt r0
|
||||
dt r1
|
||||
dt r5
|
||||
bf/s 3b
|
||||
cmp/eq #1, r0
|
||||
! here, we know r1==0
|
||||
addc r1, r6 ! add carry to r6
|
||||
! here, we know r5==0
|
||||
addc r5, r6 ! add carry to r6
|
||||
4:
|
||||
mov r5, r0
|
||||
mov r1, r0
|
||||
and #0x1c, r0
|
||||
tst r0, r0
|
||||
bt 6f
|
||||
! 4 bytes or more remaining
|
||||
mov r0, r1
|
||||
shlr2 r1
|
||||
bt/s 6f
|
||||
mov r0, r5
|
||||
shlr2 r5
|
||||
mov #0, r2
|
||||
5:
|
||||
addc r2, r6
|
||||
mov.l @r4+, r2
|
||||
movt r0
|
||||
dt r1
|
||||
dt r5
|
||||
bf/s 5b
|
||||
cmp/eq #1, r0
|
||||
addc r2, r6
|
||||
addc r1, r6 ! r1==0 here, so it means add carry-bit
|
||||
addc r5, r6 ! r5==0 here, so it means add carry-bit
|
||||
6:
|
||||
! 3 bytes or less remaining
|
||||
mov r1, r5
|
||||
mov #3, r0
|
||||
and r0, r5
|
||||
tst r5, r5
|
||||
@ -159,16 +138,6 @@ ENTRY(csum_partial)
|
||||
mov #0, r0
|
||||
addc r0, r6
|
||||
9:
|
||||
! Check if the buffer was misaligned, if so realign sum
|
||||
mov r7, r0
|
||||
tst #1, r0
|
||||
bt 10f
|
||||
mov r6, r0
|
||||
shll8 r6
|
||||
shlr16 r0
|
||||
shlr8 r0
|
||||
or r0, r6
|
||||
10:
|
||||
rts
|
||||
mov r6, r0
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -13,16 +13,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 */
|
||||
|
@ -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 */
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -688,7 +688,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
|
||||
|
@ -1210,20 +1210,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;
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -668,24 +668,26 @@ void register_winch_irq(int fd, int tty_fd, int pid, struct tty_port *port,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
*winch = ((struct winch) { .list = LIST_HEAD_INIT(winch->list),
|
||||
.fd = fd,
|
||||
*winch = ((struct winch) { .fd = fd,
|
||||
.tty_fd = tty_fd,
|
||||
.pid = pid,
|
||||
.port = port,
|
||||
.stack = stack });
|
||||
|
||||
spin_lock(&winch_handler_lock);
|
||||
list_add(&winch->list, &winch_handlers);
|
||||
spin_unlock(&winch_handler_lock);
|
||||
|
||||
if (um_request_irq(WINCH_IRQ, fd, IRQ_READ, winch_interrupt,
|
||||
IRQF_SHARED, "winch", winch) < 0) {
|
||||
printk(KERN_ERR "register_winch_irq - failed to register "
|
||||
"IRQ\n");
|
||||
spin_lock(&winch_handler_lock);
|
||||
list_del(&winch->list);
|
||||
spin_unlock(&winch_handler_lock);
|
||||
goto out_free;
|
||||
}
|
||||
|
||||
spin_lock(&winch_handler_lock);
|
||||
list_add(&winch->list, &winch_handlers);
|
||||
spin_unlock(&winch_handler_lock);
|
||||
|
||||
return;
|
||||
|
||||
out_free:
|
||||
|
@ -1158,7 +1158,7 @@ static int __init ubd_init(void)
|
||||
|
||||
if (irq_req_buffer == NULL) {
|
||||
printk(KERN_ERR "Failed to initialize ubd buffering\n");
|
||||
return -1;
|
||||
return -ENOMEM;
|
||||
}
|
||||
io_req_buffer = kmalloc_array(UBD_REQ_BUFFER_SIZE,
|
||||
sizeof(struct io_thread_req *),
|
||||
@ -1169,7 +1169,7 @@ static int __init ubd_init(void)
|
||||
|
||||
if (io_req_buffer == NULL) {
|
||||
printk(KERN_ERR "Failed to initialize ubd buffering\n");
|
||||
return -1;
|
||||
return -ENOMEM;
|
||||
}
|
||||
platform_driver_register(&ubd_driver);
|
||||
mutex_lock(&ubd_lock);
|
||||
|
@ -142,7 +142,7 @@ static bool get_bpf_flash(struct arglist *def)
|
||||
|
||||
if (allow != NULL) {
|
||||
if (kstrtoul(allow, 10, &result) == 0)
|
||||
return (allow > 0);
|
||||
return result > 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -15,8 +15,6 @@ typedef struct mm_context {
|
||||
struct page *stub_pages[2];
|
||||
} mm_context_t;
|
||||
|
||||
extern void __switch_mm(struct mm_id * mm_idp);
|
||||
|
||||
/* Avoid tangled inclusion with asm/ldt.h */
|
||||
extern long init_new_ldt(struct mm_context *to_mm, struct mm_context *from_mm);
|
||||
extern void free_ldt(struct mm_context *mm);
|
||||
|
@ -15,4 +15,6 @@ struct mm_id {
|
||||
int kill;
|
||||
};
|
||||
|
||||
void __switch_mm(struct mm_id *mm_idp);
|
||||
|
||||
#endif
|
||||
|
@ -258,6 +258,7 @@ config UNWINDER_ORC
|
||||
|
||||
config UNWINDER_FRAME_POINTER
|
||||
bool "Frame pointer unwinder"
|
||||
select ARCH_WANT_FRAME_POINTERS
|
||||
select FRAME_POINTER
|
||||
help
|
||||
This option enables the frame pointer unwinder for unwinding kernel
|
||||
@ -281,7 +282,3 @@ config UNWINDER_GUESS
|
||||
overhead.
|
||||
|
||||
endchoice
|
||||
|
||||
config FRAME_POINTER
|
||||
depends on !UNWINDER_ORC && !UNWINDER_GUESS
|
||||
bool
|
||||
|
@ -153,5 +153,6 @@ SYM_FUNC_START(nh_avx2)
|
||||
vpaddq T1, T0, T0
|
||||
vpaddq T4, T0, T0
|
||||
vmovdqu T0, (HASH)
|
||||
vzeroupper
|
||||
RET
|
||||
SYM_FUNC_END(nh_avx2)
|
||||
|
@ -711,6 +711,7 @@ done_hash:
|
||||
popq %r13
|
||||
popq %r12
|
||||
popq %rbx
|
||||
vzeroupper
|
||||
RET
|
||||
SYM_FUNC_END(sha256_transform_rorx)
|
||||
|
||||
|
@ -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
|
||||
|
@ -98,11 +98,6 @@ static int addr_to_vsyscall_nr(unsigned long addr)
|
||||
|
||||
static bool write_ok_or_segv(unsigned long ptr, size_t size)
|
||||
{
|
||||
/*
|
||||
* XXX: if access_ok, get_user, and put_user handled
|
||||
* sig_on_uaccess_err, this could go away.
|
||||
*/
|
||||
|
||||
if (!access_ok((void __user *)ptr, size)) {
|
||||
struct thread_struct *thread = ¤t->thread;
|
||||
|
||||
@ -120,10 +115,8 @@ static bool write_ok_or_segv(unsigned long ptr, size_t size)
|
||||
bool emulate_vsyscall(unsigned long error_code,
|
||||
struct pt_regs *regs, unsigned long address)
|
||||
{
|
||||
struct task_struct *tsk;
|
||||
unsigned long caller;
|
||||
int vsyscall_nr, syscall_nr, tmp;
|
||||
int prev_sig_on_uaccess_err;
|
||||
long ret;
|
||||
unsigned long orig_dx;
|
||||
|
||||
@ -172,8 +165,6 @@ bool emulate_vsyscall(unsigned long error_code,
|
||||
goto sigsegv;
|
||||
}
|
||||
|
||||
tsk = current;
|
||||
|
||||
/*
|
||||
* Check for access_ok violations and find the syscall nr.
|
||||
*
|
||||
@ -233,12 +224,8 @@ bool emulate_vsyscall(unsigned long error_code,
|
||||
goto do_ret; /* skip requested */
|
||||
|
||||
/*
|
||||
* With a real vsyscall, page faults cause SIGSEGV. We want to
|
||||
* preserve that behavior to make writing exploits harder.
|
||||
* With a real vsyscall, page faults cause SIGSEGV.
|
||||
*/
|
||||
prev_sig_on_uaccess_err = current->thread.sig_on_uaccess_err;
|
||||
current->thread.sig_on_uaccess_err = 1;
|
||||
|
||||
ret = -EFAULT;
|
||||
switch (vsyscall_nr) {
|
||||
case 0:
|
||||
@ -261,23 +248,12 @@ bool emulate_vsyscall(unsigned long error_code,
|
||||
break;
|
||||
}
|
||||
|
||||
current->thread.sig_on_uaccess_err = prev_sig_on_uaccess_err;
|
||||
|
||||
check_fault:
|
||||
if (ret == -EFAULT) {
|
||||
/* Bad news -- userspace fed a bad pointer to a vsyscall. */
|
||||
warn_bad_vsyscall(KERN_INFO, regs,
|
||||
"vsyscall fault (exploit attempt?)");
|
||||
|
||||
/*
|
||||
* If we failed to generate a signal for any reason,
|
||||
* generate one here. (This should be impossible.)
|
||||
*/
|
||||
if (WARN_ON_ONCE(!sigismember(&tsk->pending.signal, SIGBUS) &&
|
||||
!sigismember(&tsk->pending.signal, SIGSEGV)))
|
||||
goto sigsegv;
|
||||
|
||||
return true; /* Don't emulate the ret. */
|
||||
goto sigsegv;
|
||||
}
|
||||
|
||||
regs->ax = ret;
|
||||
|
@ -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.
|
||||
*
|
||||
|
@ -382,4 +382,15 @@ 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);
|
||||
|
||||
#endif /* _ASM_X86_EFI_H */
|
||||
|
@ -528,7 +528,6 @@ struct thread_struct {
|
||||
unsigned long iopl_emul;
|
||||
|
||||
unsigned int iopl_warn:1;
|
||||
unsigned int sig_on_uaccess_err:1;
|
||||
|
||||
/* Floating point and extended processor state */
|
||||
struct fpu fpu;
|
||||
|
@ -164,7 +164,14 @@ static int __amd_smn_rw(u16 node, u32 address, u32 *value, bool write)
|
||||
|
||||
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);
|
||||
|
||||
|
@ -920,7 +920,8 @@ static void __send_cleanup_vector(struct apic_chip_data *apicd)
|
||||
hlist_add_head(&apicd->clist, per_cpu_ptr(&cleanup_list, cpu));
|
||||
apic->send_IPI(cpu, IRQ_MOVE_CLEANUP_VECTOR);
|
||||
} else {
|
||||
apicd->prev_vector = 0;
|
||||
pr_warn("IRQ %u schedule cleanup for offline CPU %u\n", apicd->irq, cpu);
|
||||
free_moved_vector(apicd);
|
||||
}
|
||||
raw_spin_unlock(&vector_lock);
|
||||
}
|
||||
@ -957,6 +958,7 @@ void irq_complete_move(struct irq_cfg *cfg)
|
||||
*/
|
||||
void irq_force_complete_move(struct irq_desc *desc)
|
||||
{
|
||||
unsigned int cpu = smp_processor_id();
|
||||
struct apic_chip_data *apicd;
|
||||
struct irq_data *irqd;
|
||||
unsigned int vector;
|
||||
@ -981,10 +983,11 @@ void irq_force_complete_move(struct irq_desc *desc)
|
||||
goto unlock;
|
||||
|
||||
/*
|
||||
* If prev_vector is empty, no action required.
|
||||
* If prev_vector is empty or the descriptor is neither currently
|
||||
* nor previously on the outgoing CPU no action required.
|
||||
*/
|
||||
vector = apicd->prev_vector;
|
||||
if (!vector)
|
||||
if (!vector || (apicd->cpu != cpu && apicd->prev_cpu != cpu))
|
||||
goto unlock;
|
||||
|
||||
/*
|
||||
|
@ -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)
|
||||
|
@ -27,25 +27,7 @@
|
||||
|
||||
unsigned long profile_pc(struct pt_regs *regs)
|
||||
{
|
||||
unsigned long pc = instruction_pointer(regs);
|
||||
|
||||
if (!user_mode(regs) && in_lock_functions(pc)) {
|
||||
#ifdef CONFIG_FRAME_POINTER
|
||||
return *(unsigned long *)(regs->bp + sizeof(long));
|
||||
#else
|
||||
unsigned long *sp = (unsigned long *)regs->sp;
|
||||
/*
|
||||
* Return address is either directly at stack pointer
|
||||
* or above a saved flags. Eflags has bits 22-31 zero,
|
||||
* kernel addresses don't.
|
||||
*/
|
||||
if (sp[0] >> 22)
|
||||
return sp[0];
|
||||
if (sp[1] >> 22)
|
||||
return sp[1];
|
||||
#endif
|
||||
}
|
||||
return pc;
|
||||
return instruction_pointer(regs);
|
||||
}
|
||||
EXPORT_SYMBOL(profile_pc);
|
||||
|
||||
|
@ -192,11 +192,9 @@ bool tsc_store_and_check_tsc_adjust(bool bootcpu)
|
||||
cur->warned = false;
|
||||
|
||||
/*
|
||||
* If a non-zero TSC value for socket 0 may be valid then the default
|
||||
* adjusted value cannot assumed to be zero either.
|
||||
* The default adjust value cannot be assumed to be zero on any socket.
|
||||
*/
|
||||
if (tsc_async_resets)
|
||||
cur->adjusted = bootval;
|
||||
cur->adjusted = bootval;
|
||||
|
||||
/*
|
||||
* Check whether this CPU is the first in a package to come up. In
|
||||
|
@ -105,6 +105,7 @@ __EXPORT_THUNK(srso_alias_untrain_ret)
|
||||
/* dummy definition for alternatives */
|
||||
SYM_START(srso_alias_untrain_ret, SYM_L_GLOBAL, SYM_A_NONE)
|
||||
ANNOTATE_UNRET_SAFE
|
||||
ANNOTATE_NOENDBR
|
||||
ret
|
||||
int3
|
||||
SYM_FUNC_END(srso_alias_untrain_ret)
|
||||
@ -258,7 +259,6 @@ SYM_CODE_START(__x86_return_thunk)
|
||||
UNWIND_HINT_FUNC
|
||||
ANNOTATE_NOENDBR
|
||||
ANNOTATE_UNRET_SAFE
|
||||
ANNOTATE_NOENDBR
|
||||
ret
|
||||
int3
|
||||
SYM_CODE_END(__x86_return_thunk)
|
||||
|
@ -148,7 +148,7 @@ AVXcode:
|
||||
65: SEG=GS (Prefix)
|
||||
66: Operand-Size (Prefix)
|
||||
67: Address-Size (Prefix)
|
||||
68: PUSH Iz (d64)
|
||||
68: PUSH Iz
|
||||
69: IMUL Gv,Ev,Iz
|
||||
6a: PUSH Ib (d64)
|
||||
6b: IMUL Gv,Ev,Ib
|
||||
|
@ -650,33 +650,8 @@ no_context(struct pt_regs *regs, unsigned long error_code,
|
||||
}
|
||||
|
||||
/* Are we prepared to handle this kernel fault? */
|
||||
if (fixup_exception(regs, X86_TRAP_PF, error_code, address)) {
|
||||
/*
|
||||
* Any interrupt that takes a fault gets the fixup. This makes
|
||||
* the below recursive fault logic only apply to a faults from
|
||||
* task context.
|
||||
*/
|
||||
if (in_interrupt())
|
||||
return;
|
||||
|
||||
/*
|
||||
* Per the above we're !in_interrupt(), aka. task context.
|
||||
*
|
||||
* In this case we need to make sure we're not recursively
|
||||
* faulting through the emulate_vsyscall() logic.
|
||||
*/
|
||||
if (current->thread.sig_on_uaccess_err && signal) {
|
||||
set_signal_archinfo(address, error_code);
|
||||
|
||||
/* XXX: hwpoison faults will set the wrong code. */
|
||||
force_sig_fault(signal, si_code, (void __user *)address);
|
||||
}
|
||||
|
||||
/*
|
||||
* Barring that, we can do the fixup and be happy.
|
||||
*/
|
||||
if (fixup_exception(regs, X86_TRAP_PF, error_code, address))
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VMAP_STACK
|
||||
/*
|
||||
|
@ -3,5 +3,6 @@ OBJECT_FILES_NON_STANDARD_efi_thunk_$(BITS).o := y
|
||||
KASAN_SANITIZE := n
|
||||
GCOV_PROFILE := n
|
||||
|
||||
obj-$(CONFIG_EFI) += quirks.o efi.o efi_$(BITS).o efi_stub_$(BITS).o
|
||||
obj-$(CONFIG_EFI) += memmap.o quirks.o efi.o efi_$(BITS).o \
|
||||
efi_stub_$(BITS).o
|
||||
obj-$(CONFIG_EFI_MIXED) += efi_thunk_$(BITS).o
|
||||
|
@ -234,9 +234,11 @@ int __init efi_memblock_x86_reserve_range(void)
|
||||
data.desc_size = e->efi_memdesc_size;
|
||||
data.desc_version = e->efi_memdesc_version;
|
||||
|
||||
rv = efi_memmap_init_early(&data);
|
||||
if (rv)
|
||||
return rv;
|
||||
if (!efi_enabled(EFI_PARAVIRT)) {
|
||||
rv = efi_memmap_init_early(&data);
|
||||
if (rv)
|
||||
return rv;
|
||||
}
|
||||
|
||||
if (add_efi_memmap || do_efi_soft_reserve())
|
||||
do_add_efi_memmap();
|
||||
|
249
arch/x86/platform/efi/memmap.c
Normal file
249
arch/x86/platform/efi/memmap.c
Normal file
@ -0,0 +1,249 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Common EFI memory map functions.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) "efi: " fmt
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/efi.h>
|
||||
#include <linux/io.h>
|
||||
#include <asm/early_ioremap.h>
|
||||
#include <asm/efi.h>
|
||||
#include <linux/memblock.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
static phys_addr_t __init __efi_memmap_alloc_early(unsigned long size)
|
||||
{
|
||||
return memblock_phys_alloc(size, SMP_CACHE_BYTES);
|
||||
}
|
||||
|
||||
static phys_addr_t __init __efi_memmap_alloc_late(unsigned long size)
|
||||
{
|
||||
unsigned int order = get_order(size);
|
||||
struct page *p = alloc_pages(GFP_KERNEL, order);
|
||||
|
||||
if (!p)
|
||||
return 0;
|
||||
|
||||
return PFN_PHYS(page_to_pfn(p));
|
||||
}
|
||||
|
||||
void __init __efi_memmap_free(u64 phys, unsigned long size, unsigned long flags)
|
||||
{
|
||||
if (flags & EFI_MEMMAP_MEMBLOCK) {
|
||||
if (slab_is_available())
|
||||
memblock_free_late(phys, size);
|
||||
else
|
||||
memblock_free(phys, size);
|
||||
} else if (flags & EFI_MEMMAP_SLAB) {
|
||||
struct page *p = pfn_to_page(PHYS_PFN(phys));
|
||||
unsigned int order = get_order(size);
|
||||
|
||||
free_pages((unsigned long) page_address(p), order);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* efi_memmap_alloc - Allocate memory for the EFI memory map
|
||||
* @num_entries: Number of entries in the allocated map.
|
||||
* @data: efi memmap installation parameters
|
||||
*
|
||||
* Depending on whether mm_init() has already been invoked or not,
|
||||
* either memblock or "normal" page allocation is used.
|
||||
*
|
||||
* Returns zero on success, a negative error code on failure.
|
||||
*/
|
||||
int __init efi_memmap_alloc(unsigned int num_entries,
|
||||
struct efi_memory_map_data *data)
|
||||
{
|
||||
/* Expect allocation parameters are zero initialized */
|
||||
WARN_ON(data->phys_map || data->size);
|
||||
|
||||
data->size = num_entries * efi.memmap.desc_size;
|
||||
data->desc_version = efi.memmap.desc_version;
|
||||
data->desc_size = efi.memmap.desc_size;
|
||||
data->flags &= ~(EFI_MEMMAP_SLAB | EFI_MEMMAP_MEMBLOCK);
|
||||
data->flags |= efi.memmap.flags & EFI_MEMMAP_LATE;
|
||||
|
||||
if (slab_is_available()) {
|
||||
data->flags |= EFI_MEMMAP_SLAB;
|
||||
data->phys_map = __efi_memmap_alloc_late(data->size);
|
||||
} else {
|
||||
data->flags |= EFI_MEMMAP_MEMBLOCK;
|
||||
data->phys_map = __efi_memmap_alloc_early(data->size);
|
||||
}
|
||||
|
||||
if (!data->phys_map)
|
||||
return -ENOMEM;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* efi_memmap_install - Install a new EFI memory map in efi.memmap
|
||||
* @ctx: map allocation parameters (address, size, flags)
|
||||
*
|
||||
* Unlike efi_memmap_init_*(), this function does not allow the caller
|
||||
* to switch from early to late mappings. It simply uses the existing
|
||||
* mapping function and installs the new memmap.
|
||||
*
|
||||
* Returns zero on success, a negative error code on failure.
|
||||
*/
|
||||
int __init efi_memmap_install(struct efi_memory_map_data *data)
|
||||
{
|
||||
unsigned long size = efi.memmap.desc_size * efi.memmap.nr_map;
|
||||
unsigned long flags = efi.memmap.flags;
|
||||
u64 phys = efi.memmap.phys_map;
|
||||
int ret;
|
||||
|
||||
efi_memmap_unmap();
|
||||
|
||||
if (efi_enabled(EFI_PARAVIRT))
|
||||
return 0;
|
||||
|
||||
ret = __efi_memmap_init(data);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
__efi_memmap_free(phys, size, flags);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* efi_memmap_split_count - Count number of additional EFI memmap entries
|
||||
* @md: EFI memory descriptor to split
|
||||
* @range: Address range (start, end) to split around
|
||||
*
|
||||
* Returns the number of additional EFI memmap entries required to
|
||||
* accommodate @range.
|
||||
*/
|
||||
int __init efi_memmap_split_count(efi_memory_desc_t *md, struct range *range)
|
||||
{
|
||||
u64 m_start, m_end;
|
||||
u64 start, end;
|
||||
int count = 0;
|
||||
|
||||
start = md->phys_addr;
|
||||
end = start + (md->num_pages << EFI_PAGE_SHIFT) - 1;
|
||||
|
||||
/* modifying range */
|
||||
m_start = range->start;
|
||||
m_end = range->end;
|
||||
|
||||
if (m_start <= start) {
|
||||
/* split into 2 parts */
|
||||
if (start < m_end && m_end < end)
|
||||
count++;
|
||||
}
|
||||
|
||||
if (start < m_start && m_start < end) {
|
||||
/* split into 3 parts */
|
||||
if (m_end < end)
|
||||
count += 2;
|
||||
/* split into 2 parts */
|
||||
if (end <= m_end)
|
||||
count++;
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
/**
|
||||
* efi_memmap_insert - Insert a memory region in an EFI memmap
|
||||
* @old_memmap: The existing EFI memory map structure
|
||||
* @buf: Address of buffer to store new map
|
||||
* @mem: Memory map entry to insert
|
||||
*
|
||||
* It is suggested that you call efi_memmap_split_count() first
|
||||
* to see how large @buf needs to be.
|
||||
*/
|
||||
void __init efi_memmap_insert(struct efi_memory_map *old_memmap, void *buf,
|
||||
struct efi_mem_range *mem)
|
||||
{
|
||||
u64 m_start, m_end, m_attr;
|
||||
efi_memory_desc_t *md;
|
||||
u64 start, end;
|
||||
void *old, *new;
|
||||
|
||||
/* modifying range */
|
||||
m_start = mem->range.start;
|
||||
m_end = mem->range.end;
|
||||
m_attr = mem->attribute;
|
||||
|
||||
/*
|
||||
* The EFI memory map deals with regions in EFI_PAGE_SIZE
|
||||
* units. Ensure that the region described by 'mem' is aligned
|
||||
* correctly.
|
||||
*/
|
||||
if (!IS_ALIGNED(m_start, EFI_PAGE_SIZE) ||
|
||||
!IS_ALIGNED(m_end + 1, EFI_PAGE_SIZE)) {
|
||||
WARN_ON(1);
|
||||
return;
|
||||
}
|
||||
|
||||
for (old = old_memmap->map, new = buf;
|
||||
old < old_memmap->map_end;
|
||||
old += old_memmap->desc_size, new += old_memmap->desc_size) {
|
||||
|
||||
/* copy original EFI memory descriptor */
|
||||
memcpy(new, old, old_memmap->desc_size);
|
||||
md = new;
|
||||
start = md->phys_addr;
|
||||
end = md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT) - 1;
|
||||
|
||||
if (m_start <= start && end <= m_end)
|
||||
md->attribute |= m_attr;
|
||||
|
||||
if (m_start <= start &&
|
||||
(start < m_end && m_end < end)) {
|
||||
/* first part */
|
||||
md->attribute |= m_attr;
|
||||
md->num_pages = (m_end - md->phys_addr + 1) >>
|
||||
EFI_PAGE_SHIFT;
|
||||
/* latter part */
|
||||
new += old_memmap->desc_size;
|
||||
memcpy(new, old, old_memmap->desc_size);
|
||||
md = new;
|
||||
md->phys_addr = m_end + 1;
|
||||
md->num_pages = (end - md->phys_addr + 1) >>
|
||||
EFI_PAGE_SHIFT;
|
||||
}
|
||||
|
||||
if ((start < m_start && m_start < end) && m_end < end) {
|
||||
/* first part */
|
||||
md->num_pages = (m_start - md->phys_addr) >>
|
||||
EFI_PAGE_SHIFT;
|
||||
/* middle part */
|
||||
new += old_memmap->desc_size;
|
||||
memcpy(new, old, old_memmap->desc_size);
|
||||
md = new;
|
||||
md->attribute |= m_attr;
|
||||
md->phys_addr = m_start;
|
||||
md->num_pages = (m_end - m_start + 1) >>
|
||||
EFI_PAGE_SHIFT;
|
||||
/* last part */
|
||||
new += old_memmap->desc_size;
|
||||
memcpy(new, old, old_memmap->desc_size);
|
||||
md = new;
|
||||
md->phys_addr = m_end + 1;
|
||||
md->num_pages = (end - m_end) >>
|
||||
EFI_PAGE_SHIFT;
|
||||
}
|
||||
|
||||
if ((start < m_start && m_start < end) &&
|
||||
(end <= m_end)) {
|
||||
/* first part */
|
||||
md->num_pages = (m_start - md->phys_addr) >>
|
||||
EFI_PAGE_SHIFT;
|
||||
/* latter part */
|
||||
new += old_memmap->desc_size;
|
||||
memcpy(new, old, old_memmap->desc_size);
|
||||
md = new;
|
||||
md->phys_addr = m_start;
|
||||
md->num_pages = (end - md->phys_addr + 1) >>
|
||||
EFI_PAGE_SHIFT;
|
||||
md->attribute |= m_attr;
|
||||
}
|
||||
}
|
||||
}
|
@ -41,7 +41,8 @@ KCOV_INSTRUMENT := n
|
||||
# make up the standalone purgatory.ro
|
||||
|
||||
PURGATORY_CFLAGS_REMOVE := -mcmodel=kernel $(CC_FLAGS_CFI)
|
||||
PURGATORY_CFLAGS := -mcmodel=large -ffreestanding -fno-zero-initialized-in-bss -g0
|
||||
PURGATORY_CFLAGS := -mcmodel=small -ffreestanding -fno-zero-initialized-in-bss -g0
|
||||
PURGATORY_CFLAGS += -fpic -fvisibility=hidden
|
||||
PURGATORY_CFLAGS += $(DISABLE_STACKLEAK_PLUGIN) -DDISABLE_BRANCH_PROFILING
|
||||
PURGATORY_CFLAGS += -fno-stack-protector
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user