Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'loongarch-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson

Pull LoongArch updates from Huacai Chen:

- Fix build failure with GCC 15 due to default -std=gnu23

- Add PREEMPT_RT/PREEMPT_LAZY support

- Add I2S in DTS for Loongson-2K1000/Loongson-2K2000

- Some bug fixes and other small changes

* tag 'loongarch-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson:
LoongArch: Update Loongson-3 default config file
LoongArch: dts: Add I2S support to Loongson-2K2000
LoongArch: dts: Add I2S support to Loongson-2K1000
LoongArch: Allow to enable PREEMPT_LAZY
LoongArch: Allow to enable PREEMPT_RT
LoongArch: Select HAVE_POSIX_CPU_TIMERS_TASK_WORK
LoongArch: Fix sleeping in atomic context for PREEMPT_RT
LoongArch: Reduce min_delta for the arch clockevent device
LoongArch: BPF: Sign-extend return values
LoongArch: Fix build failure with GCC 15 (-std=gnu23)
LoongArch: Explicitly specify code model in Makefile

+134 -23
+3
arch/loongarch/Kconfig
··· 23 23 select ARCH_HAS_KERNEL_FPU_SUPPORT if CPU_HAS_FPU 24 24 select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS 25 25 select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE 26 + select ARCH_HAS_PREEMPT_LAZY 26 27 select ARCH_HAS_PTE_DEVMAP 27 28 select ARCH_HAS_PTE_SPECIAL 28 29 select ARCH_HAS_SET_MEMORY ··· 67 66 select ARCH_SUPPORTS_LTO_CLANG 68 67 select ARCH_SUPPORTS_LTO_CLANG_THIN 69 68 select ARCH_SUPPORTS_NUMA_BALANCING 69 + select ARCH_SUPPORTS_RT 70 70 select ARCH_USE_BUILTIN_BSWAP 71 71 select ARCH_USE_CMPXCHG_LOCKREF 72 72 select ARCH_USE_QUEUED_RWLOCKS ··· 157 155 select HAVE_PERF_EVENTS 158 156 select HAVE_PERF_REGS 159 157 select HAVE_PERF_USER_STACK_DUMP 158 + select HAVE_POSIX_CPU_TIMERS_TASK_WORK 160 159 select HAVE_PREEMPT_DYNAMIC_KEY 161 160 select HAVE_REGS_AND_STACK_ACCESS_API 162 161 select HAVE_RELIABLE_STACKTRACE if UNWINDER_ORC
+2 -2
arch/loongarch/Makefile
··· 59 59 60 60 ifdef CONFIG_64BIT 61 61 ld-emul = $(64bit-emul) 62 - cflags-y += -mabi=lp64s 62 + cflags-y += -mabi=lp64s -mcmodel=normal 63 63 endif 64 64 65 65 cflags-y += -pipe $(CC_FLAGS_NO_FPU) ··· 104 104 KBUILD_CFLAGS += -fno-jump-tables 105 105 endif 106 106 107 - KBUILD_RUSTFLAGS += --target=loongarch64-unknown-none-softfloat 107 + KBUILD_RUSTFLAGS += --target=loongarch64-unknown-none-softfloat -Ccode-model=small 108 108 KBUILD_RUSTFLAGS_KERNEL += -Zdirect-access-external-data=yes 109 109 KBUILD_RUSTFLAGS_MODULE += -Zdirect-access-external-data=no 110 110
+15 -2
arch/loongarch/boot/dts/loongson-2k1000.dtsi
··· 266 266 status = "disabled"; 267 267 }; 268 268 269 - dma-controller@1fe00c20 { 269 + apbdma2: dma-controller@1fe00c20 { 270 270 compatible = "loongson,ls2k1000-apbdma"; 271 271 reg = <0x0 0x1fe00c20 0x0 0x8>; 272 272 interrupt-parent = <&liointc1>; ··· 276 276 status = "disabled"; 277 277 }; 278 278 279 - dma-controller@1fe00c30 { 279 + apbdma3: dma-controller@1fe00c30 { 280 280 compatible = "loongson,ls2k1000-apbdma"; 281 281 reg = <0x0 0x1fe00c30 0x0 0x8>; 282 282 interrupt-parent = <&liointc1>; ··· 349 349 reg = <0x0 0x1fe27800 0x0 0x100>; 350 350 interrupt-parent = <&liointc1>; 351 351 interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; 352 + status = "disabled"; 353 + }; 354 + 355 + i2s: i2s@1fe2d000 { 356 + compatible = "loongson,ls2k1000-i2s"; 357 + reg = <0 0x1fe2d000 0 0x14>, 358 + <0 0x1fe00438 0 0x8>; 359 + interrupt-parent = <&liointc0>; 360 + interrupts = <5 IRQ_TYPE_LEVEL_HIGH>; 361 + clocks = <&clk LOONGSON2_APB_CLK>; 362 + dmas = <&apbdma2 0>, <&apbdma3 0>; 363 + dma-names = "tx", "rx"; 364 + #sound-dai-cells = <0>; 352 365 status = "disabled"; 353 366 }; 354 367
+20 -2
arch/loongarch/boot/dts/loongson-2k2000.dtsi
··· 173 173 status = "disabled"; 174 174 }; 175 175 176 + i2c@1fe00120 { 177 + compatible = "loongson,ls2k-i2c"; 178 + reg = <0x0 0x1fe00120 0x0 0x8>; 179 + interrupt-parent = <&liointc>; 180 + interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; 181 + status = "disabled"; 182 + }; 183 + 184 + i2c@1fe00130 { 185 + compatible = "loongson,ls2k-i2c"; 186 + reg = <0x0 0x1fe00130 0x0 0x8>; 187 + interrupt-parent = <&liointc>; 188 + interrupts = <9 IRQ_TYPE_LEVEL_HIGH>; 189 + status = "disabled"; 190 + }; 191 + 176 192 uart0: serial@1fe001e0 { 177 193 compatible = "ns16550a"; 178 194 reg = <0x0 0x1fe001e0 0x0 0x10>; ··· 259 243 status = "disabled"; 260 244 }; 261 245 262 - hda@7,0 { 246 + i2s@7,0 { 263 247 reg = <0x3800 0x0 0x0 0x0 0x0>; 264 - interrupts = <58 IRQ_TYPE_LEVEL_HIGH>; 248 + interrupts = <78 IRQ_TYPE_LEVEL_HIGH>, 249 + <79 IRQ_TYPE_LEVEL_HIGH>; 250 + interrupt-names = "tx", "rx"; 265 251 interrupt-parent = <&pic>; 266 252 status = "disabled"; 267 253 };
+81 -10
arch/loongarch/configs/loongson3_defconfig
··· 1 1 # CONFIG_LOCALVERSION_AUTO is not set 2 + CONFIG_KERNEL_ZSTD=y 2 3 CONFIG_SYSVIPC=y 3 4 CONFIG_POSIX_MQUEUE=y 4 5 CONFIG_NO_HZ=y ··· 71 70 CONFIG_ACPI_HOTPLUG_CPU=y 72 71 CONFIG_ACPI_PCI_SLOT=y 73 72 CONFIG_ACPI_HOTPLUG_MEMORY=y 73 + CONFIG_ACPI_BGRT=y 74 + CONFIG_CPU_FREQ=y 75 + CONFIG_CPU_FREQ_GOV_POWERSAVE=y 76 + CONFIG_CPU_FREQ_GOV_USERSPACE=y 77 + CONFIG_CPU_FREQ_GOV_ONDEMAND=y 78 + CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y 79 + CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y 80 + CONFIG_LOONGSON3_CPUFREQ=m 74 81 CONFIG_VIRTUALIZATION=y 75 82 CONFIG_KVM=m 76 83 CONFIG_JUMP_LABEL=y ··· 87 78 CONFIG_MODULE_UNLOAD=y 88 79 CONFIG_MODULE_FORCE_UNLOAD=y 89 80 CONFIG_MODVERSIONS=y 81 + CONFIG_MODULE_COMPRESS=y 82 + CONFIG_MODULE_COMPRESS_ZSTD=y 83 + CONFIG_MODULE_DECOMPRESS=y 90 84 CONFIG_BLK_DEV_ZONED=y 91 85 CONFIG_BLK_DEV_THROTTLING=y 92 86 CONFIG_BLK_WBT=y ··· 97 85 CONFIG_BLK_CGROUP_FC_APPID=y 98 86 CONFIG_BLK_CGROUP_IOCOST=y 99 87 CONFIG_BLK_CGROUP_IOPRIO=y 88 + CONFIG_BLK_INLINE_ENCRYPTION=y 89 + CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y 100 90 CONFIG_PARTITION_ADVANCED=y 101 91 CONFIG_BSD_DISKLABEL=y 102 92 CONFIG_UNIXWARE_DISKLABEL=y ··· 427 413 CONFIG_PARPORT_SERIAL=y 428 414 CONFIG_PARPORT_PC_FIFO=y 429 415 CONFIG_ZRAM=m 416 + CONFIG_ZRAM_BACKEND_LZ4=y 417 + CONFIG_ZRAM_BACKEND_LZ4HC=y 418 + CONFIG_ZRAM_BACKEND_ZSTD=y 419 + CONFIG_ZRAM_BACKEND_DEFLATE=y 420 + CONFIG_ZRAM_BACKEND_842=y 421 + CONFIG_ZRAM_BACKEND_LZO=y 430 422 CONFIG_ZRAM_DEF_COMP_ZSTD=y 423 + CONFIG_ZRAM_WRITEBACK=y 424 + CONFIG_ZRAM_MEMORY_TRACKING=y 425 + CONFIG_ZRAM_MULTI_COMP=y 431 426 CONFIG_BLK_DEV_LOOP=y 432 427 CONFIG_BLK_DEV_DRBD=m 433 428 CONFIG_BLK_DEV_NBD=m ··· 456 433 CONFIG_NVME_TARGET_FC=m 457 434 CONFIG_NVME_TARGET_TCP=m 458 435 CONFIG_EEPROM_AT24=m 436 + CONFIG_PVPANIC=y 437 + CONFIG_PVPANIC_MMIO=m 438 + CONFIG_PVPANIC_PCI=m 459 439 CONFIG_BLK_DEV_SD=y 460 440 CONFIG_BLK_DEV_SR=y 461 441 CONFIG_CHR_DEV_SG=y ··· 496 470 CONFIG_PATA_PCMCIA=m 497 471 CONFIG_MD=y 498 472 CONFIG_BLK_DEV_MD=m 499 - CONFIG_MD_LINEAR=m 500 473 CONFIG_MD_RAID0=m 501 474 CONFIG_MD_RAID1=m 502 475 CONFIG_MD_RAID10=m 503 476 CONFIG_MD_RAID456=m 504 - CONFIG_MD_MULTIPATH=m 505 477 CONFIG_BCACHE=m 506 478 CONFIG_BLK_DEV_DM=y 507 479 CONFIG_DM_CRYPT=m ··· 513 489 CONFIG_DM_MULTIPATH=m 514 490 CONFIG_DM_MULTIPATH_QL=m 515 491 CONFIG_DM_MULTIPATH_ST=m 492 + CONFIG_DM_MULTIPATH_HST=m 493 + CONFIG_DM_MULTIPATH_IOA=m 494 + CONFIG_DM_INIT=y 495 + CONFIG_DM_UEVENT=y 496 + CONFIG_DM_VERITY=m 497 + CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y 498 + CONFIG_DM_VERITY_FEC=y 499 + CONFIG_DM_INTEGRITY=m 500 + CONFIG_DM_ZONED=m 501 + CONFIG_DM_VDO=m 516 502 CONFIG_TARGET_CORE=m 517 503 CONFIG_TCM_IBLOCK=m 518 504 CONFIG_TCM_FILEIO=m ··· 534 500 CONFIG_BONDING=m 535 501 CONFIG_DUMMY=y 536 502 CONFIG_WIREGUARD=m 503 + CONFIG_IFB=m 504 + CONFIG_NET_TEAM=m 505 + CONFIG_NET_TEAM_MODE_BROADCAST=m 506 + CONFIG_NET_TEAM_MODE_ROUNDROBIN=m 507 + CONFIG_NET_TEAM_MODE_RANDOM=m 508 + CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 509 + CONFIG_NET_TEAM_MODE_LOADBALANCE=m 537 510 CONFIG_MACVLAN=m 538 511 CONFIG_MACVTAP=m 539 512 CONFIG_IPVLAN=m ··· 621 580 CONFIG_PPP_SYNC_TTY=m 622 581 CONFIG_USB_RTL8150=m 623 582 CONFIG_USB_RTL8152=m 583 + CONFIG_USB_USBNET=m 624 584 # CONFIG_USB_NET_AX8817X is not set 625 585 # CONFIG_USB_NET_AX88179_178A is not set 626 586 CONFIG_USB_NET_CDC_EEM=m 627 587 CONFIG_USB_NET_HUAWEI_CDC_NCM=m 628 588 CONFIG_USB_NET_CDC_MBIM=m 629 589 # CONFIG_USB_NET_NET1080 is not set 590 + CONFIG_USB_NET_RNDIS_HOST=m 630 591 # CONFIG_USB_BELKIN is not set 631 592 # CONFIG_USB_ARMLINUX is not set 632 593 # CONFIG_USB_NET_ZAURUS is not set ··· 637 594 CONFIG_IWLWIFI=m 638 595 CONFIG_IWLDVM=m 639 596 CONFIG_IWLMVM=m 640 - CONFIG_HOSTAP=m 641 597 CONFIG_MT7601U=m 642 598 CONFIG_RT2X00=m 643 599 CONFIG_RT2800USB=m 600 + CONFIG_RTL8180=m 601 + CONFIG_RTL8187=m 644 602 CONFIG_RTL8192CE=m 645 603 CONFIG_RTL8192SE=m 646 604 CONFIG_RTL8192DE=m ··· 651 607 CONFIG_RTL8192EE=m 652 608 CONFIG_RTL8821AE=m 653 609 CONFIG_RTL8192CU=m 610 + CONFIG_RTL8192DU=m 654 611 # CONFIG_RTLWIFI_DEBUG is not set 655 612 CONFIG_RTL8XXXU=m 656 613 CONFIG_RTW88=m 657 614 CONFIG_RTW88_8822BE=m 615 + CONFIG_RTW88_8822BU=m 658 616 CONFIG_RTW88_8822CE=m 617 + CONFIG_RTW88_8822CU=m 659 618 CONFIG_RTW88_8723DE=m 619 + CONFIG_RTW88_8723DU=m 660 620 CONFIG_RTW88_8821CE=m 621 + CONFIG_RTW88_8821CU=m 661 622 CONFIG_RTW89=m 623 + CONFIG_RTW89_8851BE=m 662 624 CONFIG_RTW89_8852AE=m 625 + CONFIG_RTW89_8852BE=m 626 + CONFIG_RTW89_8852BTE=m 663 627 CONFIG_RTW89_8852CE=m 628 + CONFIG_RTW89_8922AE=m 664 629 CONFIG_ZD1211RW=m 665 - CONFIG_USB_NET_RNDIS_WLAN=m 666 630 CONFIG_USB4_NET=m 667 631 CONFIG_INPUT_MOUSEDEV=y 668 632 CONFIG_INPUT_MOUSEDEV_PSAUX=y ··· 703 651 CONFIG_HW_RANDOM_VIRTIO=m 704 652 CONFIG_I2C_CHARDEV=y 705 653 CONFIG_I2C_PIIX4=y 654 + CONFIG_I2C_DESIGNWARE_CORE=y 655 + CONFIG_I2C_DESIGNWARE_SLAVE=y 656 + CONFIG_I2C_DESIGNWARE_PCI=y 706 657 CONFIG_I2C_GPIO=y 707 658 CONFIG_I2C_LS2X=y 708 659 CONFIG_SPI=y ··· 782 727 CONFIG_SND_USB_AUDIO=m 783 728 CONFIG_SND_SOC=m 784 729 CONFIG_SND_SOC_LOONGSON_CARD=m 730 + CONFIG_SND_SOC_ES7134=m 731 + CONFIG_SND_SOC_ES7241=m 732 + CONFIG_SND_SOC_ES8311=m 733 + CONFIG_SND_SOC_ES8316=m 734 + CONFIG_SND_SOC_ES8323=m 735 + CONFIG_SND_SOC_ES8326=m 736 + CONFIG_SND_SOC_ES8328_I2C=m 737 + CONFIG_SND_SOC_ES8328_SPI=m 738 + CONFIG_SND_SOC_UDA1334=m 739 + CONFIG_SND_SOC_UDA1342=m 785 740 CONFIG_SND_VIRTIO=m 786 741 CONFIG_HIDRAW=y 787 742 CONFIG_UHID=m 788 743 CONFIG_HID_A4TECH=m 789 744 CONFIG_HID_CHERRY=m 745 + CONFIG_HID_ELAN=m 790 746 CONFIG_HID_LOGITECH=m 791 747 CONFIG_HID_LOGITECH_DJ=m 792 748 CONFIG_LOGITECH_FF=y ··· 806 740 CONFIG_HID_MICROSOFT=m 807 741 CONFIG_HID_MULTITOUCH=m 808 742 CONFIG_HID_SUNPLUS=m 743 + CONFIG_HID_WACOM=m 809 744 CONFIG_USB_HIDDEV=y 745 + CONFIG_I2C_HID_ACPI=m 746 + CONFIG_I2C_HID_OF=m 747 + CONFIG_I2C_HID_OF_ELAN=m 810 748 CONFIG_USB=y 811 749 CONFIG_USB_OTG=y 812 750 CONFIG_USB_MON=y ··· 922 852 CONFIG_F2FS_FS_SECURITY=y 923 853 CONFIG_F2FS_CHECK_FS=y 924 854 CONFIG_F2FS_FS_COMPRESSION=y 855 + CONFIG_FS_ENCRYPTION=y 856 + CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y 857 + CONFIG_FS_VERITY=y 925 858 CONFIG_FANOTIFY=y 926 859 CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y 927 860 CONFIG_QUOTA=y ··· 977 904 CONFIG_MINIX_FS=m 978 905 CONFIG_ROMFS_FS=m 979 906 CONFIG_PSTORE=m 980 - CONFIG_PSTORE_LZO_COMPRESS=m 981 - CONFIG_PSTORE_LZ4_COMPRESS=m 982 - CONFIG_PSTORE_LZ4HC_COMPRESS=m 983 - CONFIG_PSTORE_842_COMPRESS=y 984 - CONFIG_PSTORE_ZSTD_COMPRESS=y 985 - CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y 907 + CONFIG_PSTORE_COMPRESS=y 986 908 CONFIG_SYSV_FS=m 987 909 CONFIG_UFS_FS=m 988 910 CONFIG_EROFS_FS=m 989 911 CONFIG_EROFS_FS_ZIP_LZMA=y 912 + CONFIG_EROFS_FS_ZIP_DEFLATE=y 913 + CONFIG_EROFS_FS_ZIP_ZSTD=y 914 + CONFIG_EROFS_FS_ONDEMAND=y 990 915 CONFIG_EROFS_FS_PCPU_KTHREAD=y 991 916 CONFIG_NFS_FS=y 992 917 CONFIG_NFS_V3_ACL=y
+5 -3
arch/loongarch/include/asm/thread_info.h
··· 66 66 * - pending work-to-be-done flags are in LSW 67 67 * - other flags in MSW 68 68 */ 69 - #define TIF_SIGPENDING 1 /* signal pending */ 70 - #define TIF_NEED_RESCHED 2 /* rescheduling necessary */ 69 + #define TIF_NEED_RESCHED 0 /* rescheduling necessary */ 70 + #define TIF_NEED_RESCHED_LAZY 1 /* lazy rescheduling necessary */ 71 + #define TIF_SIGPENDING 2 /* signal pending */ 71 72 #define TIF_NOTIFY_RESUME 3 /* callback before returning to user */ 72 73 #define TIF_NOTIFY_SIGNAL 4 /* signal notifications exist */ 73 74 #define TIF_RESTORE_SIGMASK 5 /* restore signal mask in do_signal() */ ··· 89 88 #define TIF_LBT_CTX_LIVE 20 /* LBT context must be preserved */ 90 89 #define TIF_PATCH_PENDING 21 /* pending live patching update */ 91 90 92 - #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) 93 91 #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) 92 + #define _TIF_NEED_RESCHED_LAZY (1<<TIF_NEED_RESCHED_LAZY) 93 + #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) 94 94 #define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME) 95 95 #define _TIF_NOTIFY_SIGNAL (1<<TIF_NOTIFY_SIGNAL) 96 96 #define _TIF_NOHZ (1<<TIF_NOHZ)
+5 -1
arch/loongarch/kernel/time.c
··· 127 127 int constant_clockevent_init(void) 128 128 { 129 129 unsigned int cpu = smp_processor_id(); 130 - unsigned long min_delta = 0x600; 130 + #ifdef CONFIG_PREEMPT_RT 131 + unsigned long min_delta = 100; 132 + #else 133 + unsigned long min_delta = 1000; 134 + #endif 131 135 unsigned long max_delta = (1UL << 48) - 1; 132 136 struct clock_event_device *cd; 133 137 static int irq = 0, timer_irq_installed = 0;
+1 -1
arch/loongarch/mm/tlb.c
··· 289 289 /* Avoid lockdep warning */ 290 290 rcutree_report_cpu_starting(cpu); 291 291 292 - #ifdef CONFIG_NUMA 292 + #if defined(CONFIG_NUMA) && !defined(CONFIG_PREEMPT_RT) 293 293 vec_sz = sizeof(exception_handlers); 294 294 295 295 if (pcpu_handlers[cpu])
+1 -1
arch/loongarch/net/bpf_jit.c
··· 179 179 180 180 if (!is_tail_call) { 181 181 /* Set return value */ 182 - move_reg(ctx, LOONGARCH_GPR_A0, regmap[BPF_REG_0]); 182 + emit_insn(ctx, addiw, LOONGARCH_GPR_A0, regmap[BPF_REG_0], 0); 183 183 /* Return to the caller */ 184 184 emit_insn(ctx, jirl, LOONGARCH_GPR_RA, LOONGARCH_GPR_ZERO, 0); 185 185 } else {
+1 -1
arch/loongarch/vdso/Makefile
··· 19 19 cflags-vdso := $(ccflags-vdso) \ 20 20 -isystem $(shell $(CC) -print-file-name=include) \ 21 21 $(filter -W%,$(filter-out -Wa$(comma)%,$(KBUILD_CFLAGS))) \ 22 - -O2 -g -fno-strict-aliasing -fno-common -fno-builtin \ 22 + -std=gnu11 -O2 -g -fno-strict-aliasing -fno-common -fno-builtin \ 23 23 -fno-stack-protector -fno-jump-tables -DDISABLE_BRANCH_PROFILING \ 24 24 $(call cc-option, -fno-asynchronous-unwind-tables) \ 25 25 $(call cc-option, -fno-stack-protector)