[tip:x86/cleanups] x86, quirks: Shut-up a long-standing gcc warning

2013-04-02 Thread tip-bot for Borislav Petkov
Commit-ID:  73f460408ca9b6e917f32c89c9a85c586f17f732
Gitweb: http://git.kernel.org/tip/73f460408ca9b6e917f32c89c9a85c586f17f732
Author: Borislav Petkov 
AuthorDate: Mon, 4 Mar 2013 21:16:20 +0100
Committer:  H. Peter Anvin 
CommitDate: Tue, 2 Apr 2013 16:03:34 -0700

x86, quirks: Shut-up a long-standing gcc warning

So gcc nags about those since forever in randconfig builds.

arch/x86/kernel/quirks.c: In function ‘ati_ixp4x0_rev’:
arch/x86/kernel/quirks.c:361:4: warning: ‘b’ is used uninitialized in this 
function [-Wuninitialized]
arch/x86/kernel/quirks.c: In function ‘ati_force_enable_hpet’:
arch/x86/kernel/quirks.c:367:4: warning: ‘d’ may be used uninitialized in this 
function [-Wuninitialized]
arch/x86/kernel/quirks.c:357:6: note: ‘d’ was declared here
arch/x86/kernel/quirks.c:407:21: warning: ‘val’ may be used uninitialized in 
this function [-Wuninitialized]

This function quirk is called on a SB400 chipset only anyway so the
distant possibility of a PCI access failing becomes almost impossible
there. Even if it did fail, then something else more serious is the
problem.

So zero-out the variables so that gcc shuts up but do a coarse check
on the PCI accesses at the end and signal whether any of them had an
error. They shouldn't but in case they do, we'll at least know and we
can address it.

Signed-off-by: Borislav Petkov 
Link: http://lkml.kernel.org/r/1362428180-8865-6-git-send-email...@alien8.de
Signed-off-by: H. Peter Anvin 
---
 arch/x86/kernel/quirks.c | 18 +++---
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c
index 26ee48a..04ee1e2 100644
--- a/arch/x86/kernel/quirks.c
+++ b/arch/x86/kernel/quirks.c
@@ -354,18 +354,22 @@ static void ati_force_hpet_resume(void)
 
 static u32 ati_ixp4x0_rev(struct pci_dev *dev)
 {
-   u32 d;
-   u8  b;
+   int err = 0;
+   u32 d = 0;
+   u8  b = 0;
 
-   pci_read_config_byte(dev, 0xac, );
+   err = pci_read_config_byte(dev, 0xac, );
b &= ~(1<<5);
-   pci_write_config_byte(dev, 0xac, b);
-   pci_read_config_dword(dev, 0x70, );
+   err |= pci_write_config_byte(dev, 0xac, b);
+   err |= pci_read_config_dword(dev, 0x70, );
d |= 1<<8;
-   pci_write_config_dword(dev, 0x70, d);
-   pci_read_config_dword(dev, 0x8, );
+   err |= pci_write_config_dword(dev, 0x70, d);
+   err |= pci_read_config_dword(dev, 0x8, );
d &= 0xff;
dev_printk(KERN_DEBUG, >dev, "SB4X0 revision 0x%x\n", d);
+
+   WARN_ON_ONCE(err);
+
return d;
 }
 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[tip:x86/cleanups] x86, quirks: Shut-up a long-standing gcc warning

2013-04-02 Thread tip-bot for Borislav Petkov
Commit-ID:  73f460408ca9b6e917f32c89c9a85c586f17f732
Gitweb: http://git.kernel.org/tip/73f460408ca9b6e917f32c89c9a85c586f17f732
Author: Borislav Petkov b...@suse.de
AuthorDate: Mon, 4 Mar 2013 21:16:20 +0100
Committer:  H. Peter Anvin h...@linux.intel.com
CommitDate: Tue, 2 Apr 2013 16:03:34 -0700

x86, quirks: Shut-up a long-standing gcc warning

So gcc nags about those since forever in randconfig builds.

arch/x86/kernel/quirks.c: In function ‘ati_ixp4x0_rev’:
arch/x86/kernel/quirks.c:361:4: warning: ‘b’ is used uninitialized in this 
function [-Wuninitialized]
arch/x86/kernel/quirks.c: In function ‘ati_force_enable_hpet’:
arch/x86/kernel/quirks.c:367:4: warning: ‘d’ may be used uninitialized in this 
function [-Wuninitialized]
arch/x86/kernel/quirks.c:357:6: note: ‘d’ was declared here
arch/x86/kernel/quirks.c:407:21: warning: ‘val’ may be used uninitialized in 
this function [-Wuninitialized]

This function quirk is called on a SB400 chipset only anyway so the
distant possibility of a PCI access failing becomes almost impossible
there. Even if it did fail, then something else more serious is the
problem.

So zero-out the variables so that gcc shuts up but do a coarse check
on the PCI accesses at the end and signal whether any of them had an
error. They shouldn't but in case they do, we'll at least know and we
can address it.

Signed-off-by: Borislav Petkov b...@suse.de
Link: http://lkml.kernel.org/r/1362428180-8865-6-git-send-email...@alien8.de
Signed-off-by: H. Peter Anvin h...@linux.intel.com
---
 arch/x86/kernel/quirks.c | 18 +++---
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c
index 26ee48a..04ee1e2 100644
--- a/arch/x86/kernel/quirks.c
+++ b/arch/x86/kernel/quirks.c
@@ -354,18 +354,22 @@ static void ati_force_hpet_resume(void)
 
 static u32 ati_ixp4x0_rev(struct pci_dev *dev)
 {
-   u32 d;
-   u8  b;
+   int err = 0;
+   u32 d = 0;
+   u8  b = 0;
 
-   pci_read_config_byte(dev, 0xac, b);
+   err = pci_read_config_byte(dev, 0xac, b);
b = ~(15);
-   pci_write_config_byte(dev, 0xac, b);
-   pci_read_config_dword(dev, 0x70, d);
+   err |= pci_write_config_byte(dev, 0xac, b);
+   err |= pci_read_config_dword(dev, 0x70, d);
d |= 18;
-   pci_write_config_dword(dev, 0x70, d);
-   pci_read_config_dword(dev, 0x8, d);
+   err |= pci_write_config_dword(dev, 0x70, d);
+   err |= pci_read_config_dword(dev, 0x8, d);
d = 0xff;
dev_printk(KERN_DEBUG, dev-dev, SB4X0 revision 0x%x\n, d);
+
+   WARN_ON_ONCE(err);
+
return d;
 }
 
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/