]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[vmxnet3] Check for ioremap() failures
authorMichael Brown <mcb30@ipxe.org>
Wed, 16 Jul 2014 14:51:38 +0000 (15:51 +0100)
committerMichael Brown <mcb30@ipxe.org>
Wed, 16 Jul 2014 14:51:38 +0000 (15:51 +0100)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/vmxnet3.c

index 9401c110e7075482bebc20270c41ed00ca0d7f78..57013fb9d5413e1b327bc063dcca42aadd310163 100644 (file)
@@ -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: