summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinya Kuribayashi <shinya.kuribayashi@necel.com>2007-08-17 12:43:44 +0900
committerWolfgang Denk <wd@denx.de>2007-08-18 21:38:45 +0200
commit815b5bd5b18569917c3e04b9757511e6ed23b9f6 (patch)
tree0e3790756853324a24fd2f6eba2cecfc28ad8a70
parentd35b508a55508535b6e8445b718585d27df733d3 (diff)
downloadu-boot-imx-815b5bd5b18569917c3e04b9757511e6ed23b9f6.zip
u-boot-imx-815b5bd5b18569917c3e04b9757511e6ed23b9f6.tar.gz
u-boot-imx-815b5bd5b18569917c3e04b9757511e6ed23b9f6.tar.bz2
PCI_READ_VIA_DWORD_OP: Fix *val uninitialized bug
This patch has been sent on: - 6 Jun 2007 Many users of PCI config read routines tend to ignore the function ret value, and are only concerned about the contents of *val. Based on this, pci_hose_read_config_{byte,word}_via_dword should initialize the *val on dword read error. Without this fix, for example, we'll go on scanning bus with vendor or header_type uninitialized. This brings many unnecessary config trials. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com>
-rw-r--r--drivers/pci.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/pci.c b/drivers/pci.c
index 4158919..50ca6b0 100644
--- a/drivers/pci.c
+++ b/drivers/pci.c
@@ -82,8 +82,10 @@ int pci_hose_read_config_##size##_via_dword(struct pci_controller *hose,\
{ \
u32 val32; \
\
- if (pci_hose_read_config_dword(hose, dev, offset & 0xfc, &val32) < 0)\
+ if (pci_hose_read_config_dword(hose, dev, offset & 0xfc, &val32) < 0) { \
+ *val = -1; \
return -1; \
+ } \
\
*val = (val32 >> ((offset & (int)off_mask) * 8)); \
\