diff options
author | Michael Brown | 2014-07-16 16:49:08 +0200 |
---|---|---|
committer | Michael Brown | 2014-07-16 16:49:08 +0200 |
commit | 9ce2b56af6b37a9916c779645c7c8b5c0fbdb881 (patch) | |
tree | 9d0520b3e52bfd578972b01ae8a60717457d220f /src/drivers/net/intelx.c | |
parent | [ioapi] Fail ioremap() when attempting to map a zero bus address (diff) | |
download | ipxe-9ce2b56af6b37a9916c779645c7c8b5c0fbdb881.tar.gz ipxe-9ce2b56af6b37a9916c779645c7c8b5c0fbdb881.tar.xz ipxe-9ce2b56af6b37a9916c779645c7c8b5c0fbdb881.zip |
[intel] Check for ioremap() failures
Debugged-by: Anton D. Kachalov <mouse@yandex-team.ru>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net/intelx.c')
-rw-r--r-- | src/drivers/net/intelx.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/drivers/net/intelx.c b/src/drivers/net/intelx.c index eb8b2a64..defea9da 100644 --- a/src/drivers/net/intelx.c +++ b/src/drivers/net/intelx.c @@ -400,6 +400,10 @@ static int intelx_probe ( struct pci_device *pci ) { /* Map registers */ intel->regs = ioremap ( pci->membase, INTEL_BAR_SIZE ); + if ( ! intel->regs ) { + rc = -ENODEV; + goto err_ioremap; + } /* Reset the NIC */ if ( ( rc = intelx_reset ( intel ) ) != 0 ) @@ -424,6 +428,7 @@ static int intelx_probe ( struct pci_device *pci ) { intelx_reset ( intel ); err_reset: iounmap ( intel->regs ); + err_ioremap: netdev_nullify ( netdev ); netdev_put ( netdev ); err_alloc: |