On Wed, Dec 14 2022 at 10:42, Niklas Schnelle wrote: > On Tue, 2022-12-13 at 11:04 -0800, Guenter Roeck wrote: >> This patch results in various s390 qemu test failures. >> There is a warning backtrace >> >> 12.674858] WARNING: CPU: 0 PID: 1 at kernel/irq/msi.c:167 msi_ctrl_valid+0x2a/0xb0 >> >> followed by >> >> [ 12.684333] virtio_net: probe of virtio0 failed with error -34 >> >> and Ethernet interfaces don't instantiate. > As far as I'm aware so far he tracked this down to code calling > msi_domain_get_hwsize() which in turn calls msi_get_device_domain() > which then returns NULL leading to msi_domain_get_hwsize() returning 0. > I think this is related to the fact that we currently don't use IRQ > domains. Correct and for some stupid reason I thought 0 is a good return value here :) diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c index bd4d4dd626b4..8fb10f216dc0 100644 --- a/kernel/irq/msi.c +++ b/kernel/irq/msi.c @@ -609,8 +609,8 @@ static unsigned int msi_domain_get_hwsize(struct device *dev, unsigned int domid info = domain->host_data; return info->hwsize; } - /* No domain, no size... */ - return 0; + /* No domain, default to MSI_MAX_INDEX */ + return MSI_MAX_INDEX; } static inline void irq_chip_write_msi_msg(struct irq_data *data,