pci: Fix printk warnings in probe.c
PATCH 1/1 pci: Fix printk warnings in probe.c
From: Johann Felix Soden <[email protected]>
Fix printk format warnings:drivers/pci/probe.c: In function 'pci_read_bridge_bases':drivers/pci/probe.c:386: warning: format '%llx' expects type 'long long unsigned int', but argument 3 has type 'resource_size_t' drivers/pci/probe.c:386: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t' drivers/pci/probe.c:398: warning: format '%llx' expects type 'long long unsigned int', but argument 3 has type 'resource_size_t' drivers/pci/probe.c:398: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t' drivers/pci/probe.c:434: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t' drivers/pci/probe.c:434: warning: format '%llx' expects type 'long long unsigned int', but argument 5 has type 'resource_size_t'
--- drivers/pci/probe.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-)
drivers/pci/probe.c +8 -3
@@ -383,7 +383,9 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child) res->start = base;if (!res->end) res->end = limit +0xfff ; -printk (KERN_INFO "PCI: bridge %s io port: [%llx, %llx]\n" ,pci_name (dev), res->start, res->end); +printk (KERN_INFO "PCI: bridge %s io port: [%llx, %llx]\n" , +pci_name (dev), (unsigned long long ) res->start, + (unsigned long long ) res->end); } res = child->resource[1 ];
@@ -395,7 +397,8 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child) res->flags = (mem_base_lo &PCI_MEMORY_RANGE_TYPE_MASK ) |IORESOURCE_MEM ; res->start = base; res->end = limit +0xfffff ; -printk (KERN_INFO "PCI: bridge %s 32bit mmio: [%llx, %llx]\n" ,pci_name (dev), res->start, res->end); +printk (KERN_INFO "PCI: bridge %s 32bit mmio: [%llx, %llx]\n" ,pci_name (dev), + (unsigned long long ) res->start, (unsigned long long ) res->end); } res = child->resource[2 ];
@@ -431,7 +434,9 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child) res->flags = (mem_base_lo &PCI_MEMORY_RANGE_TYPE_MASK ) |IORESOURCE_MEM |IORESOURCE_PREFETCH ; res->start = base; res->end = limit +0xfffff ; -printk (KERN_INFO "PCI: bridge %s %sbit mmio pref: [%llx, %llx]\n" ,pci_name (dev), (res->flags &PCI_PREF_RANGE_TYPE_64 )?"64" :"32" ,res->start, res->end); +printk (KERN_INFO "PCI: bridge %s %sbit mmio pref: [%llx, %llx]\n" , +pci_name (dev), (res->flags &PCI_PREF_RANGE_TYPE_64 ) ?"64" :"32" , + (unsigned long long ) res->start, (unsigned long long ) res->end); } }
Signature · 1 line
1.5.6.3
Quoted 17 lines · Johann Felix Soden
From: Johann Felix Soden <[email protected]>
Fix printk format warnings:
drivers/pci/probe.c: In function 'pci_read_bridge_bases':drivers/pci/probe.c:386: warning: format '%llx' expects type 'long long unsigned int', but argument 3 has type 'resource_size_t'drivers/pci/probe.c:386: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t'drivers/pci/probe.c:398: warning: format '%llx' expects type 'long long unsigned int', but argument 3 has type 'resource_size_t'drivers/pci/probe.c:398: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t'drivers/pci/probe.c:434: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t'drivers/pci/probe.c:434: warning: format '%llx' expects type 'long long unsigned int', but argument 5 has type 'resource_size_t'
Quoted 1 line
Signed-off-by Johann Felix Soden <[email protected]>
I put both of these resource size fixes into my linux-next branch, thanks.
Jesse
Quoted 21 lines · Johann Felix Soden
From: Johann Felix Soden <[email protected]>
Fix printk format warnings:
drivers/pci/probe.c: In function 'pci_read_bridge_bases':drivers/pci/probe.c:386: warning: format '%llx' expects type 'long long unsigned int', but argument 3 has type 'resource_size_t'drivers/pci/probe.c:386: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t'drivers/pci/probe.c:398: warning: format '%llx' expects type 'long long unsigned int', but argument 3 has type 'resource_size_t'drivers/pci/probe.c:398: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t'drivers/pci/probe.c:434: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t'drivers/pci/probe.c:434: warning: format '%llx' expects type 'long long unsigned int', but argument 5 has type 'resource_size_t'Signed-off-by Johann Felix Soden <[email protected]>--- drivers/pci/probe.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-)drivers/pci/probe.c +0
-0
drivers/pci/probe.c void __devinit pci_read_bridge_bases(struct pci_bus *child) · line 388
Quoted 7 lines
drivers/pci/probe.c +3
-1@@ -383,7 +383,9 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child) res->start = base;if (!res->end) res->end = limit +0xfff ; -printk (KERN_INFO "PCI: bridge %s io port: [%llx, %llx]\n" ,pci_name (dev), res->start, res->end); +printk (KERN_INFO "PCI: bridge %s io port: [%llx, %llx]\n" , +pci_name (dev), (unsigned long long ) res->start, + (unsigned long long ) res->end);
Thanks for fixing the warnings. I wish you'd changed these at the same time to use dev_info() and "[%#llx-%#llx]" like the rest of PCI.
I confess I don't understand where the ioport, mmio, and prefetchable mmio resources are coming from here, but before your patch, these printed values that look like junk on an HP nw8000:
PCI: bridge 0000:00:01.0 io port: [2fff00002000, ef92eae800000300]
PCI: bridge 0000:00:01.0 32bit mmio: [904fffff90400000, ef92eae800000300]
PCI: bridge 0000:00:01.0 32bit mmio pref: [9fffffff98000000, ef92eae8]
I just returned the laptop, or I'd double-check to see whether your casts fixed this.
Quoted 37 lines · Bjorn Helgaas
Quoted 21 lines · Johann Felix Soden
From: Johann Felix Soden <[email protected]>
Fix printk format warnings:
drivers/pci/probe.c: In function 'pci_read_bridge_bases':drivers/pci/probe.c:386: warning: format '%llx' expects type 'long long unsigned int', but argument 3 has type 'resource_size_t'drivers/pci/probe.c:386: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t'drivers/pci/probe.c:398: warning: format '%llx' expects type 'long long unsigned int', but argument 3 has type 'resource_size_t'drivers/pci/probe.c:398: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t'drivers/pci/probe.c:434: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t'drivers/pci/probe.c:434: warning: format '%llx' expects type 'long long unsigned int', but argument 5 has type 'resource_size_t'Signed-off-by Johann Felix Soden <[email protected]>--- drivers/pci/probe.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-)drivers/pci/probe.c +0
-0drivers/pci/probe.c void __devinit pci_read_bridge_bases(struct pci_bus *child) · line 388
Quoted 7 lines
drivers/pci/probe.c +3
-1@@ -383,7 +383,9 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child) res->start = base;if (!res->end) res->end = limit +0xfff ; -printk (KERN_INFO "PCI: bridge %s io port: [%llx, %llx]\n" ,pci_name (dev), res->start, res->end); +printk (KERN_INFO "PCI: bridge %s io port: [%llx, %llx]\n" , +pci_name (dev), (unsigned long long ) res->start, + (unsigned long long ) res->end);Thanks for fixing the warnings. I wish you'd changed these at the same time to use
dev_info()and "[%#llx-%#llx]" like the rest of PCI.I confess I don't understand where the ioport, mmio, and prefetchable mmio resources are coming from here, but before your patch, these printed values that look like junk on an HP nw8000:
Quoted 6 lines
PCI: bridge 0000:00:01.0 io port: [
2fff00002000,ef92eae800000300]
PCI: bridge 0000:00:01.0 32bit mmio: [904fffff90400000,ef92eae800000300]
PCI: bridge 0000:00:01.0 32bit mmio pref: [9fffffff98000000,ef92eae8]I just returned the laptop, or I'd double-check to see whether your casts fixed this.
you must use 32 bit with !64bit_resource..
can we just make resource_t to be ull to 32bit unconditionally?
YH