diff options
author | Simon Glass | 2015-08-12 20:09:30 -0600 |
---|---|---|
committer | Simon Glass | 2015-08-14 09:50:13 -0600 |
commit | 052e34b363fdd4b20be099c3e1405a30988b3a5a (patch) | |
tree | 1f4f7d2a19956d343c754726618d8a05425ca734 /arch/x86/cpu/pci.c | |
parent | ecf674b772713837e1d36f9c70ee319d7753a895 (diff) |
x86: Return -1 when reading a PCI config register fails
This can fail for internal reasons, so return a sensible value rather than
a random one.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/x86/cpu/pci.c')
-rw-r--r-- | arch/x86/cpu/pci.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/x86/cpu/pci.c b/arch/x86/cpu/pci.c index f8da08035e6..d2ec45a2403 100644 --- a/arch/x86/cpu/pci.c +++ b/arch/x86/cpu/pci.c @@ -76,7 +76,8 @@ unsigned int x86_pci_read_config8(pci_dev_t dev, unsigned where) { uint8_t value; - pci_hose_read_config_byte(get_hose(), dev, where, &value); + if (pci_hose_read_config_byte(get_hose(), dev, where, &value)) + return -1U; return value; } @@ -85,7 +86,8 @@ unsigned int x86_pci_read_config16(pci_dev_t dev, unsigned where) { uint16_t value; - pci_hose_read_config_word(get_hose(), dev, where, &value); + if (pci_hose_read_config_word(get_hose(), dev, where, &value)) + return -1U; return value; } @@ -94,7 +96,8 @@ unsigned int x86_pci_read_config32(pci_dev_t dev, unsigned where) { uint32_t value; - pci_hose_read_config_dword(get_hose(), dev, where, &value); + if (pci_hose_read_config_dword(get_hose(), dev, where, &value)) + return -1U; return value; } |