Re: [PATCH] x86/PCI: Add missing log facility and move to use pr_ macros in pcbios.c

From: Bjorn Helgaas
Date: Tue Aug 27 2019 - 18:47:30 EST


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@xxxxxxxxx>
> ---
> 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
>