@@ -652,10 +652,8 @@ static int xtile_open(struct net_device *dev)
652652
653653init_error :
654654 xtile_free_skbufs (dev );
655- xtile_free_skbufs (dev );
656- phy_error :
657-
658655alloc_skbuf_error :
656+ phy_error :
659657 return ret ;
660658}
661659
@@ -704,6 +702,20 @@ static int xtile_shutdown(struct net_device *dev)
704702 return 0 ;
705703}
706704
705+ static int xtile_change_mac (struct net_device * dev , void * inet_ds ) {
706+
707+ struct sockaddr * addr = inet_ds ;
708+ intel_fpga_xtile_eth_private * priv = netdev_priv (dev );
709+
710+ if (!is_valid_ether_addr (addr -> sa_data ))
711+ return - EADDRNOTAVAIL ;
712+
713+ memcpy (dev -> dev_addr , addr -> sa_data , ETH_ALEN );
714+ etile_update_mac_addr (priv , priv -> dev -> dev_addr );
715+
716+ return 0 ;
717+ }
718+
707719/* Transmit a packet (called by the kernel). Dispatches
708720 * either the SGDMA method for transmitting or the
709721 * MSGDMA method, assumes no scatter/gather support,
@@ -713,7 +725,7 @@ static int xtile_shutdown(struct net_device *dev)
713725 *
714726 * Exec: xmit time taken 10us
715727 */
716- static int xtile_start_xmit (struct sk_buff * skb , struct net_device * dev )
728+ int xtile_start_xmit (struct sk_buff * skb , struct net_device * dev )
717729{
718730 unsigned int entry ;
719731 dma_addr_t dma_addr ;
@@ -921,7 +933,7 @@ static const struct net_device_ops intel_fpga_xtile_netdev_ops = {
921933 .ndo_open = xtile_open ,
922934 .ndo_stop = xtile_shutdown ,
923935 .ndo_start_xmit = xtile_start_xmit ,
924- .ndo_set_mac_address = eth_mac_addr ,
936+ .ndo_set_mac_address = xtile_change_mac ,
925937 .ndo_set_rx_mode = xtile_set_rx_mode ,
926938 .ndo_change_mtu = xtile_change_mtu ,
927939 .ndo_do_ioctl = xtile_do_ioctl ,
@@ -1353,14 +1365,12 @@ static int intel_fpga_xtile_probe(struct platform_device *pdev)
13531365 goto err_init_fec ;
13541366 }
13551367
1356- #if 0
13571368 /* disable hotplug in hssi */
1358- hssi_disable_hotplug (pdev_hssi );
1359- #endif
1369+ // hssi_disable_hotplug(pdev_hssi);
1370+
13601371 return 0 ;
13611372
13621373err_init_fec :
1363- err_init_phy :
13641374 unregister_netdev (ndev );
13651375err_register_netdev :
13661376 netif_napi_del (& priv -> napi );
@@ -1397,7 +1407,6 @@ intel_fpga_xtile_qsfp_up(intel_fpga_xtile_eth_private *priv) {
13971407 }
13981408
13991409 napi_enable (& priv -> napi );
1400-
14011410 rtnl_unlock ();
14021411}
14031412
@@ -1406,10 +1415,7 @@ intel_fpga_xtile_qsfp_down(intel_fpga_xtile_eth_private *priv) {
14061415
14071416 rtnl_lock ();
14081417 netif_stop_queue (priv -> dev );
1409-
1410-
14111418 napi_disable (& priv -> napi );
1412-
14131419 rtnl_unlock ();
14141420}
14151421
0 commit comments