Linux 5.15.143
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.15.143 kernel.
All users of the 5.15 kernel series must upgrade.
The updated 5.15.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.15.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/ABI/testing/sysfs-bus-optee-devices | 9 Documentation/process/howto.rst | 2 Documentation/translations/it_IT/process/howto.rst | 2 Documentation/translations/ja_JP/howto.rst | 2 Documentation/translations/ko_KR/howto.rst | 2 Documentation/translations/zh_CN/process/howto.rst | 2 Documentation/translations/zh_TW/process/howto.rst | 2 Makefile | 2 arch/arm/boot/dts/imx28-xea.dts | 1 arch/arm/boot/dts/imx6ul-pico.dtsi | 2 arch/arm/boot/dts/imx7s.dtsi | 8 arch/arm/mach-imx/mmdc.c | 7 arch/arm64/boot/dts/freescale/imx8mp.dtsi | 2 arch/arm64/boot/dts/freescale/imx8mq.dtsi | 4 arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 2 arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 2 arch/arm64/boot/dts/mediatek/mt8173-evb.dts | 4 arch/arm64/boot/dts/mediatek/mt8173.dtsi | 2 arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 50 +- arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi | 8 arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 90 ++--- arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts | 12 arch/arm64/boot/dts/mediatek/mt8183.dtsi | 242 +++++++------- arch/arm64/boot/dts/rockchip/rk3399.dtsi | 6 arch/mips/Kconfig | 2 arch/mips/include/asm/mach-loongson64/boot_param.h | 3 arch/mips/loongson64/env.c | 10 arch/mips/loongson64/init.c | 5 arch/riscv/kernel/traps_misaligned.c | 6 arch/s390/mm/pgtable.c | 2 arch/x86/kernel/cpu/amd.c | 3 arch/x86/kvm/svm/svm.c | 8 drivers/android/binder.c | 1 drivers/base/devcoredump.c | 86 ++++ drivers/base/regmap/regcache.c | 3 drivers/gpio/gpiolib-sysfs.c | 15 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 49 +- drivers/hwmon/acpi_power_meter.c | 4 drivers/hwmon/nzxt-kraken2.c | 4 drivers/hwtracing/coresight/coresight-etm4x-core.c | 13 drivers/i2c/busses/i2c-designware-common.c | 16 drivers/infiniband/core/umem.c | 6 drivers/infiniband/hw/bnxt_re/main.c | 2 drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 13 drivers/infiniband/hw/irdma/hw.c | 10 drivers/infiniband/hw/irdma/main.c | 2 drivers/infiniband/hw/irdma/main.h | 2 drivers/infiniband/hw/irdma/verbs.c | 28 + drivers/infiniband/hw/irdma/verbs.h | 1 drivers/infiniband/ulp/rtrs/rtrs-clt.c | 7 drivers/infiniband/ulp/rtrs/rtrs-srv.c | 37 +- drivers/md/md.c | 174 +++++----- drivers/misc/mei/client.c | 4 drivers/net/arcnet/arcdevice.h | 2 drivers/net/arcnet/com20020-pci.c | 89 ++--- drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 1 drivers/net/ethernet/broadcom/tg3.c | 42 ++ drivers/net/ethernet/broadcom/tg3.h | 4 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 29 + drivers/net/ethernet/intel/i40e/i40e_main.c | 2 drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c | 5 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c | 8 drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.c | 4 drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 6 drivers/net/ethernet/pensando/ionic/ionic_dev.h | 2 drivers/net/ethernet/pensando/ionic/ionic_lif.c | 16 drivers/net/ethernet/realtek/r8169_main.c | 7 drivers/net/ethernet/stmicro/stmmac/dwmac5.c | 45 +- drivers/net/ethernet/stmicro/stmmac/dwmac5.h | 4 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c | 3 drivers/net/ethernet/stmicro/stmmac/hwif.h | 4 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 1 drivers/net/hyperv/Kconfig | 1 drivers/net/usb/r8152.c | 110 +++--- drivers/nvme/host/nvme.h | 5 drivers/nvme/host/pci.c | 16 drivers/of/dynamic.c | 5 drivers/parport/parport_pc.c | 21 + drivers/platform/mellanox/mlxbf-bootctl.c | 39 +- drivers/platform/mellanox/mlxbf-pmc.c | 14 drivers/platform/surface/aggregator/core.c | 5 drivers/platform/x86/Kconfig | 2 drivers/platform/x86/asus-nb-wmi.c | 46 +- drivers/platform/x86/asus-wmi.c | 118 +++--- drivers/platform/x86/asus-wmi.h | 10 drivers/platform/x86/wmi.c | 56 ++- drivers/scsi/be2iscsi/be_main.c | 1 drivers/tee/optee/device.c | 17 drivers/tty/serial/8250/8250_early.c | 1 drivers/tty/serial/8250/8250_omap.c | 14 drivers/tty/serial/amba-pl011.c | 112 +++--- drivers/tty/serial/sc16is7xx.c | 12 drivers/usb/gadget/function/f_hid.c | 7 drivers/usb/host/xhci-pci.c | 2 drivers/usb/typec/class.c | 5 drivers/vdpa/mlx5/net/mlx5_vnet.c | 7 fs/btrfs/disk-io.c | 1 fs/btrfs/super.c | 5 fs/cifs/cifsfs.c | 4 fs/cifs/smb2ops.c | 2 fs/nilfs2/sufile.c | 42 ++ fs/nilfs2/the_nilfs.c | 6 include/linux/cpuhotplug.h | 1 include/linux/hrtimer.h | 4 include/linux/kallsyms.h | 7 include/linux/kprobes.h | 7 include/linux/perf_event.h | 2 include/linux/platform_data/x86/asus-wmi.h | 1 include/linux/stmmac.h | 1 include/net/genetlink.h | 7 include/rdma/ib_umem.h | 9 include/rdma/ib_verbs.h | 1 include/uapi/linux/perf_event.h | 5 io_uring/io_uring.c | 64 --- kernel/cpu.c | 8 kernel/events/core.c | 80 +++- kernel/events/ring_buffer.c | 5 kernel/kallsyms.c | 2 kernel/kprobes.c | 4 kernel/time/hrtimer.c | 33 - kernel/trace/ring_buffer.c | 19 - kernel/trace/trace.c | 177 ++++------ mm/filemap.c | 2 net/core/drop_monitor.c | 4 net/core/filter.c | 19 + net/core/scm.c | 6 net/ipv4/ip_gre.c | 11 net/ipv4/tcp_input.c | 6 net/ipv6/ip6_fib.c | 6 net/netfilter/ipset/ip_set_core.c | 14 net/netfilter/nf_tables_api.c | 5 net/netfilter/nft_dynset.c | 13 net/netfilter/nft_set_pipapo.c | 3 net/netfilter/xt_owner.c | 16 net/netlink/genetlink.c | 3 net/packet/af_packet.c | 16 net/packet/internal.h | 2 net/psample/psample.c | 3 scripts/checkstack.pl | 8 scripts/kconfig/symbol.c | 14 sound/core/pcm.c | 1 sound/pci/hda/patch_realtek.c | 1 sound/soc/codecs/wm_adsp.c | 8 sound/usb/mixer_quirks.c | 30 + tools/include/uapi/linux/perf_event.h | 5 147 files changed, 1539 insertions(+), 1045 deletions(-)
Akira Yokosawa (1):
docs/process/howto: Replace C89 with C11
Alex Bee (1):
arm64: dts: rockchip: Expand reg size of vdec node for RK3399
Alex Pakhunov (2):
tg3: Move the [rt]x_dropped counters to tg3_napi
tg3: Increment tx_dropped in tg3_tso_bug()
AngeloGioacchino Del Regno (3):
arm64: dts: mediatek: mt8173-evb: Fix regulator-fixed node names
arm64: dts: mediatek: mt8183: Fix unit address for scp reserved memory
arm64: dts: mediatek: mt8183: Move thermal-zones to the root node
Armin Wolf (2):
platform/x86: wmi: Skip blocks with zero instances
hwmon: (acpi_power_meter) Fix 4.29 MW bug
Arnd Bergmann (1):
ARM: PL011: Fix DMA support
Bin Li (1):
ALSA: hda/realtek: Enable headset on Lenovo M90 Gen5
Boerge Struempfel (1):
gpiolib: sysfs: Fix error handling on failed export
Borislav Petkov (AMD) (1):
x86/CPU/AMD: Check vendor in the AMD microcode callback
Brett Creeley (1):
ionic: Fix dim work handling in split interrupt mode
Cameron Williams (1):
parport: Add support for Brainboxes IX/UC/PX parallel cards
Carlos Llamas (1):
binder: fix memory leaks of spam and pending work
Christophe JAILLET (1):
hwmon: (nzxt-kraken2) Fix error handling path in kraken2_probe()
ChunHao Lin (1):
r8169: fix rtl8125b PAUSE frames blasting when suspended
Claudio Imbrenda (1):
KVM: s390/mm: Properly reset no-dat
Clément Léger (1):
riscv: fix misaligned access handling of C.SWSP and C.SDSP
Daniel Borkmann (1):
packet: Move reference count in packet_sock to atomic_long_t
Daniel Mack (1):
serial: sc16is7xx: address RX timeout interrupt errata
David Howells (1):
cifs: Fix non-availability of dedup breaking generic/304
David Thompson (1):
mlxbf-bootctl: correctly identify secure boot with development keys
Dinghao Liu (3):
net: bnxt: fix a potential use-after-free in bnxt_init_tc
ASoC: wm_adsp: fix memleak in wm_adsp_buffer_populate
scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle()
Douglas Anderson (5):
r8152: Rename RTL8152_UNPLUG to RTL8152_INACCESSIBLE
r8152: Add RTL8152_INACCESSIBLE checks to more loops
r8152: Add RTL8152_INACCESSIBLE to r8156b_wait_loading_flash()
r8152: Add RTL8152_INACCESSIBLE to r8153_pre_firmware_1()
r8152: Add RTL8152_INACCESSIBLE to r8153_aldps_en()Eric Dumazet (2):
ipv6: fix potential NULL deref in fib6_add()
tcp: do not accept ACK of bytes we never sent
Eugen Hristev (2):
arm64: dts: mediatek: mt7622: fix memory node warning check
arm64: dts: mediatek: mt8183-kukui-jacuzzi: fix dsi unnecessary cells properties
Fabio Estevam (2):
ARM: dts: imx6ul-pico: Describe the Ethernet PHY clock
ARM: dts: imx28-xea: Pass the 'model' property
Florian Westphal (1):
netfilter: nft_set_pipapo: skip inactive elements during set walk
Francesco Dolcini (1):
platform/surface: aggregator: fix recv_buf() return value
Georg Gottleuber (1):
nvme-pci: Add sleep quirk for Kingston drives
Greg Kroah-Hartman (2):
Revert "btrfs: add dmesg output for first mount and last unmount of a filesystem" Linux 5.15.143
Hans de Goede (4):
platform/x86: asus-wmi: Simplify tablet-mode-switch probing platform/x86: asus-wmi: Simplify tablet-mode-switch handling platform/x86: asus-wmi: Move i8042 filter install to shared asus-wmi code platform/x86: asus-wmi: Fix kbd_dock_devid tablet-switch reporting
Heiko Carstens (1):
checkstack: fix printed address
Hsin-Yi Wang (1):
arm64: dts: mt8183: kukui: Fix underscores in node names
Hugh Dickins (1):
mm: fix oops when filemap_map_pmd() without prealloc_pte
Ido Schimmel (2):
psample: Require 'CAP_NET_ADMIN' when joining "packets" group
drop_monitor: Require 'CAP_SYS_ADMIN' when joining "events" group
Ivan Vecera (1):
i40e: Fix unexpected MFS warning message
JP Kobryn (1):
kprobes: consistent rcu api usage for kretprobe holder
Jack Wang (4):
RDMA/rtrs-srv: Do not unconditionally enable irq RDMA/rtrs-clt: Start hb after path_up RDMA/rtrs-clt: Fix the max_send_wr setting RDMA/rtrs-clt: Remove the warnings for req in_use check
Jakub Kicinski (1):
net: add missing kdoc for struct genl_multicast_group::flags
Jan Bottorff (1):
i2c: designware: Fix corrupted memory seen in the ISR
Jason Zhang (1):
ALSA: pcm: fix out-of-bounds in snd_pcm_state_names
Jianheng Zhang (1):
net: stmmac: fix FPE events losing
Jiaxun Yang (2):
MIPS: Loongson64: Reserve vgabios memory on boot
MIPS: Loongson64: Enable DMA noncoherent support
Jiri Olsa (1):
kallsyms: Make kallsyms_on_each_symbol generally available
John Fastabend (1):
bpf: sockmap, updating the sg structure should also update curr
Jozsef Kadlecsik (1):
netfilter: ipset: fix race condition between swap/destroy and kernel side add/del/test
Junxian Huang (1):
RDMA/hns: Fix unnecessary err return when using invalid congest control algorithm
Kalesh AP (1):
RDMA/bnxt_re: Correct module description string
Konstantin Aladyshev (1):
usb: gadget: f_hid: fix report descriptor allocation
Krzysztof Kozlowski (2):
arm64: dts: mediatek: align thermal zone node names with dtschema
arm64: dts: mediatek: add missing space before {
Kunwu Chan (3):
platform/mellanox: Add null pointer checks for devm_kasprintf() platform/mellanox: Check devm_hwmon_device_register_with_groups() return value
ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init
Luca Ceresoli (1):
of: dynamic: Fix of_reconfig_get_state_change() return value documentation
Luke D. Jones (2):
platform/x86: asus-wmi: Adjust tablet/lidflip handling to use enum platform/x86: asus-wmi: Add support for ROG X13 tablet mode
Mario Limonciello (1):
platform/x86: wmi: Allow duplicate GUIDs for drivers that use struct wmi_driver
Masahiro Yamada (1):
kconfig: fix memory leak from range properties
Mathias Nyman (1):
Revert "xhci: Loosen RPM as default policy to cover for AMD xHC 1.1"
Matthias Reichl (1):
regmap: fix bogus error on regcache_sync success
Md Haris Iqbal (3):
RDMA/rtrs-srv: Check return values while processing info request RDMA/rtrs-srv: Free srv_mr iu only when always_invalidate is true RDMA/rtrs-srv: Destroy path files after making sure no IOs in-flight
Mike Marciniszyn (1):
RDMA/core: Fix umem iterator when PAGE_SIZE is greater then HCA pgsz
Mukesh Ojha (2):
devcoredump : Serialize devcd_del work
devcoredump: Send uevent once devcd is ready
Mustafa Ismail (2):
RDMA/irdma: Do not modify to SQD on error
RDMA/irdma: Add wait for suspend on SQD
Namhyung Kim (2):
tools headers UAPI: Sync linux/perf_event.h with the kernel sources perf/core: Add a new read format to get a number of lost samples
Nathan Rossi (1):
arm64: dts: imx8mp: imx8mq: Add parkmode-disable-ss-quirk on DWC3
Pablo Neira Ayuso (2):
netfilter: nf_tables: bail out on mismatching dynset and set expressions
netfilter: nf_tables: validate family when identifying table via handle
Paulo Alcantara (1):
smb: client: fix potential NULL deref in parse_dfs_referrals()
Pavel Begunkov (2):
io_uring: fix mutex_unlock with unreferenced ctx io_uring/af_unix: disable sending io_uring over sockets
Peng Fan (1):
arm64: dts: imx8mq: drop usb3-resume-missing-cas from usb
Peter Zijlstra (1):
perf: Fix perf_event_validate_size()
Petr Pavlu (3):
tracing: Fix a warning when allocating buffered events fails
tracing: Fix incomplete locking when disabling buffered events
tracing: Fix a possible race when disabling buffered events
Phil Sutter (1):
netfilter: xt_owner: Fix for unsafe access of sk->sk_socket
Philipp Zabel (1):
ARM: dts: imx7: Declare timers compatible with fsl,imx6dl-gpt
Prike Liang (1):
drm/amdgpu: correct the amdgpu runtime dereference usage count
RD Babiera (1):
usb: typec: class: fix typec_altmode_put_partner to put plugs
Rahul Bhansali (1):
octeontx2-af: Update Tx link register range
Randy Dunlap (1):
hv_netvsc: rndis_filter needs to select NLS
Ronald Wahl (3):
serial: 8250: 8250_omap: Clear UART_HAS_RHR_IT_DIS bit
serial: 8250: 8250_omap: Do not start RX DMA on THRI interrupt
serial: 8250_omap: Add earlycon support for the AM654 UART controller
Ryusuke Konishi (2):
nilfs2: fix missing error check for sb_set_blocksize call
nilfs2: prevent WARNING in nilfs_sufile_set_segment_usage()
Sarah Grant (1):
ALSA: usb-audio: Add Pioneer DJM-450 mixer controls
Sean Christopherson (1):
KVM: SVM: Update EFER software model on CR0 trap for SEV-ES
Shannon Nelson (1):
ionic: fix snprintf format length warning
Shifeng Li (1):
RDMA/irdma: Avoid free the non-cqp_request scratch
Shigeru Yoshida (1):
ipv4: ip_gre: Avoid skb_pull() failure in ipgre_xmit()
Srinivasan Shanmugam (1):
drm/amd/amdgpu: Fix warnings in amdgpu/amdgpu_display.c
Steve Sistare (1):
vdpa/mlx5: preserve CVQ vringh index
Steven Rostedt (Google) (4):
tracing: Always update snapshot buffer size
tracing: Disable snapshot buffer when stopping instance tracers
ring-buffer: Force absolute timestamp on discard of event
tracing: Stop current tracer when resizing buffer
Su Hui (2):
misc: mei: client.c: return negative error code in mei_cl_write
misc: mei: client.c: fix problem of return '-EOVERFLOW' in mei_cl_write
Subbaraya Sundeep (2):
octeontx2-pf: Add missing mutex lock in otx2_get_pauseparam
octeontx2-af: Check return value of nix_get_nixlf before using nixlf
Sumit Garg (1):
tee: optee: Fix supplicant based device enumeration
Thomas Gleixner (1):
hrtimers: Push pending hrtimers away from outgoing CPU earlier
Thomas Reichinger (1):
arcnet: restoring support for multiple Sohard Arcnet cards
Uwe Kleine-König (2):
coresight: etm4x: Make etm4_remove_dev() return void
coresight: etm4x: Remove bogous __exit annotation for some functions
Ye Bin (1):
md: introduce md_ro_state
Yonglong Liu (1):
net: hns: fix fake link up on xge port
Yu Kuai (1):
md: don't leave 'MD_RECOVERY_FROZEN' in error path of md_set_readonly()
YuanShang (1):
drm/amdgpu: correct chunk_ptr to a pointer to chunk.
Zheng Yejian (1):
tracing: Set actual size after ring buffer resize
Zhipeng Lu (1):
octeontx2-af: fix a use-after-free in rvu_npa_register_reporters
Greg Kroah-Hartman
maintainerDocumentation/ABI/testing/sysfs-bus-optee-devices +9 -0
@@ -6,3 +6,12 @@ Description: OP-TEE bus provides reference to registered drivers under this directory. The <uuid> matches Trusted Application (TA) driver and corresponding TA in secure OS. Drivers are free to create needed API under optee-ta-<uuid> directory. + +What: /sys/bus/tee/devices/optee-ta-<uuid>/need_supplicant +Date: November 2023 +KernelVersion: 6.7 +Contact: [email protected] +Description: + Allows to distinguish whether an OP-TEE based TA/device requires user-space + tee-supplicant to function properly or not. This attribute will be present for + devices which depend on tee-supplicant to be running.
Documentation/process/howto.rst +1 -1
@@ -36,7 +36,7 @@ experience, the following books are good for, if anything, reference: - "C: A Reference Manual" by Harbison and Steele [Prentice Hall] The kernel is written using GNU C and the GNU toolchain. While it -adheres to the ISO C89 standard, it uses a number of extensions that are +adheres to the ISO C11 standard, it uses a number of extensions that are not featured in the standard. The kernel is a freestanding C environment, with no reliance on the standard C library, so some portions of the C standard are not supported. Arbitrary long long
Documentation/translations/it_IT/process/howto.rst +1 -1
@@ -44,7 +44,7 @@ altro, utili riferimenti: - "C: A Reference Manual" di Harbison and Steele [Prentice Hall] Il kernel è stato scritto usando GNU C e la toolchain GNU. -Sebbene si attenga allo standard ISO C89, esso utilizza una serie di +Sebbene si attenga allo standard ISO C11, esso utilizza una serie di estensioni che non sono previste in questo standard. Il kernel è un ambiente C indipendente, che non ha alcuna dipendenza dalle librerie C standard, così alcune parti del C standard non sono supportate.
Documentation/translations/ja_JP/howto.rst +1 -1
@@ -65,7 +65,7 @@ Linux カーネル開発のやり方 - 『新・詳説 C 言語 H&S リファレンス』 (サミュエル P ハービソン/ガイ L スティール共著 斉藤 信男監訳)[ソフトバンク] カーネルは GNU C と GNU ツールチェインを使って書かれています。カーネル -は ISO C89 仕様に準拠して書く一方で、標準には無い言語拡張を多く使って +は ISO C11 仕様に準拠して書く一方で、標準には無い言語拡張を多く使って います。カーネルは標準 C ライブラリに依存しない、C 言語非依存環境です。 そのため、C の標準の中で使えないものもあります。特に任意の long long の除算や浮動小数点は使えません。カーネルがツールチェインや C 言語拡張
Documentation/translations/ko_KR/howto.rst +1 -1
@@ -62,7 +62,7 @@ Documentation/process/howto.rst - "Practical C Programming" by Steve Oualline [O'Reilly] - "C: A Reference Manual" by Harbison and Steele [Prentice Hall] -커널은 GNU C와 GNU 툴체인을 사용하여 작성되었다. 이 툴들은 ISO C89 표준을 +커널은 GNU C와 GNU 툴체인을 사용하여 작성되었다. 이 툴들은 ISO C11 표준을 따르는 반면 표준에 있지 않은 많은 확장기능도 가지고 있다. 커널은 표준 C 라이브러리와는 관계없이 freestanding C 환경이어서 C 표준의 일부는 지원되지 않는다. 임의의 long long 나누기나 floating point는 지원되지 않는다.
Documentation/translations/zh_CN/process/howto.rst +1 -1
@@ -45,7 +45,7 @@ Linux内核大部分是由C语言写成的,一些体系结构相关的代码 - "C: A Reference Manual" by Harbison and Steele [Prentice Hall] 《C语言参考手册(原书第5版)》(邱仲潘 等译)[机械工业出版社] -Linux内核使用GNU C和GNU工具链开发。虽然它遵循ISO C89标准,但也用到了一些 +Linux内核使用GNU C和GNU工具链开发。虽然它遵循ISO C11标准,但也用到了一些 标准中没有定义的扩展。内核是自给自足的C环境,不依赖于标准C库的支持,所以 并不支持C标准中的部分定义。比如long long类型的大数除法和浮点运算就不允许 使用。有时候确实很难弄清楚内核对工具链的要求和它所使用的扩展,不幸的是目
Documentation/translations/zh_TW/process/howto.rst +1 -1
@@ -48,7 +48,7 @@ Linux內核大部分是由C語言寫成的,一些體系結構相關的代碼 - "C: A Reference Manual" by Harbison and Steele [Prentice Hall] 《C語言參考手冊(原書第5版)》(邱仲潘 等譯)[機械工業出版社] -Linux內核使用GNU C和GNU工具鏈開發。雖然它遵循ISO C89標準,但也用到了一些 +Linux內核使用GNU C和GNU工具鏈開發。雖然它遵循ISO C11標準,但也用到了一些 標準中沒有定義的擴展。內核是自給自足的C環境,不依賴於標準C庫的支持,所以 並不支持C標準中的部分定義。比如long long類型的大數除法和浮點運算就不允許 使用。有時候確實很難弄清楚內核對工具鏈的要求和它所使用的擴展,不幸的是目
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 15 -SUBLEVEL = 142 +SUBLEVEL = 143 EXTRAVERSION = NAME = Trick or Treat
arch/arm/boot/dts/imx28-xea.dts +1 -0
@@ -8,6 +8,7 @@ #include "imx28-lwe.dtsi" / { + model = "Liebherr XEA board"; compatible = "lwn,imx28-xea", "fsl,imx28"; };
arch/arm/boot/dts/imx6ul-pico.dtsi +2 -0
@@ -121,6 +121,8 @@ ethphy1: ethernet-phy@1 { max-speed = <100>; interrupt-parent = <&gpio5>; interrupts = <6 IRQ_TYPE_LEVEL_LOW>; + clocks = <&clks IMX6UL_CLK_ENET_REF>; + clock-names = "rmii-ref"; }; }; };
arch/arm/boot/dts/imx7s.dtsi +4 -4
@@ -438,7 +438,7 @@ iomuxc_lpsr: iomuxc-lpsr@302c0000 { }; gpt1: timer@302d0000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x302d0000 0x10000>; interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX7D_GPT1_ROOT_CLK>,
@@ -447,7 +447,7 @@ gpt1: timer@302d0000 { }; gpt2: timer@302e0000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x302e0000 0x10000>; interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX7D_GPT2_ROOT_CLK>,
@@ -457,7 +457,7 @@ gpt2: timer@302e0000 { }; gpt3: timer@302f0000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x302f0000 0x10000>; interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX7D_GPT3_ROOT_CLK>,
@@ -467,7 +467,7 @@ gpt3: timer@302f0000 { }; gpt4: timer@30300000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x30300000 0x10000>; interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX7D_GPT4_ROOT_CLK>,
arch/arm/mach-imx/mmdc.c +6 -1
@@ -502,6 +502,10 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b name =devm_kasprintf (&pdev->dev,GFP_KERNEL ,"mmdc%d" , ret); +if (!name) { + ret = -ENOMEM ; + goto pmu_release_id; + } pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk; pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data;
@@ -524,9 +528,10 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b pmu_register_err:pr_warn ("MMDC Perf PMU failed (%d), disabled\n" , ret); -ida_simple_remove (&mmdc_ida, pmu_mmdc->id);cpuhp_state_remove_instance_nocalls (cpuhp_mmdc_state, &pmu_mmdc->node);hrtimer_cancel (&pmu_mmdc->hrtimer); +pmu_release_id: +ida_simple_remove (&mmdc_ida, pmu_mmdc->id); pmu_free:kfree (pmu_mmdc);return ret;
arch/arm64/boot/dts/freescale/imx8mp.dtsi +2 -0
@@ -913,6 +913,7 @@ usb_dwc3_0: usb@38100000 { phys = <&usb3_phy0>, <&usb3_phy0>; phy-names = "usb2-phy", "usb3-phy"; snps,gfladj-refclk-lpm-sel-quirk; + snps,parkmode-disable-ss-quirk; }; };
@@ -954,6 +955,7 @@ usb_dwc3_1: usb@38200000 { phys = <&usb3_phy1>, <&usb3_phy1>; phy-names = "usb2-phy", "usb3-phy"; snps,gfladj-refclk-lpm-sel-quirk; + snps,parkmode-disable-ss-quirk; }; };
arch/arm64/boot/dts/freescale/imx8mq.dtsi +2 -2
@@ -1382,7 +1382,7 @@ usb_dwc3_0: usb@38100000 { phys = <&usb3_phy0>, <&usb3_phy0>; phy-names = "usb2-phy", "usb3-phy"; power-domains = <&pgc_otg1>; - usb3-resume-missing-cas; + snps,parkmode-disable-ss-quirk; status = "disabled"; };
@@ -1414,7 +1414,7 @@ usb_dwc3_1: usb@38200000 { phys = <&usb3_phy1>, <&usb3_phy1>; phy-names = "usb2-phy", "usb3-phy"; power-domains = <&pgc_otg2>; - usb3-resume-missing-cas; + snps,parkmode-disable-ss-quirk; status = "disabled"; };
arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +1 -1
@@ -69,7 +69,7 @@ red { }; }; - memory { + memory@40000000 { reg = <0 0x40000000 0 0x40000000>; };
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +1 -1
@@ -55,7 +55,7 @@ wps { }; }; - memory { + memory@40000000 { reg = <0 0x40000000 0 0x20000000>; };
arch/arm64/boot/dts/mediatek/mt8173-evb.dts +2 -2
@@ -43,7 +43,7 @@ extcon_usb: extcon_iddig { id-gpio = <&pio 16 GPIO_ACTIVE_HIGH>; }; - usb_p1_vbus: regulator@0 { + usb_p1_vbus: regulator-usb-p1 { compatible = "regulator-fixed"; regulator-name = "usb_vbus"; regulator-min-microvolt = <5000000>;
@@ -52,7 +52,7 @@ usb_p1_vbus: regulator@0 { enable-active-high; }; - usb_p0_vbus: regulator@1 { + usb_p0_vbus: regulator-usb-p0 { compatible = "regulator-fixed"; regulator-name = "vbus"; regulator-min-microvolt = <5000000>;
arch/arm64/boot/dts/mediatek/mt8173.dtsi +1 -1
@@ -273,7 +273,7 @@ cpum_ck: oscillator2 { }; thermal-zones { - cpu_thermal: cpu_thermal { + cpu_thermal: cpu-thermal { polling-delay-passive = <1000>; /* milliseconds */ polling-delay = <1000>; /* milliseconds */
arch/arm64/boot/dts/mediatek/mt8183-evb.dts +25 -25
128 lines not on this page · raw message
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi +5 -3
@@ -102,6 +102,8 @@ cros_ec_pwm: ec-pwm { &dsi0 { status = "okay"; + /delete-property/#size-cells; + /delete-property/#address-cells; /delete-node/panel@0; ports { port {
@@ -438,20 +440,20 @@ pins2 { }; touchscreen_pins: touchscreen-pins { - touch_int_odl { + touch-int-odl { pinmux = <PINMUX_GPIO155__FUNC_GPIO155>; input-enable; bias-pull-up; }; - touch_rst_l { + touch-rst-l { pinmux = <PINMUX_GPIO156__FUNC_GPIO156>; output-high; }; }; trackpad_pins: trackpad-pins { - trackpad_int { + trackpad-int { pinmux = <PINMUX_GPIO7__FUNC_GPIO7>; input-enable; bias-disable; /* pulled externally */
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi +45 -45
328 lines not on this page · raw message
arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts +6 -6
@@ -165,7 +165,7 @@ &mmc1 { &pio { i2c_pins_0: i2c0 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO82__FUNC_SDA0>, <PINMUX_GPIO83__FUNC_SCL0>; mediatek,pull-up-adv = <3>;
@@ -174,7 +174,7 @@ pins_i2c{ }; i2c_pins_1: i2c1 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO81__FUNC_SDA1>, <PINMUX_GPIO84__FUNC_SCL1>; mediatek,pull-up-adv = <3>;
@@ -183,7 +183,7 @@ pins_i2c{ }; i2c_pins_2: i2c2 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO103__FUNC_SCL2>, <PINMUX_GPIO104__FUNC_SDA2>; mediatek,pull-up-adv = <3>;
@@ -192,7 +192,7 @@ pins_i2c{ }; i2c_pins_3: i2c3 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO50__FUNC_SCL3>, <PINMUX_GPIO51__FUNC_SDA3>; mediatek,pull-up-adv = <3>;
@@ -201,7 +201,7 @@ pins_i2c{ }; i2c_pins_4: i2c4 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO105__FUNC_SCL4>, <PINMUX_GPIO106__FUNC_SDA4>; mediatek,pull-up-adv = <3>;
@@ -210,7 +210,7 @@ pins_i2c{ }; i2c_pins_5: i2c5 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO48__FUNC_SCL5>, <PINMUX_GPIO49__FUNC_SDA5>; mediatek,pull-up-adv = <3>;
arch/arm64/boot/dts/mediatek/mt8183.dtsi +121 -121
252 lines not on this page · raw message
arch/arm64/boot/dts/rockchip/rk3399.dtsi +4 -2
@@ -993,7 +993,9 @@ power-domain@RK3399_PD_VCODEC { power-domain@RK3399_PD_VDU { reg = <RK3399_PD_VDU>; clocks = <&cru ACLK_VDU>, - <&cru HCLK_VDU>; + <&cru HCLK_VDU>, + <&cru SCLK_VDU_CA>, + <&cru SCLK_VDU_CORE>; pm_qos = <&qos_video_m1_r>, <&qos_video_m1_w>; #power-domain-cells = <0>;
@@ -1260,7 +1262,7 @@ vpu_mmu: iommu@ff650800 { vdec: video-codec@ff660000 { compatible = "rockchip,rk3399-vdec"; - reg = <0x0 0xff660000 0x0 0x400>; + reg = <0x0 0xff660000 0x0 0x480>; interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>; clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>, <&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
arch/mips/Kconfig +2 -0
@@ -480,6 +480,7 @@ config MACH_LOONGSON2EF config MACH_LOONGSON64 bool "Loongson 64-bit family of machines" + select ARCH_DMA_DEFAULT_COHERENT select ARCH_SPARSEMEM_ENABLE select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO
@@ -1379,6 +1380,7 @@ config CPU_LOONGSON64 select CPU_SUPPORTS_MSA select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT select CPU_MIPSR2_IRQ_VI + select DMA_NONCOHERENT select WEAK_ORDERING select WEAK_REORDERING_BEYOND_LLSC select MIPS_ASID_BITS_VARIABLE
arch/mips/include/asm/mach-loongson64/boot_param.h +2 -1
@@ -117,7 +117,8 @@ struct irq_source_routing_table {u64 pci_io_start_addr;u64 pci_io_end_addr;u64 pci_config_addr; -u32 dma_mask_bits; +u16 dma_mask_bits; +u16 dma_noncoherent; } __packed;struct interface_info {
arch/mips/loongson64/env.c +9 -1
@@ -13,6 +13,8 @@* Copyright (C) 2009 Lemote Inc. * Author: Wu Zhangjin, [email protected] */ + +#include <linux/dma-map-ops.h> #include <linux/export.h> #include <linux/pci_ids.h> #include <asm/bootinfo.h>
@@ -147,8 +149,14 @@ void __init prom_lefi_init_env(void) loongson_sysconf.dma_mask_bits = eirq_source->dma_mask_bits;if (loongson_sysconf.dma_mask_bits <32 || - loongson_sysconf.dma_mask_bits >64 ) + loongson_sysconf.dma_mask_bits >64 ) { loongson_sysconf.dma_mask_bits =32 ; + dma_default_coherent = true; + }else { + dma_default_coherent = !eirq_source->dma_noncoherent; + } + +pr_info ("Firmware: Coherent DMA: %s\n" , dma_default_coherent ?"on" :"off" ); loongson_sysconf.restart_addr = boot_p->reset_system.ResetWarm; loongson_sysconf.poweroff_addr = boot_p->reset_system.Shutdown;
arch/mips/loongson64/init.c +5 -0
@@ -86,6 +86,11 @@ void __init szmem(unsigned int node)break ; } } + +/* Reserve vgabios if it comes from firmware */ +if (loongson_sysconf.vgabios_addr) +memblock_reserve (virt_to_phys ((void *)loongson_sysconf.vgabios_addr), +SZ_256K ); }#ifndef CONFIG_NUMA
arch/riscv/kernel/traps_misaligned.c +2 -4
@@ -344,16 +344,14 @@ int handle_misaligned_store(struct pt_regs *regs) } else if ((insn & INSN_MASK_C_SD) == INSN_MATCH_C_SD) { len =8 ; val.data_ulong =GET_RS2S (insn, regs); - }else if ((insn &INSN_MASK_C_SDSP ) ==INSN_MATCH_C_SDSP && - ((insn >>SH_RD ) &0x1f )) { + }else if ((insn &INSN_MASK_C_SDSP ) ==INSN_MATCH_C_SDSP ) { len =8 ; val.data_ulong =GET_RS2C (insn, regs);#endif }else if ((insn &INSN_MASK_C_SW ) ==INSN_MATCH_C_SW ) { len =4 ; val.data_ulong =GET_RS2S (insn, regs); - }else if ((insn &INSN_MASK_C_SWSP ) ==INSN_MATCH_C_SWSP && - ((insn >>SH_RD ) &0x1f )) { + }else if ((insn &INSN_MASK_C_SWSP ) ==INSN_MATCH_C_SWSP ) { len =4 ; val.data_ulong =GET_RS2C (insn, regs); }else {
arch/s390/mm/pgtable.c +1 -1
@@ -731,7 +731,7 @@ void ptep_zap_unused(struct mm_struct *mm, unsigned long addr,pte_clear (mm, addr, ptep); }if (reset) -pgste_val (pgste) &= ~_PGSTE_GPS_USAGE_MASK; +pgste_val (pgste) &= ~(_PGSTE_GPS_USAGE_MASK | _PGSTE_GPS_NODAT);pgste_set_unlock (ptep, pgste);preempt_enable (); }
arch/x86/kernel/cpu/amd.c +3 -0
@@ -1316,6 +1316,9 @@ static void zenbleed_check_cpu(void *unused)void amd_check_microcode (void ) { +if (boot_cpu_data.x86_vendor !=X86_VENDOR_AMD ) +return ; +on_each_cpu (zenbleed_check_cpu,NULL ,1 ); }
arch/x86/kvm/svm/svm.c +5 -3
@@ -1750,15 +1750,17 @@ void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)bool old_paging =is_paging (vcpu);#ifdef CONFIG_X86_64 -if (vcpu->arch.efer &EFER_LME && !vcpu->arch.guest_state_protected) { +if (vcpu->arch.efer &EFER_LME ) {if (!is_paging (vcpu) && (cr0 &X86_CR0_PG )) { vcpu->arch.efer |=EFER_LMA ; - svm->vmcb->save.efer |=EFER_LMA |EFER_LME ; +if (!vcpu->arch.guest_state_protected) + svm->vmcb->save.efer |=EFER_LMA |EFER_LME ; }if (is_paging (vcpu) && !(cr0 &X86_CR0_PG )) { vcpu->arch.efer &= ~EFER_LMA ; - svm->vmcb->save.efer &= ~(EFER_LMA |EFER_LME ); +if (!vcpu->arch.guest_state_protected) + svm->vmcb->save.efer &= ~(EFER_LMA |EFER_LME ); } }#endif
drivers/android/binder.c +1 -0
@@ -4620,6 +4620,7 @@ static void binder_release_work(struct binder_proc *proc,"undelivered TRANSACTION_ERROR: %u\n" , e->cmd); }break ; +case BINDER_WORK_TRANSACTION_ONEWAY_SPAM_SUSPECT :case BINDER_WORK_TRANSACTION_COMPLETE : {binder_debug (BINDER_DEBUG_DEAD_TRANSACTION ,"undelivered TRANSACTION_COMPLETE\n" );
drivers/base/devcoredump.c +84 -2
135 lines not on this page · raw message
drivers/base/regmap/regcache.c +1 -2
@@ -404,8 +404,7 @@ int regcache_sync(struct regmap *map) rb_entry(node, struct regmap_range_node, node);/* If there's nothing in the cache there's nothing to sync */ - ret =regcache_read (map, this->selector_reg, &i); -if (ret !=0 ) +if (regcache_read (map, this->selector_reg, &i) !=0 )continue ; ret =_regmap_write (map, this->selector_reg, i);
drivers/gpio/gpiolib-sysfs.c +9 -6
@@ -480,14 +480,17 @@ static ssize_t export_store(struct class *class, goto done; status =gpiod_set_transitory (desc, false); -if (!status) { - status =gpiod_export (desc, true); -if (status <0 ) -gpiod_free (desc); -else -set_bit (FLAG_SYSFS , &desc->flags); +if (status) { +gpiod_free (desc); + goto done; } + status =gpiod_export (desc, true); +if (status <0 ) +gpiod_free (desc); +else +set_bit (FLAG_SYSFS , &desc->flags); + done:if (status)pr_debug ("%s: status %d\n" , __func__, status);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +1 -1
@@ -142,7 +142,7 @@ static int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, union drm_amdgpu_cs }for (i =0 ; i < p->nchunks; i++) { -struct drm_amdgpu_cs_chunk __user **chunk_ptr =NULL ; +struct drm_amdgpu_cs_chunk __user *chunk_ptr =NULL ;struct drm_amdgpu_cs_chunk user_chunk;uint32_t __user *cdata;
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +27 -22
137 lines not on this page · raw message
drivers/hwmon/acpi_power_meter.c +4 -0
@@ -31,6 +31,7 @@#define POWER_METER_CAN_NOTIFY (1 << 3)#define POWER_METER_IS_BATTERY (1 << 8)#define UNKNOWN_HYSTERESIS 0xFFFFFFFF +#define UNKNOWN_POWER 0xFFFFFFFF#define METER_NOTIFY_CONFIG 0x80#define METER_NOTIFY_TRIP 0x81
@@ -348,6 +349,9 @@ static ssize_t show_power(struct device *dev,update_meter (resource);mutex_unlock (&resource->lock); +if (resource->power ==UNKNOWN_POWER ) +return -ENODATA ; +return sprintf (buf,"%llu\n" , resource->power *1000 ); }
drivers/hwmon/nzxt-kraken2.c +2 -2
@@ -161,13 +161,13 @@ static int kraken2_probe(struct hid_device *hdev, ret =hid_hw_start (hdev,HID_CONNECT_HIDRAW );if (ret) {hid_err (hdev,"hid hw start failed with %d\n" , ret); - goto fail_and_stop; +return ret; } ret =hid_hw_open (hdev);if (ret) {hid_err (hdev,"hid hw open failed with %d\n" , ret); - goto fail_and_close; + goto fail_and_stop; } priv->hwmon_dev = hwmon_device_register_with_info(&hdev->dev, "kraken2",
drivers/hwtracing/coresight/coresight-etm4x-core.c +5 -8
@@ -2041,7 +2041,7 @@ static void clear_etmdrvdata(void *info) etmdrvdata[cpu] =NULL ; } -static int __exit etm4_remove_dev(struct etmv4_drvdata *drvdata) +static void etm4_remove_dev (struct etmv4_drvdata *drvdata) {etm_perf_symlink (drvdata->csdev, false);/*
@@ -2062,11 +2062,9 @@ static int __exit etm4_remove_dev(struct etmv4_drvdata *drvdata)cscfg_unregister_csdev (drvdata->csdev);coresight_unregister (drvdata->csdev); - -return 0 ; } -static void __exit etm4_remove_amba(struct amba_device *adev) +static void etm4_remove_amba (struct amba_device *adev) {struct etmv4_drvdata *drvdata =dev_get_drvdata (&adev->dev);
@@ -2074,15 +2072,14 @@ static void __exit etm4_remove_amba(struct amba_device *adev)etm4_remove_dev (drvdata); } -static int __exit etm4_remove_platform_dev(struct platform_device *pdev) +static int etm4_remove_platform_dev (struct platform_device *pdev) { -int ret =0 ;struct etmv4_drvdata *drvdata =dev_get_drvdata (&pdev->dev);if (drvdata) - ret =etm4_remove_dev (drvdata); +etm4_remove_dev (drvdata);pm_runtime_disable (&pdev->dev); -return ret; +return 0 ; }static const struct amba_id etm4_ids[] = {
drivers/i2c/busses/i2c-designware-common.c +8 -8
@@ -63,7 +63,7 @@ static int dw_reg_read(void *context, unsigned int reg, unsigned int *val) {struct dw_i2c_dev *dev = context; - *val =readl_relaxed (dev->base + reg); + *val =readl (dev->base + reg);return 0 ; }
@@ -72,7 +72,7 @@ static int dw_reg_write(void *context, unsigned int reg, unsigned int val) {struct dw_i2c_dev *dev = context; -writel_relaxed (val, dev->base + reg); +writel (val, dev->base + reg);return 0 ; }
@@ -81,7 +81,7 @@ static int dw_reg_read_swab(void *context, unsigned int reg, unsigned int *val) {struct dw_i2c_dev *dev = context; - *val =swab32 (readl_relaxed (dev->base + reg)); + *val =swab32 (readl (dev->base + reg));return 0 ; }
@@ -90,7 +90,7 @@ static int dw_reg_write_swab(void *context, unsigned int reg, unsigned int val) {struct dw_i2c_dev *dev = context; -writel_relaxed (swab32 (val), dev->base + reg); +writel (swab32 (val), dev->base + reg);return 0 ; }
@@ -99,8 +99,8 @@ static int dw_reg_read_word(void *context, unsigned int reg, unsigned int *val) {struct dw_i2c_dev *dev = context; - *val =readw_relaxed (dev->base + reg) | - (readw_relaxed (dev->base + reg +2 ) <<16 ); + *val =readw (dev->base + reg) | + (readw (dev->base + reg +2 ) <<16 );return 0 ; }
@@ -109,8 +109,8 @@ static int dw_reg_write_word(void *context, unsigned int reg, unsigned int val) {struct dw_i2c_dev *dev = context; -writew_relaxed (val, dev->base + reg); -writew_relaxed (val >>16 , dev->base + reg +2 ); +writew (val, dev->base + reg); +writew (val >>16 , dev->base + reg +2 );return 0 ; }
drivers/infiniband/core/umem.c +0 -6
@@ -96,12 +96,6 @@ unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,return page_size; } -/* rdma_for_each_block() has a bug if the page size is smaller than the -* page size used to build the umem. For now prevent smaller page sizes -* from being returned. -*/ - pgsz_bitmap &=GENMASK (BITS_PER_LONG -1 ,PAGE_SHIFT ); -/* The best result is the smallest page size that results in the minimum * number of required pages. Compute the largest page size that could * work based on VA address bits that don't change.
drivers/infiniband/hw/bnxt_re/main.c +1 -1
@@ -70,7 +70,7 @@ static char version[] =BNXT_RE_DESC "\n" ;MODULE_AUTHOR ("Eddie Wai <[email protected]>" ); -MODULE_DESCRIPTION (BNXT_RE_DESC " Driver" ); +MODULE_DESCRIPTION (BNXT_RE_DESC );MODULE_LICENSE ("Dual BSD/GPL" );/* globals */
drivers/infiniband/hw/hns/hns_roce_hw_v2.c +9 -4
@@ -4586,10 +4586,15 @@ static int check_cong_type(struct ib_qp *ibqp, cong_alg->wnd_mode_sel =WND_LIMIT ;break ;default : -ibdev_err (&hr_dev->ib_dev, -"error type(%u) for congestion selection.\n" , - hr_dev->caps.cong_type); -return -EINVAL ; +ibdev_warn (&hr_dev->ib_dev, +"invalid type(%u) for congestion selection.\n" , + hr_dev->caps.cong_type); + hr_dev->caps.cong_type =CONG_TYPE_DCQCN ; + cong_alg->alg_sel =CONG_DCQCN ; + cong_alg->alg_sub_sel =UNSUPPORT_CONG_LEVEL ; + cong_alg->dip_vld =DIP_INVALID ; + cong_alg->wnd_mode_sel =WND_LIMIT ; +break ; }return 0 ;
drivers/infiniband/hw/irdma/hw.c +6 -4
@@ -322,7 +322,11 @@ static void irdma_process_aeq(struct irdma_pci_f *rf)break ;case IRDMA_AE_QP_SUSPEND_COMPLETE :if (iwqp->iwdev->vsi.tc_change_pending) { -atomic_dec (&iwqp->sc_qp.vsi->qp_suspend_reqs); +if (!atomic_dec_return (&qp->vsi->qp_suspend_reqs)) +wake_up (&iwqp->iwdev->suspend_wq); + } +if (iwqp->suspend_pending) { + iwqp->suspend_pending = false;wake_up (&iwqp->iwdev->suspend_wq); }break ;
@@ -1165,7 +1169,6 @@ static enum irdma_status_code irdma_create_ceq(struct irdma_pci_f *rf,enum irdma_status_code status;struct irdma_ceq_init_info info = {};struct irdma_sc_dev *dev = &rf->sc_dev; -u64 scratch;u32 ceq_size; info.ceq_id = ceq_id;
@@ -1186,14 +1189,13 @@ static enum irdma_status_code irdma_create_ceq(struct irdma_pci_f *rf, iwceq->sc_ceq.ceq_id = ceq_id; info.dev = dev; info.vsi = vsi; - scratch = (uintptr_t )&rf->cqp.sc_cqp; status =irdma_sc_ceq_init (&iwceq->sc_ceq, &info);if (!status) {if (dev->ceq_valid) status =irdma_cqp_ceq_cmd (&rf->sc_dev, &iwceq->sc_ceq,IRDMA_OP_CEQ_CREATE );else - status =irdma_sc_cceq_create (&iwceq->sc_ceq, scratch); + status =irdma_sc_cceq_create (&iwceq->sc_ceq,0 ); }if (status) {
drivers/infiniband/hw/irdma/main.c +1 -1
@@ -48,7 +48,7 @@ static void irdma_prep_tc_change(struct irdma_device *iwdev)/* Wait for all qp's to suspend */ wait_event_timeout (iwdev->suspend_wq, !atomic_read (&iwdev->vsi.qp_suspend_reqs), -IRDMA_EVENT_TIMEOUT ); +msecs_to_jiffies (IRDMA_EVENT_TIMEOUT_MS ));irdma_ws_reset (&iwdev->vsi); }
drivers/infiniband/hw/irdma/main.h +1 -1
@@ -79,7 +79,7 @@ extern struct auxiliary_driver i40iw_auxiliary_drv;#define MAX_DPC_ITERATIONS 128 -#define IRDMA_EVENT_TIMEOUT 50000 +#define IRDMA_EVENT_TIMEOUT_MS 5000#define IRDMA_VCHNL_EVENT_TIMEOUT 100000#define IRDMA_RST_TIMEOUT_HZ 4
drivers/infiniband/hw/irdma/verbs.c +21 -7
@@ -1082,6 +1082,21 @@ static int irdma_query_pkey(struct ib_device *ibdev, u32 port, u16 index,return 0 ; } +static int irdma_wait_for_suspend (struct irdma_qp *iwqp) +{ +if (!wait_event_timeout (iwqp->iwdev->suspend_wq, + !iwqp->suspend_pending, +msecs_to_jiffies (IRDMA_EVENT_TIMEOUT_MS ))) { + iwqp->suspend_pending = false; +ibdev_warn (&iwqp->iwdev->ibdev, +"modify_qp timed out waiting for suspend. qp_id = %d, last_ae = 0x%x\n" , + iwqp->ibqp.qp_num, iwqp->last_aeq); +return -EBUSY ; + } + +return 0 ; +} +/** * irdma_modify_qp_roce - modify qp request * @ibqp: qp's pointer for modify
@@ -1330,17 +1345,11 @@ int irdma_modify_qp_roce(struct ib_qp *ibqp, struct ib_qp_attr *attr, info.next_iwarp_state =IRDMA_QP_STATE_SQD ; issue_modify_qp =1 ; + iwqp->suspend_pending = true;break ;case IB_QPS_SQE :case IB_QPS_ERR :case IB_QPS_RESET : -if (iwqp->iwarp_state ==IRDMA_QP_STATE_RTS ) { -spin_unlock_irqrestore (&iwqp->lock, flags); - info.next_iwarp_state =IRDMA_QP_STATE_SQD ; -irdma_hw_modify_qp (iwdev, iwqp, &info, true); -spin_lock_irqsave (&iwqp->lock, flags); - } -if (iwqp->iwarp_state ==IRDMA_QP_STATE_ERROR ) {spin_unlock_irqrestore (&iwqp->lock, flags);if (udata) {
@@ -1377,6 +1386,11 @@ int irdma_modify_qp_roce(struct ib_qp *ibqp, struct ib_qp_attr *attr, ctx_info->rem_endpoint_idx = udp_info->arp_idx;if (irdma_hw_modify_qp (iwdev, iwqp, &info, true))return -EINVAL ; +if (info.next_iwarp_state ==IRDMA_QP_STATE_SQD ) { + ret =irdma_wait_for_suspend (iwqp); +if (ret) +return ret; + }spin_lock_irqsave (&iwqp->lock, flags);if (iwqp->iwarp_state == info.curr_iwarp_state) { iwqp->iwarp_state = info.next_iwarp_state;
drivers/infiniband/hw/irdma/verbs.h +1 -0
@@ -188,6 +188,7 @@ struct irdma_qp { u8 flush_issued : 1; u8 sig_all : 1; u8 pau_mode : 1; + u8 suspend_pending : 1; u8 rsvd : 1;u8 iwarp_state;u16 term_sq_flush_code;
drivers/infiniband/ulp/rtrs/rtrs-clt.c +3 -4
@@ -383,7 +383,7 @@ static void complete_rdma_req(struct rtrs_clt_io_req *req, int errno,struct rtrs_clt_path *clt_path;int err; -if (WARN_ON (!req->in_use)) +if (!req->in_use)return ;if (WARN_ON (!req->con))return ;
@@ -1682,7 +1682,7 @@ static int create_con_cq_qp(struct rtrs_clt_con *con) clt_path->s.dev_ref++; max_send_wr =min_t (int, wr_limit,/* QD * (REQ + RSP + FR REGS or INVS) + drain */ - clt_path->queue_depth *3 +1 ); + clt_path->queue_depth *4 +1 ); max_recv_wr =min_t (int, wr_limit, clt_path->queue_depth *3 +1 ); max_send_sge =2 ;
@@ -2341,8 +2341,6 @@ static int init_conns(struct rtrs_clt_path *clt_path)if (err) goto destroy; -rtrs_start_hb (&clt_path->s); -return 0 ; destroy:
@@ -2616,6 +2614,7 @@ static int init_path(struct rtrs_clt_path *clt_path) goto out; }rtrs_clt_path_up (clt_path); +rtrs_start_hb (&clt_path->s); out:mutex_unlock (&clt_path->init_mutex);
drivers/infiniband/ulp/rtrs/rtrs-srv.c +27 -10
@@ -72,8 +72,9 @@ static bool rtrs_srv_change_state(struct rtrs_srv_path *srv_path, {enum rtrs_srv_state old_state;bool changed = false; +unsigned long flags; -spin_lock_irq (&srv_path->state_lock); +spin_lock_irqsave (&srv_path->state_lock, flags); old_state = srv_path->state;switch (new_state) {case RTRS_SRV_CONNECTED :
@@ -94,7 +95,7 @@ static bool rtrs_srv_change_state(struct rtrs_srv_path *srv_path, }if (changed) srv_path->state = new_state; -spin_unlock_irq (&srv_path->state_lock); +spin_unlock_irqrestore (&srv_path->state_lock, flags);return changed; }
@@ -555,7 +556,10 @@ static void unmap_cont_bufs(struct rtrs_srv_path *srv_path)struct rtrs_srv_mr *srv_mr; srv_mr = &srv_path->mrs[i]; -rtrs_iu_free (srv_mr->iu, srv_path->s.dev->ib_dev,1 ); + +if (always_invalidate) +rtrs_iu_free (srv_mr->iu, srv_path->s.dev->ib_dev,1 ); +ib_dereg_mr (srv_mr->mr);ib_dma_unmap_sg (srv_path->s.dev->ib_dev, srv_mr->sgt.sgl, srv_mr->sgt.nents,DMA_BIDIRECTIONAL );
@@ -721,20 +725,23 @@ static void rtrs_srv_info_rsp_done(struct ib_cq *cq, struct ib_wc *wc)WARN_ON (wc->opcode !=IB_WC_SEND ); } -static void rtrs_srv_path_up (struct rtrs_srv_path *srv_path) +static int rtrs_srv_path_up (struct rtrs_srv_path *srv_path) {struct rtrs_srv *srv = srv_path->srv;struct rtrs_srv_ctx *ctx = srv->ctx; -int up; +int up, ret =0 ;mutex_lock (&srv->paths_ev_mutex); up = ++srv->paths_up;if (up ==1 ) - ctx->ops.link_ev (srv,RTRS_SRV_LINK_EV_CONNECTED ,NULL ); + ret = ctx->ops.link_ev (srv,RTRS_SRV_LINK_EV_CONNECTED ,NULL );mutex_unlock (&srv->paths_ev_mutex);/* Mark session as established */ - srv_path->established = true; +if (!ret) + srv_path->established = true; + +return ret; }static void rtrs_srv_path_down (struct rtrs_srv_path *srv_path)
@@ -863,7 +870,12 @@ static int process_info_req(struct rtrs_srv_con *con, goto iu_free;kobject_get (&srv_path->kobj);get_device (&srv_path->srv->dev); -rtrs_srv_change_state (srv_path,RTRS_SRV_CONNECTED ); + err =rtrs_srv_change_state (srv_path,RTRS_SRV_CONNECTED ); +if (!err) { +rtrs_err (s,"rtrs_srv_change_state(), err: %d\n" , err); + goto iu_free; + } +rtrs_srv_start_hb (srv_path);/*
@@ -872,7 +884,11 @@ static int process_info_req(struct rtrs_srv_con *con,* all connections are successfully established. Thus, simply notify * listener with a proper event if we are the first path. */ -rtrs_srv_path_up (srv_path); + err =rtrs_srv_path_up (srv_path); +if (err) { +rtrs_err (s,"rtrs_srv_path_up(), err: %d\n" , err); + goto iu_free; + } ib_dma_sync_single_for_device(srv_path->s.dev->ib_dev, tx_iu->dma_addr,
@@ -1525,7 +1541,6 @@ static void rtrs_srv_close_work(struct work_struct *work) srv_path =container_of (work,typeof (*srv_path), close_work); -rtrs_srv_destroy_path_files (srv_path);rtrs_srv_stop_hb (srv_path);for (i =0 ; i < srv_path->s.con_num; i++) {
@@ -1545,6 +1560,8 @@ static void rtrs_srv_close_work(struct work_struct *work)/* Wait for all completion */ wait_for_completion (&srv_path->complete_done); +rtrs_srv_destroy_path_files (srv_path); +/* Notify upper layer if we are the last path */ rtrs_srv_path_down (srv_path);
drivers/md/md.c +94 -80
442 lines not on this page · raw message
drivers/misc/mei/client.c +2 -2
@@ -1975,7 +1975,7 @@ ssize_t mei_cl_write(struct mei_cl *cl, struct mei_cl_cb *cb) mei_hdr =mei_msg_hdr_init (cb);if (IS_ERR (mei_hdr)) { - rets = -PTR_ERR (mei_hdr); + rets =PTR_ERR (mei_hdr); mei_hdr =NULL ; goto err; }
@@ -1999,7 +1999,7 @@ ssize_t mei_cl_write(struct mei_cl *cl, struct mei_cl_cb *cb) hbuf_slots =mei_hbuf_empty_slots (dev);if (hbuf_slots <0 ) { - rets = -EOVERFLOW ; + buf_len = -EOVERFLOW ; goto out; }
drivers/net/arcnet/arcdevice.h +2 -0
@@ -186,6 +186,8 @@ do { \#define ARC_IS_5MBIT 1/* card default speed is 5MBit */ #define ARC_CAN_10MBIT 2/* card uses COM20022, supporting 10MBit, but default is 2.5MBit. */ +#define ARC_HAS_LED 4/* card has software controlled LEDs */ +#define ARC_HAS_ROTARY 8/* card has rotary encoder */ /* information needed to define an encapsulation driver */ struct ArcProto {
drivers/net/arcnet/com20020-pci.c +46 -43
133 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c +1 -0
@@ -2075,6 +2075,7 @@ int bnxt_init_tc(struct bnxt *bp)rhashtable_destroy (&tc_info->flow_table); free_tc_info:kfree (tc_info); + bp->tc_info =NULL ;return rc; }
drivers/net/ethernet/broadcom/tg3.c +36 -6
85 lines not on this page · raw message
drivers/net/ethernet/broadcom/tg3.h +2 -2
@@ -3018,6 +3018,7 @@ struct tg3_napi {u16 *rx_rcb_prod_idx;struct tg3_rx_prodring_set prodring;struct tg3_rx_buffer_desc *rx_rcb; +unsigned long rx_dropped;u32 tx_prod____cacheline_aligned ;u32 tx_cons;
@@ -3026,6 +3027,7 @@ struct tg3_napi {u32 prodmbox;struct tg3_tx_buffer_desc *tx_ring;struct tg3_tx_ring_info *tx_buffers; +unsigned long tx_dropped;dma_addr_t status_mapping;dma_addr_t rx_rcb_mapping;
@@ -3219,8 +3221,6 @@ struct tg3 {/* begin "everything else" cacheline(s) section */ -unsigned long rx_dropped; -unsigned long tx_dropped;struct rtnl_link_stats64 net_stats_prev;struct tg3_ethtool_stats estats_prev;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c +29 -0
@@ -66,6 +66,27 @@ static enum mac_mode hns_get_enet_interface(const struct hns_mac_cb *mac_cb) } } +static u32 hns_mac_link_anti_shake (struct mac_driver *mac_ctrl_drv) +{ +#define HNS_MAC_LINK_WAIT_TIME 5 +#define HNS_MAC_LINK_WAIT_CNT 40 + +u32 link_status =0 ; +int i; + +if (!mac_ctrl_drv->get_link_status) +return link_status; + +for (i =0 ; i <HNS_MAC_LINK_WAIT_CNT ; i++) { +msleep (HNS_MAC_LINK_WAIT_TIME ); + mac_ctrl_drv->get_link_status (mac_ctrl_drv, &link_status); +if (!link_status) +break ; + } + +return link_status; +} +void hns_mac_get_link_status (struct hns_mac_cb *mac_cb,u32 *link_status) {struct mac_driver *mac_ctrl_drv;
@@ -83,6 +104,14 @@ void hns_mac_get_link_status(struct hns_mac_cb *mac_cb, u32 *link_status) &sfp_prsnt);if (!ret) *link_status = *link_status && sfp_prsnt; + +/* for FIBER port, it may have a fake link up. +* when the link status changes from down to up, we need to do +* anti-shake. the anti-shake time is base on tests. +* only FIBER port need to do this. +*/ +if (*link_status && !mac_cb->link) + *link_status =hns_mac_link_anti_shake (mac_ctrl_drv); } mac_cb->link = *link_status;
drivers/net/ethernet/intel/i40e/i40e_main.c +1 -1
@@ -16132,7 +16132,7 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent) I40E_PRTGL_SAH_MFS_MASK) >> I40E_PRTGL_SAH_MFS_SHIFT;if (val <MAX_FRAME_SIZE_DEFAULT )dev_warn (&pdev->dev,"MFS for port %x has been set below the default: %x\n" , - i, val); + pf->hw.port, val);/* Add a filter to drop all Flow control frames from any VSI from being * transmitted. By doing so we stop a malicious VF from sending out
drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c +1 -4
@@ -1284,7 +1284,7 @@ static int rvu_npa_register_reporters(struct rvu_devlink *rvu_dl) rvu_dl->devlink_wq =create_workqueue ("rvu_devlink_wq" );if (!rvu_dl->devlink_wq) - goto err; +return -ENOMEM ;INIT_WORK (&rvu_reporters->intr_work, rvu_npa_intr_work);INIT_WORK (&rvu_reporters->err_work, rvu_npa_err_work);
@@ -1292,9 +1292,6 @@ static int rvu_npa_register_reporters(struct rvu_devlink *rvu_dl)INIT_WORK (&rvu_reporters->ras_work, rvu_npa_ras_work);return 0 ; -err: -rvu_npa_health_reporters_destroy (rvu_dl); -return -ENOMEM ; }static int rvu_npa_health_reporters_create (struct rvu_devlink *rvu_dl)
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +7 -1
@@ -388,7 +388,13 @@ static u64 npc_get_default_entry_action(struct rvu *rvu, struct npc_mcam *mcam,int bank, nixlf, index;/* get ucast entry rule entry index */ -nix_get_nixlf (rvu, pf_func, &nixlf,NULL ); +if (nix_get_nixlf (rvu, pf_func, &nixlf,NULL )) { +dev_err (rvu->dev,"%s: nixlf not attached to pcifunc:0x%x\n" , + __func__, pf_func); +/* Action 0 is drop */ +return 0 ; + } + index =npc_get_nixlf_mcam_index (mcam, pf_func, nixlf,NIXLF_UCAST_ENTRY ); bank =npc_get_bank (mcam, index);
drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.c +2 -2
@@ -31,8 +31,8 @@ static struct hw_reg_map txsch_reg_map[NIX_TXSCH_LVL_CNT] = { {NIX_TXSCH_LVL_TL4, 3, 0xFFFF, {{0x0B00, 0x0B08}, {0x0B10, 0x0B18}, {0x1200, 0x12E0} } }, {NIX_TXSCH_LVL_TL3, 4, 0xFFFF, {{0x1000, 0x10E0}, {0x1600, 0x1608}, - {0x1610, 0x1618}, {0x1700, 0x17B0} } }, - {NIX_TXSCH_LVL_TL2, 2, 0xFFFF, {{0x0E00, 0x0EE0}, {0x1700, 0x17B0} } }, + {0x1610, 0x1618}, {0x1700, 0x17C8} } }, + {NIX_TXSCH_LVL_TL2, 2, 0xFFFF, {{0x0E00, 0x0EE0}, {0x1700, 0x17C8} } }, {NIX_TXSCH_LVL_TL1, 1, 0xFFFF, {{0x0C00, 0x0D98} } }, };
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c +5 -1
@@ -316,9 +316,12 @@ static void otx2_get_pauseparam(struct net_device *netdev,if (is_otx2_lbkvf (pfvf->pdev))return ; +mutex_lock (&pfvf->mbox.lock); req =otx2_mbox_alloc_msg_cgx_cfg_pause_frm (&pfvf->mbox); -if (!req) +if (!req) { +mutex_unlock (&pfvf->mbox.lock);return ; + }if (!otx2_sync_mbox_msg (&pfvf->mbox)) { rsp = (struct cgx_pause_frm_cfg *)
@@ -326,6 +329,7 @@ static void otx2_get_pauseparam(struct net_device *netdev, pause->rx_pause = rsp->rx_pause; pause->tx_pause = rsp->tx_pause; } +mutex_unlock (&pfvf->mbox.lock); } static int otx2_set_pauseparam(struct net_device *netdev,
drivers/net/ethernet/pensando/ionic/ionic_dev.h +1 -1
@@ -208,7 +208,7 @@ struct ionic_desc_info {void *cb_arg; }; -#define IONIC_QUEUE_NAME_MAX_SZ 32 +#define IONIC_QUEUE_NAME_MAX_SZ 16struct ionic_queue {struct device *dev;
drivers/net/ethernet/pensando/ionic/ionic_lif.c +8 -8
@@ -44,24 +44,24 @@ static void ionic_lif_queue_identify(struct ionic_lif *lif);static void ionic_dim_work (struct work_struct *work) { struct dim *dim = container_of(work, struct dim, work); +struct ionic_intr_info *intr;struct dim_cq_moder cur_moder;struct ionic_qcq *qcq; +struct ionic_lif *lif;u32 new_coal; cur_moder =net_dim_get_rx_moderation (dim->mode, dim->profile_ix); qcq = container_of(dim, struct ionic_qcq, dim); - new_coal =ionic_coal_usec_to_hw (qcq->q.lif->ionic, cur_moder.usec); + lif = qcq->q.lif; + new_coal =ionic_coal_usec_to_hw (lif->ionic, cur_moder.usec); new_coal = new_coal ? new_coal :1 ; -if (qcq->intr.dim_coal_hw != new_coal) { -unsigned int qi = qcq->cq.bound_q->index; -struct ionic_lif *lif = qcq->q.lif; - - qcq->intr.dim_coal_hw = new_coal; + intr = &qcq->intr; +if (intr->dim_coal_hw != new_coal) { + intr->dim_coal_hw = new_coal;ionic_intr_coal_init (lif->ionic->idev.intr_ctrl, - lif->rxqcqs[qi]->intr.index, - qcq->intr.dim_coal_hw); + intr->index, intr->dim_coal_hw); } dim->state =DIM_START_MEASURE ;
drivers/net/ethernet/realtek/r8169_main.c +6 -1
@@ -205,6 +205,7 @@ enum rtl_registers {/* No threshold before first PCI xfer */ #define RX_FIFO_THRESH (7 << RXCFG_FIFO_SHIFT)#define RX_EARLY_OFF (1 << 11) +#define RX_PAUSE_SLOT_ON (1 << 11)/* 8125b and later */ #define RXCFG_DMA_SHIFT 8/* Unlimited maximum PCI burst. */ #define RX_DMA_BURST (7 << RXCFG_DMA_SHIFT)
@@ -2268,9 +2269,13 @@ static void rtl_init_rxcfg(struct rtl8169_private *tp) case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_53:RTL_W32 (tp, RxConfig,RX128_INT_EN |RX_MULTI_EN |RX_DMA_BURST |RX_EARLY_OFF );break ; - case RTL_GIGA_MAC_VER_60 ... RTL_GIGA_MAC_VER_63: +case RTL_GIGA_MAC_VER_61 :RTL_W32 (tp, RxConfig,RX_FETCH_DFLT_8125 |RX_DMA_BURST );break ; +case RTL_GIGA_MAC_VER_63 : +RTL_W32 (tp, RxConfig,RX_FETCH_DFLT_8125 |RX_DMA_BURST | +RX_PAUSE_SLOT_ON ); +break ;default :RTL_W32 (tp, RxConfig,RX128_INT_EN |RX_DMA_BURST );break ;
drivers/net/ethernet/stmicro/stmmac/dwmac5.c +19 -26
72 lines not on this page · raw message
drivers/net/ethernet/stmicro/stmmac/dwmac5.h +3 -1
@@ -153,9 +153,11 @@ int dwmac5_est_configure(void __iomem *ioaddr, struct stmmac_est *cfg, unsigned int ptp_rate);void dwmac5_est_irq_status (void __iomem *ioaddr,struct net_device *dev,struct stmmac_extra_stats *x,u32 txqcnt); -void dwmac5_fpe_configure (void __iomem *ioaddr,u32 num_txq,u32 num_rxq, +void dwmac5_fpe_configure (void __iomem *ioaddr,struct stmmac_fpe_cfg *cfg, +u32 num_txq,u32 num_rxq,bool enable);void dwmac5_fpe_send_mpacket (void __iomem *ioaddr, +struct stmmac_fpe_cfg *cfg,enum stmmac_mpacket_type type);int dwmac5_fpe_irq_status (void __iomem *ioaddr,struct net_device *dev);
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c +2 -1
@@ -1440,7 +1440,8 @@ static int dwxgmac3_est_configure(void __iomem *ioaddr, struct stmmac_est *cfg,return 0 ; } -static void dwxgmac3_fpe_configure (void __iomem *ioaddr,u32 num_txq, +static void dwxgmac3_fpe_configure (void __iomem *ioaddr,struct stmmac_fpe_cfg *cfg, +u32 num_txq,u32 num_rxq,bool enable) {u32 value;
drivers/net/ethernet/stmicro/stmmac/hwif.h +3 -1
@@ -395,9 +395,11 @@ struct stmmac_ops { unsigned int ptp_rate);void (*est_irq_status)(void __iomem *ioaddr,struct net_device *dev,struct stmmac_extra_stats *x,u32 txqcnt); -void (*fpe_configure)(void __iomem *ioaddr,u32 num_txq,u32 num_rxq, +void (*fpe_configure)(void __iomem *ioaddr,struct stmmac_fpe_cfg *cfg, +u32 num_txq,u32 num_rxq,bool enable);void (*fpe_send_mpacket)(void __iomem *ioaddr, +struct stmmac_fpe_cfg *cfg,enum stmmac_mpacket_type type);int (*fpe_irq_status)(void __iomem *ioaddr,struct net_device *dev); };
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +7 -1
@@ -1054,7 +1054,8 @@ static void stmmac_fpe_link_state_handle(struct stmmac_priv *priv, bool is_up)bool *hs_enable = &fpe_cfg->hs_enable;if (is_up && *hs_enable) { -stmmac_fpe_send_mpacket (priv, priv->ioaddr,MPACKET_VERIFY ); +stmmac_fpe_send_mpacket (priv, priv->ioaddr, fpe_cfg, +MPACKET_VERIFY ); }else { *lo_state =FPE_STATE_OFF ; *lp_state =FPE_STATE_OFF ;
@@ -5621,6 +5622,7 @@ static void stmmac_fpe_event_status(struct stmmac_priv *priv, int status)/* If user has requested FPE enable, quickly response */ if (*hs_enable)stmmac_fpe_send_mpacket (priv, priv->ioaddr, + fpe_cfg,MPACKET_RESPONSE ); }
@@ -6958,6 +6960,7 @@ static void stmmac_fpe_lp_task(struct work_struct *work)if (*lo_state ==FPE_STATE_ENTERING_ON && *lp_state ==FPE_STATE_ENTERING_ON ) {stmmac_fpe_configure (priv, priv->ioaddr, + fpe_cfg, priv->plat->tx_queues_to_use, priv->plat->rx_queues_to_use, *enable);
@@ -6976,6 +6979,7 @@ static void stmmac_fpe_lp_task(struct work_struct *work)netdev_info (priv->dev,SEND_VERIFY_MPAKCET_FMT , *lo_state, *lp_state);stmmac_fpe_send_mpacket (priv, priv->ioaddr, + fpe_cfg,MPACKET_VERIFY ); }/* Sleep then retry */
@@ -6990,6 +6994,7 @@ void stmmac_fpe_handshake(struct stmmac_priv *priv, bool enable)if (priv->plat->fpe_cfg->hs_enable != enable) {if (enable) {stmmac_fpe_send_mpacket (priv, priv->ioaddr, + priv->plat->fpe_cfg,MPACKET_VERIFY ); }else { priv->plat->fpe_cfg->lo_fpe_state =FPE_STATE_OFF ;
@@ -7399,6 +7404,7 @@ int stmmac_suspend(struct device *dev)if (priv->dma_cap.fpesel) {/* Disable FPE */ stmmac_fpe_configure (priv, priv->ioaddr, + priv->plat->fpe_cfg, priv->plat->tx_queues_to_use, priv->plat->rx_queues_to_use, false);
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +1 -0
@@ -952,6 +952,7 @@ static int tc_setup_taprio(struct stmmac_priv *priv, priv->plat->fpe_cfg->enable = false;stmmac_fpe_configure (priv, priv->ioaddr, + priv->plat->fpe_cfg, priv->plat->tx_queues_to_use, priv->plat->rx_queues_to_use, false);
drivers/net/hyperv/Kconfig +1 -0
@@ -3,5 +3,6 @@ config HYPERV_NET tristate "Microsoft Hyper-V virtual network driver" depends on HYPERV select UCS2_STRING + select NLS help Select this option to enable the Hyper-V virtual network driver.
drivers/net/usb/r8152.c +62 -48
118 lines not on this page · raw message
drivers/platform/mellanox/mlxbf-bootctl.c +26 -13
Lines of this file are not shown. View the raw message.
drivers/platform/surface/aggregator/core.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/platform/x86/asus-nb-wmi.c +19 -27
46 lines not on this page · raw message
drivers/platform/x86/asus-wmi.c +66 -52
118 lines not on this page · raw message
drivers/platform/x86/wmi.c +47 -9
56 lines not on this page · raw message
drivers/tty/serial/amba-pl011.c +54 -58
112 lines not on this page · raw message
fs/nilfs2/sufile.c +35 -7
42 lines not on this page · raw message
include/linux/platform_data/x86/asus-wmi.h +1 -0
Lines of this file are not shown. View the raw message.
io_uring/io_uring.c +3 -61
64 lines not on this page · raw message
kernel/events/core.c +55 -25
80 lines not on this page · raw message
kernel/trace/trace.c +70 -107
177 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.