|
@@ -3000,6 +3000,16 @@ static int arbel_probe ( struct pci_device *pci ) {
|
3000
|
3000
|
pci_set_drvdata ( pci, arbel );
|
3001
|
3001
|
arbel->pci = pci;
|
3002
|
3002
|
|
|
3003
|
+ /* Fix up PCI device */
|
|
3004
|
+ adjust_pci_device ( pci );
|
|
3005
|
+
|
|
3006
|
+ /* Map PCI BARs */
|
|
3007
|
+ arbel->config = ioremap ( pci_bar_start ( pci, ARBEL_PCI_CONFIG_BAR ),
|
|
3008
|
+ ARBEL_PCI_CONFIG_BAR_SIZE );
|
|
3009
|
+ arbel->uar = ioremap ( ( pci_bar_start ( pci, ARBEL_PCI_UAR_BAR ) +
|
|
3010
|
+ ARBEL_PCI_UAR_IDX * ARBEL_PCI_UAR_SIZE ),
|
|
3011
|
+ ARBEL_PCI_UAR_SIZE );
|
|
3012
|
+
|
3003
|
3013
|
/* Allocate Infiniband devices */
|
3004
|
3014
|
for ( i = 0 ; i < ARBEL_NUM_PORTS ; i++ ) {
|
3005
|
3015
|
ibdev = alloc_ibdev ( 0 );
|
|
@@ -3014,16 +3024,6 @@ static int arbel_probe ( struct pci_device *pci ) {
|
3014
|
3024
|
ib_set_drvdata ( ibdev, arbel );
|
3015
|
3025
|
}
|
3016
|
3026
|
|
3017
|
|
- /* Fix up PCI device */
|
3018
|
|
- adjust_pci_device ( pci );
|
3019
|
|
-
|
3020
|
|
- /* Get PCI BARs */
|
3021
|
|
- arbel->config = ioremap ( pci_bar_start ( pci, ARBEL_PCI_CONFIG_BAR ),
|
3022
|
|
- ARBEL_PCI_CONFIG_BAR_SIZE );
|
3023
|
|
- arbel->uar = ioremap ( ( pci_bar_start ( pci, ARBEL_PCI_UAR_BAR ) +
|
3024
|
|
- ARBEL_PCI_UAR_IDX * ARBEL_PCI_UAR_SIZE ),
|
3025
|
|
- ARBEL_PCI_UAR_SIZE );
|
3026
|
|
-
|
3027
|
3027
|
/* Reset device */
|
3028
|
3028
|
arbel_reset ( arbel );
|
3029
|
3029
|
|
|
@@ -3072,6 +3072,8 @@ static int arbel_probe ( struct pci_device *pci ) {
|
3072
|
3072
|
err_alloc_ibdev:
|
3073
|
3073
|
for ( i-- ; i >= 0 ; i-- )
|
3074
|
3074
|
ibdev_put ( arbel->ibdev[i] );
|
|
3075
|
+ iounmap ( arbel->uar );
|
|
3076
|
+ iounmap ( arbel->config );
|
3075
|
3077
|
arbel_free ( arbel );
|
3076
|
3078
|
err_alloc:
|
3077
|
3079
|
return rc;
|
|
@@ -3090,6 +3092,8 @@ static void arbel_remove ( struct pci_device *pci ) {
|
3090
|
3092
|
unregister_ibdev ( arbel->ibdev[i] );
|
3091
|
3093
|
for ( i = ( ARBEL_NUM_PORTS - 1 ) ; i >= 0 ; i-- )
|
3092
|
3094
|
ibdev_put ( arbel->ibdev[i] );
|
|
3095
|
+ iounmap ( arbel->uar );
|
|
3096
|
+ iounmap ( arbel->config );
|
3093
|
3097
|
arbel_free ( arbel );
|
3094
|
3098
|
}
|
3095
|
3099
|
|