diff options
author | Michael Brown | 2014-07-16 16:51:38 +0200 |
---|---|---|
committer | Michael Brown | 2014-07-16 16:51:38 +0200 |
commit | 7ab3035749137136cfada2f36e1f50c68e570913 (patch) | |
tree | 58adbb9f55bf87fc1d0d83025c736d856456e2e7 /src/drivers/net/vmxnet3.c | |
parent | [realtek] Check for ioremap() failures (diff) | |
download | ipxe-7ab3035749137136cfada2f36e1f50c68e570913.tar.gz ipxe-7ab3035749137136cfada2f36e1f50c68e570913.tar.xz ipxe-7ab3035749137136cfada2f36e1f50c68e570913.zip |
[vmxnet3] Check for ioremap() failures
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net/vmxnet3.c')
-rw-r--r-- | src/drivers/net/vmxnet3.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/drivers/net/vmxnet3.c b/src/drivers/net/vmxnet3.c index 9401c110..57013fb9 100644 --- a/src/drivers/net/vmxnet3.c +++ b/src/drivers/net/vmxnet3.c @@ -602,8 +602,16 @@ static int vmxnet3_probe ( struct pci_device *pci ) { /* Map PCI BARs */ vmxnet->pt = ioremap ( pci_bar_start ( pci, VMXNET3_PT_BAR ), VMXNET3_PT_LEN ); + if ( ! vmxnet->pt ) { + rc = -ENODEV; + goto err_ioremap_pt; + } vmxnet->vd = ioremap ( pci_bar_start ( pci, VMXNET3_VD_BAR ), VMXNET3_VD_LEN ); + if ( ! vmxnet->vd ) { + rc = -ENODEV; + goto err_ioremap_vd; + } /* Version check */ if ( ( rc = vmxnet3_check_version ( vmxnet ) ) != 0 ) @@ -633,7 +641,9 @@ static int vmxnet3_probe ( struct pci_device *pci ) { err_reset: err_check_version: iounmap ( vmxnet->vd ); + err_ioremap_vd: iounmap ( vmxnet->pt ); + err_ioremap_pt: netdev_nullify ( netdev ); netdev_put ( netdev ); err_alloc_etherdev: |