diff options
Diffstat (limited to 'drivers/net/ethernet/broadcom/tg3.c')
| -rw-r--r-- | drivers/net/ethernet/broadcom/tg3.c | 29 | 
1 files changed, 13 insertions, 16 deletions
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index 96bf01ba32dd..615a6dbde047 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c @@ -8008,9 +8008,9 @@ static netdev_tx_t tg3_start_xmit(struct sk_buff *skb, struct net_device *dev)  	    !mss && skb->len > VLAN_ETH_FRAME_LEN)  		base_flags |= TXD_FLAG_JMB_PKT; -	if (vlan_tx_tag_present(skb)) { +	if (skb_vlan_tag_present(skb)) {  		base_flags |= TXD_FLAG_VLAN; -		vlan = vlan_tx_tag_get(skb); +		vlan = skb_vlan_tag_get(skb);  	}  	if ((unlikely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) && @@ -11573,11 +11573,7 @@ static int tg3_start(struct tg3 *tp, bool reset_phy, bool test_irq,  	tg3_flag_set(tp, INIT_COMPLETE);  	tg3_enable_ints(tp); -	if (init) -		tg3_ptp_init(tp); -	else -		tg3_ptp_resume(tp); - +	tg3_ptp_resume(tp);  	tg3_full_unlock(tp); @@ -11698,13 +11694,6 @@ static int tg3_open(struct net_device *dev)  		pci_set_power_state(tp->pdev, PCI_D3hot);  	} -	if (tg3_flag(tp, PTP_CAPABLE)) { -		tp->ptp_clock = ptp_clock_register(&tp->ptp_info, -						   &tp->pdev->dev); -		if (IS_ERR(tp->ptp_clock)) -			tp->ptp_clock = NULL; -	} -  	return err;  } @@ -11718,8 +11707,6 @@ static int tg3_close(struct net_device *dev)  		return -EAGAIN;  	} -	tg3_ptp_fini(tp); -  	tg3_stop(tp);  	/* Clear stats across close / open calls */ @@ -17897,6 +17884,14 @@ static int tg3_init_one(struct pci_dev *pdev,  		goto err_out_apeunmap;  	} +	if (tg3_flag(tp, PTP_CAPABLE)) { +		tg3_ptp_init(tp); +		tp->ptp_clock = ptp_clock_register(&tp->ptp_info, +						   &tp->pdev->dev); +		if (IS_ERR(tp->ptp_clock)) +			tp->ptp_clock = NULL; +	} +  	netdev_info(dev, "Tigon3 [partno(%s) rev %04x] (%s) MAC address %pM\n",  		    tp->board_part_number,  		    tg3_chip_rev_id(tp), @@ -17972,6 +17967,8 @@ static void tg3_remove_one(struct pci_dev *pdev)  	if (dev) {  		struct tg3 *tp = netdev_priv(dev); +		tg3_ptp_fini(tp); +  		release_firmware(tp->fw);  		tg3_reset_task_cancel(tp);  | 

