summaryrefslogtreecommitdiffstats
path: root/src/drivers/net/vmxnet3.c
diff options
context:
space:
mode:
authorMichael Brown2014-07-16 16:51:38 +0200
committerMichael Brown2014-07-16 16:51:38 +0200
commit7ab3035749137136cfada2f36e1f50c68e570913 (patch)
tree58adbb9f55bf87fc1d0d83025c736d856456e2e7 /src/drivers/net/vmxnet3.c
parent[realtek] Check for ioremap() failures (diff)
downloadipxe-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.c10
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: