mirror of https://github.com/ipxe/ipxe.git
[vmxnet3] Check for ioremap() failures
Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/20/merge
parent
857e4f56a7
commit
7ab3035749
|
@ -602,8 +602,16 @@ static int vmxnet3_probe ( struct pci_device *pci ) {
|
||||||
/* Map PCI BARs */
|
/* Map PCI BARs */
|
||||||
vmxnet->pt = ioremap ( pci_bar_start ( pci, VMXNET3_PT_BAR ),
|
vmxnet->pt = ioremap ( pci_bar_start ( pci, VMXNET3_PT_BAR ),
|
||||||
VMXNET3_PT_LEN );
|
VMXNET3_PT_LEN );
|
||||||
|
if ( ! vmxnet->pt ) {
|
||||||
|
rc = -ENODEV;
|
||||||
|
goto err_ioremap_pt;
|
||||||
|
}
|
||||||
vmxnet->vd = ioremap ( pci_bar_start ( pci, VMXNET3_VD_BAR ),
|
vmxnet->vd = ioremap ( pci_bar_start ( pci, VMXNET3_VD_BAR ),
|
||||||
VMXNET3_VD_LEN );
|
VMXNET3_VD_LEN );
|
||||||
|
if ( ! vmxnet->vd ) {
|
||||||
|
rc = -ENODEV;
|
||||||
|
goto err_ioremap_vd;
|
||||||
|
}
|
||||||
|
|
||||||
/* Version check */
|
/* Version check */
|
||||||
if ( ( rc = vmxnet3_check_version ( vmxnet ) ) != 0 )
|
if ( ( rc = vmxnet3_check_version ( vmxnet ) ) != 0 )
|
||||||
|
@ -633,7 +641,9 @@ static int vmxnet3_probe ( struct pci_device *pci ) {
|
||||||
err_reset:
|
err_reset:
|
||||||
err_check_version:
|
err_check_version:
|
||||||
iounmap ( vmxnet->vd );
|
iounmap ( vmxnet->vd );
|
||||||
|
err_ioremap_vd:
|
||||||
iounmap ( vmxnet->pt );
|
iounmap ( vmxnet->pt );
|
||||||
|
err_ioremap_pt:
|
||||||
netdev_nullify ( netdev );
|
netdev_nullify ( netdev );
|
||||||
netdev_put ( netdev );
|
netdev_put ( netdev );
|
||||||
err_alloc_etherdev:
|
err_alloc_etherdev:
|
||||||
|
|
Loading…
Reference in New Issue