diff options
-rw-r--r-- | arch/powerpc/platforms/powernv/pci-ioda.c | 58 |
1 files changed, 30 insertions, 28 deletions
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c index 7518aa19a2ef..bc79bbdbb6c7 100644 --- a/arch/powerpc/platforms/powernv/pci-ioda.c +++ b/arch/powerpc/platforms/powernv/pci-ioda.c | |||
@@ -41,34 +41,36 @@ | |||
41 | #include "powernv.h" | 41 | #include "powernv.h" |
42 | #include "pci.h" | 42 | #include "pci.h" |
43 | 43 | ||
44 | #define define_pe_printk_level(func, kern_level) \ | 44 | static void pe_level_printk(const struct pnv_ioda_pe *pe, const char *level, |
45 | static void func(const struct pnv_ioda_pe *pe, const char *fmt, ...) \ | 45 | const char *fmt, ...) |
46 | { \ | 46 | { |
47 | struct va_format vaf; \ | 47 | struct va_format vaf; |
48 | va_list args; \ | 48 | va_list args; |
49 | char pfix[32]; \ | 49 | char pfix[32]; |
50 | \ | 50 | |
51 | va_start(args, fmt); \ | 51 | va_start(args, fmt); |
52 | \ | 52 | |
53 | vaf.fmt = fmt; \ | 53 | vaf.fmt = fmt; |
54 | vaf.va = &args; \ | 54 | vaf.va = &args; |
55 | \ | 55 | |
56 | if (pe->pdev) \ | 56 | if (pe->pdev) |
57 | strlcpy(pfix, dev_name(&pe->pdev->dev), \ | 57 | strlcpy(pfix, dev_name(&pe->pdev->dev), sizeof(pfix)); |
58 | sizeof(pfix)); \ | 58 | else |
59 | else \ | 59 | sprintf(pfix, "%04x:%02x ", |
60 | sprintf(pfix, "%04x:%02x ", \ | 60 | pci_domain_nr(pe->pbus), pe->pbus->number); |
61 | pci_domain_nr(pe->pbus), \ | 61 | |
62 | pe->pbus->number); \ | 62 | printk("%spci %s: [PE# %.3d] %pV", |
63 | printk(kern_level "pci %s: [PE# %.3d] %pV", \ | 63 | level, pfix, pe->pe_number, &vaf); |
64 | pfix, pe->pe_number, &vaf); \ | 64 | |
65 | \ | 65 | va_end(args); |
66 | va_end(args); \ | 66 | } |
67 | } \ | 67 | |
68 | 68 | #define pe_err(pe, fmt, ...) \ | |
69 | define_pe_printk_level(pe_err, KERN_ERR); | 69 | pe_level_printk(pe, KERN_ERR, fmt, ##__VA_ARGS__) |
70 | define_pe_printk_level(pe_warn, KERN_WARNING); | 70 | #define pe_warn(pe, fmt, ...) \ |
71 | define_pe_printk_level(pe_info, KERN_INFO); | 71 | pe_level_printk(pe, KERN_WARNING, fmt, ##__VA_ARGS__) |
72 | #define pe_info(pe, fmt, ...) \ | ||
73 | pe_level_printk(pe, KERN_INFO, fmt, ##__VA_ARGS__) | ||
72 | 74 | ||
73 | /* | 75 | /* |
74 | * stdcix is only supposed to be used in hypervisor real mode as per | 76 | * stdcix is only supposed to be used in hypervisor real mode as per |