|
@@ -1261,25 +1261,32 @@ static int __devinit igb_probe(struct pci_dev *pdev,
|
|
|
int i;
|
|
|
unsigned char mac_addr[ETH_ALEN];
|
|
|
|
|
|
- if (num_vfs)
|
|
|
+ if (num_vfs) {
|
|
|
adapter->vf_data = kcalloc(num_vfs,
|
|
|
sizeof(struct vf_data_storage),
|
|
|
GFP_KERNEL);
|
|
|
- if (!adapter->vf_data) {
|
|
|
- dev_err(&pdev->dev, "Could not allocate VF private "
|
|
|
- "data - IOV enable failed\n");
|
|
|
- } else {
|
|
|
- err = pci_enable_sriov(pdev, num_vfs);
|
|
|
- if (!err) {
|
|
|
- adapter->vfs_allocated_count = num_vfs;
|
|
|
- dev_info(&pdev->dev, "%d vfs allocated\n", num_vfs);
|
|
|
- for (i = 0; i < adapter->vfs_allocated_count; i++) {
|
|
|
- random_ether_addr(mac_addr);
|
|
|
- igb_set_vf_mac(adapter, i, mac_addr);
|
|
|
- }
|
|
|
+ if (!adapter->vf_data) {
|
|
|
+ dev_err(&pdev->dev,
|
|
|
+ "Could not allocate VF private data - "
|
|
|
+ "IOV enable failed\n");
|
|
|
} else {
|
|
|
- kfree(adapter->vf_data);
|
|
|
- adapter->vf_data = NULL;
|
|
|
+ err = pci_enable_sriov(pdev, num_vfs);
|
|
|
+ if (!err) {
|
|
|
+ adapter->vfs_allocated_count = num_vfs;
|
|
|
+ dev_info(&pdev->dev,
|
|
|
+ "%d vfs allocated\n",
|
|
|
+ num_vfs);
|
|
|
+ for (i = 0;
|
|
|
+ i < adapter->vfs_allocated_count;
|
|
|
+ i++) {
|
|
|
+ random_ether_addr(mac_addr);
|
|
|
+ igb_set_vf_mac(adapter, i,
|
|
|
+ mac_addr);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ kfree(adapter->vf_data);
|
|
|
+ adapter->vf_data = NULL;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|