summaryrefslogtreecommitdiffstats
path: root/src/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers')
-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 9401c110e..57013fb9d 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: