diff options
| author | Patrick McHardy <kaber@trash.net> | 2010-05-10 18:39:28 +0200 | 
|---|---|---|
| committer | Patrick McHardy <kaber@trash.net> | 2010-05-10 18:39:28 +0200 | 
| commit | 1e4b1057121bc756b91758a434b504d2010f6088 (patch) | |
| tree | b016cf2c728289c7e36d9e4e488f30ab0bd0ae6e /drivers/net/r8169.c | |
| parent | 3b254c54ec46eb022cb26ee6ab37fae23f5f7d6a (diff) | |
| parent | 3ee943728fff536edaf8f59faa58aaa1aa7366e3 (diff) | |
| download | olio-linux-3.10-1e4b1057121bc756b91758a434b504d2010f6088.tar.xz olio-linux-3.10-1e4b1057121bc756b91758a434b504d2010f6088.zip  | |
Merge branch 'master' of /repos/git/net-next-2.6
Conflicts:
	net/bridge/br_device.c
	net/bridge/br_forward.c
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'drivers/net/r8169.c')
| -rw-r--r-- | drivers/net/r8169.c | 32 | 
1 files changed, 18 insertions, 14 deletions
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index 340da3915b9..217e709bda3 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c @@ -2775,6 +2775,7 @@ static void rtl8169_release_board(struct pci_dev *pdev, struct net_device *dev,  {  	iounmap(ioaddr);  	pci_release_regions(pdev); +	pci_clear_mwi(pdev);  	pci_disable_device(pdev);  	free_netdev(dev);  } @@ -2841,8 +2842,13 @@ static void rtl_rar_set(struct rtl8169_private *tp, u8 *addr)  	spin_lock_irq(&tp->lock);  	RTL_W8(Cfg9346, Cfg9346_Unlock); +  	RTL_W32(MAC4, high); +	RTL_R32(MAC4); +  	RTL_W32(MAC0, low); +	RTL_R32(MAC0); +  	RTL_W8(Cfg9346, Cfg9346_Lock);  	spin_unlock_irq(&tp->lock); @@ -3030,9 +3036,8 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)  		goto err_out_free_dev_1;  	} -	rc = pci_set_mwi(pdev); -	if (rc < 0) -		goto err_out_disable_2; +	if (pci_set_mwi(pdev) < 0) +		netif_info(tp, probe, dev, "Mem-Wr-Inval unavailable\n");  	/* make sure PCI base addr 1 is MMIO */  	if (!(pci_resource_flags(pdev, region) & IORESOURCE_MEM)) { @@ -3040,7 +3045,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)  			  "region #%d not an MMIO resource, aborting\n",  			  region);  		rc = -ENODEV; -		goto err_out_mwi_3; +		goto err_out_mwi_2;  	}  	/* check for weird/broken PCI region reporting */ @@ -3048,13 +3053,13 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)  		netif_err(tp, probe, dev,  			  "Invalid PCI region size(s), aborting\n");  		rc = -ENODEV; -		goto err_out_mwi_3; +		goto err_out_mwi_2;  	}  	rc = pci_request_regions(pdev, MODULENAME);  	if (rc < 0) {  		netif_err(tp, probe, dev, "could not request regions\n"); -		goto err_out_mwi_3; +		goto err_out_mwi_2;  	}  	tp->cp_cmd = PCIMulRW | RxChkSum; @@ -3067,7 +3072,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)  		rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));  		if (rc < 0) {  			netif_err(tp, probe, dev, "DMA configuration failed\n"); -			goto err_out_free_res_4; +			goto err_out_free_res_3;  		}  	} @@ -3076,7 +3081,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)  	if (!ioaddr) {  		netif_err(tp, probe, dev, "cannot remap MMIO, aborting\n");  		rc = -EIO; -		goto err_out_free_res_4; +		goto err_out_free_res_3;  	}  	tp->pcie_cap = pci_find_capability(pdev, PCI_CAP_ID_EXP); @@ -3118,7 +3123,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)  	if (i == ARRAY_SIZE(rtl_chip_info)) {  		dev_err(&pdev->dev,  			"driver bug, MAC version not found in rtl_chip_info\n"); -		goto err_out_msi_5; +		goto err_out_msi_4;  	}  	tp->chipset = i; @@ -3183,7 +3188,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)  	rc = register_netdev(dev);  	if (rc < 0) -		goto err_out_msi_5; +		goto err_out_msi_4;  	pci_set_drvdata(pdev, dev); @@ -3212,14 +3217,13 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)  out:  	return rc; -err_out_msi_5: +err_out_msi_4:  	rtl_disable_msi(pdev, tp);  	iounmap(ioaddr); -err_out_free_res_4: +err_out_free_res_3:  	pci_release_regions(pdev); -err_out_mwi_3: +err_out_mwi_2:  	pci_clear_mwi(pdev); -err_out_disable_2:  	pci_disable_device(pdev);  err_out_free_dev_1:  	free_netdev(dev);  |