Skip to contentSkip to conversation

linux-next: Tree for Sep 30

DISCUSSION [email protected] 5 participants 5 messages Sep 30, 2022 – Oct 3, 2022 Linux-next tree

lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

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.

#1 lore raw

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

Hi--

Quoted 6 lines · 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.

Signature · 1 line
~Randy
#2 lore raw

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

+ Borislav and the x86 mailing list

Quoted 22 lines · Randy Dunlap

Hi--

Quoted 6 lines · 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

Quoted 8 lines

(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.

Quoted 26 lines

(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;
      |                     ^~~~~~~~~~~~~~~~~~~~~~~
Quoted 6 lines

../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.

Quoted 47 lines

(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 | }

Quoted 1 line
      | ^

This is related to (a).

Thanks,

	M.
Signature · 1 line
Without deviation from the norm, progress is not possible.
#3 lore raw

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

Quoted 3 lines · Marc Zyngier

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.

Signature · 4 lines
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette
#4 lore raw
In reply to [email protected]

Hi all,

Quoted 2 lines · 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.

Signature · 2 lines
Cheers,
Stephen Rothwell