Kernel
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- 47 participants
- 18690 discussions
Backport 5.10.104 LTS patches from upstream
hamradio: fix macro redefine warning
Revert "xfrm: xfrm_state_mtu should return at least 1280 for ipv6"
btrfs: add missing run of delayed items after unlink during log replay
btrfs: qgroup: fix deadlock between rescan worker and remove qgroup
btrfs: fix lost prealloc extents beyond eof after full fsync
tracing: Fix return value of setup handlers
tracing/histogram: Fix sorting on old "cpu" value
HID: add mapping for KEY_ALL_APPLICATIONS
HID: add mapping for KEY_DICTATE
Input: samsung-keypad - properly state IOMEM dependency
Input: elan_i2c - fix regulator enable count imbalance after suspend/resume
Input: elan_i2c - move regulator[en|dis]able() out of elan[en|dis]able_power()
net: dcb: disable softirqs in dcbnl_flush_dev()
drm/amdgpu: fix suspend/resume hang regression
nl80211: Handle nla_memdup failures in handle_nan_filter
iavf: Refactor iavf state machine tracking
net: chelsio: cxgb3: check the return value of pci_find_capability()
ibmvnic: complete init_done on transport events
ARM: tegra: Move panels to AUX bus
soc: fsl: qe: Check of ioremap return value
soc: fsl: guts: Add a missing memory allocation failure check
soc: fsl: guts: Revert commit 3c0d64e867ed
ARM: dts: Use 32KiHz oscillator on devkit8000
ARM: dts: switch timer config to common devkit8000 devicetree
s390/extable: fix exception table sorting
memfd: fix F_SEAL_WRITE after shmem huge page allocated
ibmvnic: free reset-work-item when flushing
igc: igc_write_phy_reg_gpy: drop premature return
pinctrl: sunxi: Use unique lockdep classes for IRQs
selftests: mlxsw: tc_police_scale: Make test more robust
ARM: 9182/1: mmu: fix returns from early_param() and __setup() functions
ARM: Fix kgdb breakpoint for Thumb2
igc: igc_read_phy_reg_gpy: drop premature return
arm64: dts: rockchip: Switch RK3399-Gru DP to SPDIF output
can: gs_usb: change active_channels's type from atomic_t to u8
ASoC: cs4265: Fix the duplicated control name
firmware: arm_scmi: Remove space in MODULE_ALIAS name
efivars: Respect "block" flag in efivar_entry_set_safe()
ixgbe: xsk: change !netif_carrier_ok() handling in ixgbe_xmit_zc()
net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe()
ibmvnic: register netdev after init of adapter
net: sxgbe: fix return value of __setup handler
iavf: Fix missing check for running netdev
mac80211: treat some SAE auth steps as final
net: stmmac: fix return value of __setup handler
mac80211: fix forwarded mesh frames AC & queue selection
ice: fix concurrent reset and removal of VFs
ice: Fix race conditions between virtchnl handling and VF ndo ops
net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by server
net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error generated by client
net/smc: fix connection leak
net: dcb: flush lingering app table entries for unregistered devices
net: ipv6: ensure we call ipv6_mc_down() at most once
batman-adv: Don't expect inter-netns unique iflink indices
batman-adv: Request iflink once in batadv_get_real_netdevice
batman-adv: Request iflink once in batadv-on-batadv check
netfilter: nf_queue: handle socket prefetch
netfilter: nf_queue: fix possible use-after-free
netfilter: nf_queue: don't assume sk is full socket
net: fix up skbs delta_truesize in UDP GRO frag_list
e1000e: Correct NVM checksum verification flow
xfrm: enforce validity of offload input flags
xfrm: fix the if_id check in changelink
bpf, sockmap: Do not ignore orig_len parameter
netfilter: fix use-after-free in __nf_register_net_hook()
xfrm: fix MTU regression
mm: Consider __GFP_NOWARN flag for oversized kvmalloc() calls
ntb: intel: fix port config status offset for SPR
thermal: core: Fix TZ_GET_TRIP NULL pointer dereference
xen/netfront: destroy queues before real_num_tx_queues is zeroed
drm/i915: s/JSP2/ICP2/ PCH
iommu/amd: Recover from event log overflow
ASoC: ops: Shift tested values in snd_soc_put_volsw() by +min
riscv: Fix config KASAN && DEBUG_VIRTUAL
riscv: Fix config KASAN && SPARSEMEM && !SPARSE_VMEMMAP
riscv/efi_stub: Fix get_boot_hartid_from_fdt() return value
ALSA: intel_hdmi: Fix reference to PCM buffer address
tracing: Add ustring operation to filtering string pointers
drm/amdgpu: check vm ready by amdgpu_vm->evicting flag
ata: pata_hpt37x: fix PCI clock detection
serial: stm32: prevent TDR register overwrite when sending x_char
tracing: Add test for user space strings when filtering on string pointers
exfat: fix i_blocks for files truncated over 4 GiB
exfat: reuse exfat_inode_info variable instead of calling EXFAT_I()
net: usb: cdc_mbim: avoid altsetting toggling for Telit FN990
i2c: qup: allow COMPILE_TEST
i2c: cadence: allow COMPILE_TEST
dmaengine: shdma: Fix runtime PM imbalance on error
selftests/seccomp: Fix seccomp failure by adding missing headers
cifs: fix double free race when mount fails in cifs_get_root()
tipc: fix a bit overflow in tipc_crypto_key_rcv()
KVM: arm64: vgic: Read HW interrupt pending state from the HW
Input: clear BTN_RIGHT/MIDDLE on buttonpads
regulator: core: fix false positive in regulator_late_cleanup()
ASoC: rt5682: do not block workqueue if card is unbound
ASoC: rt5668: do not block workqueue if card is unbound
i2c: bcm2835: Avoid clock stretching timeouts
mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work
mac80211_hwsim: report NOACK frames in tx_status
already merged:
usb: gadget: don't release an existing dev->buf
usb: gadget: clear related members when goto fail
rcu/nocb: Fix missed nocb_timer requeue
sched/topology: Make sched_init_numa() use a set for the deduplicating sort
sched/topology: Fix sched_domain_topology_level alloc in sched_init_numa()
ia64: ensure proper NUMA distance and possible map initialization
Total patches: 105 - 6 = 99
Alexandre Ghiti (2):
riscv: Fix config KASAN && SPARSEMEM && !SPARSE_VMEMMAP
riscv: Fix config KASAN && DEBUG_VIRTUAL
Alyssa Ross (1):
firmware: arm_scmi: Remove space in MODULE_ALIAS name
Amit Cohen (1):
selftests: mlxsw: tc_police_scale: Make test more robust
Anthoine Bourgeois (2):
ARM: dts: switch timer config to common devkit8000 devicetree
ARM: dts: Use 32KiHz oscillator on devkit8000
Antony Antony (1):
xfrm: fix the if_id check in changelink
Benjamin Beichler (1):
mac80211_hwsim: report NOACK frames in tx_status
Brett Creeley (1):
ice: Fix race conditions between virtchnl handling and VF ndo ops
Brian Norris (1):
arm64: dts: rockchip: Switch RK3399-Gru DP to SPDIF output
Christophe JAILLET (2):
soc: fsl: guts: Revert commit 3c0d64e867ed
soc: fsl: guts: Add a missing memory allocation failure check
Christophe Vu-Brugier (2):
exfat: reuse exfat_inode_info variable instead of calling EXFAT_I()
exfat: fix i_blocks for files truncated over 4 GiB
Corinna Vinschen (1):
igc: igc_read_phy_reg_gpy: drop premature return
D. Wythe (3):
net/smc: fix connection leak
net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error generated by
client
net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by server
Daniel Borkmann (1):
mm: Consider __GFP_NOWARN flag for oversized kvmalloc() calls
Daniele Palmas (1):
net: usb: cdc_mbim: avoid altsetting toggling for Telit FN990
Dave Jiang (1):
ntb: intel: fix port config status offset for SPR
David Gow (1):
Input: samsung-keypad - properly state IOMEM dependency
Eric Anholt (1):
i2c: bcm2835: Avoid clock stretching timeouts
Eric Dumazet (2):
netfilter: fix use-after-free in __nf_register_net_hook()
bpf, sockmap: Do not ignore orig_len parameter
Fabio Estevam (1):
ASoC: cs4265: Fix the duplicated control name
Filipe Manana (2):
btrfs: fix lost prealloc extents beyond eof after full fsync
btrfs: add missing run of delayed items after unlink during log replay
Florian Westphal (3):
netfilter: nf_queue: don't assume sk is full socket
netfilter: nf_queue: fix possible use-after-free
netfilter: nf_queue: handle socket prefetch
Hangyu Hua (1):
tipc: fix a bit overflow in tipc_crypto_key_rcv()
Hans de Goede (2):
Input: elan_i2c - move regulator_[en|dis]able() out of
elan_[en|dis]able_power()
Input: elan_i2c - fix regulator enable count imbalance after
suspend/resume
Heiko Carstens (1):
s390/extable: fix exception table sorting
Huang Pei (1):
hamradio: fix macro redefine warning
Hugh Dickins (1):
memfd: fix F_SEAL_WRITE after shmem huge page allocated
Jacob Keller (1):
ice: fix concurrent reset and removal of VFs
JaeMan Park (1):
mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work
Jann Horn (1):
efivars: Respect "block" flag in efivar_entry_set_safe()
Jia-Ju Bai (1):
net: chelsio: cxgb3: check the return value of pci_find_capability()
Jiasheng Jiang (2):
soc: fsl: qe: Check of ioremap return value
nl80211: Handle nla_memdup failures in handle_nan_filter
Jiri Bohac (2):
xfrm: fix MTU regression
Revert "xfrm: xfrm_state_mtu should return at least 1280 for ipv6"
Johannes Berg (1):
mac80211: treat some SAE auth steps as final
José Expósito (1):
Input: clear BTN_RIGHT/MIDDLE on buttonpads
Kai Vehmanen (2):
ASoC: rt5668: do not block workqueue if card is unbound
ASoC: rt5682: do not block workqueue if card is unbound
Lennert Buytenhek (1):
iommu/amd: Recover from event log overflow
Leon Romanovsky (1):
xfrm: enforce validity of offload input flags
Maciej Fijalkowski (1):
ixgbe: xsk: change !netif_carrier_ok() handling in ixgbe_xmit_zc()
Marc Zyngier (1):
KVM: arm64: vgic: Read HW interrupt pending state from the HW
Marek Marczykowski-Górecki (1):
xen/netfront: destroy queues before real_num_tx_queues is zeroed
Marek Vasut (1):
ASoC: ops: Shift tested values in snd_soc_put_volsw() by +min
Mateusz Palczewski (1):
iavf: Refactor iavf state machine tracking
Nicolas Cavallari (1):
thermal: core: Fix TZ_GET_TRIP NULL pointer dereference
Nicolas Escande (1):
mac80211: fix forwarded mesh frames AC & queue selection
Oliver Barta (1):
regulator: core: fix false positive in regulator_late_cleanup()
Qiang Yu (2):
drm/amdgpu: check vm ready by amdgpu_vm->evicting flag
drm/amdgpu: fix suspend/resume hang regression
Randy Dunlap (4):
net: stmmac: fix return value of __setup handler
net: sxgbe: fix return value of __setup handler
ARM: 9182/1: mmu: fix returns from early_param() and __setup()
functions
tracing: Fix return value of __setup handlers
Ronnie Sahlberg (1):
cifs: fix double free race when mount fails in cifs_get_root()
Russell King (Oracle) (1):
ARM: Fix kgdb breakpoint for Thumb2
Samuel Holland (1):
pinctrl: sunxi: Use unique lockdep classes for IRQs
Sasha Neftin (2):
e1000e: Correct NVM checksum verification flow
igc: igc_write_phy_reg_gpy: drop premature return
Sergey Shtylyov (1):
ata: pata_hpt37x: fix PCI clock detection
Sherry Yang (1):
selftests/seccomp: Fix seccomp failure by adding missing headers
Sidong Yang (1):
btrfs: qgroup: fix deadlock between rescan worker and remove qgroup
Slawomir Laba (1):
iavf: Fix missing check for running netdev
Steven Rostedt (2):
tracing: Add test for user space strings when filtering on string
pointers
tracing: Add ustring operation to filtering string pointers
Steven Rostedt (Google) (1):
tracing/histogram: Fix sorting on old "cpu" value
Sukadev Bhattiprolu (3):
ibmvnic: register netdev after init of adapter
ibmvnic: free reset-work-item when flushing
ibmvnic: complete init_done on transport events
Sunil V L (1):
riscv/efi_stub: Fix get_boot_hartid_from_fdt() return value
Sven Eckelmann (3):
batman-adv: Request iflink once in batadv-on-batadv check
batman-adv: Request iflink once in batadv_get_real_netdevice
batman-adv: Don't expect inter-netns unique iflink indices
Thierry Reding (1):
ARM: tegra: Move panels to AUX bus
Valentin Caron (1):
serial: stm32: prevent TDR register overwrite when sending x_char
Ville Syrjälä (1):
drm/i915: s/JSP2/ICP2/ PCH
Vincent Mailhol (1):
can: gs_usb: change active_channels's type from atomic_t to u8
Vladimir Oltean (2):
net: dcb: flush lingering app table entries for unregistered devices
net: dcb: disable softirqs in dcbnl_flush_dev()
William Mahon (2):
HID: add mapping for KEY_DICTATE
HID: add mapping for KEY_ALL_APPLICATIONS
Wolfram Sang (2):
i2c: cadence: allow COMPILE_TEST
i2c: qup: allow COMPILE_TEST
Yongzhi Liu (1):
dmaengine: shdma: Fix runtime PM imbalance on error
Zhen Ni (1):
ALSA: intel_hdmi: Fix reference to PCM buffer address
Zheyu Ma (1):
net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe()
j.nixdorf(a)avm.de (1):
net: ipv6: ensure we call ipv6_mc_down() at most once
lena wang (1):
net: fix up skbs delta_truesize in UDP GRO frag_list
Documentation/trace/events.rst | 19 ++++
.../arm/boot/dts/omap3-devkit8000-common.dtsi | 18 +++
arch/arm/boot/dts/omap3-devkit8000.dts | 33 ------
arch/arm/boot/dts/tegra124-nyan-big.dts | 15 ++-
arch/arm/boot/dts/tegra124-nyan-blaze.dts | 15 ++-
arch/arm/boot/dts/tegra124-venice2.dts | 14 +--
arch/arm/kernel/kgdb.c | 36 ++++--
arch/arm/mm/mmu.c | 2 +
arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi | 17 ++-
arch/arm64/kvm/vgic/vgic-mmio.c | 2 +
arch/riscv/mm/Makefile | 3 +
arch/riscv/mm/kasan_init.c | 3 +-
arch/s390/include/asm/extable.h | 9 +-
drivers/ata/pata_hpt37x.c | 4 +-
drivers/clocksource/timer-ti-dm-systimer.c | 3 +-
drivers/dma/sh/shdma-base.c | 4 +-
drivers/firmware/arm_scmi/driver.c | 2 +-
drivers/firmware/efi/libstub/riscv-stub.c | 17 +--
drivers/firmware/efi/vars.c | 5 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 10 +-
drivers/gpu/drm/i915/intel_pch.c | 2 +-
drivers/gpu/drm/i915/intel_pch.h | 2 +-
drivers/hid/hid-debug.c | 5 +-
drivers/hid/hid-input.c | 3 +
drivers/i2c/busses/Kconfig | 4 +-
drivers/i2c/busses/i2c-bcm2835.c | 11 ++
drivers/input/input.c | 6 +
drivers/input/keyboard/Kconfig | 2 +-
drivers/input/mouse/elan_i2c_core.c | 64 ++++-------
drivers/iommu/amd/amd_iommu.h | 1 +
drivers/iommu/amd/amd_iommu_types.h | 1 +
drivers/iommu/amd/init.c | 10 ++
drivers/iommu/amd/iommu.c | 10 +-
drivers/net/arcnet/com20020-pci.c | 3 +
drivers/net/can/usb/gs_usb.c | 10 +-
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c | 2 +
drivers/net/ethernet/ibm/ibmvnic.c | 21 +++-
drivers/net/ethernet/intel/e1000e/ich8lan.c | 4 +-
drivers/net/ethernet/intel/iavf/iavf.h | 10 ++
drivers/net/ethernet/intel/iavf/iavf_main.c | 44 +++----
.../net/ethernet/intel/iavf/iavf_virtchnl.c | 2 +-
drivers/net/ethernet/intel/ice/ice_main.c | 2 +
.../net/ethernet/intel/ice/ice_virtchnl_pf.c | 58 ++++++++--
.../net/ethernet/intel/ice/ice_virtchnl_pf.h | 5 +
drivers/net/ethernet/intel/igc/igc_phy.c | 4 -
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 6 +-
.../net/ethernet/samsung/sxgbe/sxgbe_main.c | 6 +-
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 6 +-
drivers/net/hamradio/mkiss.c | 2 +
drivers/net/usb/cdc_mbim.c | 5 +
drivers/net/wireless/mac80211_hwsim.c | 13 +++
drivers/net/xen-netfront.c | 39 ++++---
drivers/ntb/hw/intel/ntb_hw_gen4.c | 17 ++-
drivers/ntb/hw/intel/ntb_hw_gen4.h | 16 +++
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 9 ++
drivers/regulator/core.c | 13 +--
drivers/soc/fsl/guts.c | 14 ++-
drivers/soc/fsl/qe/qe_io.c | 2 +
drivers/thermal/thermal_netlink.c | 5 +-
drivers/tty/serial/stm32-usart.c | 12 ++
fs/btrfs/qgroup.c | 9 +-
fs/btrfs/tree-log.c | 61 ++++++++--
fs/cifs/cifsfs.c | 1 +
fs/exfat/file.c | 18 +--
fs/exfat/inode.c | 13 +--
fs/exfat/namei.c | 6 +-
fs/exfat/super.c | 10 +-
include/net/netfilter/nf_queue.h | 2 +-
include/net/xfrm.h | 1 -
include/uapi/linux/input-event-codes.h | 4 +-
include/uapi/linux/xfrm.h | 6 +
kernel/trace/trace.c | 4 +-
kernel/trace/trace_events_filter.c | 107 ++++++++++++++++--
kernel/trace/trace_events_hist.c | 6 +-
kernel/trace/trace_kprobe.c | 2 +-
mm/memfd.c | 40 +++++--
mm/util.c | 4 +-
net/batman-adv/hard-interface.c | 29 +++--
net/core/skbuff.c | 2 +-
net/core/skmsg.c | 2 +-
net/dcb/dcbnl.c | 44 +++++++
net/ipv4/esp4.c | 2 +-
net/ipv6/addrconf.c | 8 +-
net/ipv6/esp6.c | 2 +-
net/ipv6/ip6_output.c | 11 +-
net/mac80211/ieee80211_i.h | 2 +-
net/mac80211/mlme.c | 16 ++-
net/mac80211/rx.c | 4 +-
net/netfilter/core.c | 5 +-
net/netfilter/nf_queue.c | 36 +++++-
net/netfilter/nfnetlink_queue.c | 12 +-
net/smc/af_smc.c | 10 +-
net/smc/smc_core.c | 5 +-
net/tipc/crypto.c | 2 +-
net/wireless/nl80211.c | 12 ++
net/xfrm/xfrm_device.c | 6 +-
net/xfrm/xfrm_interface.c | 2 +-
net/xfrm/xfrm_state.c | 14 +--
sound/soc/codecs/cs4265.c | 3 +-
sound/soc/codecs/rt5668.c | 12 +-
sound/soc/codecs/rt5682.c | 12 +-
sound/soc/soc-ops.c | 4 +-
sound/x86/intel_hdmi_audio.c | 2 +-
.../drivers/net/mlxsw/tc_police_scale.sh | 3 +-
tools/testing/selftests/seccomp/Makefile | 2 +-
105 files changed, 881 insertions(+), 359 deletions(-)
--
2.20.1
1
99

[PATCH openEuler-5.10 1/6] slub: add back check for free nonslab objects
by Zheng Zengkai 28 May '22
by Zheng Zengkai 28 May '22
28 May '22
From: Kefeng Wang <wangkefeng.wang(a)huawei.com>
mainline inclusion
from mainline-v5.16-rc1
commit d0fe47c64152a63ceed4b9f29ac56371407fa7b4
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I57LS2
CVE: NA
backport: openEuler-22.03-LTS
--------------------------------
After commit f227f0faf63b ("slub: fix unreclaimable slab stat for bulk
free"), the check for free nonslab page is replaced by VM_BUG_ON_PAGE,
which only check with CONFIG_DEBUG_VM enabled, but this config may
impact performance, so it only for debug.
Commit 0937502af7c9 ("slub: Add check for kfree() of non slab objects.")
add the ability, which should be needed in any configs to catch the
invalid free, they even could be potential issue, eg, memory corruption,
use after free and double free, so replace VM_BUG_ON_PAGE to
WARN_ON_ONCE, add object address printing to help use to debug the
issue.
Link: https://lkml.kernel.org/r/20210930070214.61499-1-wangkefeng.wang@huawei.com
Signed-off-by: Kefeng Wang <wangkefeng.wang(a)huawei.com>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: Shakeel Butt <shakeelb(a)google.com>
Cc: Vlastimil Babka <vbabka(a)suse.cz>
Cc: Christoph Lameter <cl(a)linux.com>
Cc: Pekka Enberg <penberg(a)kernel.org>
Cc: David Rienjes <rientjes(a)google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim(a)lge.com>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds(a)linux-foundation.org>
Signed-off-by: Ma Wupeng <mawupeng1(a)huawei.com>
Reviewed-by: Kefeng Wang <wangkefeng.wang(a)huawei.com>
Signed-off-by: Zheng Zengkai <zhengzengkai(a)huawei.com>
---
mm/slub.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/mm/slub.c b/mm/slub.c
index 7a7b0bf82b8e..98452815a066 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -3209,7 +3209,9 @@ static inline void free_nonslab_page(struct page *page, void *object)
{
unsigned int order = compound_order(page);
- VM_BUG_ON_PAGE(!PageCompound(page), page);
+ if (WARN_ON_ONCE(!PageCompound(page)))
+ pr_warn_once("object pointer: 0x%p\n", object);
+
kfree_hook(object);
mod_lruvec_page_state(page, NR_SLAB_UNRECLAIMABLE_B, -(PAGE_SIZE << order));
__free_pages(page, order);
--
2.20.1
1
5

[PATCH openEuler-5.10 v2 1/4] ipv6: per-netns exclusive flowlabel checks
by Zheng Zengkai 28 May '22
by Zheng Zengkai 28 May '22
28 May '22
From: Willem de Bruijn <willemb(a)google.com>
stable inclusion
from stable-v5.10.102
commit 4f523f15e5d753ac055302bc29ca9677d6692eed
bugzilla: https://gitee.com/openeuler/kernel/issues/I575QT
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit 0b0dff5b3b98c5c7ce848151df9da0b3cdf0cc8b upstream.
Ipv6 flowlabels historically require a reservation before use.
Optionally in exclusive mode (e.g., user-private).
Commit 59c820b2317f ("ipv6: elide flowlabel check if no exclusive
leases exist") introduced a fastpath that avoids this check when no
exclusive leases exist in the system, and thus any flowlabel use
will be granted.
That allows skipping the control operation to reserve a flowlabel
entirely. Though with a warning if the fast path fails:
This is an optimization. Robust applications still have to revert to
requesting leases if the fast path fails due to an exclusive lease.
Still, this is subtle. Better isolate network namespaces from each
other. Flowlabels are per-netns. Also record per-netns whether
exclusive leases are in use. Then behavior does not change based on
activity in other netns.
Changes
v2
- wrap in IS_ENABLED(CONFIG_IPV6) to avoid breakage if disabled
Fixes: 59c820b2317f ("ipv6: elide flowlabel check if no exclusive leases exist")
Link: https://lore.kernel.org/netdev/MWHPR2201MB1072BCCCFCE779E4094837ACD0329@MWH…
Reported-by: Congyu Liu <liu3101(a)purdue.edu>
Signed-off-by: Willem de Bruijn <willemb(a)google.com>
Tested-by: Congyu Liu <liu3101(a)purdue.edu>
Link: https://lore.kernel.org/r/20220215160037.1976072-1-willemdebruijn.kernel@gm…
Signed-off-by: Jakub Kicinski <kuba(a)kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Wang Yufen <wangyufen(a)huawei.com>
Reviewed-by: Wei Yongjun <weiyongjun1(a)huawei.com>
Reviewed-by: Yue Haibing <yuehaibing(a)huawei.com>
Signed-off-by: Zheng Zengkai <zhengzengkai(a)huawei.com>
---
include/net/ipv6.h | 5 ++++-
include/net/netns/ipv6.h | 5 +++++
net/ipv6/ip6_flowlabel.c | 4 +++-
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index c0273ae50296..9392a81a3ae4 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -390,17 +390,20 @@ static inline void txopt_put(struct ipv6_txoptions *opt)
kfree_rcu(opt, rcu);
}
+#if IS_ENABLED(CONFIG_IPV6)
struct ip6_flowlabel *__fl6_sock_lookup(struct sock *sk, __be32 label);
extern struct static_key_false_deferred ipv6_flowlabel_exclusive;
static inline struct ip6_flowlabel *fl6_sock_lookup(struct sock *sk,
__be32 label)
{
- if (static_branch_unlikely(&ipv6_flowlabel_exclusive.key))
+ if (static_branch_unlikely(&ipv6_flowlabel_exclusive.key) &&
+ READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl))
return __fl6_sock_lookup(sk, label) ? : ERR_PTR(-ENOENT);
return NULL;
}
+#endif
struct ipv6_txoptions *fl6_merge_options(struct ipv6_txoptions *opt_space,
struct ip6_flowlabel *fl,
diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h
index ce5ed87accda..b2a28201f4fd 100644
--- a/include/net/netns/ipv6.h
+++ b/include/net/netns/ipv6.h
@@ -83,6 +83,11 @@ struct netns_ipv6 {
unsigned long ip6_rt_last_gc;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
unsigned int fib6_rules_require_fldissect;
+#endif
+#ifndef __GENKSYMS__
+ unsigned char flowlabel_has_excl;
+#endif
+#ifdef CONFIG_IPV6_MULTIPLE_TABLES
bool fib6_has_custom_rules;
#ifdef CONFIG_IPV6_SUBTREES
unsigned int fib6_routes_require_src;
diff --git a/net/ipv6/ip6_flowlabel.c b/net/ipv6/ip6_flowlabel.c
index aa673a6a7e43..ceb85c67ce39 100644
--- a/net/ipv6/ip6_flowlabel.c
+++ b/net/ipv6/ip6_flowlabel.c
@@ -450,8 +450,10 @@ fl_create(struct net *net, struct sock *sk, struct in6_flowlabel_req *freq,
err = -EINVAL;
goto done;
}
- if (fl_shared_exclusive(fl) || fl->opt)
+ if (fl_shared_exclusive(fl) || fl->opt) {
+ WRITE_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl, 1);
static_branch_deferred_inc(&ipv6_flowlabel_exclusive);
+ }
return fl;
done:
--
2.20.1
1
3

26 May '22
From: Willem de Bruijn <willemb(a)google.com>
stable inclusion
from stable-v5.10.102
commit 4f523f15e5d753ac055302bc29ca9677d6692eed
bugzilla: https://gitee.com/openeuler/kernel/issues/I575QT
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit 0b0dff5b3b98c5c7ce848151df9da0b3cdf0cc8b upstream.
Ipv6 flowlabels historically require a reservation before use.
Optionally in exclusive mode (e.g., user-private).
Commit 59c820b2317f ("ipv6: elide flowlabel check if no exclusive
leases exist") introduced a fastpath that avoids this check when no
exclusive leases exist in the system, and thus any flowlabel use
will be granted.
That allows skipping the control operation to reserve a flowlabel
entirely. Though with a warning if the fast path fails:
This is an optimization. Robust applications still have to revert to
requesting leases if the fast path fails due to an exclusive lease.
Still, this is subtle. Better isolate network namespaces from each
other. Flowlabels are per-netns. Also record per-netns whether
exclusive leases are in use. Then behavior does not change based on
activity in other netns.
Changes
v2
- wrap in IS_ENABLED(CONFIG_IPV6) to avoid breakage if disabled
Fixes: 59c820b2317f ("ipv6: elide flowlabel check if no exclusive leases exist")
Link: https://lore.kernel.org/netdev/MWHPR2201MB1072BCCCFCE779E4094837ACD0329@MWH…
Reported-by: Congyu Liu <liu3101(a)purdue.edu>
Signed-off-by: Willem de Bruijn <willemb(a)google.com>
Tested-by: Congyu Liu <liu3101(a)purdue.edu>
Link: https://lore.kernel.org/r/20220215160037.1976072-1-willemdebruijn.kernel@gm…
Signed-off-by: Jakub Kicinski <kuba(a)kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Wang Yufen <wangyufen(a)huawei.com>
Reviewed-by: Wei Yongjun <weiyongjun1(a)huawei.com>
Reviewed-by: Yue Haibing <yuehaibing(a)huawei.com>
Signed-off-by: Zheng Zengkai <zhengzengkai(a)huawei.com>
---
include/net/ipv6.h | 5 ++++-
include/net/netns/ipv6.h | 5 +++++
net/ipv6/ip6_flowlabel.c | 4 +++-
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index c0273ae50296..9392a81a3ae4 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -390,17 +390,20 @@ static inline void txopt_put(struct ipv6_txoptions *opt)
kfree_rcu(opt, rcu);
}
+#if IS_ENABLED(CONFIG_IPV6)
struct ip6_flowlabel *__fl6_sock_lookup(struct sock *sk, __be32 label);
extern struct static_key_false_deferred ipv6_flowlabel_exclusive;
static inline struct ip6_flowlabel *fl6_sock_lookup(struct sock *sk,
__be32 label)
{
- if (static_branch_unlikely(&ipv6_flowlabel_exclusive.key))
+ if (static_branch_unlikely(&ipv6_flowlabel_exclusive.key) &&
+ READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl))
return __fl6_sock_lookup(sk, label) ? : ERR_PTR(-ENOENT);
return NULL;
}
+#endif
struct ipv6_txoptions *fl6_merge_options(struct ipv6_txoptions *opt_space,
struct ip6_flowlabel *fl,
diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h
index ce5ed87accda..b2a28201f4fd 100644
--- a/include/net/netns/ipv6.h
+++ b/include/net/netns/ipv6.h
@@ -83,6 +83,11 @@ struct netns_ipv6 {
unsigned long ip6_rt_last_gc;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
unsigned int fib6_rules_require_fldissect;
+#endif
+#ifndef __GENKSYMS__
+ unsigned char flowlabel_has_excl;
+#endif
+#ifdef CONFIG_IPV6_MULTIPLE_TABLES
bool fib6_has_custom_rules;
#ifdef CONFIG_IPV6_SUBTREES
unsigned int fib6_routes_require_src;
diff --git a/net/ipv6/ip6_flowlabel.c b/net/ipv6/ip6_flowlabel.c
index aa673a6a7e43..ceb85c67ce39 100644
--- a/net/ipv6/ip6_flowlabel.c
+++ b/net/ipv6/ip6_flowlabel.c
@@ -450,8 +450,10 @@ fl_create(struct net *net, struct sock *sk, struct in6_flowlabel_req *freq,
err = -EINVAL;
goto done;
}
- if (fl_shared_exclusive(fl) || fl->opt)
+ if (fl_shared_exclusive(fl) || fl->opt) {
+ WRITE_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl, 1);
static_branch_deferred_inc(&ipv6_flowlabel_exclusive);
+ }
return fl;
done:
--
2.20.1
1
6
Backport 5.10.103 LTS patches from upstream
memblock: use kfree() to release kmalloced memblock regions
gpio: tegra186: Fix chip_data type confusion
tty: n_gsm: fix deadlock in gsmtty_open()
tty: n_gsm: fix wrong tty control line for flow control
tty: n_gsm: fix NULL pointer access due to DLCI release
tty: n_gsm: fix proper link termination after failed open
tty: n_gsm: fix encoding of control signal octet bit DV
riscv: fix oops caused by irqsoff latency tracer
thermal: int340x: fix memory leak in int3400_notify()
RDMA/cma: Do not change route.addr.src_addr outside state checks
driver core: Free DMA range map when device is released
xhci: Prevent futile URB re-submissions due to incorrect return value.
xhci: re-initialize the HC during resume if HCE was set
usb: dwc3: gadget: Let the interrupt handler disable bottom halves.
usb: dwc3: pci: Fix Bay Trail phy GPIO mappings
usb: dwc2: drd: fix soft connect when gadget is unconfigured
USB: serial: option: add Telit LE910R1 compositions
USB: serial: option: add support for DW5829e
tracefs: Set the group ownership in apply_options() not parse_options()
usb: gadget: rndis: add spinlock for rndis response list
Revert "USB: serial: ch341: add new Product ID for CH341A"
ata: pata_hpt37x: disable primary channel on HPT371
sc16is7xx: Fix for incorrect data being transmitted
iio: Fix error handling for PM
iio: imu: st_lsm6dsx: wait for settling time in st_lsm6dsx_read_oneshot
iio: adc: ad7124: fix mask used for setting AIN_BUFP & AIN_BUFM bits
iio: adc: men_z188_adc: Fix a resource leak in an error handling path
tracing: Have traceon and traceoff trigger honor the instance
RDMA/ib_srp: Fix a deadlock
RDMA/rtrs-clt: Move free_permit from free_clt to rtrs_clt_close
RDMA/rtrs-clt: Kill wait_for_inflight_permits
regmap-irq: Update interrupt clear register for proper reset
spi: spi-zynq-qspi: Fix a NULL pointer dereference in zynq_qspi_exec_mem_op()
net/mlx5e: kTLS, Use CHECKSUM_UNNECESSARY for device-offloaded packets
net/mlx5: Fix wrong limitation of metadata match on ecpf
net/mlx5: Fix possible deadlock on rule deletion
udp_tunnel: Fix end of loop test in udp_tunnel_nic_unregister()
surface: surface3_power: Fix battery readings on batteries without a serial
number
net/smc: Use a mutex for locking "struct smc_pnettable"
netfilter: nf_tables: fix memory leak during stateful obj update
nfp: flower: Fix a potential leak in nfp_tunnel_add_shared_mac()
net: Force inlining of checksum functions in net/checksum.h
net: ll_temac: check the return value of devm_kmalloc()
net/sched: act_ct: Fix flow table lookup after ct clear or switching zones
net/mlx5e: Fix wrong return value on ioctl EEPROM query failure
drm/edid: Always set RGB444
openvswitch: Fix setting ipv6 fields causing hw csum failure
gso: do not skip outer ip header in case of ipip and net_failover
tipc: Fix end of loop tests for list_for_each_entry()
net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends
io_uring: add a schedule point in io_add_buffers()
bpf: Add schedule points in batch ops
selftests: bpf: Check bpf_msg_push_data return value
bpf: Do not try bpf_msg_push_data with len 0
hwmon: Handle failure to register sensor with thermal zone correctly
bnxt_en: Fix active FEC reporting to ethtool
bnx2x: fix driver load from initrd
perf data: Fix double free in perf_session__delete()
ping: remove pr_err from ping_lookup
optee: use driver internal tee_context for some rpc
tee: export teedev_open() and teedev_close_context()
x86/fpu: Correct pkru/xstate inconsistency
CDC-NCM: avoid overflow in sanity checking
USB: zaurus: support another broken Zaurus
drm/i915: Correctly populate use_sagv_wm for all pipes
drm/amdgpu: disable MMHUB PG for Picasso
KVM: x86/mmu: make apf token non-zero to fix bug
parisc/unaligned: Fix ldw() and stw() unalignment handlers
parisc/unaligned: Fix fldd and fstd unaligned handlers on 32-bit kernel
vhost/vsock: don't check owner in vhost_vsock_stop() while releasing
clk: jz4725b: fix mmc0 clock gating
btrfs: tree-checker: check item_size for dev_item
btrfs: tree-checker: check item_size for inode_item
already merged:
cgroup/cpuset: Fix a race between cpuset_attach() and cpu hotplug
netfilter: nf_tables_offload: incorrect flow offload action array size
configfs: fix a race in configfs_{,un}register_subsystem()
RDMA/rtrs-clt: Fix possible double free in error case
USB: gadget: validate endpoint index for xilinx udc
sr9700: sanity check for packet length
Total patches: 79 - 6 = 73
Alexey Bayduraev (1):
perf data: Fix double free in perf_session__delete()
Ariel Levkovich (1):
net/mlx5: Fix wrong limitation of metadata match on ecpf
Bart Van Assche (1):
RDMA/ib_srp: Fix a deadlock
Brian Geffon (1):
x86/fpu: Correct pkru/xstate inconsistency
Changbin Du (1):
riscv: fix oops caused by irqsoff latency tracer
Christophe JAILLET (2):
nfp: flower: Fix a potential leak in nfp_tunnel_add_shared_mac()
iio: adc: men_z188_adc: Fix a resource leak in an error handling path
Christophe Leroy (1):
net: Force inlining of checksum functions in net/checksum.h
Chuansheng Liu (1):
thermal: int340x: fix memory leak in int3400_notify()
Cosmin Tanislav (1):
iio: adc: ad7124: fix mask used for setting AIN_BUFP & AIN_BUFM bits
Daehwan Jung (1):
usb: gadget: rndis: add spinlock for rndis response list
Dan Carpenter (2):
tipc: Fix end of loop tests for list_for_each_entry()
udp_tunnel: Fix end of loop test in udp_tunnel_nic_unregister()
Daniele Palmas (1):
USB: serial: option: add Telit LE910R1 compositions
Dmytro Bagrii (1):
Revert "USB: serial: ch341: add new Product ID for CH341A"
Eric Dumazet (3):
bpf: Add schedule points in batch ops
io_uring: add a schedule point in io_add_buffers()
net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends
Evan Quan (1):
drm/amdgpu: disable MMHUB PG for Picasso
Fabio M. De Francesco (1):
net/smc: Use a mutex for locking "struct smc_pnettable"
Fabrice Gasnier (1):
usb: dwc2: drd: fix soft connect when gadget is unconfigured
Felix Maurer (2):
bpf: Do not try bpf_msg_push_data with len 0
selftests: bpf: Check bpf_msg_push_data return value
Florian Westphal (1):
netfilter: nf_tables: fix memory leak during stateful obj update
Gal Pressman (1):
net/mlx5e: Fix wrong return value on ioctl EEPROM query failure
Guenter Roeck (1):
hwmon: Handle failure to register sensor with thermal zone correctly
Guoqing Jiang (1):
RDMA/rtrs-clt: Kill wait_for_inflight_permits
Hans de Goede (2):
surface: surface3_power: Fix battery readings on batteries without a
serial number
usb: dwc3: pci: Fix Bay Trail phy GPIO mappings
Helge Deller (2):
parisc/unaligned: Fix fldd and fstd unaligned handlers on 32-bit
kernel
parisc/unaligned: Fix ldw() and stw() unalignment handlers
Hongyu Xie (1):
xhci: Prevent futile URB re-submissions due to incorrect return value.
Jason Gunthorpe (1):
RDMA/cma: Do not change route.addr.src_addr outside state checks
Jens Wiklander (2):
tee: export teedev_open() and teedev_close_context()
optee: use driver internal tee_context for some rpc
Liang Zhang (1):
KVM: x86/mmu: make apf token non-zero to fix bug
Lorenzo Bianconi (1):
iio: imu: st_lsm6dsx: wait for settling time in
st_lsm6dsx_read_oneshot
Manish Chopra (1):
bnx2x: fix driver load from initrd
Maor Gottlieb (1):
net/mlx5: Fix possible deadlock on rule deletion
Marc Zyngier (1):
gpio: tegra186: Fix chip_data type confusion
Maxime Ripard (1):
drm/edid: Always set RGB444
Md Haris Iqbal (1):
RDMA/rtrs-clt: Move free_permit from free_clt to rtrs_clt_close
Miaohe Lin (1):
memblock: use kfree() to release kmalloced memblock regions
Miaoqian Lin (1):
iio: Fix error handling for PM
Mårten Lindahl (1):
driver core: Free DMA range map when device is released
Oliver Neukum (2):
USB: zaurus: support another broken Zaurus
CDC-NCM: avoid overflow in sanity checking
Paul Blakey (2):
openvswitch: Fix setting ipv6 fields causing hw csum failure
net/sched: act_ct: Fix flow table lookup after ct clear or switching
zones
Phil Elwell (1):
sc16is7xx: Fix for incorrect data being transmitted
Prasad Kumpatla (1):
regmap-irq: Update interrupt clear register for proper reset
Puma Hsu (1):
xhci: re-initialize the HC during resume if HCE was set
Sebastian Andrzej Siewior (1):
usb: dwc3: gadget: Let the interrupt handler disable bottom halves.
Sergey Shtylyov (1):
ata: pata_hpt37x: disable primary channel on HPT371
Siarhei Volkau (1):
clk: jz4725b: fix mmc0 clock gating
Slark Xiao (1):
USB: serial: option: add support for DW5829e
Somnath Kotur (1):
bnxt_en: Fix active FEC reporting to ethtool
Stefano Garzarella (1):
vhost/vsock: don't check owner in vhost_vsock_stop() while releasing
Steven Rostedt (Google) (2):
tracing: Have traceon and traceoff trigger honor the instance
tracefs: Set the group ownership in apply_options() not
parse_options()
Su Yue (2):
btrfs: tree-checker: check item_size for inode_item
btrfs: tree-checker: check item_size for dev_item
Tao Liu (1):
gso: do not skip outer ip header in case of ipip and net_failover
Tariq Toukan (1):
net/mlx5e: kTLS, Use CHECKSUM_UNNECESSARY for device-offloaded packets
Ville Syrjälä (1):
drm/i915: Correctly populate use_sagv_wm for all pipes
Xiaoke Wang (1):
net: ll_temac: check the return value of devm_kmalloc()
Xin Long (1):
ping: remove pr_err from ping_lookup
Zhou Qingyang (1):
spi: spi-zynq-qspi: Fix a NULL pointer dereference in
zynq_qspi_exec_mem_op()
daniel.starke(a)siemens.com (5):
tty: n_gsm: fix encoding of control signal octet bit DV
tty: n_gsm: fix proper link termination after failed open
tty: n_gsm: fix NULL pointer access due to DLCI release
tty: n_gsm: fix wrong tty control line for flow control
tty: n_gsm: fix deadlock in gsmtty_open()
arch/parisc/kernel/unaligned.c | 14 ++---
arch/riscv/kernel/Makefile | 2 +
arch/riscv/kernel/entry.S | 10 ++--
arch/riscv/kernel/trace_irq.c | 27 ++++++++++
arch/riscv/kernel/trace_irq.h | 11 ++++
arch/x86/include/asm/fpu/internal.h | 13 +++--
arch/x86/kernel/process_32.c | 6 +--
arch/x86/kernel/process_64.c | 6 +--
arch/x86/kvm/mmu/mmu.c | 13 ++++-
drivers/ata/pata_hpt37x.c | 14 +++++
drivers/base/dd.c | 5 ++
drivers/base/regmap/regmap-irq.c | 20 +++----
drivers/clk/ingenic/jz4725b-cgu.c | 3 +-
drivers/gpio/gpio-tegra186.c | 14 +++--
drivers/gpu/drm/amd/amdgpu/soc15.c | 5 +-
drivers/gpu/drm/drm_edid.c | 2 +-
drivers/gpu/drm/i915/intel_pm.c | 22 ++++----
drivers/hwmon/hwmon.c | 14 ++---
drivers/iio/accel/bmc150-accel-core.c | 5 +-
drivers/iio/accel/kxcjk-1013.c | 5 +-
drivers/iio/accel/mma9551.c | 5 +-
drivers/iio/accel/mma9553.c | 5 +-
drivers/iio/adc/ad7124.c | 2 +-
drivers/iio/adc/men_z188_adc.c | 9 +++-
drivers/iio/gyro/bmg160_core.c | 5 +-
drivers/iio/imu/kmx61.c | 5 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 6 ++-
drivers/iio/magnetometer/bmc150_magn.c | 5 +-
drivers/infiniband/core/cma.c | 40 ++++++++------
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 19 +++----
drivers/infiniband/ulp/srp/ib_srp.c | 6 ++-
.../net/ethernet/broadcom/bnx2x/bnx2x_main.c | 3 ++
.../net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 3 ++
.../ethernet/mellanox/mlx5/core/en_ethtool.c | 2 +-
.../net/ethernet/mellanox/mlx5/core/en_rx.c | 3 +-
.../mellanox/mlx5/core/eswitch_offloads.c | 4 --
.../net/ethernet/mellanox/mlx5/core/fs_core.c | 2 +
.../netronome/nfp/flower/tunnel_conf.c | 4 +-
drivers/net/ethernet/xilinx/ll_temac_main.c | 2 +
drivers/net/usb/cdc_ether.c | 12 +++++
drivers/net/usb/cdc_ncm.c | 8 +--
drivers/net/usb/zaurus.c | 12 +++++
drivers/platform/x86/surface3_power.c | 13 +++--
drivers/spi/spi-zynq-qspi.c | 3 ++
drivers/tee/optee/core.c | 8 +++
drivers/tee/optee/optee_private.h | 2 +
drivers/tee/optee/rpc.c | 8 +--
drivers/tee/tee_core.c | 6 ++-
.../intel/int340x_thermal/int3400_thermal.c | 4 ++
drivers/tty/n_gsm.c | 22 +++++---
drivers/tty/serial/sc16is7xx.c | 3 ++
drivers/usb/dwc2/core.h | 2 +
drivers/usb/dwc2/drd.c | 6 ++-
drivers/usb/dwc3/dwc3-pci.c | 4 +-
drivers/usb/dwc3/gadget.c | 2 +
drivers/usb/gadget/function/rndis.c | 8 +++
drivers/usb/gadget/function/rndis.h | 1 +
drivers/usb/host/xhci.c | 28 ++++++----
drivers/usb/serial/ch341.c | 1 -
drivers/usb/serial/option.c | 12 +++++
drivers/vhost/vsock.c | 21 +++++---
fs/btrfs/tree-checker.c | 15 ++++++
fs/io_uring.c | 1 +
fs/tracefs/inode.c | 5 +-
include/linux/tee_drv.h | 14 +++++
include/net/checksum.h | 48 +++++++++--------
kernel/bpf/syscall.c | 3 ++
kernel/trace/trace_events_trigger.c | 52 ++++++++++++++++---
mm/memblock.c | 10 +++-
net/core/filter.c | 3 ++
net/core/skbuff.c | 4 +-
net/ipv4/af_inet.c | 5 +-
net/ipv4/ping.c | 1 -
net/ipv4/udp_tunnel_nic.c | 2 +-
net/ipv6/ip6_offload.c | 2 +
net/netfilter/nf_tables_api.c | 13 +++--
net/openvswitch/actions.c | 46 +++++++++++++---
net/sched/act_ct.c | 5 --
net/smc/smc_pnet.c | 42 +++++++--------
net/smc/smc_pnet.h | 2 +-
net/tipc/name_table.c | 2 +-
net/tipc/socket.c | 2 +-
tools/perf/util/data.c | 7 ++-
.../selftests/bpf/progs/test_sockmap_kern.h | 26 +++++++---
84 files changed, 594 insertions(+), 243 deletions(-)
create mode 100644 arch/riscv/kernel/trace_irq.c
create mode 100644 arch/riscv/kernel/trace_irq.h
--
2.20.1
1
73

[PATCH openEuler-5.10 01/26] readahead: introduce FMODE_CTL_WILLNEED to read first 2MB of file
by Zheng Zengkai 23 May '22
by Zheng Zengkai 23 May '22
23 May '22
From: Yufen Yu <yuyufen(a)huawei.com>
hulk inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I53R0H
CVE: NA
backport: openEuler-22.03-LTS
-------------------------------------------------
In some scenario, likely spark-sql, almost all meta file's size is
less then 2MB and applications read these smaller files in random
mode. That means, it may issue multiple times random io to rotate
disk, which can cause performance degradation.
To improve the small files random read, we try to read the first
2MB into pagecache on the first time of read. Then it can avoid
multiple random io.
In fact, applications can call fadvise system with POSIX_FADV_WILLNEED
to achieve this goal. But, some apps may cannot easily do that.
So, we provide a new file flag FMODE_CTL_WILLNEED.
Signed-off-by: Yufen Yu <yuyufen(a)huawei.com>
Reviewed-by: Hou Tao <houtao1(a)huawei.com>
Signed-off-by: Yang Yingliang <yangyingliang(a)huawei.com>
Conflicts:
include/linux/fs.h
Value '0x40000000' has been used for flag FMODE_BUF_RASYNC.
Signed-off-by: Zhihao Cheng <chengzhihao1(a)huawei.com>
Reviewed-by: Zhang Yi <yi.zhang(a)huawei.com>
Signed-off-by: Zheng Zengkai <zhengzengkai(a)huawei.com>
---
include/linux/fs.h | 7 +++++++
mm/readahead.c | 40 +++++++++++++++++++++++++++++++++++++++-
2 files changed, 46 insertions(+), 1 deletion(-)
diff --git a/include/linux/fs.h b/include/linux/fs.h
index db632747781a..dd023a3023b5 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -183,6 +183,12 @@ typedef int (dio_iodone_t)(struct kiocb *iocb, loff_t offset,
/* File supports async buffered reads */
#define FMODE_BUF_RASYNC ((__force fmode_t)0x40000000)
+/* File mode control flag, expect random access pattern */
+#define FMODE_CTL_RANDOM ((__force fmode_t)0x1)
+
+/* File mode control flag, will try to read head of the file into pagecache */
+#define FMODE_CTL_WILLNEED ((__force fmode_t)0x2)
+
/*
* Attribute flags. These should be or-ed together to figure out what
* has been changed!
@@ -947,6 +953,7 @@ struct file {
atomic_long_t f_count;
unsigned int f_flags;
fmode_t f_mode;
+ fmode_t f_ctl_mode;
struct mutex f_pos_lock;
loff_t f_pos;
struct fown_struct f_owner;
diff --git a/mm/readahead.c b/mm/readahead.c
index c5b0457415be..ed23d5dec123 100644
--- a/mm/readahead.c
+++ b/mm/readahead.c
@@ -26,6 +26,7 @@
#include "internal.h"
+#define READAHEAD_FIRST_SIZE (2 * 1024 * 1024)
/*
* Initialise a struct file's readahead state. Assumes that the caller has
* memset *ra to zero.
@@ -549,10 +550,41 @@ static void ondemand_readahead(struct readahead_control *ractl,
do_page_cache_ra(ractl, ra->size, ra->async_size);
}
+/*
+ * Try to read first @ra_size from head of the file.
+ */
+static bool page_cache_readahead_from_head(struct address_space *mapping,
+ struct file *filp, pgoff_t offset,
+ unsigned long req_size,
+ unsigned long ra_size)
+{
+ struct backing_dev_info *bdi = inode_to_bdi(mapping->host);
+ struct file_ra_state *ra = &filp->f_ra;
+ unsigned long size = min_t(unsigned long, ra_size,
+ file_inode(filp)->i_size);
+ unsigned long nrpages = (size + PAGE_SIZE - 1) / PAGE_SIZE;
+ unsigned long max_pages;
+ unsigned int offs = 0;
+
+ /* Cannot read date over target size, back to normal way */
+ if (offset + req_size > nrpages)
+ return false;
+
+ max_pages = max_t(unsigned long, bdi->io_pages, ra->ra_pages);
+ max_pages = min(max_pages, nrpages);
+ while (offs < nrpages) {
+ force_page_cache_readahead(mapping, filp, offs, max_pages);
+ offs += max_pages;
+ }
+ return true;
+}
+
void page_cache_sync_ra(struct readahead_control *ractl,
struct file_ra_state *ra, unsigned long req_count)
{
- bool do_forced_ra = ractl->file && (ractl->file->f_mode & FMODE_RANDOM);
+ bool do_forced_ra = ractl->file &&
+ ((ractl->file->f_mode & FMODE_RANDOM) ||
+ (ractl->file->f_ctl_mode & FMODE_CTL_RANDOM));
/*
* Even if read-ahead is disabled, issue this request as read-ahead
@@ -567,6 +599,12 @@ void page_cache_sync_ra(struct readahead_control *ractl,
do_forced_ra = true;
}
+ /* try to read first READAHEAD_FIRST_SIZE into pagecache */
+ if (ractl->file && (ractl->file->f_ctl_mode & FMODE_CTL_WILLNEED) &&
+ page_cache_readahead_from_head(ractl->mapping, ractl->file,
+ ractl->_index, req_count, READAHEAD_FIRST_SIZE))
+ return;
+
/* be dumb */
if (do_forced_ra) {
force_page_cache_ra(ractl, ra, req_count);
--
2.20.1
1
25
lockdep: Correct lock_classes index mapping
i2c: brcmstb: fix support for DSL and CM variants
copy_process(): Move fd_install() out of sighand->siglock critical section
i2c: qcom-cci: don't put a device tree node before i2c_add_adapter()
i2c: qcom-cci: don't delete an unregistered adapter
dmaengine: sh: rcar-dmac: Check for error num after dma_set_max_seg_size
dmaengine: stm32-dmamux: Fix PM disable depth imbalance in stm32_dmamux_probe
dmaengine: sh: rcar-dmac: Check for error num after setting mask
net: sched: limit TC_ACT_REPEAT loops
EDAC: Fix calculation of returned address and next offset in edac_align_ptr()
scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop
kconfig: fix failing to generate auto.conf
net: macb: Align the dma and coherent dma masks
net: usb: qmi_wwan: Add support for Dell DW5829e
tracing: Fix tp_printk option related with tp_printk_stop_on_boot
drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
xprtrdma: fix pointer derefs in error cases of rpcrdma_ep_create
soc: aspeed: lpc-ctrl: Block error printing on probe defer cases
ata: libata-core: Disable TRIM on M88V29
kconfig: let 'shell' return enough output for deep path names
selftests: fixup build warnings in pidfd / clone3 tests
pidfd: fix test failure due to stack overflow on some arches
arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
arm64: dts: meson-g12: add ATF BL32 reserved-memory region
arm64: dts: meson-gx: add ATF BL32 reserved-memory region
netfilter: conntrack: don't refresh sctp entries in closed state
irqchip/sifive-plic: Add missing thead,c900-plic match string
phy: usb: Leave some clocks running during suspend
ARM: OMAP2+: adjust the location of put_device() call in omapdss_init_of
ARM: OMAP2+: hwmod: Add of_node_put() before break
NFS: Don't set NFS_INO_INVALID_XATTR if there is no xattr cache
KVM: x86/pmu: Use AMD64_RAW_EVENT_MASK for PERF_TYPE_RAW
KVM: x86/pmu: Don't truncate the PerfEvtSeln MSR when creating a perf event
KVM: x86/pmu: Refactoring find_arch_event() to pmc_perf_hw_id()
Drivers: hv: vmbus: Fix memory leak in vmbus_add_channel_kobj
mtd: rawnand: brcmnand: Fixed incorrect sub-page ECC status
mtd: rawnand: qcom: Fix clock sequencing in qcom_nandc_probe()
tty: n_tty: do not look ahead for EOL character past the end of the buffer
NFS: Do not report writeback errors in nfs_getattr()
block/wbt: fix negative inflight counter when remove scsi device
ASoC: tas2770: Insert post reset delay
KVM: SVM: Never reject emulation due to SMAP errata for !SEV guests
mtd: rawnand: gpmi: don't leak PM reference in error path
powerpc/lib/sstep: fix 'ptesync' build error
ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw_range()
ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw()
ALSA: hda: Fix missing codec probe on Shenker Dock 15
ALSA: hda: Fix regression on forced probe mask option
ALSA: hda/realtek: Fix deadlock by COEF mutex
ALSA: hda/realtek: Add quirk for Legion Y9000X 2019
selftests/exec: Add non-regular to TEST_GEN_PROGS
perf bpf: Defer freeing string after possible strlen() on it
dpaa2-eth: Initialize mutex used in one step timestamping path
libsubcmd: Fix use-after-free for realloc(..., 0)
bonding: fix data-races around agg_select_timer
net_sched: add __rcu annotation to netdev->qdisc
drop_monitor: fix data-race in dropmon_net_event / trace_napi_poll_hit
ping: fix the dif and sdif check in ping_lookup
net: ieee802154: ca8210: Fix lifs/sifs periods
net: dsa: lantiq_gswip: fix use after free in gswip_remove()
net: dsa: lan9303: fix reset on probe
ipv6: per-netns exclusive flowlabel checks
netfilter: nft_synproxy: unregister hooks on init error path
selftests: netfilter: fix exit value for nft_concat_range
iwlwifi: pcie: gen2: fix locking when "HW not ready"
iwlwifi: pcie: fix locking when "HW not ready"
drm/i915/gvt: Make DRM_I915_GVT depend on X86
vsock: remove vsock from connected table when connect is interrupted by a signal
drm/i915/opregion: check port number bounds for SWSCI display power state
drm/radeon: Fix backlight control on iMac 12,1
iwlwifi: fix use-after-free
kbuild: lto: Merge module sections if and only if CONFIG_LTO_CLANG is enabled
kbuild: lto: merge module sections
random: wake up /dev/random writers after zap
gcc-plugins/stackleak: Use noinstr in favor of notrace
Revert "module, async: async_synchronize_full() on module init iff async is
used"
x86/Xen: streamline (and fix) PV CPU enumeration
drm/amdgpu: fix logic inversion in check
nvme-rdma: fix possible use-after-free in transport error_recovery work
nvme-tcp: fix possible use-after-free in transport error_recovery work
nvme: fix a possible use-after-free in controller reset during load
scsi: pm8001: Fix use-after-free for aborted SSP/STP sas_task
scsi: pm8001: Fix use-after-free for aborted TMF sas_task
quota: make dquot_quota_sync return errors from ->sync_fs
vfs: make freeze_super abort when sync_filesystem returns error
selftests: skip mincore.check_file_mmap when fs lacks needed support
selftests: openat2: Skip testcases that fail with EOPNOTSUPP
selftests: openat2: Add missing dependency in Makefile
selftests: openat2: Print also errno in failure messages
selftests/zram: Adapt the situation that /dev/zram0 is being used
selftests/zram01.sh: Fix compression ratio calculation
selftests/zram: Skip max_comp_streams interface on newer kernel
net: ieee802154: at86rf230: Stop leaking skb's
kselftest: signal all child processes
selftests: rtc: Increase test timeout so that all tests run
platform/x86: ISST: Fix possible circular locking dependency detected
platform/x86: touchscreen_dmi: Add info for the RWC NANOTE P8 AY07J 2-in-1
btrfs: send: in case of IO error log it
parisc: Add ioread64_lo_hi() and iowrite64_lo_hi()
PCI: hv: Fix NUMA node assignment when kernel boots with custom NUMA topology
mm: don't try to NUMA-migrate COW pages that have other uses
mmc: block: fix read single on recovery logic
parisc: Fix sglist access in ccio-dma.c
parisc: Fix data TLB miss in sba_unmap_sg
parisc: Drop __init from map_pages declaration
serial: parisc: GSC: fix build when IOSAPIC is not set
Revert "svm: Add warning message for AVIC IPI invalid target"
HID:Add support for UGTABLET WP5540
scsi: lpfc: Fix mailbox command failure during driver initialization
can: isotp: add SF_BROADCAST support for functional addressing
can: isotp: prevent race between isotp_bind() and isotp_setsockopt()
fs/proc: task_mmu.c: don't read mapcount for migration entry
mm: memcg: synchronize objcg lists with a dedicated spinlock
drm/nouveau/pmu/gm200-: use alternate falcon reset sequence
already merged
rcu: Do not report strict GPs for outgoing CPUs
ax25: improve the incomplete fix to avoid UAF and NPD bugs
bonding: force carrier update when releasing slave
NFS: LOOKUP_DIRECTORY is also ok with symlinks
lib/iov_iter: initialize "flags" in new pipe_buffer
fget: clarify and improve __fget_files() implementation
deferred (kabi changes)
ipv6: per-netns exclusive flowlabel checks
Total patches: 120 - 6 - 1 = 113
Al Cooper (1):
phy: usb: Leave some clocks running during suspend
Alexey Khoroshilov (1):
net: dsa: lantiq_gswip: fix use after free in gswip_remove()
Anders Roxell (1):
powerpc/lib/sstep: fix 'ptesync' build error
Andy Shevchenko (1):
parisc: Add ioread64_lo_hi() and iowrite64_lo_hi()
Arnaldo Carvalho de Melo (1):
perf bpf: Defer freeing string after possible strlen() on it
Axel Rasmussen (2):
pidfd: fix test failure due to stack overflow on some arches
selftests: fixup build warnings in pidfd / clone3 tests
Ben Skeggs (1):
drm/nouveau/pmu/gm200-: use alternate falcon reset sequence
Brenda Streiff (1):
kconfig: let 'shell' return enough output for deep path names
Bryan O'Donoghue (1):
mtd: rawnand: qcom: Fix clock sequencing in qcom_nandc_probe()
Cheng Jui Wang (1):
lockdep: Correct lock_classes index mapping
Christian Eggers (1):
mtd: rawnand: gpmi: don't leak PM reference in error path
Christian Hewitt (3):
arm64: dts: meson-gx: add ATF BL32 reserved-memory region
arm64: dts: meson-g12: add ATF BL32 reserved-memory region
arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
Christian König (1):
drm/amdgpu: fix logic inversion in check
Christian Löhle (1):
mmc: block: fix read single on recovery logic
Cristian Marussi (4):
selftests: openat2: Print also errno in failure messages
selftests: openat2: Add missing dependency in Makefile
selftests: openat2: Skip testcases that fail with EOPNOTSUPP
selftests: skip mincore.check_file_mmap when fs lacks needed support
Dan Aloni (1):
xprtrdma: fix pointer derefs in error cases of rpcrdma_ep_create
Darrick J. Wong (2):
vfs: make freeze_super abort when sync_filesystem returns error
quota: make dquot_quota_sync return errors from ->sync_fs
Dāvis Mosāns (1):
btrfs: send: in case of IO error log it
Eliav Farber (1):
EDAC: Fix calculation of returned address and next offset in
edac_align_ptr()
Eric Dumazet (4):
drop_monitor: fix data-race in dropmon_net_event / trace_napi_poll_hit
net_sched: add __rcu annotation to netdev->qdisc
bonding: fix data-races around agg_select_timer
net: sched: limit TC_ACT_REPEAT loops
Florian Westphal (1):
netfilter: conntrack: don't refresh sctp entries in closed state
Guo Ren (1):
irqchip/sifive-plic: Add missing thead,c900-plic match string
Hangbin Liu (1):
selftests: netfilter: fix exit value for nft_concat_range
Igor Pylypiv (1):
Revert "module, async: async_synchronize_full() on module init iff
async is used"
Jae Hyun Yoo (1):
soc: aspeed: lpc-ctrl: Block error printing on probe defer cases
JaeSang Yoo (1):
tracing: Fix tp_printk option related with tp_printk_stop_on_boot
James Smart (2):
scsi: lpfc: Fix mailbox command failure during driver initialization
scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop
Jan Beulich (1):
x86/Xen: streamline (and fix) PV CPU enumeration
Jani Nikula (1):
drm/i915/opregion: check port number bounds for SWSCI display power
state
Jason A. Donenfeld (1):
random: wake up /dev/random writers after zap
Jiasheng Jiang (2):
dmaengine: sh: rcar-dmac: Check for error num after setting mask
dmaengine: sh: rcar-dmac: Check for error num after
dma_set_max_seg_size
Jim Mattson (2):
KVM: x86/pmu: Don't truncate the PerfEvtSeln MSR when creating a perf
event
KVM: x86/pmu: Use AMD64_RAW_EVENT_MASK for PERF_TYPE_RAW
Jing Leng (1):
kconfig: fix failing to generate auto.conf
Johannes Berg (3):
iwlwifi: fix use-after-free
iwlwifi: pcie: fix locking when "HW not ready"
iwlwifi: pcie: gen2: fix locking when "HW not ready"
John David Anglin (3):
parisc: Drop __init from map_pages declaration
parisc: Fix data TLB miss in sba_unmap_sg
parisc: Fix sglist access in ccio-dma.c
John Garry (2):
scsi: pm8001: Fix use-after-free for aborted TMF sas_task
scsi: pm8001: Fix use-after-free for aborted SSP/STP sas_task
Kees Cook (2):
gcc-plugins/stackleak: Use noinstr in favor of notrace
libsubcmd: Fix use-after-free for realloc(..., 0)
Laibin Qiu (1):
block/wbt: fix negative inflight counter when remove scsi device
Li Zhijian (1):
kselftest: signal all child processes
Like Xu (1):
KVM: x86/pmu: Refactoring find_arch_event() to pmc_perf_hw_id()
Linus Torvalds (2):
mm: don't try to NUMA-migrate COW pages that have other uses
tty: n_tty: do not look ahead for EOL character past the end of the
buffer
Long Li (1):
PCI: hv: Fix NUMA node assignment when kernel boots with custom NUMA
topology
Mans Rullgard (1):
net: dsa: lan9303: fix reset on probe
Marc St-Amand (1):
net: macb: Align the dma and coherent dma masks
Mark Brown (2):
ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw()
ASoC: ops: Fix stereo change notifications in
snd_soc_put_volsw_range()
Martin Povišer (1):
ASoC: tas2770: Insert post reset delay
Miaoqian Lin (2):
Drivers: hv: vmbus: Fix memory leak in vmbus_add_channel_kobj
dmaengine: stm32-dmamux: Fix PM disable depth imbalance in
stm32_dmamux_probe
Miquel Raynal (2):
net: ieee802154: at86rf230: Stop leaking skb's
net: ieee802154: ca8210: Fix lifs/sifs periods
Muhammad Usama Anjum (1):
selftests/exec: Add non-regular to TEST_GEN_PROGS
Nicholas Bishop (1):
drm/radeon: Fix backlight control on iMac 12,1
Norbert Slusarek (1):
can: isotp: prevent race between isotp_bind() and isotp_setsockopt()
Nícolas F. R. A. Prado (1):
selftests: rtc: Increase test timeout so that all tests run
Oliver Hartkopp (1):
can: isotp: add SF_BROADCAST support for functional addressing
Pablo Neira Ayuso (1):
netfilter: nft_synproxy: unregister hooks on init error path
Radu Bulie (1):
dpaa2-eth: Initialize mutex used in one step timestamping path
Rafał Miłecki (1):
i2c: brcmstb: fix support for DSL and CM variants
Randy Dunlap (1):
serial: parisc: GSC: fix build when IOSAPIC is not set
Roman Gushchin (1):
mm: memcg: synchronize objcg lists with a dedicated spinlock
Sagi Grimberg (3):
nvme: fix a possible use-after-free in controller reset during load
nvme-tcp: fix possible use-after-free in transport error_recovery work
nvme-rdma: fix possible use-after-free in transport error_recovery
work
Sami Tolvanen (1):
kbuild: lto: merge module sections
Sascha Hauer (1):
drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
Sean Christopherson (3):
Revert "svm: Add warning message for AVIC IPI invalid target"
kbuild: lto: Merge module sections if and only if CONFIG_LTO_CLANG is
enabled
KVM: SVM: Never reject emulation due to SMAP errata for !SEV guests
Sergio Costas (1):
HID:Add support for UGTABLET WP5540
Seth Forshee (1):
vsock: remove vsock from connected table when connect is interrupted
by a signal
Siva Mullati (1):
drm/i915/gvt: Make DRM_I915_GVT depend on X86
Slark Xiao (1):
net: usb: qmi_wwan: Add support for Dell DW5829e
Srinivas Pandruvada (1):
platform/x86: ISST: Fix possible circular locking dependency detected
Takashi Iwai (3):
ALSA: hda/realtek: Fix deadlock by COEF mutex
ALSA: hda: Fix regression on forced probe mask option
ALSA: hda: Fix missing codec probe on Shenker Dock 15
Trond Myklebust (2):
NFS: Do not report writeback errors in nfs_getattr()
NFS: Don't set NFS_INO_INVALID_XATTR if there is no xattr cache
Vladimir Zapolskiy (2):
i2c: qcom-cci: don't delete an unregistered adapter
i2c: qcom-cci: don't put a device tree node before i2c_add_adapter()
Waiman Long (1):
copy_process(): Move fd_install() out of sighand->siglock critical
section
Wan Jiabing (1):
ARM: OMAP2+: hwmod: Add of_node_put() before break
Xin Long (1):
ping: fix the dif and sdif check in ping_lookup
Yang Shi (1):
fs/proc: task_mmu.c: don't read mapcount for migration entry
Yang Xu (3):
selftests/zram: Skip max_comp_streams interface on newer kernel
selftests/zram01.sh: Fix compression ratio calculation
selftests/zram: Adapt the situation that /dev/zram0 is being used
Ye Guojin (1):
ARM: OMAP2+: adjust the location of put_device() call in
omapdss_init_of
Yu Huang (1):
ALSA: hda/realtek: Add quirk for Legion Y9000X 2019
Yuka Kawajiri (1):
platform/x86: touchscreen_dmi: Add info for the RWC NANOTE P8 AY07J
2-in-1
Zoltán Böszörményi (1):
ata: libata-core: Disable TRIM on M88V29
david regan (1):
mtd: rawnand: brcmnand: Fixed incorrect sub-page ECC status
arch/arm/mach-omap2/display.c | 2 +-
arch/arm/mach-omap2/omap_hwmod.c | 4 +-
.../boot/dts/amlogic/meson-g12-common.dtsi | 6 +
.../boot/dts/amlogic/meson-g12a-sei510.dts | 8 --
arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 +
.../boot/dts/amlogic/meson-sm1-sei610.dts | 8 --
arch/parisc/lib/iomap.c | 18 +++
arch/parisc/mm/init.c | 9 +-
arch/powerpc/lib/sstep.c | 2 +
arch/x86/kvm/pmu.c | 15 +-
arch/x86/kvm/pmu.h | 3 +-
arch/x86/kvm/svm/avic.c | 2 -
arch/x86/kvm/svm/pmu.c | 8 +-
arch/x86/kvm/svm/svm.c | 7 +-
arch/x86/kvm/vmx/pmu_intel.c | 9 +-
arch/x86/xen/enlighten_pv.c | 4 -
arch/x86/xen/smp_pv.c | 26 +---
block/bfq-iosched.c | 2 +
drivers/ata/libata-core.c | 1 +
drivers/char/random.c | 5 +-
drivers/dma/sh/rcar-dmac.c | 9 +-
drivers/dma/stm32-dmamux.c | 4 +-
drivers/edac/edac_mc.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +-
drivers/gpu/drm/i915/Kconfig | 1 +
drivers/gpu/drm/i915/display/intel_opregion.c | 15 ++
drivers/gpu/drm/nouveau/nvkm/falcon/base.c | 8 +-
.../gpu/drm/nouveau/nvkm/subdev/pmu/gm200.c | 31 +++-
.../gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.c | 2 +-
.../gpu/drm/nouveau/nvkm/subdev/pmu/gp102.c | 2 +-
.../gpu/drm/nouveau/nvkm/subdev/pmu/gp10b.c | 2 +-
.../gpu/drm/nouveau/nvkm/subdev/pmu/priv.h | 2 +
drivers/gpu/drm/radeon/atombios_encoders.c | 3 +-
drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 14 +-
drivers/hid/hid-ids.h | 1 +
drivers/hid/hid-quirks.c | 1 +
drivers/hv/vmbus_drv.c | 5 +-
drivers/i2c/busses/i2c-brcmstb.c | 2 +-
drivers/i2c/busses/i2c-qcom-cci.c | 16 ++-
drivers/irqchip/irq-sifive-plic.c | 1 +
drivers/mmc/core/block.c | 28 ++--
drivers/mtd/nand/raw/brcmnand/brcmnand.c | 2 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 3 +-
drivers/mtd/nand/raw/qcom_nandc.c | 14 +-
drivers/net/bonding/bond_3ad.c | 30 +++-
drivers/net/dsa/lan9303-core.c | 2 +-
drivers/net/dsa/lantiq_gswip.c | 2 +-
drivers/net/ethernet/cadence/macb_main.c | 2 +-
.../net/ethernet/freescale/dpaa2/dpaa2-eth.c | 2 +-
drivers/net/ieee802154/at86rf230.c | 13 +-
drivers/net/ieee802154/ca8210.c | 4 +-
drivers/net/usb/qmi_wwan.c | 2 +
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 2 +
.../wireless/intel/iwlwifi/pcie/trans-gen2.c | 3 +-
.../net/wireless/intel/iwlwifi/pcie/trans.c | 3 +-
drivers/nvme/host/core.c | 9 +-
drivers/nvme/host/rdma.c | 1 +
drivers/nvme/host/tcp.c | 1 +
drivers/parisc/ccio-dma.c | 3 +-
drivers/parisc/sba_iommu.c | 3 +-
drivers/pci/controller/pci-hyperv.c | 13 +-
drivers/phy/broadcom/phy-brcm-usb.c | 38 +++++
.../intel_speed_select_if/isst_if_common.c | 97 ++++++++-----
drivers/platform/x86/touchscreen_dmi.c | 24 ++++
drivers/scsi/lpfc/lpfc.h | 1 +
drivers/scsi/lpfc/lpfc_attr.c | 3 +
drivers/scsi/lpfc/lpfc_els.c | 20 ++-
drivers/scsi/lpfc/lpfc_nportdisc.c | 5 +-
drivers/scsi/lpfc/lpfc_sli.c | 15 +-
drivers/scsi/pm8001/pm8001_sas.c | 5 +
drivers/scsi/pm8001/pm80xx_hwi.c | 4 +-
drivers/soc/aspeed/aspeed-lpc-ctrl.c | 7 +-
drivers/tty/n_tty.c | 6 +-
drivers/tty/serial/8250/8250_gsc.c | 2 +-
fs/btrfs/send.c | 4 +
fs/nfs/inode.c | 23 ++-
fs/proc/task_mmu.c | 43 ++++--
fs/quota/dquot.c | 11 +-
fs/super.c | 19 ++-
include/linux/memcontrol.h | 5 +-
include/linux/netdevice.h | 2 +-
include/linux/sched.h | 1 -
include/net/bond_3ad.h | 2 +-
include/uapi/linux/can/isotp.h | 2 +-
kernel/async.c | 3 -
kernel/fork.c | 7 +-
kernel/locking/lockdep.c | 4 +-
kernel/module.c | 25 +---
kernel/stackleak.c | 5 +-
kernel/trace/trace.c | 4 +
mm/memcontrol.c | 10 +-
mm/mprotect.c | 2 +-
net/can/isotp.c | 71 +++++++---
net/core/drop_monitor.c | 11 +-
net/core/rtnetlink.c | 6 +-
net/ipv4/ping.c | 11 +-
net/netfilter/nf_conntrack_proto_sctp.c | 9 ++
net/netfilter/nft_synproxy.c | 4 +-
net/sched/act_api.c | 13 +-
net/sched/cls_api.c | 6 +-
net/sched/sch_api.c | 22 +--
net/sched/sch_generic.c | 29 ++--
net/sunrpc/xprtrdma/verbs.c | 3 +
net/vmw_vsock/af_vsock.c | 1 +
scripts/kconfig/confdata.c | 13 +-
scripts/kconfig/preprocess.c | 2 +-
scripts/module.lds.S | 26 ++++
sound/pci/hda/hda_intel.c | 5 +-
sound/pci/hda/patch_realtek.c | 40 ++++--
sound/soc/codecs/tas2770.c | 7 +-
sound/soc/soc-ops.c | 29 ++--
tools/lib/subcmd/subcmd-util.h | 11 +-
tools/perf/util/bpf-loader.c | 3 +-
tools/testing/selftests/clone3/clone3.c | 2 -
tools/testing/selftests/exec/Makefile | 4 +-
tools/testing/selftests/kselftest_harness.h | 4 +-
.../selftests/mincore/mincore_selftest.c | 20 ++-
.../selftests/netfilter/nft_concat_range.sh | 2 +-
tools/testing/selftests/openat2/Makefile | 2 +-
tools/testing/selftests/openat2/helpers.h | 12 +-
.../testing/selftests/openat2/openat2_test.c | 12 +-
tools/testing/selftests/pidfd/pidfd.h | 13 +-
.../selftests/pidfd/pidfd_fdinfo_test.c | 22 ++-
tools/testing/selftests/pidfd/pidfd_test.c | 6 +-
tools/testing/selftests/pidfd/pidfd_wait.c | 5 +-
tools/testing/selftests/rtc/settings | 2 +-
tools/testing/selftests/zram/zram.sh | 15 +-
tools/testing/selftests/zram/zram01.sh | 33 ++---
tools/testing/selftests/zram/zram02.sh | 1 -
tools/testing/selftests/zram/zram_lib.sh | 134 ++++++++++++------
130 files changed, 941 insertions(+), 479 deletions(-)
--
2.20.1
1
113

21 May '22
From: Wang Yufen <wangyufen(a)huawei.com>
mainline inclusion
from mainline-v5.13-rc1
commit 37f0e514db660f03f8982b8f4fbbd4b2740abe7d
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I545NW
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
Currently we purge the ingress_skb queue only when psock
refcnt goes down to 0, so locking the queue is not necessary,
but in order to be called during ->close, we have to lock it
here.
Signed-off-by: Cong Wang <cong.wang(a)bytedance.com>
Signed-off-by: Alexei Starovoitov <ast(a)kernel.org>
Acked-by: Jakub Sitnicki <jakub(a)cloudflare.com>
Acked-by: John Fastabend <john.fastabend(a)gmail.com>
Link: https://lore.kernel.org/bpf/20210331023237.41094-2-xiyou.wangcong@gmail.com
Signed-off-by: Wang Yufen <wangyufen(a)huawei.com>
Reviewed-by: Yue Haibing <yuehaibing(a)huawei.com>
Reviewed-by: Liu Jian <liujian56(a)huawei.com>
Reviewed-by: Wei Yongjun <weiyongjun1(a)huawei.com>
Signed-off-by: Zheng Zengkai <zhengzengkai(a)huawei.com>
---
net/core/skmsg.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/core/skmsg.c b/net/core/skmsg.c
index 4ee4fe436847..f80428cc7264 100644
--- a/net/core/skmsg.c
+++ b/net/core/skmsg.c
@@ -638,7 +638,7 @@ void __sk_psock_purge_ingress_msg(struct sk_psock *psock)
static void sk_psock_zap_ingress(struct sk_psock *psock)
{
- __skb_queue_purge(&psock->ingress_skb);
+ skb_queue_purge(&psock->ingress_skb);
__sk_psock_purge_ingress_msg(psock);
}
--
2.20.1
1
38

20 May '22
Backport sw64 enhancement and bugfix patches.
Cui Mingrui (2):
sw64: optimize ip checksum calculation
sw64: fix ip checksum calculation
Du Yilong (3):
sw64: kvm: fix bug when open file with the O_DIRECT flag
sw64: add set time support for hypervisor based rtc
sw64: kvm: remap pages of guest by vm_insert_page()
Gu Zitao (7):
config: add initial openeuler_defconfig for sw64
sw64: fix coding style problems
sw64: fix the VDSO symbol generation for nm
sw64: fix SPDX license identifier in uapi headers
sw64: add SO_RCVTIMEO/ SO_SNDTIMEO socket options
sw64: remove unnecessary include headers
sw64: fix some compile errors
He Chuyue (2):
sw64: add regs and stack access APIs to support kprobe events
sw64: remove unnecessary parameter in REG_OFFSET_NAME
He Sheng (20):
sw64: clean up useless #if 0 and #if 1
sw64: switch GUP to the generic get_user_pages_fast() implementation
sw64: remove unused a.out.h
sw64: fix ex_table entries from misalignment handlers
sw64: define NR_SYSCALLS as generated __NR_syscalls
sw64: clean up a.out and ECOFF binary related headers
sw64: ptrace: clean up debug codes
sw64: add kbuild defconfig rule
sw64: clean up out-of-date selected options
sw64: Kconfig: remove dependence on !PREEMPT
sw64: Kconfig: remove dependence on ARCH_SUPPORTS_ACPI
sw64: add missing global __constant_c_memset
sw64: do some cleanups for rt_sigframe
sw64: fix setup_rt_frame for non SA_SIGINFO
sw64: fix compile error for DISCONTIGMEM=y
sw64: force signal and fault for traps and debugging
sw64: push and pop kernel stack with ldi instruction
sw64: signal: save/restore fpregs with copy user
sw64: fix the number of aux entries in ARCH_DLINFO
sw64: fix sendfile system call
Lu Feifei (6):
sw64: fix printk method for guest os
sw64: unify access to LONGTIME for guest and emulator
sw64: kvm: handle ldl_u and stl_u when exit mmio
sw64: kvm: simplify the code
sw64: pci: align the address of mmio resource to PAGE_SIZE
sw64: unify 32-bit MEMIO address of host and guest
Mao Minkai (29):
sw64: vdso: add automatic syscall fallback
sw64: vdso: change vdso version
sw64: vdso: fix time calculation
sw64: mm: reorder memblock_init process
sw64: mm: warn overlapped memmap and DMA region
sw64: mm: use memblock to find the end of memory
sw64: print correct initrd address
sw64: remove redundant Kconfig source
sw64: modify tc_sched_clock debugfs file
sw64: simplify cpumask_of_node
sw64: remove CONFIG_USE_PERCPU_NUMA_NODE_ID=n code
sw64: fix all compile warnings
sw64: numa: switch to arch node_distance
sw64: mm: mark pci and memmap region as nomap
sw64: use jump label for running modes
sw64: remove MAX_ASN
sw64: kvm: remove MAX_VPN
sw64: fix coding style problems
sw64: rename kvm_mem variables
sw64: reformat syscall.tbl
sw64: add missing pkey syscall numbers
sw64: add clone3 syscall support
sw64: add required include headers to ptrace.h
sw64: switch to old-style semctl/shmctl syscalls
sw64: increase position index in c_next for cpuinfo
sw64: add old sigprocmask back for compatibility
sw64: vdso: fix backtrace of vrt_sigreturn
sw64: vdso: fix CFI directives for fpregs in vrt_sigreturn
sw64: optimize simd version of memcpy and memset
Min Fanlei (4):
sw64: fix the value of QEMU_PRINTF_BUFF_BASE
sw64: add support for emulator running mode
sw64: enable more than 32 CPUs for guest
sw64: kvm: fix bad page state setting outside of kvm memory pool
Tang Jinyang (2):
sw64: add dynamic frequency scaling support
sw64: add dynamic turning on/off cores support
Wang Yingying (3):
hwmon: add voltage sensor support for sw64
sw64: add pvt device to chip3.dts
hwmon: add support for sw64 temperature sensor
Xu Chenjiao (2):
sw64: radeon: add a force flush to delay work when radeon uvd suspend
sw64: pcie: enable PME and AER support
Zhao Yihan (1):
sw64: remap PA with |= in early_ioremap
Zheng Chongzhen (3):
sw64: re-implement sw64_dma_direct_ops according upstream
sw64: iommu: fix 32-bit devices dma ops
sw64: fix compile error for CONFIG_PCI=n
Zhou Xuemei (5):
sw64: pci: remove some useless code
sw64: switch to generic pcibios_set_master and pci_common_swizzle
sw64: clean up some useless codes
sw64: dts: rename spi flash partition to fix warning
sw64: add ARCH_HAS_PTE_SPECIAL support
Zhu Donghong (1):
ipmi: add ipmi driver support
arch/sw_64/Kconfig | 325 +-
arch/sw_64/Makefile | 1 +
arch/sw_64/boot/dts/chip3.dts | 41 +-
arch/sw_64/chip/chip3/chip.c | 130 +-
arch/sw_64/chip/chip3/cpufreq_debugfs.c | 7 +-
arch/sw_64/chip/chip3/i2c-lib.c | 4 -
arch/sw_64/chip/chip3/irq_chip.c | 13 +-
arch/sw_64/chip/chip3/msi.c | 7 +-
arch/sw_64/chip/chip3/pci-quirks.c | 7 +-
arch/sw_64/chip/chip3/vt_msi.c | 6 -
arch/sw_64/configs/openeuler_defconfig | 4312 +++++++++++++++++++++
arch/sw_64/defconfig | 73 -
arch/sw_64/include/asm/Kbuild | 1 +
arch/sw_64/include/asm/a.out-core.h | 80 -
arch/sw_64/include/asm/a.out.h | 16 -
arch/sw_64/include/asm/checksum.h | 58 +-
arch/sw_64/include/asm/chip3_io.h | 4 +-
arch/sw_64/include/asm/clock.h | 56 +
arch/sw_64/include/asm/cputime.h | 4 +-
arch/sw_64/include/asm/early_ioremap.h | 2 +-
arch/sw_64/include/asm/hw_init.h | 29 +-
arch/sw_64/include/asm/kvm_host.h | 3 +-
arch/sw_64/include/asm/mmu_context.h | 3 +-
arch/sw_64/include/asm/numa.h | 1 +
arch/sw_64/include/asm/pci.h | 24 +-
arch/sw_64/include/asm/pgtable.h | 26 +-
arch/sw_64/include/asm/ptrace.h | 8 +-
arch/sw_64/include/asm/topology.h | 29 +-
arch/sw_64/include/asm/unistd.h | 3 +-
arch/sw_64/include/asm/user.h | 53 -
arch/sw_64/include/asm/vdso.h | 4 +-
arch/sw_64/include/asm/vga.h | 18 +-
arch/sw_64/include/uapi/asm/a.out.h | 88 -
arch/sw_64/include/uapi/asm/auxvec.h | 25 +-
arch/sw_64/include/uapi/asm/bitsperlong.h | 2 +-
arch/sw_64/include/uapi/asm/byteorder.h | 2 +-
arch/sw_64/include/uapi/asm/compiler.h | 2 +-
arch/sw_64/include/uapi/asm/console.h | 2 +-
arch/sw_64/include/uapi/asm/errno.h | 2 +-
arch/sw_64/include/uapi/asm/fcntl.h | 2 +-
arch/sw_64/include/uapi/asm/fpu.h | 2 +-
arch/sw_64/include/uapi/asm/gentrap.h | 2 +-
arch/sw_64/include/uapi/asm/hmcall.h | 2 +-
arch/sw_64/include/uapi/asm/ioctl.h | 2 +-
arch/sw_64/include/uapi/asm/ioctls.h | 48 +-
arch/sw_64/include/uapi/asm/ipcbuf.h | 2 +-
arch/sw_64/include/uapi/asm/kvm.h | 14 +-
arch/sw_64/include/uapi/asm/kvm_para.h | 2 +-
arch/sw_64/include/uapi/asm/mman.h | 2 +-
arch/sw_64/include/uapi/asm/msgbuf.h | 2 +-
arch/sw_64/include/uapi/asm/param.h | 2 +-
arch/sw_64/include/uapi/asm/poll.h | 2 +-
arch/sw_64/include/uapi/asm/posix_types.h | 2 +-
arch/sw_64/include/uapi/asm/ptrace.h | 2 +-
arch/sw_64/include/uapi/asm/reg.h | 2 +-
arch/sw_64/include/uapi/asm/regdef.h | 2 +-
arch/sw_64/include/uapi/asm/resource.h | 2 +-
arch/sw_64/include/uapi/asm/sembuf.h | 2 +-
arch/sw_64/include/uapi/asm/setup.h | 2 +-
arch/sw_64/include/uapi/asm/shmbuf.h | 2 +-
arch/sw_64/include/uapi/asm/sigcontext.h | 2 +-
arch/sw_64/include/uapi/asm/siginfo.h | 2 +-
arch/sw_64/include/uapi/asm/signal.h | 2 +-
arch/sw_64/include/uapi/asm/socket.h | 34 +-
arch/sw_64/include/uapi/asm/sockios.h | 2 +-
arch/sw_64/include/uapi/asm/stat.h | 2 +-
arch/sw_64/include/uapi/asm/statfs.h | 2 +-
arch/sw_64/include/uapi/asm/swab.h | 2 +-
arch/sw_64/include/uapi/asm/sysinfo.h | 2 +-
arch/sw_64/include/uapi/asm/termbits.h | 2 +-
arch/sw_64/include/uapi/asm/termios.h | 2 +-
arch/sw_64/include/uapi/asm/types.h | 2 +-
arch/sw_64/include/uapi/asm/unistd.h | 7 +-
arch/sw_64/kernel/Makefile | 5 +-
arch/sw_64/kernel/acpi.c | 19 +-
arch/sw_64/kernel/asm-offsets.c | 7 +-
arch/sw_64/kernel/audit.c | 2 +-
arch/sw_64/kernel/cacheinfo.c | 3 +-
arch/sw_64/kernel/clock.c | 184 +
arch/sw_64/kernel/core.c | 41 +-
arch/sw_64/kernel/cpuautoplug.c | 496 +++
arch/sw_64/kernel/crash_dump.c | 2 -
arch/sw_64/kernel/dup_print.c | 10 +-
arch/sw_64/kernel/early_printk.c | 4 +-
arch/sw_64/kernel/entry.S | 5 +-
arch/sw_64/kernel/ftrace.c | 5 -
arch/sw_64/kernel/insn.c | 13 -
arch/sw_64/kernel/irq.c | 15 -
arch/sw_64/kernel/irq_sw64.c | 9 +-
arch/sw_64/kernel/jump_label.c | 3 +-
arch/sw_64/kernel/kgdb.c | 9 +-
arch/sw_64/kernel/kprobes/decode-insn.c | 6 +-
arch/sw_64/kernel/kprobes/kprobes.c | 4 -
arch/sw_64/kernel/kvm_cma.c | 4 -
arch/sw_64/kernel/machine_kexec.c | 7 +-
arch/sw_64/kernel/module.c | 9 -
arch/sw_64/kernel/msi.c | 25 -
arch/sw_64/kernel/pci-noop.c | 8 -
arch/sw_64/kernel/pci-sysfs.c | 3 -
arch/sw_64/kernel/pci.c | 102 +-
arch/sw_64/kernel/pci_common.c | 285 +-
arch/sw_64/kernel/pci_impl.h | 49 -
arch/sw_64/kernel/perf_event.c | 12 -
arch/sw_64/kernel/perf_regs.c | 4 -
arch/sw_64/kernel/platform.c | 20 +
arch/sw_64/kernel/process.c | 26 -
arch/sw_64/kernel/ptrace.c | 132 +-
arch/sw_64/kernel/relocate.c | 13 +-
arch/sw_64/kernel/segvdbg.c | 4 +-
arch/sw_64/kernel/setup.c | 124 +-
arch/sw_64/kernel/signal.c | 74 +-
arch/sw_64/kernel/smp.c | 25 +-
arch/sw_64/kernel/stacktrace.c | 1 -
arch/sw_64/kernel/suspend.c | 22 +-
arch/sw_64/kernel/syscalls/syscall.tbl | 28 +-
arch/sw_64/kernel/tc.c | 3 -
arch/sw_64/kernel/time.c | 31 +-
arch/sw_64/kernel/timer.c | 21 +-
arch/sw_64/kernel/topology.c | 19 -
arch/sw_64/kernel/traps.c | 95 +-
arch/sw_64/kernel/unaligned.c | 3 -
arch/sw_64/kernel/uprobes.c | 5 -
arch/sw_64/kernel/vdso.c | 9 -
arch/sw_64/kernel/vdso/so2s.sh | 3 +-
arch/sw_64/kernel/vdso/vdso.S | 2 -
arch/sw_64/kernel/vdso/vdso.lds.S | 2 +-
arch/sw_64/kernel/vdso/vgettimeofday.c | 33 +-
arch/sw_64/kernel/vdso/vrt_sigreturn.S | 40 +
arch/sw_64/kvm/emulate.c | 2 +
arch/sw_64/kvm/kvm-sw64.c | 39 +-
arch/sw_64/kvm/vmem.c | 37 +-
arch/sw_64/lib/checksum.c | 136 +-
arch/sw_64/lib/csum_partial_copy.c | 310 +-
arch/sw_64/lib/deep-memcpy.S | 449 ++-
arch/sw_64/lib/deep-memset.S | 27 +-
arch/sw_64/lib/fls.c | 1 -
arch/sw_64/lib/iomap.c | 4 +-
arch/sw_64/lib/udelay.c | 5 -
arch/sw_64/math-emu/math.c | 10 +-
arch/sw_64/mm/fault.c | 21 +-
arch/sw_64/mm/hugetlbpage.c | 7 +-
arch/sw_64/mm/init.c | 48 +-
arch/sw_64/mm/numa.c | 30 +-
arch/sw_64/mm/physaddr.c | 1 -
arch/sw_64/mm/thp.c | 9 -
drivers/cpufreq/Makefile | 1 +
drivers/cpufreq/sw64_cpufreq.c | 186 +
drivers/gpu/drm/radeon/radeon_uvd.c | 5 +
drivers/hwmon/Kconfig | 9 +
drivers/hwmon/Makefile | 1 +
drivers/hwmon/sw64_pvt.c | 222 ++
drivers/iommu/sw64/sunway_iommu.c | 58 +-
drivers/iommu/sw64/sunway_iommu.h | 2 +-
drivers/rtc/rtc-sw64-virt.c | 24 +-
154 files changed, 7026 insertions(+), 2337 deletions(-)
create mode 100644 arch/sw_64/configs/openeuler_defconfig
delete mode 100644 arch/sw_64/defconfig
delete mode 100644 arch/sw_64/include/asm/a.out-core.h
delete mode 100644 arch/sw_64/include/asm/a.out.h
create mode 100644 arch/sw_64/include/asm/clock.h
delete mode 100644 arch/sw_64/include/asm/user.h
delete mode 100644 arch/sw_64/include/uapi/asm/a.out.h
create mode 100644 arch/sw_64/kernel/clock.c
create mode 100644 arch/sw_64/kernel/cpuautoplug.c
create mode 100644 arch/sw_64/kernel/platform.c
create mode 100644 drivers/cpufreq/sw64_cpufreq.c
create mode 100644 drivers/hwmon/sw64_pvt.c
--
2.20.1
1
90
From: Gu Zitao <guzitao(a)wxiat.com>
Cui Mingrui (2):
sw64: optimize ip checksum calculation
sw64: fix ip checksum calculation
Du Yilong (3):
sw64: kvm: fix bug when open file with the O_DIRECT flag
sw64: add set time support for hypervisor based rtc
sw64: kvm: remap pages of guest by vm_insert_page()
Gu Zitao (7):
config: add initial openeuler_defconfig for sw64
sw64: fix coding style problems
sw64: fix the VDSO symbol generation for nm
sw64: fix SPDX license identifier in uapi headers
sw64: add SO_RCVTIMEO/ SO_SNDTIMEO socket options
sw64: remove unnecessary include headers
sw64: fix some compile errors
He Chuyue (2):
sw64: add regs and stack access APIs to support kprobe events
sw64: remove unnecessary parameter in REG_OFFSET_NAME
He Sheng (20):
sw64: clean up useless #if 0 and #if 1
sw64: switch GUP to the generic get_user_pages_fast() implementation
sw64: remove unused a.out.h
sw64: fix ex_table entries from misalignment handlers
sw64: define NR_SYSCALLS as generated __NR_syscalls
sw64: clean up a.out and ECOFF binary related headers
sw64: ptrace: clean up debug codes
sw64: add kbuild defconfig rule
sw64: clean up out-of-date selected options
sw64: Kconfig: remove dependence on !PREEMPT
sw64: Kconfig: remove dependence on ARCH_SUPPORTS_ACPI
sw64: add missing global __constant_c_memset
sw64: do some cleanups for rt_sigframe
sw64: fix setup_rt_frame for non SA_SIGINFO
sw64: fix compile error for DISCONTIGMEM=y
sw64: force signal and fault for traps and debugging
sw64: push and pop kernel stack with ldi instruction
sw64: signal: save/restore fpregs with copy user
sw64: fix the number of aux entries in ARCH_DLINFO
sw64: fix sendfile system call
Lu Feifei (6):
sw64: fix printk method for guest os
sw64: unify access to LONGTIME for guest and emulator
sw64: kvm: handle ldl_u and stl_u when exit mmio
sw64: kvm: simplify the code
sw64: pci: align the address of mmio resource to PAGE_SIZE
sw64: unify 32-bit MEMIO address of host and guest
Mao Minkai (29):
sw64: vdso: add automatic syscall fallback
sw64: vdso: change vdso version
sw64: vdso: fix time calculation
sw64: mm: reorder memblock_init process
sw64: mm: warn overlapped memmap and DMA region
sw64: mm: use memblock to find the end of memory
sw64: print correct initrd address
sw64: remove redundant Kconfig source
sw64: modify tc_sched_clock debugfs file
sw64: simplify cpumask_of_node
sw64: remove CONFIG_USE_PERCPU_NUMA_NODE_ID=n code
sw64: fix all compile warnings
sw64: numa: switch to arch node_distance
sw64: mm: mark pci and memmap region as nomap
sw64: use jump label for running modes
sw64: remove MAX_ASN
sw64: kvm: remove MAX_VPN
sw64: fix coding style problems
sw64: rename kvm_mem variables
sw64: reformat syscall.tbl
sw64: add missing pkey syscall numbers
sw64: add clone3 syscall support
sw64: add required include headers to ptrace.h
sw64: switch to old-style semctl/shmctl syscalls
sw64: increase position index in c_next for cpuinfo
sw64: add old sigprocmask back for compatibility
sw64: vdso: fix backtrace of vrt_sigreturn
sw64: vdso: fix CFI directives for fpregs in vrt_sigreturn
sw64: optimize simd version of memcpy and memset
Min Fanlei (4):
sw64: fix the value of QEMU_PRINTF_BUFF_BASE
sw64: add support for emulator running mode
sw64: enable more than 32 CPUs for guest
sw64: kvm: fix bad page state setting outside of kvm memory pool
Tang Jinyang (2):
sw64: add dynamic frequency scaling support
sw64: add dynamic turning on/off cores support
Wang Yingying (3):
hwmon: add voltage sensor support for sw64
sw64: add pvt device to chip3.dts
hwmon: add support for sw64 temperature sensor
Xu Chenjiao (2):
sw64: radeon: add a force flush to delay work when radeon uvd suspend
sw64: pcie: enable PME and AER support
Zhao Yihan (1):
sw64: remap PA with |= in early_ioremap
Zheng Chongzhen (3):
sw64: re-implement sw64_dma_direct_ops according upstream
sw64: iommu: fix 32-bit devices dma ops
sw64: fix compile error for CONFIG_PCI=n
Zhou Xuemei (5):
sw64: pci: remove some useless code
sw64: switch to generic pcibios_set_master and pci_common_swizzle
sw64: clean up some useless codes
sw64: dts: rename spi flash partition to fix warning
sw64: add ARCH_HAS_PTE_SPECIAL support
Zhu Donghong (1):
ipmi: add ipmi driver support
arch/sw_64/Kconfig | 325 +-
arch/sw_64/Makefile | 1 +
arch/sw_64/boot/dts/chip3.dts | 41 +-
arch/sw_64/chip/chip3/chip.c | 130 +-
arch/sw_64/chip/chip3/cpufreq_debugfs.c | 7 +-
arch/sw_64/chip/chip3/i2c-lib.c | 4 -
arch/sw_64/chip/chip3/irq_chip.c | 13 +-
arch/sw_64/chip/chip3/msi.c | 7 +-
arch/sw_64/chip/chip3/pci-quirks.c | 7 +-
arch/sw_64/chip/chip3/vt_msi.c | 6 -
arch/sw_64/configs/openeuler_defconfig | 4312 +++++++++++++++++++++
arch/sw_64/defconfig | 73 -
arch/sw_64/include/asm/Kbuild | 1 +
arch/sw_64/include/asm/a.out-core.h | 80 -
arch/sw_64/include/asm/a.out.h | 16 -
arch/sw_64/include/asm/checksum.h | 58 +-
arch/sw_64/include/asm/chip3_io.h | 4 +-
arch/sw_64/include/asm/clock.h | 56 +
arch/sw_64/include/asm/cputime.h | 4 +-
arch/sw_64/include/asm/early_ioremap.h | 2 +-
arch/sw_64/include/asm/hw_init.h | 29 +-
arch/sw_64/include/asm/kvm_host.h | 3 +-
arch/sw_64/include/asm/mmu_context.h | 3 +-
arch/sw_64/include/asm/numa.h | 1 +
arch/sw_64/include/asm/pci.h | 24 +-
arch/sw_64/include/asm/pgtable.h | 26 +-
arch/sw_64/include/asm/ptrace.h | 8 +-
arch/sw_64/include/asm/topology.h | 29 +-
arch/sw_64/include/asm/unistd.h | 3 +-
arch/sw_64/include/asm/user.h | 53 -
arch/sw_64/include/asm/vdso.h | 4 +-
arch/sw_64/include/asm/vga.h | 18 +-
arch/sw_64/include/uapi/asm/a.out.h | 88 -
arch/sw_64/include/uapi/asm/auxvec.h | 25 +-
arch/sw_64/include/uapi/asm/bitsperlong.h | 2 +-
arch/sw_64/include/uapi/asm/byteorder.h | 2 +-
arch/sw_64/include/uapi/asm/compiler.h | 2 +-
arch/sw_64/include/uapi/asm/console.h | 2 +-
arch/sw_64/include/uapi/asm/errno.h | 2 +-
arch/sw_64/include/uapi/asm/fcntl.h | 2 +-
arch/sw_64/include/uapi/asm/fpu.h | 2 +-
arch/sw_64/include/uapi/asm/gentrap.h | 2 +-
arch/sw_64/include/uapi/asm/hmcall.h | 2 +-
arch/sw_64/include/uapi/asm/ioctl.h | 2 +-
arch/sw_64/include/uapi/asm/ioctls.h | 48 +-
arch/sw_64/include/uapi/asm/ipcbuf.h | 2 +-
arch/sw_64/include/uapi/asm/kvm.h | 14 +-
arch/sw_64/include/uapi/asm/kvm_para.h | 2 +-
arch/sw_64/include/uapi/asm/mman.h | 2 +-
arch/sw_64/include/uapi/asm/msgbuf.h | 2 +-
arch/sw_64/include/uapi/asm/param.h | 2 +-
arch/sw_64/include/uapi/asm/poll.h | 2 +-
arch/sw_64/include/uapi/asm/posix_types.h | 2 +-
arch/sw_64/include/uapi/asm/ptrace.h | 2 +-
arch/sw_64/include/uapi/asm/reg.h | 2 +-
arch/sw_64/include/uapi/asm/regdef.h | 2 +-
arch/sw_64/include/uapi/asm/resource.h | 2 +-
arch/sw_64/include/uapi/asm/sembuf.h | 2 +-
arch/sw_64/include/uapi/asm/setup.h | 2 +-
arch/sw_64/include/uapi/asm/shmbuf.h | 2 +-
arch/sw_64/include/uapi/asm/sigcontext.h | 2 +-
arch/sw_64/include/uapi/asm/siginfo.h | 2 +-
arch/sw_64/include/uapi/asm/signal.h | 2 +-
arch/sw_64/include/uapi/asm/socket.h | 34 +-
arch/sw_64/include/uapi/asm/sockios.h | 2 +-
arch/sw_64/include/uapi/asm/stat.h | 2 +-
arch/sw_64/include/uapi/asm/statfs.h | 2 +-
arch/sw_64/include/uapi/asm/swab.h | 2 +-
arch/sw_64/include/uapi/asm/sysinfo.h | 2 +-
arch/sw_64/include/uapi/asm/termbits.h | 2 +-
arch/sw_64/include/uapi/asm/termios.h | 2 +-
arch/sw_64/include/uapi/asm/types.h | 2 +-
arch/sw_64/include/uapi/asm/unistd.h | 7 +-
arch/sw_64/kernel/Makefile | 5 +-
arch/sw_64/kernel/acpi.c | 19 +-
arch/sw_64/kernel/asm-offsets.c | 7 +-
arch/sw_64/kernel/audit.c | 2 +-
arch/sw_64/kernel/cacheinfo.c | 3 +-
arch/sw_64/kernel/clock.c | 184 +
arch/sw_64/kernel/core.c | 41 +-
arch/sw_64/kernel/cpuautoplug.c | 496 +++
arch/sw_64/kernel/crash_dump.c | 2 -
arch/sw_64/kernel/dup_print.c | 10 +-
arch/sw_64/kernel/early_printk.c | 4 +-
arch/sw_64/kernel/entry.S | 5 +-
arch/sw_64/kernel/ftrace.c | 5 -
arch/sw_64/kernel/insn.c | 13 -
arch/sw_64/kernel/irq.c | 15 -
arch/sw_64/kernel/irq_sw64.c | 9 +-
arch/sw_64/kernel/jump_label.c | 3 +-
arch/sw_64/kernel/kgdb.c | 9 +-
arch/sw_64/kernel/kprobes/decode-insn.c | 6 +-
arch/sw_64/kernel/kprobes/kprobes.c | 4 -
arch/sw_64/kernel/kvm_cma.c | 4 -
arch/sw_64/kernel/machine_kexec.c | 7 +-
arch/sw_64/kernel/module.c | 9 -
arch/sw_64/kernel/msi.c | 25 -
arch/sw_64/kernel/pci-noop.c | 8 -
arch/sw_64/kernel/pci-sysfs.c | 3 -
arch/sw_64/kernel/pci.c | 102 +-
arch/sw_64/kernel/pci_common.c | 285 +-
arch/sw_64/kernel/pci_impl.h | 49 -
arch/sw_64/kernel/perf_event.c | 12 -
arch/sw_64/kernel/perf_regs.c | 4 -
arch/sw_64/kernel/platform.c | 20 +
arch/sw_64/kernel/process.c | 26 -
arch/sw_64/kernel/ptrace.c | 132 +-
arch/sw_64/kernel/relocate.c | 13 +-
arch/sw_64/kernel/segvdbg.c | 4 +-
arch/sw_64/kernel/setup.c | 124 +-
arch/sw_64/kernel/signal.c | 74 +-
arch/sw_64/kernel/smp.c | 25 +-
arch/sw_64/kernel/stacktrace.c | 1 -
arch/sw_64/kernel/suspend.c | 22 +-
arch/sw_64/kernel/syscalls/syscall.tbl | 28 +-
arch/sw_64/kernel/tc.c | 3 -
arch/sw_64/kernel/time.c | 31 +-
arch/sw_64/kernel/timer.c | 21 +-
arch/sw_64/kernel/topology.c | 19 -
arch/sw_64/kernel/traps.c | 95 +-
arch/sw_64/kernel/unaligned.c | 3 -
arch/sw_64/kernel/uprobes.c | 5 -
arch/sw_64/kernel/vdso.c | 9 -
arch/sw_64/kernel/vdso/so2s.sh | 3 +-
arch/sw_64/kernel/vdso/vdso.S | 2 -
arch/sw_64/kernel/vdso/vdso.lds.S | 2 +-
arch/sw_64/kernel/vdso/vgettimeofday.c | 33 +-
arch/sw_64/kernel/vdso/vrt_sigreturn.S | 40 +
arch/sw_64/kvm/emulate.c | 2 +
arch/sw_64/kvm/kvm-sw64.c | 39 +-
arch/sw_64/kvm/vmem.c | 37 +-
arch/sw_64/lib/checksum.c | 136 +-
arch/sw_64/lib/csum_partial_copy.c | 310 +-
arch/sw_64/lib/deep-memcpy.S | 449 ++-
arch/sw_64/lib/deep-memset.S | 27 +-
arch/sw_64/lib/fls.c | 1 -
arch/sw_64/lib/iomap.c | 4 +-
arch/sw_64/lib/udelay.c | 5 -
arch/sw_64/math-emu/math.c | 10 +-
arch/sw_64/mm/fault.c | 21 +-
arch/sw_64/mm/hugetlbpage.c | 7 +-
arch/sw_64/mm/init.c | 48 +-
arch/sw_64/mm/numa.c | 30 +-
arch/sw_64/mm/physaddr.c | 1 -
arch/sw_64/mm/thp.c | 9 -
drivers/cpufreq/Makefile | 1 +
drivers/cpufreq/sw64_cpufreq.c | 186 +
drivers/gpu/drm/radeon/radeon_uvd.c | 5 +
drivers/hwmon/Kconfig | 9 +
drivers/hwmon/Makefile | 1 +
drivers/hwmon/sw64_pvt.c | 222 ++
drivers/iommu/sw64/sunway_iommu.c | 58 +-
drivers/iommu/sw64/sunway_iommu.h | 2 +-
drivers/rtc/rtc-sw64-virt.c | 24 +-
154 files changed, 7026 insertions(+), 2337 deletions(-)
create mode 100644 arch/sw_64/configs/openeuler_defconfig
delete mode 100644 arch/sw_64/defconfig
delete mode 100644 arch/sw_64/include/asm/a.out-core.h
delete mode 100644 arch/sw_64/include/asm/a.out.h
create mode 100644 arch/sw_64/include/asm/clock.h
delete mode 100644 arch/sw_64/include/asm/user.h
delete mode 100644 arch/sw_64/include/uapi/asm/a.out.h
create mode 100644 arch/sw_64/kernel/clock.c
create mode 100644 arch/sw_64/kernel/cpuautoplug.c
create mode 100644 arch/sw_64/kernel/platform.c
create mode 100644 drivers/cpufreq/sw64_cpufreq.c
create mode 100644 drivers/hwmon/sw64_pvt.c
--
2.17.1
1
90