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: <20190827224725.GD9987@google.com>
Date:   Tue, 27 Aug 2019 17:47:25 -0500
From:   Bjorn Helgaas <helgaas@...nel.org>
To:     Krzysztof Wilczynski <kw@...ux.com>
Cc:     Thomas Gleixner <tglx@...utronix.de>,
        Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
        "H. Peter Anvin" <hpa@...or.com>, x86@...nel.org,
        linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] x86/PCI: Add missing log facility and move to use pr_
 macros in pcbios.c

On Sun, Aug 25, 2019 at 08:25:57PM +0200, Krzysztof Wilczynski wrote:
> Make the log facility used to print warnings to be KERN_WARNING
> explicitly, rather than rely on the current (or default) value
> of the MESSAGE_LOGLEVEL_DEFAULT set in Kconfig.  This will make
> all the warnings in the arch/x86/pci/pcbios.c to be printed
> consistently at the same log facility.

This is slightly confusing.  There are only two messages that didn't
supply a log level, so the avoidance of MESSAGE_LOGLEVEL_DEFAULT
applies to those.

The rest already supplied a log level, so converting printk(KERN_INFO)
to pr_info() is purely simplification.

> Replace printk(KERN_<level> ...) with corresponding pr_ macros,
> while adding the missing log facility.

Might be worth doing this as well:

  #define pr_fmt(fmt) "PCI: " fmt

and removing the "PCI: " prefix from the messages.  This would change
the "bios32_service" output slightly, but I think the change would be
a good one.

> Signed-off-by: Krzysztof Wilczynski <kw@...ux.com>
> ---
>  arch/x86/pci/pcbios.c | 18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/x86/pci/pcbios.c b/arch/x86/pci/pcbios.c
> index 9c97d814125e..0c3673f50bce 100644
> --- a/arch/x86/pci/pcbios.c
> +++ b/arch/x86/pci/pcbios.c
> @@ -47,7 +47,7 @@ static inline void set_bios_x(void)
>  	pcibios_enabled = 1;
>  	set_memory_x(PAGE_OFFSET + BIOS_BEGIN, (BIOS_END - BIOS_BEGIN) >> PAGE_SHIFT);
>  	if (__supported_pte_mask & _PAGE_NX)
> -		printk(KERN_INFO "PCI: PCI BIOS area is rw and x. Use pci=nobios if you want it NX.\n");
> +		pr_info("PCI: PCI BIOS area is rw and x. Use pci=nobios if you want it NX.\n");
>  }
>  
>  /*
> @@ -111,10 +111,10 @@ static unsigned long __init bios32_service(unsigned long service)
>  		case 0:
>  			return address + entry;
>  		case 0x80:	/* Not present */
> -			printk(KERN_WARNING "bios32_service(0x%lx): not present\n", service);
> +			pr_warn("bios32_service(0x%lx): not present\n", service);
>  			return 0;
>  		default: /* Shouldn't happen */
> -			printk(KERN_WARNING "bios32_service(0x%lx): returned 0x%x -- BIOS bug!\n",
> +			pr_warn("bios32_service(0x%lx): returned 0x%x -- BIOS bug!\n",
>  				service, return_code);
>  			return 0;
>  	}
> @@ -163,11 +163,11 @@ static int __init check_pcibios(void)
>  		DBG("PCI: BIOS probe returned s=%02x hw=%02x ver=%02x.%02x l=%02x\n",
>  			status, hw_mech, major_ver, minor_ver, pcibios_last_bus);
>  		if (status || signature != PCI_SIGNATURE) {
> -			printk (KERN_ERR "PCI: BIOS BUG #%x[%08x] found\n",
> +			pr_err("PCI: BIOS BUG #%x[%08x] found\n",
>  				status, signature);
>  			return 0;
>  		}
> -		printk(KERN_INFO "PCI: PCI BIOS revision %x.%02x entry at 0x%lx, last bus=%d\n",
> +		pr_info("PCI: PCI BIOS revision %x.%02x entry at 0x%lx, last bus=%d\n",
>  			major_ver, minor_ver, pcibios_entry, pcibios_last_bus);
>  #ifdef CONFIG_PCI_DIRECT
>  		if (!(hw_mech & PCIBIOS_HW_TYPE1))
> @@ -316,13 +316,13 @@ static const struct pci_raw_ops *__init pci_find_bios(void)
>  		if (sum != 0)
>  			continue;
>  		if (check->fields.revision != 0) {
> -			printk("PCI: unsupported BIOS32 revision %d at 0x%p\n",
> +			pr_warn("PCI: unsupported BIOS32 revision %d at 0x%p\n",
>  				check->fields.revision, check);
>  			continue;
>  		}
>  		DBG("PCI: BIOS32 Service Directory structure at 0x%p\n", check);
>  		if (check->fields.entry >= 0x100000) {
> -			printk("PCI: BIOS32 entry (0x%p) in high memory, "
> +			pr_warn("PCI: BIOS32 entry (0x%p) in high memory, "
>  					"cannot use.\n", check);
>  			return NULL;
>  		} else {
> @@ -386,7 +386,7 @@ struct irq_routing_table * pcibios_get_irq_routing_table(void)
>  		: "memory");
>  	DBG("OK  ret=%d, size=%d, map=%x\n", ret, opt.size, map);
>  	if (ret & 0xff00)
> -		printk(KERN_ERR "PCI: Error %02x when fetching IRQ routing table.\n", (ret >> 8) & 0xff);
> +		pr_err("PCI: Error %02x when fetching IRQ routing table.\n", (ret >> 8) & 0xff);
>  	else if (opt.size) {
>  		rt = kmalloc(sizeof(struct irq_routing_table) + opt.size, GFP_KERNEL);
>  		if (rt) {
> @@ -394,7 +394,7 @@ struct irq_routing_table * pcibios_get_irq_routing_table(void)
>  			rt->size = opt.size + sizeof(struct irq_routing_table);
>  			rt->exclusive_irqs = map;
>  			memcpy(rt->slots, (void *) page, opt.size);
> -			printk(KERN_INFO "PCI: Using BIOS Interrupt Routing Table\n");
> +			pr_info("PCI: Using BIOS Interrupt Routing Table\n");
>  		}
>  	}
>  	free_page(page);
> -- 
> 2.22.1
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ