2022-09-30 16:05:14

by Mark Brown

[permalink] [raw]
Subject: linux-next: Tree for Sep 30

Hi all,

Stephen should be back on Monday and normal service resumed.

Changes since 20220929:

The DRM trees gained even more conflicts with each other.

The drm tree gained a build failure for which I reverted a commit.

Non-merge commits (relative to Linus' tree): 10821
11304 files changed, 602373 insertions(+), 231016 deletions(-)

----------------------------------------------------------------------------

I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
(patches at http://www.kernel.org/pub/linux/kernel/next/ ). If you
are tracking the linux-next tree using git, you should not use "git pull"
to do so as that will try to merge the new linux-next release with the
old one. You should use "git fetch" and checkout or reset to the new
master.

You can see which trees have been included by looking in the Next/Trees
file in the source. There are also quilt-import.log and merge.log
files in the Next directory. Between each merge, the tree was built
with a ppc64_defconfig for powerpc, an allmodconfig for x86_64, a
multi_v7_defconfig for arm and a native build of tools/perf. After
the final fixups (if any), I do an x86_64 modules_install followed by
builds for x86_64 allnoconfig, powerpc allnoconfig (32 and 64 bit),
ppc44x_defconfig, allyesconfig and pseries_le_defconfig and i386,
arm64, sparc and sparc64 defconfig and htmldocs. And finally, a simple
boot test of the powerpc pseries_le_defconfig kernel in qemu (with and
without kvm enabled).

Below is a summary of the state of the merge.

I am currently merging 362 trees (counting Linus' and 100 trees of bug
fix patches pending for the current merge release).

Stats about the size of the tree over time can be seen at
http://neuling.org/linux-next-size.html .

Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next . If maintainers want to give
advice about cross compilers/configs that work, we are always open to add
more builds.

Thanks to Randy Dunlap for doing many randconfig builds. And to Paul
Gortmaker for triage and bug fixes.


2022-10-01 21:48:52

by Randy Dunlap

[permalink] [raw]
Subject: Re: linux-next: Tree for Sep 30 (i386 non-SMP non-APIC w/ IRQ_DOMAIN: build errors)

Hi--

On 9/30/22 08:47, [email protected] wrote:
> Hi all,
>
> Stephen should be back on Monday and normal service resumed.
>
> Changes since 20220929:
>

i386 randconfig:

# CONFIG_SMP is not set
# CONFIG_X86_UP_APIC is not set
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_SIM=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_GENERIC_MSI_IRQ=y
CONFIG_GENERIC_MSI_IRQ_DOMAIN=y


(a)
CC drivers/phy/phy-can-transceiver.o
In file included from ../include/asm-generic/gpio.h:11,
from ../include/linux/gpio.h:62,
from ../drivers/phy/phy-can-transceiver.c:11:
../include/linux/gpio/driver.h:31:33: error: field ‘msiinfo’ has incomplete type
31 | msi_alloc_info_t msiinfo;
|

(b)
CC arch/x86/kernel/hpet.o
../arch/x86/kernel/hpet.c: In function ‘hpet_msi_init’:
../arch/x86/kernel/hpet.c:520:46: error: invalid use of incomplete typedef ‘msi_alloc_info_t’ {aka ‘struct irq_alloc_info’}
520 | irq_domain_set_info(domain, virq, arg->hwirq, info->chip, NULL,
| ^~
../arch/x86/kernel/hpet.c:521:49: error: invalid use of incomplete typedef ‘msi_alloc_info_t’ {aka ‘struct irq_alloc_info’}
521 | handle_edge_irq, arg->data, "edge");
| ^~
CC fs/jfs/jfs_xtree.o
../arch/x86/kernel/hpet.c: In function ‘hpet_create_irq_domain’:
../arch/x86/kernel/hpet.c:550:13: error: ‘x86_vector_domain’ undeclared (first use in this function)
550 | if (x86_vector_domain == NULL)
| ^~~~~~~~~~~~~~~~~
../arch/x86/kernel/hpet.c:550:13: note: each undeclared identifier is reported only once for each function it appears in
../arch/x86/kernel/hpet.c: In function ‘hpet_assign_irq’:
../arch/x86/kernel/hpet.c:598:31: error: storage size of ‘info’ isn’t known
598 | struct irq_alloc_info info;
| ^~~~
../arch/x86/kernel/hpet.c:600:9: error: implicit declaration of function ‘init_irq_alloc_info’ [-Werror=implicit-function-declaration]
600 | init_irq_alloc_info(&info, NULL);
| ^~~~~~~~~~~~~~~~~~~
../arch/x86/kernel/hpet.c:601:21: error: ‘X86_IRQ_ALLOC_TYPE_HPET’ undeclared (first use in this function)
601 | info.type = X86_IRQ_ALLOC_TYPE_HPET;
| ^~~~~~~~~~~~~~~~~~~~~~~
../arch/x86/kernel/hpet.c:598:31: warning: unused variable ‘info’ [-Wunused-variable]
598 | struct irq_alloc_info info;
| ^~~~
../arch/x86/kernel/hpet.c:607:1: error: control reaches end of non-void function [-Werror=return-type]
607 | }
| ^


(c)
CC kernel/irq/msi.o
../kernel/irq/msi.c: In function ‘msi_domain_ops_get_hwirq’:
../kernel/irq/msi.c:585:19: error: invalid use of incomplete typedef ‘msi_alloc_info_t’ {aka ‘struct irq_alloc_info’}
585 | return arg->hwirq;
| ^~
In file included from ../arch/x86/include/asm/string.h:3,
from ../include/linux/string.h:20,
from ../arch/x86/include/asm/page_32.h:22,
from ../arch/x86/include/asm/page.h:14,
from ../arch/x86/include/asm/thread_info.h:12,
from ../include/linux/thread_info.h:60,
from ../arch/x86/include/asm/preempt.h:7,
from ../include/linux/preempt.h:78,
from ../include/linux/rcupdate.h:27,
from ../include/linux/rculist.h:11,
from ../include/linux/pid.h:5,
from ../include/linux/sched.h:14,
from ../include/linux/ratelimit.h:6,
from ../include/linux/dev_printk.h:16,
from ../include/linux/device.h:15,
from ../kernel/irq/msi.c:12:
../kernel/irq/msi.c: In function ‘msi_domain_ops_prepare’:
../kernel/irq/msi.c:591:30: error: invalid application of ‘sizeof’ to incomplete type ‘msi_alloc_info_t’ {aka ‘struct irq_alloc_info’}
591 | memset(arg, 0, sizeof(*arg));
| ^
../arch/x86/include/asm/string_32.h:195:52: note: in definition of macro ‘memset’
195 | #define memset(s, c, count) __builtin_memset(s, c, count)
| ^~~~~
../kernel/irq/msi.c: In function ‘msi_domain_ops_set_desc’:
../kernel/irq/msi.c:598:12: error: invalid use of incomplete typedef ‘msi_alloc_info_t’ {aka ‘struct irq_alloc_info’}
598 | arg->desc = desc;
| ^~
../kernel/irq/msi.c: In function ‘__msi_domain_alloc_irqs’:
../kernel/irq/msi.c:858:9: error: variable ‘arg’ has initializer but incomplete type
858 | msi_alloc_info_t arg = { };
| ^~~~~~~~~~~~~~~~
../kernel/irq/msi.c:858:26: error: storage size of ‘arg’ isn’t known
858 | msi_alloc_info_t arg = { };
| ^~~
../kernel/irq/msi.c:858:26: warning: unused variable ‘arg’ [-Wunused-variable]
CC lib/clz_tab.o
../kernel/irq/msi.c: In function ‘msi_domain_ops_get_hwirq’:
../kernel/irq/msi.c:586:1: error: control reaches end of non-void function [-Werror=return-type]
586 | }
| ^



Full randconfig file is attached.

--
~Randy


Attachments:
config-r6305.gz (32.26 kB)

2022-10-03 05:10:49

by Stephen Rothwell

[permalink] [raw]
Subject: Re: linux-next: Tree for Sep 30

Hi all,

On Fri, 30 Sep 2022 16:47:10 +0100 [email protected] wrote:
>
> Stephen should be back on Monday and normal service resumed.

Normal service will resume tomorrow (as today is a public holiday here)
so there will be no linux-next release today.

I would like to publicly thank Mark for taking up the burden of
linux-next again.

--
Cheers,
Stephen Rothwell


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2022-10-03 18:56:17

by Marc Zyngier

[permalink] [raw]
Subject: Re: linux-next: Tree for Sep 30 (i386 non-SMP non-APIC w/ IRQ_DOMAIN: build errors)

+ Borislav and the x86 mailing list

On Sat, 01 Oct 2022 22:25:37 +0100,
Randy Dunlap <[email protected]> wrote:
>
> Hi--
>
> On 9/30/22 08:47, [email protected] wrote:
> > Hi all,
> >
> > Stephen should be back on Monday and normal service resumed.
> >
> > Changes since 20220929:
> >
>
> i386 randconfig:
>
> # CONFIG_SMP is not set
> # CONFIG_X86_UP_APIC is not set
> CONFIG_IRQ_DOMAIN=y
> CONFIG_IRQ_SIM=y
> CONFIG_IRQ_DOMAIN_HIERARCHY=y
> CONFIG_GENERIC_MSI_IRQ=y
> CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
>
>
> (a)
> CC drivers/phy/phy-can-transceiver.o
> In file included from ../include/asm-generic/gpio.h:11,
> from ../include/linux/gpio.h:62,
> from ../drivers/phy/phy-can-transceiver.c:11:
> ../include/linux/gpio/driver.h:31:33: error: field ‘msiinfo’ has incomplete type
> 31 | msi_alloc_info_t msiinfo;
> |

There is plenty of similar issues with drivers/gpio.

This looks like x86 without APIC support lacks a proper definition of
'struct irq_alloc_info'. I can make one up to get things to compile,
but I wonder if that makes any sense the first place.

[warning: anything below only shows that I know nothing about x86]

Can x86 practically deal with MSIs without the APIC? If not, we should
instead find a way to forbid MSIs when APIC isn't selected. Or make
APIC support mandatory.

>
> (b)
> CC arch/x86/kernel/hpet.o
> ../arch/x86/kernel/hpet.c: In function ‘hpet_msi_init’:
> ../arch/x86/kernel/hpet.c:520:46: error: invalid use of incomplete typedef ‘msi_alloc_info_t’ {aka ‘struct irq_alloc_info’}
> 520 | irq_domain_set_info(domain, virq, arg->hwirq, info->chip, NULL,
> | ^~
> ../arch/x86/kernel/hpet.c:521:49: error: invalid use of incomplete typedef ‘msi_alloc_info_t’ {aka ‘struct irq_alloc_info’}
> 521 | handle_edge_irq, arg->data, "edge");
> | ^~
> CC fs/jfs/jfs_xtree.o
> ../arch/x86/kernel/hpet.c: In function ‘hpet_create_irq_domain’:
> ../arch/x86/kernel/hpet.c:550:13: error: ‘x86_vector_domain’ undeclared (first use in this function)
> 550 | if (x86_vector_domain == NULL)
> | ^~~~~~~~~~~~~~~~~
> ../arch/x86/kernel/hpet.c:550:13: note: each undeclared identifier is reported only once for each function it appears in
> ../arch/x86/kernel/hpet.c: In function ‘hpet_assign_irq’:
> ../arch/x86/kernel/hpet.c:598:31: error: storage size of ‘info’ isn’t known
> 598 | struct irq_alloc_info info;
> | ^~~~
> ../arch/x86/kernel/hpet.c:600:9: error: implicit declaration of function ‘init_irq_alloc_info’ [-Werror=implicit-function-declaration]
> 600 | init_irq_alloc_info(&info, NULL);
> | ^~~~~~~~~~~~~~~~~~~
> ../arch/x86/kernel/hpet.c:601:21: error: ‘X86_IRQ_ALLOC_TYPE_HPET’ undeclared (first use in this function)
> 601 | info.type = X86_IRQ_ALLOC_TYPE_HPET;
> | ^~~~~~~~~~~~~~~~~~~~~~~
> ../arch/x86/kernel/hpet.c:598:31: warning: unused variable ‘info’ [-Wunused-variable]
> 598 | struct irq_alloc_info info;
> | ^~~~
> ../arch/x86/kernel/hpet.c:607:1: error: control reaches end of non-void function [-Werror=return-type]
> 607 | }
> | ^

Same question: is HPET usable without the APIC? If so, the MSI part
should probably be guarded by something else.

>
>
> (c)
> CC kernel/irq/msi.o
> ../kernel/irq/msi.c: In function ‘msi_domain_ops_get_hwirq’:
> ../kernel/irq/msi.c:585:19: error: invalid use of incomplete typedef ‘msi_alloc_info_t’ {aka ‘struct irq_alloc_info’}
> 585 | return arg->hwirq;
> | ^~
> In file included from ../arch/x86/include/asm/string.h:3,
> from ../include/linux/string.h:20,
> from ../arch/x86/include/asm/page_32.h:22,
> from ../arch/x86/include/asm/page.h:14,
> from ../arch/x86/include/asm/thread_info.h:12,
> from ../include/linux/thread_info.h:60,
> from ../arch/x86/include/asm/preempt.h:7,
> from ../include/linux/preempt.h:78,
> from ../include/linux/rcupdate.h:27,
> from ../include/linux/rculist.h:11,
> from ../include/linux/pid.h:5,
> from ../include/linux/sched.h:14,
> from ../include/linux/ratelimit.h:6,
> from ../include/linux/dev_printk.h:16,
> from ../include/linux/device.h:15,
> from ../kernel/irq/msi.c:12:
> ../kernel/irq/msi.c: In function ‘msi_domain_ops_prepare’:
> ../kernel/irq/msi.c:591:30: error: invalid application of ‘sizeof’ to incomplete type ‘msi_alloc_info_t’ {aka ‘struct irq_alloc_info’}
> 591 | memset(arg, 0, sizeof(*arg));
> | ^
> ../arch/x86/include/asm/string_32.h:195:52: note: in definition of macro ‘memset’
> 195 | #define memset(s, c, count) __builtin_memset(s, c, count)
> | ^~~~~
> ../kernel/irq/msi.c: In function ‘msi_domain_ops_set_desc’:
> ../kernel/irq/msi.c:598:12: error: invalid use of incomplete typedef ‘msi_alloc_info_t’ {aka ‘struct irq_alloc_info’}
> 598 | arg->desc = desc;
> | ^~
> ../kernel/irq/msi.c: In function ‘__msi_domain_alloc_irqs’:
> ../kernel/irq/msi.c:858:9: error: variable ‘arg’ has initializer but incomplete type
> 858 | msi_alloc_info_t arg = { };
> | ^~~~~~~~~~~~~~~~
> ../kernel/irq/msi.c:858:26: error: storage size of ‘arg’ isn’t known
> 858 | msi_alloc_info_t arg = { };
> | ^~~
> ../kernel/irq/msi.c:858:26: warning: unused variable ‘arg’ [-Wunused-variable]
> CC lib/clz_tab.o
> ../kernel/irq/msi.c: In function ‘msi_domain_ops_get_hwirq’:
> ../kernel/irq/msi.c:586:1: error: control reaches end of non-void function [-Werror=return-type]
> 586 | }
> | ^

This is related to (a).

Thanks,

M.

--
Without deviation from the norm, progress is not possible.

2022-10-03 21:38:35

by Borislav Petkov

[permalink] [raw]
Subject: Re: linux-next: Tree for Sep 30 (i386 non-SMP non-APIC w/ IRQ_DOMAIN: build errors)

On Mon, Oct 03, 2022 at 07:26:29PM +0100, Marc Zyngier wrote:
> Can x86 practically deal with MSIs without the APIC? If not, we should
> instead find a way to forbid MSIs when APIC isn't selected. Or make
> APIC support mandatory.

Well, you need the local APIC in order to send MSIs, that's why
X86_LOCAL_APIC depends on PCI_MSI.

I'll have a look at that .config tomorrow.

Thx.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette