Xtensa updates for v5.15
- fix kconfig unmet dependency warning for HAVE_FUTEX_CMPXCHG - add fairness to handling IRQs of the same priority - fix pointer usage before NULL check in ISS console driver - build system cleanups -----BEGIN PGP SIGNATURE----- iQJHBAABCgAxFiEEK2eFS5jlMn3N6xfYUfnMkfg/oEQFAmEw424THGpjbXZia2Jj QGdtYWlsLmNvbQAKCRBR+cyR+D+gRNOREACLe3l/QT4BcmHBm0l6LguNQUGEU+lH B0Dcf9V5aua3JZwnh7HHfk3oRjPH8+OsopTLOdY44AHs+1ZbXGmy9nqQnA9z9WHW jKYN+H/S5Li9tB/ibdB+Ekdrua0SE4YYBTgNQRjlp0PF3c4TDr3/Mw6xWGnwLaXq hm+WoCh24lFfMEF9RiPBacbrAMiF6PkCns+PDVXnHJnzRYgsKEEjplGbjo5LgoAo cmzf81yu575YbD0ZC4ZRN7vUbbQWiczlA1dSEVS8CwM+d7CyjFeNM4gm5wkYlS+a BDBvrIoFUdt1hJeaxNRbAySi4EoiUbKJlxLbCblLlPIvQq3bZm8DA/ZfRsdsD2gV s/XxZ1RKye54LIpzgeSvOvHOmP8YoQEQHUNSDkwdIKJHLPCsdi3Cqnb+KxeqGbX4 yDNFfQVcbVePOCWT4fZD1FRSXn/jFv0gJ4Wa3qqAiCwpw9dkjjty9QGLuGkyxrcA DixezhVbZEp0ZMqeyEVm5LlZzFZxoctv6r6sKzD+Lk3V1lCRNvGYMSvfqgkunZVE VKCZN+8yzcvibrLLFS1lapyxXyXUhWaWjdeLbKU74qNnf9c+oEX1UJXzWj1oHt++ gySLacEIdNy+4AhSgIiHlF6mNhobKchDj4HFH2BsQQKy1uHmoovQpIYgOGB6JGft 2HaVek6wsWKfAg== =WooQ -----END PGP SIGNATURE----- Merge tag 'xtensa-20210902' of git://github.com/jcmvbkbc/linux-xtensa Pull Xtensa updates from Max Filippov: - fix kconfig unmet dependency warning for HAVE_FUTEX_CMPXCHG - add fairness to handling IRQs of the same priority - fix pointer usage before NULL check in ISS console driver - build system cleanups * tag 'xtensa-20210902' of git://github.com/jcmvbkbc/linux-xtensa: xtensa: move core-y in arch/xtensa/Makefile to arch/xtensa/Kbuild xtensa: build platform directories unconditionally xtensa: do not build variants directory xtensa: remove unneeded exports xtensa: ISS: don't use string pointer before NULL check xtensa: add fairness to IRQ handling xtensa: fix kconfig unmet dependency warning for HAVE_FUTEX_CMPXCHG
This commit is contained in:
commit
b5d6d2633c
@ -1 +1,2 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
obj-y += kernel/ mm/ platforms/ boot/dts/
|
||||
|
@ -31,7 +31,7 @@ config XTENSA
|
||||
select HAVE_DMA_CONTIGUOUS
|
||||
select HAVE_EXIT_THREAD
|
||||
select HAVE_FUNCTION_TRACER
|
||||
select HAVE_FUTEX_CMPXCHG if !MMU
|
||||
select HAVE_FUTEX_CMPXCHG if !MMU && FUTEX
|
||||
select HAVE_HW_BREAKPOINT if PERF_EVENTS
|
||||
select HAVE_IRQ_TIME_ACCOUNTING
|
||||
select HAVE_PCI
|
||||
|
@ -17,7 +17,6 @@
|
||||
variant-y := $(patsubst "%",%,$(CONFIG_XTENSA_VARIANT_NAME))
|
||||
|
||||
VARIANT = $(variant-y)
|
||||
export VARIANT
|
||||
|
||||
ifneq ($(VARIANT),)
|
||||
ifdef cross_compiling
|
||||
@ -33,9 +32,6 @@ platform-$(CONFIG_XTENSA_PLATFORM_XT2000) := xt2000
|
||||
platform-$(CONFIG_XTENSA_PLATFORM_ISS) := iss
|
||||
platform-$(CONFIG_XTENSA_PLATFORM_XTFPGA) := xtfpga
|
||||
|
||||
PLATFORM = $(platform-y)
|
||||
export PLATFORM
|
||||
|
||||
# temporarily until string.h is fixed
|
||||
KBUILD_CFLAGS += -ffreestanding -D__linux__
|
||||
KBUILD_CFLAGS += -pipe -mlongcalls -mtext-section-literals
|
||||
@ -57,19 +53,11 @@ KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(vardirs) $(plfdirs))
|
||||
|
||||
KBUILD_DEFCONFIG := iss_defconfig
|
||||
|
||||
# Only build variant and/or platform if it includes a Makefile
|
||||
|
||||
buildvar := $(shell test -e $(srctree)/arch/xtensa/variants/$(VARIANT)/Makefile && echo arch/xtensa/variants/$(VARIANT)/)
|
||||
buildplf := $(shell test -e $(srctree)/arch/xtensa/platforms/$(PLATFORM)/Makefile && echo arch/xtensa/platforms/$(PLATFORM)/)
|
||||
|
||||
# Find libgcc.a
|
||||
|
||||
LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
|
||||
|
||||
head-y := arch/xtensa/kernel/head.o
|
||||
core-y += arch/xtensa/kernel/ arch/xtensa/mm/
|
||||
core-y += $(buildvar) $(buildplf)
|
||||
core-y += arch/xtensa/boot/dts/
|
||||
|
||||
libs-y += arch/xtensa/lib/ $(LIBGCC)
|
||||
|
||||
|
@ -268,6 +268,7 @@ void do_interrupt(struct pt_regs *regs)
|
||||
XCHAL_INTLEVEL7_MASK,
|
||||
};
|
||||
struct pt_regs *old_regs;
|
||||
unsigned unhandled = ~0u;
|
||||
|
||||
trace_hardirqs_off();
|
||||
|
||||
@ -283,6 +284,10 @@ void do_interrupt(struct pt_regs *regs)
|
||||
for (level = LOCKLEVEL; level > 0; --level) {
|
||||
if (int_at_level & int_level_mask[level]) {
|
||||
int_at_level &= int_level_mask[level];
|
||||
if (int_at_level & unhandled)
|
||||
int_at_level &= unhandled;
|
||||
else
|
||||
unhandled |= int_level_mask[level];
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -290,6 +295,8 @@ void do_interrupt(struct pt_regs *regs)
|
||||
if (level == 0)
|
||||
break;
|
||||
|
||||
/* clear lowest pending irq in the unhandled mask */
|
||||
unhandled ^= (int_at_level & -int_at_level);
|
||||
do_IRQ(__ffs(int_at_level), regs);
|
||||
}
|
||||
|
||||
|
4
arch/xtensa/platforms/Makefile
Normal file
4
arch/xtensa/platforms/Makefile
Normal file
@ -0,0 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
obj-$(CONFIG_XTENSA_PLATFORM_XT2000) += xt2000/
|
||||
obj-$(CONFIG_XTENSA_PLATFORM_ISS) += iss/
|
||||
obj-$(CONFIG_XTENSA_PLATFORM_XTFPGA) += xtfpga/
|
@ -199,11 +199,11 @@ late_initcall(rs_init);
|
||||
|
||||
static void iss_console_write(struct console *co, const char *s, unsigned count)
|
||||
{
|
||||
if (s && *s != 0) {
|
||||
int len = strlen(s);
|
||||
|
||||
if (s != 0 && *s != 0)
|
||||
simc_write(1, s, count < len ? count : len);
|
||||
}
|
||||
}
|
||||
|
||||
static struct tty_driver* iss_console_device(struct console *c, int *index)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user