aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/powernv/pci-ioda.c
diff options
context:
space:
mode:
authorJoe Perches <joe@perches.com>2014-09-21 13:55:06 -0400
committerMichael Ellerman <mpe@ellerman.id.au>2014-09-25 09:14:57 -0400
commit6d31c2fa0eee89e31ca48a66ccfaf71ef545c474 (patch)
treea30a1bc22d1d24e265fb81dbfa9184df1e42af53 /arch/powerpc/platforms/powernv/pci-ioda.c
parent45eb47242df87acbf26c0c2c0a7ab677661153c6 (diff)
powerpc: pci-ioda: Use a single function to emit logging messages
No need for 3 functions when a single one will do. Modify the function declaring macros to call the single function. Reduces object code size a little: $ size arch/powerpc/platforms/powernv/pci-ioda.o* text data bss dec hex filename 22303 1073 6680 30056 7568 arch/powerpc/platforms/powernv/pci-ioda.o.new 22840 1121 6776 30737 7811 arch/powerpc/platforms/powernv/pci-ioda.o.old Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/platforms/powernv/pci-ioda.c')
-rw-r--r--arch/powerpc/platforms/powernv/pci-ioda.c58
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) \ 44static void pe_level_printk(const struct pnv_ioda_pe *pe, const char *level,
45static 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, ...) \
69define_pe_printk_level(pe_err, KERN_ERR); 69 pe_level_printk(pe, KERN_ERR, fmt, ##__VA_ARGS__)
70define_pe_printk_level(pe_warn, KERN_WARNING); 70#define pe_warn(pe, fmt, ...) \
71define_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