]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[intel] Check for ioremap() failures
authorMichael Brown <mcb30@ipxe.org>
Wed, 16 Jul 2014 14:49:08 +0000 (15:49 +0100)
committerMichael Brown <mcb30@ipxe.org>
Wed, 16 Jul 2014 14:49:08 +0000 (15:49 +0100)
Debugged-by: Anton D. Kachalov <mouse@yandex-team.ru>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/intel.c
src/drivers/net/intelx.c

index 771a4c82488644a4370499f6c9b08f932cb11611..f2ee4f4d247baeb6014b4ee1f469914f26030991 100644 (file)
@@ -819,6 +819,10 @@ static int intel_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 = intel_reset ( intel ) ) != 0 )
@@ -843,6 +847,7 @@ static int intel_probe ( struct pci_device *pci ) {
        intel_reset ( intel );
  err_reset:
        iounmap ( intel->regs );
+ err_ioremap:
        netdev_nullify ( netdev );
        netdev_put ( netdev );
  err_alloc:
index eb8b2a6402079faffc687bafe3a39f6869cb76df..defea9dac780d9de630a5ab20b8bfab1dc8c8866 100644 (file)
@@ -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: