summaryrefslogtreecommitdiffstats
path: root/src/drivers/net/intelx.c
diff options
context:
space:
mode:
authorMichael Brown2014-07-16 16:49:08 +0200
committerMichael Brown2014-07-16 16:49:08 +0200
commit9ce2b56af6b37a9916c779645c7c8b5c0fbdb881 (patch)
tree9d0520b3e52bfd578972b01ae8a60717457d220f /src/drivers/net/intelx.c
parent[ioapi] Fail ioremap() when attempting to map a zero bus address (diff)
downloadipxe-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.c5
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: