lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a7ef2455-ede5-2238-639b-b3a66842a04b@intel.com>
Date:   Fri, 28 Jan 2022 10:00:23 -0800
From:   Dave Hansen <dave.hansen@...el.com>
To:     Brent Spillner <spillner@....org>, bhelgaas@...gle.com,
        tglx@...utronix.de, mingo@...hat.com, bp@...en8.de,
        dave.hansen@...ux.intel.com, x86@...nel.org, hpa@...or.com,
        linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] arch:x86:pci:irq.c: Improve log message when IRQ cannot
 be identified

Please fix up that subject.  We don't tend to use ":" to separate
things.  Second, the prefix isn't a filename.  It's really a subsystem.
 Take a look at:

	git log arch/x86/pci/irq.c

for some other examples.

On 1/28/22 09:37, Brent Spillner wrote:
> The existing code always suggests trying the pci=biosirq kernel
> parameter, but this option is only recognized when CONFIG_PCI_BIOS is
> set, which in turn depends on CONFIG_X86_32, so it is never appropriate
> on x86_64.
> 
> The new version tries to form a more useful message when pci=biosirq is
> not available, including by suggesting different acpi= options if
> appropriate (probably the most common cause of failed IRQ discovery).
> 
> See arch/x86/pci/common.c:535 for the interpretation of pci=biosirq, and
> arch/x86/Kconfig:2633 for the dependencies of CONFIG_PCI_BIOS.

Shockingly enough, that parameter is in the documentation:

	Documentation/admin-guide/kernel-parameters.txt

and double-shockingly, it's even called out as X86-32-only:

	biosirq		[X86-32] Use PCI BIOS calls to get the interrupt

Given that, do we really need to refer to the line numbers of the
implementation which will probably be stale by the time this is merged
anyway?

>  arch/x86/pci/irq.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c
> index 97b63e35e152..bc4aaaa74832 100644
> --- a/arch/x86/pci/irq.c
> +++ b/arch/x86/pci/irq.c
> @@ -1522,7 +1522,21 @@ static int pirq_enable_irq(struct pci_dev *dev)
>  		} else if (pci_probe & PCI_BIOS_IRQ_SCAN)
>  			msg = "";
>  		else
> +#ifdef CONFIG_PCI_BIOS
>  			msg = "; please try using pci=biosirq";
> +#else
> +			/* pci=biosirq is not a valid option */
> +#ifdef CONFIG_ACPI
> +			if (acpi_noirq)
> +				msg = "; consider removing acpi=noirq";
> +			else
> +#endif
> +				msg = "; recommend verifying UEFI/BIOS IRQ options"
> +#ifndef CONFIG_ACPI
> +					" or enabling ACPI"
> +#endif
> +					;
> +#endif

Any chance you could make that, um, a bit more readable?  It's OK to add
brackets to the else{} for readability even if they're not *strictly*
necessary.

It might also be nice to use

	if (IS_ENABLED(CONFIG_FOO))
		...

rather than the #ifdefs.

I'd also be perfectly OK having two different strings rather than
relying on string concatenation and the #ifdefs.

Is the "or enabling ACPI" message really necessary?

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ