@@ -1054,48 +1054,54 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1054
1054
1055
1055
err = pci_enable_device (pdev );
1056
1056
if (err )
1057
- return err ;
1057
+ goto err_out ;
1058
1058
1059
1059
/* this should always be supported */
1060
- if (pci_set_dma_mask (pdev , DMA_32BIT_MASK )) {
1060
+ err = pci_set_dma_mask (pdev , DMA_32BIT_MASK );
1061
+ if (err ) {
1061
1062
printk (KERN_ERR DRV_NAME "32-bit PCI DMA addresses"
1062
1063
"not supported by the card\n" );
1063
- return - ENODEV ;
1064
+ goto err_out ;
1064
1065
}
1065
- if (pci_set_consistent_dma_mask (pdev , DMA_32BIT_MASK )) {
1066
+ err = pci_set_consistent_dma_mask (pdev , DMA_32BIT_MASK );
1067
+ if (err ) {
1066
1068
printk (KERN_ERR DRV_NAME "32-bit PCI DMA addresses"
1067
1069
"not supported by the card\n" );
1068
- return - ENODEV ;
1070
+ goto err_out ;
1069
1071
}
1070
1072
1071
1073
/* IO Size check */
1072
1074
if (pci_resource_len (pdev , 0 ) < io_size ) {
1073
- printk (KERN_ERR "Insufficient PCI resources, aborting\n" );
1074
- return - EIO ;
1075
+ printk (KERN_ERR DRV_NAME "Insufficient PCI resources, aborting\n" );
1076
+ err = - EIO ;
1077
+ goto err_out ;
1075
1078
}
1076
1079
1077
1080
pioaddr = pci_resource_start (pdev , 0 ); /* IO map base address */
1078
1081
pci_set_master (pdev );
1079
1082
1080
1083
dev = alloc_etherdev (sizeof (struct r6040_private ));
1081
1084
if (!dev ) {
1082
- printk (KERN_ERR "Failed to allocate etherdev\n" );
1083
- return - ENOMEM ;
1085
+ printk (KERN_ERR DRV_NAME "Failed to allocate etherdev\n" );
1086
+ err = - ENOMEM ;
1087
+ goto err_out ;
1084
1088
}
1085
1089
SET_NETDEV_DEV (dev , & pdev -> dev );
1086
1090
lp = netdev_priv (dev );
1087
1091
1088
- if (pci_request_regions (pdev , DRV_NAME )) {
1092
+ err = pci_request_regions (pdev , DRV_NAME );
1093
+
1094
+ if (err ) {
1089
1095
printk (KERN_ERR DRV_NAME ": Failed to request PCI regions\n" );
1090
- err = - ENODEV ;
1091
- goto err_out_disable ;
1096
+ goto err_out_free_dev ;
1092
1097
}
1093
1098
1094
1099
ioaddr = pci_iomap (pdev , bar , io_size );
1095
1100
if (!ioaddr ) {
1096
1101
printk (KERN_ERR "ioremap failed for device %s\n" ,
1097
1102
pci_name (pdev ));
1098
- return - EIO ;
1103
+ err = - EIO ;
1104
+ goto err_out_free_res ;
1099
1105
}
1100
1106
1101
1107
/* Init system & device */
@@ -1147,17 +1153,17 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1147
1153
err = register_netdev (dev );
1148
1154
if (err ) {
1149
1155
printk (KERN_ERR DRV_NAME ": Failed to register net device\n" );
1150
- goto err_out_res ;
1156
+ goto err_out_unmap ;
1151
1157
}
1152
1158
return 0 ;
1153
1159
1154
- err_out_res :
1160
+ err_out_unmap :
1161
+ pci_iounmap (pdev , ioaddr );
1162
+ err_out_free_res :
1155
1163
pci_release_regions (pdev );
1156
- err_out_disable :
1157
- pci_disable_device (pdev );
1158
- pci_set_drvdata (pdev , NULL );
1164
+ err_out_free_dev :
1159
1165
free_netdev (dev );
1160
-
1166
+ err_out :
1161
1167
return err ;
1162
1168
}
1163
1169
0 commit comments