diff options
Diffstat (limited to 'drivers/net/ethernet/sun/niu.c')
| -rw-r--r-- | drivers/net/ethernet/sun/niu.c | 23 | 
1 files changed, 9 insertions, 14 deletions
diff --git a/drivers/net/ethernet/sun/niu.c b/drivers/net/ethernet/sun/niu.c index f28460ce24a..79606f47a08 100644 --- a/drivers/net/ethernet/sun/niu.c +++ b/drivers/net/ethernet/sun/niu.c @@ -3493,10 +3493,12 @@ static int niu_process_rx_pkt(struct napi_struct *napi, struct niu *np,  	rh = (struct rx_pkt_hdr1 *) skb->data;  	if (np->dev->features & NETIF_F_RXHASH) -		skb->rxhash = ((u32)rh->hashval2_0 << 24 | -			       (u32)rh->hashval2_1 << 16 | -			       (u32)rh->hashval1_1 << 8 | -			       (u32)rh->hashval1_2 << 0); +		skb_set_hash(skb, +			     ((u32)rh->hashval2_0 << 24 | +			      (u32)rh->hashval2_1 << 16 | +			      (u32)rh->hashval1_1 << 8 | +			      (u32)rh->hashval1_2 << 0), +			     PKT_HASH_TYPE_L3);  	skb_pull(skb, sizeof(*rh));  	rp->rx_packets++; @@ -9039,7 +9041,7 @@ static void niu_try_msix(struct niu *np, u8 *ldg_num_map)  	struct msix_entry msi_vec[NIU_NUM_LDG];  	struct niu_parent *parent = np->parent;  	struct pci_dev *pdev = np->pdev; -	int i, num_irqs, err; +	int i, num_irqs;  	u8 first_ldg;  	first_ldg = (NIU_NUM_LDG / parent->num_ports) * np->port; @@ -9051,21 +9053,16 @@ static void niu_try_msix(struct niu *np, u8 *ldg_num_map)  		    (np->port == 0 ? 3 : 1));  	BUG_ON(num_irqs > (NIU_NUM_LDG / parent->num_ports)); -retry:  	for (i = 0; i < num_irqs; i++) {  		msi_vec[i].vector = 0;  		msi_vec[i].entry = i;  	} -	err = pci_enable_msix(pdev, msi_vec, num_irqs); -	if (err < 0) { +	num_irqs = pci_enable_msix_range(pdev, msi_vec, 1, num_irqs); +	if (num_irqs < 0) {  		np->flags &= ~NIU_FLAGS_MSIX;  		return;  	} -	if (err > 0) { -		num_irqs = err; -		goto retry; -	}  	np->flags |= NIU_FLAGS_MSIX;  	for (i = 0; i < num_irqs; i++) @@ -9875,7 +9872,6 @@ err_out_free_res:  err_out_disable_pdev:  	pci_disable_device(pdev); -	pci_set_drvdata(pdev, NULL);  	return err;  } @@ -9900,7 +9896,6 @@ static void niu_pci_remove_one(struct pci_dev *pdev)  		free_netdev(dev);  		pci_release_regions(pdev);  		pci_disable_device(pdev); -		pci_set_drvdata(pdev, NULL);  	}  }  | 
