Merge 6.6.93 into android15-6.6-lts
GKI (arm64) relevant 119 out of 444 changes, affecting 199 files +1953/-1215497f19cacb
nvmem: core: verify cell's raw_len [1 file, +12/-0]35d77c8d88
nvmem: core: update raw_len if the bit reading is required [1 file, +3/-1]42d15918da
scsi: ufs: Introduce quirk to extend PA_HIBERN8TIME for UFS devices [2 files, +35/-0]b49b5132e4
virtio_ring: Fix data race by tagging event_triggered as racy for KCSAN [1 file, +1/-1]c15dc980ff
dma-mapping: avoid potential unused data compilation warning [1 file, +8/-4]20fb292ab5
cgroup: Fix compilation issue due to cgroup_mutex not being exported [1 file, +1/-1]38aa3cf154
bpf: fix possible endless loop in BPF map iteration [1 file, +1/-1]2371143e41
fuse: Return EPERM rather than ENOSYS from link() [1 file, +2/-0]50702e7b47
arm64: Add support for HIP09 Spectre-BHB mitigation [2 files, +3/-0]c1ab9f008e
tracing: Mark binary printing functions with __printf() attribute [4 files, +18/-21]09096ead92
mailbox: use error ret code of of_parse_phandle_with_args() [1 file, +4/-3]0c2aa72f4f
dql: Fix dql->limit value when reset. [1 file, +1/-1]454a770aea
lockdep: Fix wait context check on softirq for PREEMPT_RT [1 file, +18/-0]e4510552c2
PCI: dwc: ep: Ensure proper iteration over outbound map windows [1 file, +1/-1]f29eb4c63b
ext4: on a remount, only log the ro or r/w state when it has changed [1 file, +4/-3]ea3d95e05e
libnvdimm/labels: Fix divide error in nd_label_data_init() [1 file, +2/-1]4eda8a85d4
ext4: reorder capability check last [1 file, +2/-2]5741b9d7bb
bpf: Return prog btf_id without capable check [1 file, +2/-2]ed88717950
jbd2: do not try to recover wiped journal [1 file, +6/-5]a7b7bc510e
tcp: reorganize tcp_in_ack_event() and tcp_count_delivered() [1 file, +32/-24]bc8023ef3b
bpf: Allow pre-ordering for bpf cgroup progs [5 files, +30/-9]ba8354a613
dm: restrict dm device size to 2^63-512 bytes [1 file, +4/-0]aa97ea576a
pinctrl-tegra: Restore SFSEL bit when freeing pins [2 files, +57/-8]d7f3c874ea
ext4: reject the 'data_err=abort' option in nojournal mode [1 file, +12/-0]6df3855868
posix-timers: Add cond_resched() to posix_timer_add() search loop [1 file, +1/-0]da36c3ad7c
timer_list: Don't use %pK through printk() [1 file, +2/-2]89947eea8f
netfilter: conntrack: Bound nf_conntrack sysctl writes [1 file, +9/-3]110f701e60
arm64/mm: Check PUD_TYPE_TABLE in pud_bad() [1 file, +2/-1]903c4a0c2a
mmc: sdhci: Disable SD card clock before changing parameters [1 file, +7/-2]def5f5bc83
usb: xhci: Don't change the status of stalled TDs on failed Stop EP [1 file, +11/-1]386a1a0d55
printk: Check CON_SUSPEND when unblanking a console [1 file, +12/-2]8ebf2709fe
ipv6: save dontfrag in cork [2 files, +6/-4]0acdc4d6e6
crypto: lzo - Fix compression buffer overrun [6 files, +106/-28]fb69189023
tcp: bring back NUMA dispersion in inet_ehash_locks_alloc() [1 file, +26/-11]b27be76f35
drm/gem: Test for imported GEM buffers with helper [2 files, +16/-2]c5b23df98a
net: phylink: use pl->link_interface in phylink_expects_phy() [1 file, +1/-1]30ae895966
perf/hw_breakpoint: Return EOPNOTSUPP for unsupported breakpoint type [1 file, +3/-2]9778a91827
ipv4: fib: Move fib_valid_key_len() to rtm_to_fib_config(). [2 files, +16/-24]faa24692f7
media: uvcvideo: Add sanity check to uvc_ioctl_xu_ctrl_map [1 file, +6/-0]032f3bf647
media: uvcvideo: Handle uvc menu translation inside uvc_get_le_value [1 file, +32/-45]1ae981c91d
perf: arm_pmuv3: Call kvm_vcpu_pmu_resync_el0() before enabling counters [1 file, +2/-2]3cd2aa9367
cpuidle: menu: Avoid discarding useful information [1 file, +12/-1]52aa28f7b1
dm: fix unconditional IO throttle caused by REQ_PREFLUSH [1 file, +6/-2]3a0c8429ab
crypto: ahash - Set default reqsize from ahash_alg [2 files, +7/-0]b2ea189a95
crypto: skcipher - Zap type in crypto_alloc_sync_skcipher [1 file, +1/-0]ba41e4e627
genirq/msi: Store the IOMMU IOVA directly in msi_desc instead of iommu_cookie [2 files, +25/-36]242272c953
bpf: don't do clean_live_states when state->loop_entry->branches > 0 [1 file, +4/-0]0d398ed850
PCI: Fix old_size lower bound in calculate_iosize() too [1 file, +2/-4]9dcce3f40d
ASoC: ops: Enforce platform maximum on initial value [1 file, +28/-1]b3d2a8809e
ASoC: soc-dai: check return value at snd_soc_dai_set_tdm_slot() [1 file, +5/-3]de4332d7a5
pinctrl: devicetree: do not goto err when probing hogs in pinctrl_dt_to_map [1 file, +8/-2]f8a9f45f75
media: v4l: Memset argument to 0 before calling get_mbus_config pad op [2 files, +5/-1]e9bed533ec
sched: Reduce the default slice to avoid tasks getting an extra tick [1 file, +3/-3]6a7b7e98fe
phy: core: don't require set_mode() callback for phy_get_mode() to work [1 file, +4/-3]cc1d408e7c
ip: fib_rules: Fetch net from fib_rule in fib[46]_rule_configure(). [2 files, +4/-4]09c3a82664
r8152: add vendor/device ID pair for Dell Alienware AW1022z [2 files, +2/-0]7ef54a11c1
pstore: Change kmsg_bytes storage size to u32 [3 files, +9/-8]73e7c65b21
ext4: don't write back data before punch hole in nojournal mode [1 file, +5/-13]6fed5e23d2
f2fs: introduce f2fs_base_attr for global sysfs entries [1 file, +52/-22]2cb57a887a
ipv4: ip_gre: Fix set but not used warning in ipgre_err() if IPv4-only [1 file, +10/-6]9ed3c1b11d
bridge: mdb: Allow replace of a host-joined group [2 files, +2/-2]9abec90c85
rcu: handle unstable rdp in rcu_read_unlock_strict() [2 files, +11/-2]f47d605c5e
rcu: fix header guard for rcu_all_qs() [1 file, +1/-1]948664b92e
perf: Avoid the read if the count is already updated [3 files, +24/-18]9610a67963
firmware: arm_scmi: Relax duplicate name constraint across protocol ids [1 file, +6/-13]e585f4f44a
drm/atomic: clarify the rules around drm_atomic_state->allow_modeset [1 file, +21/-2]fe4a7145f0
drm: Add valid clones check [1 file, +28/-0]0a3f5efd1c
nvme-pci: add quirks for device 126f:1001 [1 file, +3/-0]a7a2315d8d
nvme-pci: add quirks for WDC Blue SN550 15b7:5009 [1 file, +3/-0]b72952c8c3
io_uring/fdinfo: annotate racy sq/cq head/tail reads [1 file, +2/-2]7a97f961a5
btrfs: correct the order of prelim_ref arguments in btrfs__prelim_ref [1 file, +1/-1]d8ece4ced3
__legitimize_mnt(): check for MNT_SYNC_UMOUNT should be under mount_lock [1 file, +1/-5]b58a295d10
espintcp: remove encap socket caching to avoid reference leak [4 files, +8/-94]5ff1a234fa
kernel/fork: only call untrack_pfn_clear() on VMAs duplicated for fork() [1 file, +5/-4]dcdc1aca68
xfrm: Sanitize marks before insert [2 files, +6/-0]c331a616a0
Bluetooth: L2CAP: Fix not checking l2cap_chan security level [1 file, +8/-7]c844ace5b8
io_uring: fix overflow resched cqe reordering [1 file, +1/-0]b19fc1d0be
net/tipc: fix slab-use-after-free Read in tipc_aead_encrypt_done [1 file, +5/-0]e80f4f9c64
can: slcan: allow reception of short error messages [1 file, +20/-6]76c84c3728
can: bcm: add locking for bcm_op runtime updates [1 file, +45/-21]1f912f8484
can: bcm: add missing rcu read protection for procfs content [1 file, +9/-4]74d90875f3
ALSA: pcm: Fix race of buffer access at PCM OSS layer [3 files, +14/-2]7227fc0692
drm/edid: fixed the bug that hdr metadata was not reset [1 file, +1/-0]f33001a7c1
Input: xpad - add more controllers [1 file, +3/-0]363fd868d7
memcg: always call cond_resched() after fn() [1 file, +2/-4]f391043332
mm/page_alloc.c: avoid infinite retries caused by cpuset race [1 file, +8/-0]77192e9cfe
highmem: add folio_test_partial_kmap() [2 files, +10/-3]1f91707374
pinctrl: tegra: Fix off by one in tegra_pinctrl_get_group() [1 file, +1/-1]f968f28cd1
drm/gem: Internally test import_attach for imported objects [1 file, +1/-2]63815bef47
hrtimers: Force migrate away hrtimers queued after CPUHP_AP_HRTIMERS_DYING [2 files, +83/-21]4be073d590
af_unix: Return struct unix_sock from unix_get_socket(). [3 files, +15/-25]328840c93b
af_unix: Run GC on only one CPU. [1 file, +27/-27]acc97866c1
af_unix: Try to run GC async. [5 files, +29/-5]36f1f6ac53
af_unix: Replace BUG_ON() with WARN_ON_ONCE(). [2 files, +8/-8]c0d56c028d
af_unix: Remove io_uring code for GC. [3 files, +2/-30]8eb55b667a
af_unix: Remove CONFIG_UNIX_SCM. [8 files, +137/-175]9e98ba0c73
af_unix: Allocate struct unix_vertex for each inflight AF_UNIX fd. [5 files, +63/-0]4fc7df1c6d
af_unix: Allocate struct unix_edge for each inflight AF_UNIX fd. [4 files, +19/-0]d2d9f382e2
af_unix: Link struct unix_edge when queuing skb. [5 files, +100/-3]494accabb5
af_unix: Bulk update unix_tot_inflight/unix_inflight when queuing skb. [1 file, +7/-11]856aacbe2c
af_unix: Iterate all vertices by DFS. [2 files, +76/-0]3ee9b24bd6
af_unix: Detect Strongly Connected Components. [2 files, +47/-2]36f924e4bf
af_unix: Save listener for embryo socket. [2 files, +5/-1]27a07364ce
af_unix: Fix up unix_edge.successor for embryo socket. [3 files, +21/-2]e0e23fc499
af_unix: Save O(n) setup of Tarjan's algo. [2 files, +15/-12]cdaa3499a8
af_unix: Skip GC if no cycle exists. [1 file, +47/-1]d23802221f
af_unix: Avoid Tarjan's algorithm if unnecessary. [1 file, +27/-1]324005012f
af_unix: Assign a unique index to SCC. [2 files, +16/-15]2c2d0c662d
af_unix: Detect dead SCC. [1 file, +43/-1]de7921631f
af_unix: Replace garbage collection algorithm. [3 files, +64/-274]7b1ffbd3b2
af_unix: Remove lock dance in unix_peek_fds(). [3 files, +1/-44]3600729b7f
af_unix: Try not to hold unix_gc_lock during accept(). [3 files, +18/-5]a288920ff9
af_unix: Don't access successor in unix_del_edges() during GC. [1 file, +12/-5]c0c8d419da
af_unix: Add dead flag to struct scm_fp_list. [3 files, +12/-4]ed14f8ae9b
af_unix: Fix garbage collection of embryos carrying OOB with SCM_RIGHTS [1 file, +14/-9]ea61eda1f4
af_unix: Fix uninit-value in __unix_walk_scc() [1 file, +5/-4]1846a7b92b
coredump: fix error handling for replace_fd() [1 file, +7/-2]cdb61a705f
coredump: hand a pidfd to the usermode coredump helper [2 files, +72/-7]f83097445b
nvme-pci: add NVME_QUIRK_NO_DEEPEST_PS quirk for SOLIDIGM P44 Pro [1 file, +2/-0] Changes in 6.6.93 gpio: pca953x: Split pca953x_restore_context() and pca953x_save_context() gpio: pca953x: Simplify code with cleanup helpers gpio: pca953x: fix IRQ storm on system wake up i2c: designware: Uniform initialization flow for polling mode i2c: designware: Remove ->disable() callback i2c: designware: Use temporary variable for struct device i2c: designware: Fix an error handling path in i2c_dw_pci_probe() phy: renesas: rcar-gen3-usb2: Add support to initialize the bus phy: renesas: rcar-gen3-usb2: Move IRQ request in probe phy: renesas: rcar-gen3-usb2: Lock around hardware registers and driver data phy: renesas: rcar-gen3-usb2: Assert PLL reset on PHY power off cpufreq: Add SM8650 to cpufreq-dt-platdev blocklist nvmem: rockchip-otp: Move read-offset into variant-data nvmem: rockchip-otp: add rk3576 variant data nvmem: core: verify cell's raw_len nvmem: core: update raw_len if the bit reading is required nvmem: qfprom: switch to 4-byte aligned reads scsi: target: iscsi: Fix timeout on deleted connection scsi: ufs: Introduce quirk to extend PA_HIBERN8TIME for UFS devices virtio_ring: Fix data race by tagging event_triggered as racy for KCSAN intel_th: avoid using deprecated page->mapping, index fields dma-mapping: avoid potential unused data compilation warning cgroup: Fix compilation issue due to cgroup_mutex not being exported vhost-scsi: protect vq->log_used with vq->mutex scsi: mpi3mr: Add level check to control event logging net: enetc: refactor bulk flipping of RX buffers to separate function ima: process_measurement() needlessly takes inode_lock() on MAY_READ drm/amdgpu: Allow P2P access through XGMI selftests/bpf: Mitigate sockmap_ktls disconnect_after_delete failure bpf: fix possible endless loop in BPF map iteration samples/bpf: Fix compilation failure for samples/bpf on LoongArch Fedora kconfig: merge_config: use an empty file as initfile s390/vfio-ap: Fix no AP queue sharing allowed message written to kernel log cifs: Add fallback for SMB2 CREATE without FILE_READ_ATTRIBUTES cifs: Fix querying and creating MF symlinks over SMB1 cifs: Fix negotiate retry functionality smb: client: Store original IO parameters and prevent zero IO sizes fuse: Return EPERM rather than ENOSYS from link() NFSv4: Check for delegation validity in nfs_start_delegation_return_locked() NFS: Don't allow waiting for exiting tasks SUNRPC: Don't allow waiting for exiting tasks arm64: Add support for HIP09 Spectre-BHB mitigation tracing: Mark binary printing functions with __printf() attribute ACPI: PNP: Add Intel OC Watchdog IDs to non-PNP device list mailbox: pcc: Use acpi_os_ioremap() instead of ioremap() mailbox: use error ret code of of_parse_phandle_with_args() riscv: Allow NOMMU kernels to access all of RAM fbdev: fsl-diu-fb: add missing device_remove_file() fbcon: Use correct erase colour for clearing in fbcon fbdev: core: tileblit: Implement missing margin clearing for tileblit cifs: add validation check for the fields in smb_aces cifs: Fix establishing NetBIOS session for SMB2+ connection NFSv4: Treat ENETUNREACH errors as fatal for state recovery SUNRPC: rpc_clnt_set_transport() must not change the autobind setting SUNRPC: rpcbind should never reset the port to the value '0' spi-rockchip: Fix register out of bounds access thermal/drivers/qoriq: Power down TMU on system suspend dql: Fix dql->limit value when reset. lockdep: Fix wait context check on softirq for PREEMPT_RT objtool: Properly disable uaccess validation PCI: dwc: ep: Ensure proper iteration over outbound map windows tools/build: Don't pass test log files to linker pNFS/flexfiles: Report ENETDOWN as a connection error PCI: vmd: Disable MSI remapping bypass under Xen ext4: on a remount, only log the ro or r/w state when it has changed libnvdimm/labels: Fix divide error in nd_label_data_init() mmc: host: Wait for Vdd to settle on card power off wifi: mt76: only mark tx-status-failed frames as ACKed on mt76x0/2 wifi: mt76: mt7996: revise TXS size x86/stackprotector/64: Only export __ref_stack_chk_guard on CONFIG_SMP x86/mm: Check return value from memblock_phys_alloc_range() i2c: qup: Vote for interconnect bandwidth to DRAM i2c: pxa: fix call balance of i2c->clk handling routines btrfs: make btrfs_discard_workfn() block_group ref explicit btrfs: avoid linker error in btrfs_find_create_tree_block() btrfs: run btrfs_error_commit_super() early btrfs: fix non-empty delayed iputs list on unmount due to async workers btrfs: get zone unusable bytes while holding lock at btrfs_reclaim_bgs_work() btrfs: send: return -ENAMETOOLONG when attempting a path that is too long drm/amd/display: Guard against setting dispclk low for dcn31x i3c: master: svc: Fix missing STOP for master request dlm: make tcp still work in multi-link env um: Store full CSGSFS and SS register from mcontext um: Update min_low_pfn to match changes in uml_reserved ext4: reorder capability check last hypfs_create_cpu_files(): add missing check for hypfs_mkdir() failure scsi: st: Tighten the page format heuristics with MODE SELECT scsi: st: ERASE does not change tape location vfio/pci: Handle INTx IRQ_NOTCONNECTED bpf: Return prog btf_id without capable check jbd2: do not try to recover wiped journal tcp: reorganize tcp_in_ack_event() and tcp_count_delivered() rtc: rv3032: fix EERD location objtool: Fix error handling inconsistencies in check() thunderbolt: Do not add non-active NVM if NVM upgrade is disabled for retimer ASoC: mediatek: mt6359: Add stub for mt6359_accdet_enable_jack_detect bpf: Allow pre-ordering for bpf cgroup progs kbuild: fix argument parsing in scripts/config crypto: octeontx2 - suppress auth failure screaming due to negative tests dm: restrict dm device size to 2^63-512 bytes net/smc: use the correct ndev to find pnetid by pnetid table xen: Add support for XenServer 6.1 platform device pinctrl-tegra: Restore SFSEL bit when freeing pins mfd: tps65219: Remove TPS65219_REG_TI_DEV_ID check drm/amdgpu: Update SRIOV video codec caps ASoC: sun4i-codec: support hp-det-gpios property ext4: reject the 'data_err=abort' option in nojournal mode ext4: do not convert the unwritten extents if data writeback fails RDMA/uverbs: Propagate errors from rdma_lookup_get_uobject() posix-timers: Add cond_resched() to posix_timer_add() search loop timer_list: Don't use %pK through printk() netfilter: conntrack: Bound nf_conntrack sysctl writes arm64/mm: Check PUD_TYPE_TABLE in pud_bad() mmc: dw_mmc: add exynos7870 DW MMC support mmc: sdhci: Disable SD card clock before changing parameters usb: xhci: Don't change the status of stalled TDs on failed Stop EP hwmon: (dell-smm) Increment the number of fans printk: Check CON_SUSPEND when unblanking a console wifi: iwlwifi: fix debug actions order ipv6: save dontfrag in cork drm/amd/display: remove minimum Dispclk and apply oem panel timing. drm/amd/display: calculate the remain segments for all pipes drm/amd/display: Fix incorrect DPCD configs while Replay/PSR switch gfs2: Check for empty queue in run_queue auxdisplay: charlcd: Partially revert "Move hwidth and bwidth to struct hd44780_common" ASoC: qcom: sm8250: explicitly set format in sm8250_be_hw_params_fixup() iommu/amd/pgtbl_v2: Improve error handling cpufreq: tegra186: Share policy per cluster watchdog: aspeed: Update bootstatus handling crypto: lzo - Fix compression buffer overrun drm/amdkfd: Set per-process flags only once cik/vi arm64: tegra: p2597: Fix gpio for vdd-1v8-dis regulator arm64: tegra: Resize aperture for the IGX PCIe C5 slot powerpc/prom_init: Fixup missing #size-cells on PowerBook6,7 ALSA: seq: Improve data consistency at polling tcp: bring back NUMA dispersion in inet_ehash_locks_alloc() rtc: ds1307: stop disabling alarms on probe ieee802154: ca8210: Use proper setters and getters for bitwise types ARM: tegra: Switch DSI-B clock parent to PLLD on Tegra114 media: c8sectpfe: Call of_node_put(i2c_bus) only once in c8sectpfe_probe() dm cache: prevent BUG_ON by blocking retries on failed device resumes orangefs: Do not truncate file size drm/gem: Test for imported GEM buffers with helper net: phylink: use pl->link_interface in phylink_expects_phy() remoteproc: qcom_wcnss: Handle platforms with only single power domain drm/amdgpu: Do not program AGP BAR regs under SRIOV in gfxhub_v1_0.c drm/amd/display: Skip checking FRL_MODE bit for PCON BW determination media: cx231xx: set device_caps for 417 pinctrl: bcm281xx: Use "unsigned int" instead of bare "unsigned" net: ethernet: ti: cpsw_new: populate netdev of_node net: pktgen: fix mpls maximum labels list parsing perf/hw_breakpoint: Return EOPNOTSUPP for unsupported breakpoint type ALSA: hda/realtek: Enable PC beep passthrough for HP EliteBook 855 G7 ipv4: fib: Move fib_valid_key_len() to rtm_to_fib_config(). drm/rockchip: vop2: Add uv swap for cluster window media: uvcvideo: Add sanity check to uvc_ioctl_xu_ctrl_map media: uvcvideo: Handle uvc menu translation inside uvc_get_le_value clk: imx8mp: inform CCF of maximum frequency of clocks x86/bugs: Make spectre user default depend on MITIGATION_SPECTRE_V2 hwmon: (gpio-fan) Add missing mutex locks ARM: at91: pm: fix at91_suspend_finish for ZQ calibration drm/mediatek: mtk_dpi: Add checks for reg_h_fre_con existence fpga: altera-cvp: Increase credit timeout perf: arm_pmuv3: Call kvm_vcpu_pmu_resync_el0() before enabling counters soc: apple: rtkit: Use high prio work queue soc: apple: rtkit: Implement OSLog buffers properly wifi: ath12k: Report proper tx completion status to mac80211 PCI: brcmstb: Expand inbound window size up to 64GB PCI: brcmstb: Add a softdep to MIP MSI-X driver firmware: arm_ffa: Set dma_mask for ffa devices net/mlx5: Avoid report two health errors on same syndrome selftests/net: have `gro.sh -t` return a correct exit code drm/amdkfd: KFD release_work possible circular locking leds: pwm-multicolor: Add check for fwnode_property_read_u32 net: ethernet: mtk_ppe_offload: Allow QinQ, double ETH_P_8021Q only net: xgene-v2: remove incorrect ACPI_PTR annotation bonding: report duplicate MAC address in all situations wifi: ath12k: Improve BSS discovery with hidden SSID in 6 GHz band soc: ti: k3-socinfo: Do not use syscon helper to build regmap Octeontx2-af: RPM: Register driver with PCI subsys IDs x86/build: Fix broken copy command in genimage.sh when making isoimage drm/amd/display: handle max_downscale_src_width fail check ASoC: mediatek: mt8188: Treat DMIC_GAINx_CUR as non-volatile ASoC: mediatek: mt8188: Add reference for dmic clocks x86/nmi: Add an emergency handler in nmi_desc & use it in nmi_shootdown_cpus() vhost-scsi: Return queue full for page alloc failures during copy vdpa/mlx5: Fix mlx5_vdpa_get_config() endianness on big-endian machines cpuidle: menu: Avoid discarding useful information media: adv7180: Disable test-pattern control on adv7180 media: tc358746: improve calculation of the D-PHY timing registers libbpf: Fix out-of-bound read dm: fix unconditional IO throttle caused by REQ_PREFLUSH net/mlx5: Change POOL_NEXT_SIZE define value and make it global x86/kaslr: Reduce KASLR entropy on most x86 systems crypto: ahash - Set default reqsize from ahash_alg crypto: skcipher - Zap type in crypto_alloc_sync_skcipher MIPS: Use arch specific syscall name match function genirq/msi: Store the IOMMU IOVA directly in msi_desc instead of iommu_cookie MIPS: pm-cps: Use per-CPU variables as per-CPU, not per-core clocksource: mips-gic-timer: Enable counter when CPUs start scsi: mpt3sas: Send a diag reset if target reset fails wifi: rtw88: Fix rtw_init_vht_cap() for RTL8814AU wifi: rtw88: Fix rtw_init_ht_cap() for RTL8814AU wifi: rtw88: Fix rtw_desc_to_mcsrate() to handle MCS16-31 wifi: rtw89: fw: propagate error code from rtw89_h2c_tx() net: pktgen: fix access outside of user given buffer in pktgen_thread_write() EDAC/ie31200: work around false positive build warning i3c: master: svc: Flush FIFO before sending Dynamic Address Assignment(DAA) drm/amd/display: Add support for disconnected eDP streams serial: mctrl_gpio: split disable_ms into sync and no_sync APIs RDMA/core: Fix best page size finding when it can cross SG entries pmdomain: imx: gpcv2: use proper helper for property detection can: c_can: Use of_property_present() to test existence of DT property bpf: don't do clean_live_states when state->loop_entry->branches > 0 eth: mlx4: don't try to complete XDP frames in netpoll PCI: Fix old_size lower bound in calculate_iosize() too ACPI: HED: Always initialize before evged vxlan: Join / leave MC group after remote changes media: test-drivers: vivid: don't call schedule in loop net/mlx5: Modify LSB bitmask in temperature event to include only the first bit net/mlx5: Apply rate-limiting to high temperature warning firmware: arm_ffa: Reject higher major version as incompatible ASoC: ops: Enforce platform maximum on initial value ASoC: tas2764: Add reg defaults for TAS2764_INT_CLK_CFG ASoC: tas2764: Mark SW_RESET as volatile ASoC: tas2764: Power up/down amp on mute ops ASoC: soc-dai: check return value at snd_soc_dai_set_tdm_slot() pinctrl: devicetree: do not goto err when probing hogs in pinctrl_dt_to_map smack: recognize ipv4 CIPSO w/o categories smack: Revert "smackfs: Added check catlen" kunit: tool: Use qboot on QEMU x86_64 media: i2c: imx219: Correct the minimum vblanking value media: v4l: Memset argument to 0 before calling get_mbus_config pad op net/mlx4_core: Avoid impossible mlx4_db_alloc() order value clk: qcom: ipq5018: allow it to be bulid on arm32 clk: qcom: clk-alpha-pll: Do not use random stack value for recalc rate x86/traps: Cleanup and robustify decode_bug() sched: Reduce the default slice to avoid tasks getting an extra tick serial: sh-sci: Update the suspend/resume support phy: core: don't require set_mode() callback for phy_get_mode() to work soundwire: amd: change the soundwire wake enable/disable sequence drm/amdgpu: Set snoop bit for SDMA for MI series drm/amd/display: Don't try AUX transactions on disconnected link drm/amdgpu: reset psp->cmd to NULL after releasing the buffer drm/amd/display: Update CR AUX RD interval interpretation drm/amd/display: Initial psr_version with correct setting drm/amd/display: Increase block_sequence array size drm/amdgpu: enlarge the VBIOS binary size limit drm/amd/display/dm: drop hw_support check in amdgpu_dm_i2c_xfer() scsi: target: spc: Fix loop traversal in spc_rsoc_get_descr() net/mlx5: Extend Ethtool loopback selftest to support non-linear SKB net/mlx5e: set the tx_queue_len for pfifo_fast net/mlx5e: reduce rep rxq depth to 256 for ECPF net/mlx5e: reduce the max log mpwrq sz for ECPF and reps drm/v3d: Add clock handling wifi: mac80211: don't unconditionally call drv_mgd_complete_tx() wifi: mac80211: remove misplaced drv_mgd_complete_tx() call net: fec: Refactor MAC reset to function powerpc/pseries/iommu: memory notifier incorrectly adds TCEs for pmemory arch/powerpc/perf: Check the instruction type before creating sample with perf_mem_data_src ip: fib_rules: Fetch net from fib_rule in fib[46]_rule_configure(). r8152: add vendor/device ID pair for Dell Alienware AW1022z pstore: Change kmsg_bytes storage size to u32 leds: trigger: netdev: Configure LED blink interval for HW offload ext4: don't write back data before punch hole in nojournal mode ext4: remove writable userspace mappings before truncating page cache wifi: rtw88: Fix download_firmware_validate() for RTL8814AU wifi: rtw88: Fix __rtw_download_firmware() for RTL8814AU clk: qcom: camcc-sm8250: Use clk_rcg2_shared_ops for some RCGs hwmon: (xgene-hwmon) use appropriate type for the latency value f2fs: introduce f2fs_base_attr for global sysfs entries media: qcom: camss: csid: Only add TPG v4l2 ctrl if TPG hardware is available net/mlx5e: Avoid WARN_ON when configuring MQPRIO with HTB offload enabled vxlan: Annotate FDB data races ipv4: ip_gre: Fix set but not used warning in ipgre_err() if IPv4-only r8169: don't scan PHY addresses > 0 bridge: mdb: Allow replace of a host-joined group ice: treat dyn_allowed only as suggestion rcu: handle quiescent states for PREEMPT_RCU=n, PREEMPT_COUNT=y rcu: handle unstable rdp in rcu_read_unlock_strict() rcu: fix header guard for rcu_all_qs() perf: Avoid the read if the count is already updated ice: count combined queues using Rx/Tx count net/mana: fix warning in the writer of client oob scsi: lpfc: Handle duplicate D_IDs in ndlp search-by D_ID routine scsi: lpfc: Free phba irq in lpfc_sli4_enable_msi() when pci_irq_vector() fails scsi: st: Restore some drive settings after reset wifi: ath12k: Avoid napi_sync() before napi_enable() HID: usbkbd: Fix the bit shift number for LED_KANA arm64: zynqmp: add clock-output-names property in clock nodes ASoC: codecs: pcm3168a: Allow for 24-bit in provider mode ASoC: rt722-sdca: Add some missing readable registers drm/ast: Find VBIOS mode from regular display size bpftool: Fix readlink usage in get_fd_type firmware: arm_scmi: Relax duplicate name constraint across protocol ids perf/amd/ibs: Fix perf_ibs_op.cnt_mask for CurCnt perf/amd/ibs: Fix ->config to sample period calculation for OP PMU wifi: rtl8xxxu: retry firmware download on error wifi: rtw88: Don't use static local variable in rtw8822b_set_tx_power_index_by_rate wifi: rtw89: add wiphy_lock() to work that isn't held wiphy_lock() yet spi: zynqmp-gqspi: Always acknowledge interrupts regulator: ad5398: Add device tree support wifi: ath12k: fix ath12k_hal_tx_cmd_ext_desc_setup() info1 override accel/qaic: Mask out SR-IOV PCI resources wifi: ath9k: return by of_get_mac_address wifi: ath12k: Fix end offset bit definition in monitor ring descriptor drm: bridge: adv7511: fill stream capabilities drm/atomic: clarify the rules around drm_atomic_state->allow_modeset drm/panel-edp: Add Starry 116KHD024006 drm: Add valid clones check ASoC: imx-card: Adjust over allocation of memory in imx_card_parse_of() book3s64/radix: Fix compile errors when CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP=n pinctrl: meson: define the pull up/down resistor value as 60 kOhm ASoC: cs42l43: Disable headphone clamps during type detection ASoC: Intel: bytcr_rt5640: Add DMI quirk for Acer Aspire SW3-013 ALSA: hda/realtek: Add quirk for HP Spectre x360 15-df1xxx nvme-pci: add quirks for device 126f:1001 nvme-pci: add quirks for WDC Blue SN550 15b7:5009 nvmet-tcp: don't restore null sk_state_change io_uring/fdinfo: annotate racy sq/cq head/tail reads cifs: Fix and improve cifs_query_path_info() and cifs_query_file_info() cifs: Fix changing times and read-only attr over SMB1 smb_set_file_info() function btrfs: correct the order of prelim_ref arguments in btrfs__prelim_ref btrfs: avoid NULL pointer dereference if no valid csum tree tools: ynl-gen: validate 0 len strings from kernel wifi: iwlwifi: add support for Killer on MTL xenbus: Allow PVH dom0 a non-local xenstore __legitimize_mnt(): check for MNT_SYNC_UMOUNT should be under mount_lock soundwire: bus: Fix race on the creation of the IRQ domain espintcp: remove encap socket caching to avoid reference leak dmaengine: idxd: add wq driver name support for accel-config user tool dmaengine: idxd: Fix allowing write() from different address spaces kernel/fork: only call untrack_pfn_clear() on VMAs duplicated for fork() remoteproc: qcom_wcnss: Fix on platforms without fallback regulators clk: sunxi-ng: d1: Add missing divider for MMC mod clocks xfrm: Sanitize marks before insert dmaengine: idxd: Fix ->poll() return value dmaengine: fsl-edma: Fix return code for unhandled interrupts Bluetooth: L2CAP: Fix not checking l2cap_chan security level Bluetooth: btusb: use skb_pull to avoid unsafe access in QCA dump handling bridge: netfilter: Fix forwarding of fragmented packets ice: fix vf->num_mac count with port representors ice: Fix LACP bonds without SRIOV environment pinctrl: qcom/msm: Convert to platform remove callback returning void pinctrl: qcom: switch to devm_register_sys_off_handler() net: dwmac-sun8i: Use parsed internal PHY address instead of 1 net: lan743x: Restore SGMII CTRL register on resume io_uring: fix overflow resched cqe reordering sch_hfsc: Fix qlen accounting bug when using peek in hfsc_enqueue() octeontx2-pf: Add AF_XDP non-zero copy support net/tipc: fix slab-use-after-free Read in tipc_aead_encrypt_done octeontx2-af: Set LMT_ENA bit for APR table entries octeontx2-af: Fix APR entry mapping based on APR_LMT_CFG clk: s2mps11: initialise clk_hw_onecell_data::num before accessing ::hws[] in probe() crypto: algif_hash - fix double free in hash_accept padata: do not leak refcount in reorder_work can: slcan: allow reception of short error messages can: bcm: add locking for bcm_op runtime updates can: bcm: add missing rcu read protection for procfs content ASoC: SOF: ipc4-control: Use SOF_CTRL_CMD_BINARY as numid for bytes_ext ASoc: SOF: topology: connect DAI to a single DAI link ASoC: SOF: ipc4-pcm: Delay reporting is only supported for playback direction ALSA: pcm: Fix race of buffer access at PCM OSS layer ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 14ASP10 llc: fix data loss when reading from a socket in llc_ui_recvmsg() can: kvaser_pciefd: Continue parsing DMA buf after dropped RX platform/x86: dell-wmi-sysman: Avoid buffer overflow in current_password_store() thermal: intel: x86_pkg_temp_thermal: Fix bogus trip temperature drm/edid: fixed the bug that hdr metadata was not reset smb: client: Fix use-after-free in cifs_fill_dirent arm64: dts: marvell: uDPU: define pinctrl state for alarm LEDs smb: client: Reset all search buffer pointers when releasing buffer Revert "drm/amd: Keep display off while going into S4" Input: xpad - add more controllers memcg: always call cond_resched() after fn() mm/page_alloc.c: avoid infinite retries caused by cpuset race Revert "arm64: dts: allwinner: h6: Use RSB for AXP805 PMIC connection" ksmbd: fix stream write failure spi: spi-fsl-dspi: restrict register range for regmap access spi: spi-fsl-dspi: Halt the module after a new message transfer spi: spi-fsl-dspi: Reset SR flags before sending a new message x86/boot: Compile boot code with -std=gnu11 too highmem: add folio_test_partial_kmap() pds_core: Prevent possible adminq overflow/stuck condition serial: sh-sci: Save and restore more registers watchdog: aspeed: fix 64-bit division pinctrl: tegra: Fix off by one in tegra_pinctrl_get_group() i3c: master: svc: Fix implicit fallthrough in svc_i3c_master_ibi_work() x86/mm/init: Handle the special case of device private pages in add_pages(), to not increase max_pfn and trigger dma_addressing_limited() bounce buffers bounce buffers drm/gem: Internally test import_attach for imported objects can: kvaser_pciefd: Force IRQ edge in case of nested IRQ hrtimers: Force migrate away hrtimers queued after CPUHP_AP_HRTIMERS_DYING btrfs: check folio mapping after unlock in relocate_one_folio() af_unix: Return struct unix_sock from unix_get_socket(). af_unix: Run GC on only one CPU. af_unix: Try to run GC async. af_unix: Replace BUG_ON() with WARN_ON_ONCE(). af_unix: Remove io_uring code for GC. af_unix: Remove CONFIG_UNIX_SCM. af_unix: Allocate struct unix_vertex for each inflight AF_UNIX fd. af_unix: Allocate struct unix_edge for each inflight AF_UNIX fd. af_unix: Link struct unix_edge when queuing skb. af_unix: Bulk update unix_tot_inflight/unix_inflight when queuing skb. af_unix: Iterate all vertices by DFS. af_unix: Detect Strongly Connected Components. af_unix: Save listener for embryo socket. af_unix: Fix up unix_edge.successor for embryo socket. af_unix: Save O(n) setup of Tarjan's algo. af_unix: Skip GC if no cycle exists. af_unix: Avoid Tarjan's algorithm if unnecessary. af_unix: Assign a unique index to SCC. af_unix: Detect dead SCC. af_unix: Replace garbage collection algorithm. af_unix: Remove lock dance in unix_peek_fds(). af_unix: Try not to hold unix_gc_lock during accept(). af_unix: Don't access successor in unix_del_edges() during GC. af_unix: Add dead flag to struct scm_fp_list. af_unix: Fix garbage collection of embryos carrying OOB with SCM_RIGHTS af_unix: Fix uninit-value in __unix_walk_scc() arm64: dts: qcom: ipq9574: Add missing properties for cryptobam arm64: dts: qcom: sm8350: Fix typo in pil_camera_mem node arm64: dts: qcom: sm8450: Add missing properties for cryptobam arm64: dts: qcom: sm8550: Add missing properties for cryptobam arm64: dts: ti: k3-am68-sk: Fix regulator hierarchy net_sched: hfsc: Address reentrant enqueue adding class to eltree twice perf/arm-cmn: Fix REQ2/SNP2 mixup perf/arm-cmn: Initialise cmn->cpu earlier coredump: fix error handling for replace_fd() coredump: hand a pidfd to the usermode coredump helper dmaengine: idxd: cdev: Fix uninitialized use of sva in idxd_cdev_open HID: quirks: Add ADATA XPG alpha wireless mouse support nfs: don't share pNFS DS connections between net namespaces platform/x86: thinkpad_acpi: Support also NEC Lavie X1475JAS um: let 'make clean' properly clean underlying SUBARCH as well drm/amd/display: fix link_set_dpms_off multi-display MST corner case phy: starfive: jh7110-usb: Fix USB 2.0 host occasional detection failure spi: spi-sun4i: fix early activation nvme-pci: add NVME_QUIRK_NO_DEEPEST_PS quirk for SOLIDIGM P44 Pro NFS: Avoid flushing data while holding directory locks in nfs_rename() platform/x86: fujitsu-laptop: Support Lifebook S2110 hotkeys platform/x86: thinkpad_acpi: Ignore battery threshold change event notification net: ethernet: ti: am65-cpsw: Lower random mac address error print to info ksmbd: use list_first_entry_or_null for opinfo_get_list() Linux 6.6.93 Change-Id: I05c890884dd1a8efaa774fc2cb19a43b0ee736b8 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
2
Makefile
2
Makefile
@@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 6
|
||||
PATCHLEVEL = 6
|
||||
SUBLEVEL = 92
|
||||
SUBLEVEL = 93
|
||||
EXTRAVERSION =
|
||||
NAME = Pinguïn Aangedreven
|
||||
|
||||
|
@@ -231,6 +231,8 @@
|
||||
interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#dma-cells = <1>;
|
||||
qcom,ee = <1>;
|
||||
qcom,num-ees = <4>;
|
||||
num-channels = <16>;
|
||||
qcom,controlled-remotely;
|
||||
};
|
||||
|
||||
|
@@ -442,7 +442,7 @@
|
||||
no-map;
|
||||
};
|
||||
|
||||
pil_camera_mem: mmeory@85200000 {
|
||||
pil_camera_mem: memory@85200000 {
|
||||
reg = <0x0 0x85200000 0x0 0x500000>;
|
||||
no-map;
|
||||
};
|
||||
|
@@ -4233,6 +4233,8 @@
|
||||
interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#dma-cells = <1>;
|
||||
qcom,ee = <0>;
|
||||
qcom,num-ees = <4>;
|
||||
num-channels = <16>;
|
||||
qcom,controlled-remotely;
|
||||
iommus = <&apps_smmu 0x584 0x11>,
|
||||
<&apps_smmu 0x588 0x0>,
|
||||
|
@@ -1866,6 +1866,8 @@
|
||||
interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#dma-cells = <1>;
|
||||
qcom,ee = <0>;
|
||||
qcom,num-ees = <4>;
|
||||
num-channels = <20>;
|
||||
qcom,controlled-remotely;
|
||||
iommus = <&apps_smmu 0x480 0x0>,
|
||||
<&apps_smmu 0x481 0x0>;
|
||||
|
@@ -43,6 +43,17 @@
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vsys_5v0: regulator-vsys5v0 {
|
||||
/* Output of LM61460 */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vsys_5v0";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
vin-supply = <&vusb_main>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vsys_3v3: regulator-vsys3v3 {
|
||||
/* Output of LM5141 */
|
||||
compatible = "regulator-fixed";
|
||||
@@ -75,7 +86,7 @@
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&vsys_3v3>;
|
||||
vin-supply = <&vsys_5v0>;
|
||||
gpios = <&main_gpio0 49 GPIO_ACTIVE_HIGH>;
|
||||
states = <1800000 0x0>,
|
||||
<3300000 0x1>;
|
||||
|
@@ -151,5 +151,6 @@ MRPROPER_FILES += $(HOST_DIR)/include/generated
|
||||
archclean:
|
||||
@find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \
|
||||
-o -name '*.gcov' \) -type f -print | xargs rm -f
|
||||
$(Q)$(MAKE) -f $(srctree)/Makefile ARCH=$(HEADER_ARCH) clean
|
||||
|
||||
export HEADER_ARCH SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING DEV_NULL_PATH
|
||||
|
@@ -225,7 +225,7 @@ static int idxd_cdev_open(struct inode *inode, struct file *filp)
|
||||
struct idxd_wq *wq;
|
||||
struct device *dev, *fdev;
|
||||
int rc = 0;
|
||||
struct iommu_sva *sva;
|
||||
struct iommu_sva *sva = NULL;
|
||||
unsigned int pasid;
|
||||
struct idxd_cdev *idxd_cdev;
|
||||
|
||||
@@ -322,7 +322,7 @@ failed_set_pasid:
|
||||
if (device_user_pasid_enabled(idxd))
|
||||
idxd_xa_pasid_remove(ctx);
|
||||
failed_get_pasid:
|
||||
if (device_user_pasid_enabled(idxd))
|
||||
if (device_user_pasid_enabled(idxd) && !IS_ERR_OR_NULL(sva))
|
||||
iommu_sva_unbind_device(sva);
|
||||
failed:
|
||||
mutex_unlock(&wq->wq_lock);
|
||||
|
@@ -145,6 +145,7 @@ void link_blank_dp_stream(struct dc_link *link, bool hw_init)
|
||||
void link_set_all_streams_dpms_off_for_link(struct dc_link *link)
|
||||
{
|
||||
struct pipe_ctx *pipes[MAX_PIPES];
|
||||
struct dc_stream_state *streams[MAX_PIPES];
|
||||
struct dc_state *state = link->dc->current_state;
|
||||
uint8_t count;
|
||||
int i;
|
||||
@@ -157,10 +158,18 @@ void link_set_all_streams_dpms_off_for_link(struct dc_link *link)
|
||||
|
||||
link_get_master_pipes_with_dpms_on(link, state, &count, pipes);
|
||||
|
||||
/* The subsequent call to dc_commit_updates_for_stream for a full update
|
||||
* will release the current state and swap to a new state. Releasing the
|
||||
* current state results in the stream pointers in the pipe_ctx structs
|
||||
* to be zero'd. Hence, cache all streams prior to dc_commit_updates_for_stream.
|
||||
*/
|
||||
for (i = 0; i < count; i++)
|
||||
streams[i] = pipes[i]->stream;
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
stream_update.stream = pipes[i]->stream;
|
||||
stream_update.stream = streams[i];
|
||||
dc_commit_updates_for_stream(link->ctx->dc, NULL, 0,
|
||||
pipes[i]->stream, &stream_update,
|
||||
streams[i], &stream_update,
|
||||
state);
|
||||
}
|
||||
|
||||
|
@@ -41,6 +41,10 @@
|
||||
#define USB_VENDOR_ID_ACTIONSTAR 0x2101
|
||||
#define USB_DEVICE_ID_ACTIONSTAR_1011 0x1011
|
||||
|
||||
#define USB_VENDOR_ID_ADATA_XPG 0x125f
|
||||
#define USB_VENDOR_ID_ADATA_XPG_WL_GAMING_MOUSE 0x7505
|
||||
#define USB_VENDOR_ID_ADATA_XPG_WL_GAMING_MOUSE_DONGLE 0x7506
|
||||
|
||||
#define USB_VENDOR_ID_ADS_TECH 0x06e1
|
||||
#define USB_DEVICE_ID_ADS_TECH_RADIO_SI470X 0xa155
|
||||
|
||||
|
@@ -27,6 +27,8 @@
|
||||
static const struct hid_device_id hid_quirks[] = {
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_AASHIMA, USB_DEVICE_ID_AASHIMA_GAMEPAD), HID_QUIRK_BADPAD },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_AASHIMA, USB_DEVICE_ID_AASHIMA_PREDATOR), HID_QUIRK_BADPAD },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ADATA_XPG, USB_VENDOR_ID_ADATA_XPG_WL_GAMING_MOUSE), HID_QUIRK_ALWAYS_POLL },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ADATA_XPG, USB_VENDOR_ID_ADATA_XPG_WL_GAMING_MOUSE_DONGLE), HID_QUIRK_ALWAYS_POLL },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_AFATECH, USB_DEVICE_ID_AFATECH_AF9016), HID_QUIRK_FULLSPEED_INTERVAL },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_AIREN, USB_DEVICE_ID_AIREN_SLIMPLUS), HID_QUIRK_NOGET },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_AKAI_09E8, USB_DEVICE_ID_AKAI_09E8_MIDIMIX), HID_QUIRK_NO_INIT_REPORTS },
|
||||
|
@@ -2095,7 +2095,7 @@ static int am65_cpsw_nuss_init_slave_ports(struct am65_cpsw_common *common)
|
||||
port->slave.mac_addr);
|
||||
if (!is_valid_ether_addr(port->slave.mac_addr)) {
|
||||
eth_random_addr(port->slave.mac_addr);
|
||||
dev_err(dev, "Use random MAC address\n");
|
||||
dev_info(dev, "Use random MAC address\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -3541,6 +3541,8 @@ static const struct pci_device_id nvme_id_table[] = {
|
||||
.driver_data = NVME_QUIRK_NO_DEEPEST_PS, },
|
||||
{ PCI_DEVICE(0x1e49, 0x0041), /* ZHITAI TiPro7000 NVMe SSD */
|
||||
.driver_data = NVME_QUIRK_NO_DEEPEST_PS, },
|
||||
{ PCI_DEVICE(0x025e, 0xf1ac), /* SOLIDIGM P44 pro SSDPFKKW020X7 */
|
||||
.driver_data = NVME_QUIRK_NO_DEEPEST_PS, },
|
||||
{ PCI_DEVICE(0xc0a9, 0x540a), /* Crucial P2 */
|
||||
.driver_data = NVME_QUIRK_BOGUS_NID, },
|
||||
{ PCI_DEVICE(0x1d97, 0x2263), /* Lexar NM610 */
|
||||
|
@@ -684,8 +684,8 @@ static umode_t arm_cmn_event_attr_is_visible(struct kobject *kobj,
|
||||
|
||||
if ((chan == 5 && cmn->rsp_vc_num < 2) ||
|
||||
(chan == 6 && cmn->dat_vc_num < 2) ||
|
||||
(chan == 7 && cmn->snp_vc_num < 2) ||
|
||||
(chan == 8 && cmn->req_vc_num < 2))
|
||||
(chan == 7 && cmn->req_vc_num < 2) ||
|
||||
(chan == 8 && cmn->snp_vc_num < 2))
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -841,8 +841,8 @@ static umode_t arm_cmn_event_attr_is_visible(struct kobject *kobj,
|
||||
_CMN_EVENT_XP(pub_##_name, (_event) | (4 << 5)), \
|
||||
_CMN_EVENT_XP(rsp2_##_name, (_event) | (5 << 5)), \
|
||||
_CMN_EVENT_XP(dat2_##_name, (_event) | (6 << 5)), \
|
||||
_CMN_EVENT_XP(snp2_##_name, (_event) | (7 << 5)), \
|
||||
_CMN_EVENT_XP(req2_##_name, (_event) | (8 << 5))
|
||||
_CMN_EVENT_XP(req2_##_name, (_event) | (7 << 5)), \
|
||||
_CMN_EVENT_XP(snp2_##_name, (_event) | (8 << 5))
|
||||
|
||||
#define CMN_EVENT_XP_DAT(_name, _event) \
|
||||
_CMN_EVENT_XP_PORT(dat_##_name, (_event) | (3 << 5)), \
|
||||
@@ -2443,6 +2443,7 @@ static int arm_cmn_probe(struct platform_device *pdev)
|
||||
|
||||
cmn->dev = &pdev->dev;
|
||||
cmn->part = (unsigned long)device_get_match_data(cmn->dev);
|
||||
cmn->cpu = cpumask_local_spread(0, dev_to_node(cmn->dev));
|
||||
platform_set_drvdata(pdev, cmn);
|
||||
|
||||
if (cmn->part == PART_CMN600 && has_acpi_companion(cmn->dev)) {
|
||||
@@ -2470,7 +2471,6 @@ static int arm_cmn_probe(struct platform_device *pdev)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
cmn->cpu = cpumask_local_spread(0, dev_to_node(cmn->dev));
|
||||
cmn->pmu = (struct pmu) {
|
||||
.module = THIS_MODULE,
|
||||
.attr_groups = arm_cmn_attr_groups,
|
||||
|
@@ -16,6 +16,8 @@
|
||||
#include <linux/usb/of.h>
|
||||
|
||||
#define USB_125M_CLK_RATE 125000000
|
||||
#define USB_CLK_MODE_OFF 0x0
|
||||
#define USB_CLK_MODE_RX_NORMAL_PWR BIT(1)
|
||||
#define USB_LS_KEEPALIVE_OFF 0x4
|
||||
#define USB_LS_KEEPALIVE_ENABLE BIT(4)
|
||||
|
||||
@@ -68,6 +70,7 @@ static int jh7110_usb2_phy_init(struct phy *_phy)
|
||||
{
|
||||
struct jh7110_usb2_phy *phy = phy_get_drvdata(_phy);
|
||||
int ret;
|
||||
unsigned int val;
|
||||
|
||||
ret = clk_set_rate(phy->usb_125m_clk, USB_125M_CLK_RATE);
|
||||
if (ret)
|
||||
@@ -77,6 +80,10 @@ static int jh7110_usb2_phy_init(struct phy *_phy)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
val = readl(phy->regs + USB_CLK_MODE_OFF);
|
||||
val |= USB_CLK_MODE_RX_NORMAL_PWR;
|
||||
writel(val, phy->regs + USB_CLK_MODE_OFF);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@@ -17,13 +17,13 @@
|
||||
/*
|
||||
* fujitsu-laptop.c - Fujitsu laptop support, providing access to additional
|
||||
* features made available on a range of Fujitsu laptops including the
|
||||
* P2xxx/P5xxx/S6xxx/S7xxx series.
|
||||
* P2xxx/P5xxx/S2xxx/S6xxx/S7xxx series.
|
||||
*
|
||||
* This driver implements a vendor-specific backlight control interface for
|
||||
* Fujitsu laptops and provides support for hotkeys present on certain Fujitsu
|
||||
* laptops.
|
||||
*
|
||||
* This driver has been tested on a Fujitsu Lifebook S6410, S7020 and
|
||||
* This driver has been tested on a Fujitsu Lifebook S2110, S6410, S7020 and
|
||||
* P8010. It should work on most P-series and S-series Lifebooks, but
|
||||
* YMMV.
|
||||
*
|
||||
@@ -102,7 +102,11 @@
|
||||
#define KEY2_CODE 0x411
|
||||
#define KEY3_CODE 0x412
|
||||
#define KEY4_CODE 0x413
|
||||
#define KEY5_CODE 0x420
|
||||
#define KEY5_CODE 0x414
|
||||
#define KEY6_CODE 0x415
|
||||
#define KEY7_CODE 0x416
|
||||
#define KEY8_CODE 0x417
|
||||
#define KEY9_CODE 0x420
|
||||
|
||||
/* Hotkey ringbuffer limits */
|
||||
#define MAX_HOTKEY_RINGBUFFER_SIZE 100
|
||||
@@ -450,7 +454,7 @@ static const struct key_entry keymap_default[] = {
|
||||
{ KE_KEY, KEY2_CODE, { KEY_PROG2 } },
|
||||
{ KE_KEY, KEY3_CODE, { KEY_PROG3 } },
|
||||
{ KE_KEY, KEY4_CODE, { KEY_PROG4 } },
|
||||
{ KE_KEY, KEY5_CODE, { KEY_RFKILL } },
|
||||
{ KE_KEY, KEY9_CODE, { KEY_RFKILL } },
|
||||
/* Soft keys read from status flags */
|
||||
{ KE_KEY, FLAG_RFKILL, { KEY_RFKILL } },
|
||||
{ KE_KEY, FLAG_TOUCHPAD_TOGGLE, { KEY_TOUCHPAD_TOGGLE } },
|
||||
@@ -474,6 +478,18 @@ static const struct key_entry keymap_p8010[] = {
|
||||
{ KE_END, 0 }
|
||||
};
|
||||
|
||||
static const struct key_entry keymap_s2110[] = {
|
||||
{ KE_KEY, KEY1_CODE, { KEY_PROG1 } }, /* "A" */
|
||||
{ KE_KEY, KEY2_CODE, { KEY_PROG2 } }, /* "B" */
|
||||
{ KE_KEY, KEY3_CODE, { KEY_WWW } }, /* "Internet" */
|
||||
{ KE_KEY, KEY4_CODE, { KEY_EMAIL } }, /* "E-mail" */
|
||||
{ KE_KEY, KEY5_CODE, { KEY_STOPCD } },
|
||||
{ KE_KEY, KEY6_CODE, { KEY_PLAYPAUSE } },
|
||||
{ KE_KEY, KEY7_CODE, { KEY_PREVIOUSSONG } },
|
||||
{ KE_KEY, KEY8_CODE, { KEY_NEXTSONG } },
|
||||
{ KE_END, 0 }
|
||||
};
|
||||
|
||||
static const struct key_entry *keymap = keymap_default;
|
||||
|
||||
static int fujitsu_laptop_dmi_keymap_override(const struct dmi_system_id *id)
|
||||
@@ -511,6 +527,15 @@ static const struct dmi_system_id fujitsu_laptop_dmi_table[] = {
|
||||
},
|
||||
.driver_data = (void *)keymap_p8010
|
||||
},
|
||||
{
|
||||
.callback = fujitsu_laptop_dmi_keymap_override,
|
||||
.ident = "Fujitsu LifeBook S2110",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK S2110"),
|
||||
},
|
||||
.driver_data = (void *)keymap_s2110
|
||||
},
|
||||
{}
|
||||
};
|
||||
|
||||
|
@@ -212,6 +212,7 @@ enum tpacpi_hkey_event_t {
|
||||
/* Thermal events */
|
||||
TP_HKEY_EV_ALARM_BAT_HOT = 0x6011, /* battery too hot */
|
||||
TP_HKEY_EV_ALARM_BAT_XHOT = 0x6012, /* battery critically hot */
|
||||
TP_HKEY_EV_ALARM_BAT_LIM_CHANGE = 0x6013, /* battery charge limit changed*/
|
||||
TP_HKEY_EV_ALARM_SENSOR_HOT = 0x6021, /* sensor too hot */
|
||||
TP_HKEY_EV_ALARM_SENSOR_XHOT = 0x6022, /* sensor critically hot */
|
||||
TP_HKEY_EV_THM_TABLE_CHANGED = 0x6030, /* windows; thermal table changed */
|
||||
@@ -3942,6 +3943,10 @@ static bool hotkey_notify_6xxx(const u32 hkey,
|
||||
pr_alert("THERMAL EMERGENCY: battery is extremely hot!\n");
|
||||
/* recommended action: immediate sleep/hibernate */
|
||||
break;
|
||||
case TP_HKEY_EV_ALARM_BAT_LIM_CHANGE:
|
||||
pr_debug("Battery Info: battery charge threshold changed\n");
|
||||
/* User changed charging threshold. No action needed */
|
||||
return true;
|
||||
case TP_HKEY_EV_ALARM_SENSOR_HOT:
|
||||
pr_crit("THERMAL ALARM: a sensor reports something is too hot!\n");
|
||||
/* recommended action: warn user through gui, that */
|
||||
@@ -11315,6 +11320,8 @@ static int __must_check __init get_thinkpad_model_data(
|
||||
tp->vendor = PCI_VENDOR_ID_IBM;
|
||||
else if (dmi_name_in_vendors("LENOVO"))
|
||||
tp->vendor = PCI_VENDOR_ID_LENOVO;
|
||||
else if (dmi_name_in_vendors("NEC"))
|
||||
tp->vendor = PCI_VENDOR_ID_LENOVO;
|
||||
else
|
||||
return 0;
|
||||
|
||||
|
@@ -263,6 +263,9 @@ static int sun4i_spi_transfer_one(struct spi_master *master,
|
||||
else
|
||||
reg |= SUN4I_CTL_DHB;
|
||||
|
||||
/* Now that the settings are correct, enable the interface */
|
||||
reg |= SUN4I_CTL_ENABLE;
|
||||
|
||||
sun4i_spi_write(sspi, SUN4I_CTL_REG, reg);
|
||||
|
||||
/* Ensure that we have a parent clock fast enough */
|
||||
@@ -403,7 +406,7 @@ static int sun4i_spi_runtime_resume(struct device *dev)
|
||||
}
|
||||
|
||||
sun4i_spi_write(sspi, SUN4I_CTL_REG,
|
||||
SUN4I_CTL_ENABLE | SUN4I_CTL_MASTER | SUN4I_CTL_TP);
|
||||
SUN4I_CTL_MASTER | SUN4I_CTL_TP);
|
||||
|
||||
return 0;
|
||||
|
||||
|
@@ -42,6 +42,7 @@
|
||||
#include <linux/timekeeping.h>
|
||||
#include <linux/sysctl.h>
|
||||
#include <linux/elf.h>
|
||||
#include <uapi/linux/pidfd.h>
|
||||
|
||||
#include <linux/uaccess.h>
|
||||
#include <asm/mmu_context.h>
|
||||
@@ -56,6 +57,13 @@
|
||||
static bool dump_vma_snapshot(struct coredump_params *cprm);
|
||||
static void free_vma_snapshot(struct coredump_params *cprm);
|
||||
|
||||
/*
|
||||
* File descriptor number for the pidfd for the thread-group leader of
|
||||
* the coredumping task installed into the usermode helper's file
|
||||
* descriptor table.
|
||||
*/
|
||||
#define COREDUMP_PIDFD_NUMBER 3
|
||||
|
||||
static int core_uses_pid;
|
||||
static unsigned int core_pipe_limit;
|
||||
static char core_pattern[CORENAME_MAX_SIZE] = "core";
|
||||
@@ -332,6 +340,27 @@ static int format_corename(struct core_name *cn, struct coredump_params *cprm,
|
||||
case 'C':
|
||||
err = cn_printf(cn, "%d", cprm->cpu);
|
||||
break;
|
||||
/* pidfd number */
|
||||
case 'F': {
|
||||
/*
|
||||
* Installing a pidfd only makes sense if
|
||||
* we actually spawn a usermode helper.
|
||||
*/
|
||||
if (!ispipe)
|
||||
break;
|
||||
|
||||
/*
|
||||
* Note that we'll install a pidfd for the
|
||||
* thread-group leader. We know that task
|
||||
* linkage hasn't been removed yet and even if
|
||||
* this @current isn't the actual thread-group
|
||||
* leader we know that the thread-group leader
|
||||
* cannot be reaped until @current has exited.
|
||||
*/
|
||||
cprm->pid = task_tgid(current);
|
||||
err = cn_printf(cn, "%d", COREDUMP_PIDFD_NUMBER);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -488,7 +517,7 @@ static void wait_for_dump_helpers(struct file *file)
|
||||
}
|
||||
|
||||
/*
|
||||
* umh_pipe_setup
|
||||
* umh_coredump_setup
|
||||
* helper function to customize the process used
|
||||
* to collect the core in userspace. Specifically
|
||||
* it sets up a pipe and installs it as fd 0 (stdin)
|
||||
@@ -498,21 +527,61 @@ static void wait_for_dump_helpers(struct file *file)
|
||||
* is a special value that we use to trap recursive
|
||||
* core dumps
|
||||
*/
|
||||
static int umh_pipe_setup(struct subprocess_info *info, struct cred *new)
|
||||
static int umh_coredump_setup(struct subprocess_info *info, struct cred *new)
|
||||
{
|
||||
struct file *files[2];
|
||||
struct file *pidfs_file = NULL;
|
||||
struct coredump_params *cp = (struct coredump_params *)info->data;
|
||||
int err = create_pipe_files(files, 0);
|
||||
int err;
|
||||
|
||||
if (cp->pid) {
|
||||
int fd;
|
||||
|
||||
fd = pidfd_prepare(cp->pid, 0, &pidfs_file);
|
||||
if (fd < 0)
|
||||
return fd;
|
||||
|
||||
/*
|
||||
* We don't care about the fd. We also cannot simply
|
||||
* replace it below because dup2() will refuse to close
|
||||
* this file descriptor if its in a larval state. So
|
||||
* close it!
|
||||
*/
|
||||
put_unused_fd(fd);
|
||||
|
||||
/*
|
||||
* Usermode helpers are childen of either
|
||||
* system_unbound_wq or of kthreadd. So we know that
|
||||
* we're starting off with a clean file descriptor
|
||||
* table. So we should always be able to use
|
||||
* COREDUMP_PIDFD_NUMBER as our file descriptor value.
|
||||
*/
|
||||
err = replace_fd(COREDUMP_PIDFD_NUMBER, pidfs_file, 0);
|
||||
if (err < 0)
|
||||
goto out_fail;
|
||||
|
||||
pidfs_file = NULL;
|
||||
}
|
||||
|
||||
err = create_pipe_files(files, 0);
|
||||
if (err)
|
||||
return err;
|
||||
goto out_fail;
|
||||
|
||||
cp->file = files[1];
|
||||
|
||||
err = replace_fd(0, files[0], 0);
|
||||
fput(files[0]);
|
||||
if (err < 0)
|
||||
goto out_fail;
|
||||
|
||||
/* and disallow core files too */
|
||||
current->signal->rlim[RLIMIT_CORE] = (struct rlimit){1, 1};
|
||||
|
||||
err = 0;
|
||||
|
||||
out_fail:
|
||||
if (pidfs_file)
|
||||
fput(pidfs_file);
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -589,7 +658,7 @@ void do_coredump(const kernel_siginfo_t *siginfo)
|
||||
}
|
||||
|
||||
if (cprm.limit == 1) {
|
||||
/* See umh_pipe_setup() which sets RLIMIT_CORE = 1.
|
||||
/* See umh_coredump_setup() which sets RLIMIT_CORE = 1.
|
||||
*
|
||||
* Normally core limits are irrelevant to pipes, since
|
||||
* we're not writing to the file system, but we use
|
||||
@@ -634,7 +703,7 @@ void do_coredump(const kernel_siginfo_t *siginfo)
|
||||
retval = -ENOMEM;
|
||||
sub_info = call_usermodehelper_setup(helper_argv[0],
|
||||
helper_argv, NULL, GFP_KERNEL,
|
||||
umh_pipe_setup, NULL, &cprm);
|
||||
umh_coredump_setup, NULL, &cprm);
|
||||
if (sub_info)
|
||||
retval = call_usermodehelper_exec(sub_info,
|
||||
UMH_WAIT_EXEC);
|
||||
|
@@ -1080,6 +1080,8 @@ struct nfs_server *nfs_create_server(struct fs_context *fc)
|
||||
if (server->namelen == 0 || server->namelen > NFS2_MAXNAMLEN)
|
||||
server->namelen = NFS2_MAXNAMLEN;
|
||||
}
|
||||
/* Linux 'subtree_check' borkenness mandates this setting */
|
||||
server->fh_expire_type = NFS_FH_VOL_RENAME;
|
||||
|
||||
if (!(fattr->valid & NFS_ATTR_FATTR)) {
|
||||
error = ctx->nfs_mod->rpc_ops->getattr(server, ctx->mntfh,
|
||||
|
15
fs/nfs/dir.c
15
fs/nfs/dir.c
@@ -2642,6 +2642,18 @@ nfs_unblock_rename(struct rpc_task *task, struct nfs_renamedata *data)
|
||||
unblock_revalidate(new_dentry);
|
||||
}
|
||||
|
||||
static bool nfs_rename_is_unsafe_cross_dir(struct dentry *old_dentry,
|
||||
struct dentry *new_dentry)
|
||||
{
|
||||
struct nfs_server *server = NFS_SB(old_dentry->d_sb);
|
||||
|
||||
if (old_dentry->d_parent != new_dentry->d_parent)
|
||||
return false;
|
||||
if (server->fh_expire_type & NFS_FH_RENAME_UNSAFE)
|
||||
return !(server->fh_expire_type & NFS_FH_NOEXPIRE_WITH_OPEN);
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* RENAME
|
||||
* FIXME: Some nfsds, like the Linux user space nfsd, may generate a
|
||||
@@ -2729,7 +2741,8 @@ int nfs_rename(struct mnt_idmap *idmap, struct inode *old_dir,
|
||||
|
||||
}
|
||||
|
||||
if (S_ISREG(old_inode->i_mode))
|
||||
if (S_ISREG(old_inode->i_mode) &&
|
||||
nfs_rename_is_unsafe_cross_dir(old_dentry, new_dentry))
|
||||
nfs_sync_inode(old_inode);
|
||||
task = nfs_async_rename(old_dir, new_dir, old_dentry, new_dentry,
|
||||
must_unblock ? nfs_unblock_rename : NULL);
|
||||
|
@@ -75,6 +75,7 @@ nfs4_fl_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
|
||||
struct page *scratch;
|
||||
struct list_head dsaddrs;
|
||||
struct nfs4_pnfs_ds_addr *da;
|
||||
struct net *net = server->nfs_client->cl_net;
|
||||
|
||||
/* set up xdr stream */
|
||||
scratch = alloc_page(gfp_flags);
|
||||
@@ -158,8 +159,7 @@ nfs4_fl_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
|
||||
|
||||
mp_count = be32_to_cpup(p); /* multipath count */
|
||||
for (j = 0; j < mp_count; j++) {
|
||||
da = nfs4_decode_mp_ds_addr(server->nfs_client->cl_net,
|
||||
&stream, gfp_flags);
|
||||
da = nfs4_decode_mp_ds_addr(net, &stream, gfp_flags);
|
||||
if (da)
|
||||
list_add_tail(&da->da_node, &dsaddrs);
|
||||
}
|
||||
@@ -169,7 +169,7 @@ nfs4_fl_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
|
||||
goto out_err_free_deviceid;
|
||||
}
|
||||
|
||||
dsaddr->ds_list[i] = nfs4_pnfs_ds_add(&dsaddrs, gfp_flags);
|
||||
dsaddr->ds_list[i] = nfs4_pnfs_ds_add(net, &dsaddrs, gfp_flags);
|
||||
if (!dsaddr->ds_list[i])
|
||||
goto out_err_drain_dsaddrs;
|
||||
|
||||
|
@@ -49,6 +49,7 @@ nfs4_ff_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
|
||||
struct nfs4_pnfs_ds_addr *da;
|
||||
struct nfs4_ff_layout_ds *new_ds = NULL;
|
||||
struct nfs4_ff_ds_version *ds_versions = NULL;
|
||||
struct net *net = server->nfs_client->cl_net;
|
||||
u32 mp_count;
|
||||
u32 version_count;
|
||||
__be32 *p;
|
||||
@@ -80,8 +81,7 @@ nfs4_ff_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
|
||||
|
||||
for (i = 0; i < mp_count; i++) {
|
||||
/* multipath ds */
|
||||
da = nfs4_decode_mp_ds_addr(server->nfs_client->cl_net,
|
||||
&stream, gfp_flags);
|
||||
da = nfs4_decode_mp_ds_addr(net, &stream, gfp_flags);
|
||||
if (da)
|
||||
list_add_tail(&da->da_node, &dsaddrs);
|
||||
}
|
||||
@@ -149,7 +149,7 @@ nfs4_ff_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
|
||||
new_ds->ds_versions = ds_versions;
|
||||
new_ds->ds_versions_cnt = version_count;
|
||||
|
||||
new_ds->ds = nfs4_pnfs_ds_add(&dsaddrs, gfp_flags);
|
||||
new_ds->ds = nfs4_pnfs_ds_add(net, &dsaddrs, gfp_flags);
|
||||
if (!new_ds->ds)
|
||||
goto out_err_drain_dsaddrs;
|
||||
|
||||
|
@@ -59,6 +59,7 @@ struct nfs4_pnfs_ds {
|
||||
struct list_head ds_node; /* nfs4_pnfs_dev_hlist dev_dslist */
|
||||
char *ds_remotestr; /* comma sep list of addrs */
|
||||
struct list_head ds_addrs;
|
||||
const struct net *ds_net;
|
||||
struct nfs_client *ds_clp;
|
||||
refcount_t ds_count;
|
||||
unsigned long ds_state;
|
||||
@@ -405,7 +406,8 @@ int pnfs_generic_commit_pagelist(struct inode *inode,
|
||||
int pnfs_generic_scan_commit_lists(struct nfs_commit_info *cinfo, int max);
|
||||
void pnfs_generic_write_commit_done(struct rpc_task *task, void *data);
|
||||
void nfs4_pnfs_ds_put(struct nfs4_pnfs_ds *ds);
|
||||
struct nfs4_pnfs_ds *nfs4_pnfs_ds_add(struct list_head *dsaddrs,
|
||||
struct nfs4_pnfs_ds *nfs4_pnfs_ds_add(const struct net *net,
|
||||
struct list_head *dsaddrs,
|
||||
gfp_t gfp_flags);
|
||||
void nfs4_pnfs_v3_ds_connect_unload(void);
|
||||
int nfs4_pnfs_ds_connect(struct nfs_server *mds_srv, struct nfs4_pnfs_ds *ds,
|
||||
|
@@ -651,12 +651,12 @@ _same_data_server_addrs_locked(const struct list_head *dsaddrs1,
|
||||
* Lookup DS by addresses. nfs4_ds_cache_lock is held
|
||||
*/
|
||||
static struct nfs4_pnfs_ds *
|
||||
_data_server_lookup_locked(const struct list_head *dsaddrs)
|
||||
_data_server_lookup_locked(const struct net *net, const struct list_head *dsaddrs)
|
||||
{
|
||||
struct nfs4_pnfs_ds *ds;
|
||||
|
||||
list_for_each_entry(ds, &nfs4_data_server_cache, ds_node)
|
||||
if (_same_data_server_addrs_locked(&ds->ds_addrs, dsaddrs))
|
||||
if (ds->ds_net == net && _same_data_server_addrs_locked(&ds->ds_addrs, dsaddrs))
|
||||
return ds;
|
||||
return NULL;
|
||||
}
|
||||
@@ -763,7 +763,7 @@ out_err:
|
||||
* uncached and return cached struct nfs4_pnfs_ds.
|
||||
*/
|
||||
struct nfs4_pnfs_ds *
|
||||
nfs4_pnfs_ds_add(struct list_head *dsaddrs, gfp_t gfp_flags)
|
||||
nfs4_pnfs_ds_add(const struct net *net, struct list_head *dsaddrs, gfp_t gfp_flags)
|
||||
{
|
||||
struct nfs4_pnfs_ds *tmp_ds, *ds = NULL;
|
||||
char *remotestr;
|
||||
@@ -781,13 +781,14 @@ nfs4_pnfs_ds_add(struct list_head *dsaddrs, gfp_t gfp_flags)
|
||||
remotestr = nfs4_pnfs_remotestr(dsaddrs, gfp_flags);
|
||||
|
||||
spin_lock(&nfs4_ds_cache_lock);
|
||||
tmp_ds = _data_server_lookup_locked(dsaddrs);
|
||||
tmp_ds = _data_server_lookup_locked(net, dsaddrs);
|
||||
if (tmp_ds == NULL) {
|
||||
INIT_LIST_HEAD(&ds->ds_addrs);
|
||||
list_splice_init(dsaddrs, &ds->ds_addrs);
|
||||
ds->ds_remotestr = remotestr;
|
||||
refcount_set(&ds->ds_count, 1);
|
||||
INIT_LIST_HEAD(&ds->ds_node);
|
||||
ds->ds_net = net;
|
||||
ds->ds_clp = NULL;
|
||||
list_add(&ds->ds_node, &nfs4_data_server_cache);
|
||||
dprintk("%s add new data server %s\n", __func__,
|
||||
|
@@ -146,11 +146,8 @@ static struct oplock_info *opinfo_get_list(struct ksmbd_inode *ci)
|
||||
{
|
||||
struct oplock_info *opinfo;
|
||||
|
||||
if (list_empty(&ci->m_op_list))
|
||||
return NULL;
|
||||
|
||||
down_read(&ci->m_lock);
|
||||
opinfo = list_first_entry(&ci->m_op_list, struct oplock_info,
|
||||
opinfo = list_first_entry_or_null(&ci->m_op_list, struct oplock_info,
|
||||
op_entry);
|
||||
if (opinfo) {
|
||||
if (opinfo->conn == NULL ||
|
||||
|
@@ -28,6 +28,7 @@ struct coredump_params {
|
||||
int vma_count;
|
||||
size_t vma_data_size;
|
||||
struct core_vma_metadata *vma_meta;
|
||||
struct pid *pid;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@@ -199,6 +199,15 @@ struct nfs_server {
|
||||
char *fscache_uniq; /* Uniquifier (or NULL) */
|
||||
#endif
|
||||
|
||||
/* The following #defines numerically match the NFSv4 equivalents */
|
||||
#define NFS_FH_NOEXPIRE_WITH_OPEN (0x1)
|
||||
#define NFS_FH_VOLATILE_ANY (0x2)
|
||||
#define NFS_FH_VOL_MIGRATION (0x4)
|
||||
#define NFS_FH_VOL_RENAME (0x8)
|
||||
#define NFS_FH_RENAME_UNSAFE (NFS_FH_VOLATILE_ANY | NFS_FH_VOL_RENAME)
|
||||
u32 fh_expire_type; /* V4 bitmask representing file
|
||||
handle volatility type for
|
||||
this filesystem */
|
||||
u32 pnfs_blksize; /* layout_blksize attr */
|
||||
#if IS_ENABLED(CONFIG_NFS_V4)
|
||||
u32 attr_bitmask[3];/* V4 bitmask representing the set
|
||||
@@ -222,9 +231,6 @@ struct nfs_server {
|
||||
u32 acl_bitmask; /* V4 bitmask representing the ACEs
|
||||
that are supported on this
|
||||
filesystem */
|
||||
u32 fh_expire_type; /* V4 bitmask representing file
|
||||
handle volatility type for
|
||||
this filesystem */
|
||||
struct pnfs_layoutdriver_type *pnfs_curr_ld; /* Active layout driver */
|
||||
struct rpc_wait_queue roc_rpcwaitq;
|
||||
void *pnfs_ld_data; /* per mount point data */
|
||||
|
@@ -175,6 +175,11 @@ struct hfsc_sched {
|
||||
|
||||
#define HT_INFINITY 0xffffffffffffffffULL /* infinite time value */
|
||||
|
||||
static bool cl_in_el_or_vttree(struct hfsc_class *cl)
|
||||
{
|
||||
return ((cl->cl_flags & HFSC_FSC) && cl->cl_nactive) ||
|
||||
((cl->cl_flags & HFSC_RSC) && !RB_EMPTY_NODE(&cl->el_node));
|
||||
}
|
||||
|
||||
/*
|
||||
* eligible tree holds backlogged classes being sorted by their eligible times.
|
||||
@@ -1040,6 +1045,8 @@ hfsc_change_class(struct Qdisc *sch, u32 classid, u32 parentid,
|
||||
if (cl == NULL)
|
||||
return -ENOBUFS;
|
||||
|
||||
RB_CLEAR_NODE(&cl->el_node);
|
||||
|
||||
err = tcf_block_get(&cl->block, &cl->filter_list, sch, extack);
|
||||
if (err) {
|
||||
kfree(cl);
|
||||
@@ -1573,7 +1580,7 @@ hfsc_enqueue(struct sk_buff *skb, struct Qdisc *sch, struct sk_buff **to_free)
|
||||
sch->qstats.backlog += len;
|
||||
sch->q.qlen++;
|
||||
|
||||
if (first && !cl->cl_nactive) {
|
||||
if (first && !cl_in_el_or_vttree(cl)) {
|
||||
if (cl->cl_flags & HFSC_RSC)
|
||||
init_ed(cl, len);
|
||||
if (cl->cl_flags & HFSC_FSC)
|
||||
|
Reference in New Issue
Block a user