Lines Matching refs:netdev

132 	struct net_device *netdev = lif->netdev;  in ionic_link_status_check()  local
151 if (netdev->flags & IFF_UP && netif_running(netdev)) { in ionic_link_status_check()
155 netdev_err(netdev, in ionic_link_status_check()
158 netif_carrier_off(lif->netdev); in ionic_link_status_check()
163 if (!err && !netif_carrier_ok(netdev)) { in ionic_link_status_check()
165 netdev_info(netdev, "Link up - %d Gbps\n", in ionic_link_status_check()
167 netif_carrier_on(netdev); in ionic_link_status_check()
170 if (netif_carrier_ok(netdev)) { in ionic_link_status_check()
172 netdev_info(netdev, "Link down\n"); in ionic_link_status_check()
173 netif_carrier_off(netdev); in ionic_link_status_check()
176 if (netdev->flags & IFF_UP && netif_running(netdev)) { in ionic_link_status_check()
232 name = lif->netdev->name; in ionic_request_irq()
250 netdev_warn(lif->netdev, "%s: no intr, index=%d nintrs=%d\n", in ionic_intr_alloc()
323 netdev_err(lif->netdev, "%s: bad qcq\n", __func__); in ionic_qcq_disable()
492 netdev_warn(lif->netdev, "no intr for %s: %d\n", in ionic_alloc_qcq_interrupt()
499 netdev_warn(lif->netdev, "no vector for %s: %d\n", in ionic_alloc_qcq_interrupt()
509 netdev_warn(lif->netdev, "irq request failed %d\n", err); in ionic_alloc_qcq_interrupt()
519 netdev_dbg(lif->netdev, "%s: Interrupt index %d\n", qcq->q.name, qcq->intr.index); in ionic_alloc_qcq_interrupt()
549 netdev_err(lif->netdev, "Cannot allocate queue structure\n"); in ionic_qcq_alloc()
559 netdev_err(lif->netdev, "Cannot allocate queue info\n"); in ionic_qcq_alloc()
570 netdev_err(lif->netdev, "Cannot initialize queue\n"); in ionic_qcq_alloc()
580 netdev_err(lif->netdev, "Cannot allocate completion queue info\n"); in ionic_qcq_alloc()
587 netdev_err(lif->netdev, "Cannot initialize completion queue\n"); in ionic_qcq_alloc()
604 netdev_err(lif->netdev, "Cannot allocate qcq DMA memory\n"); in ionic_qcq_alloc()
622 netdev_err(lif->netdev, "Cannot allocate queue DMA memory\n"); in ionic_qcq_alloc()
638 netdev_err(lif->netdev, in ionic_qcq_alloc()
646 netdev_err(lif->netdev, "Cannot map queue from cmb\n"); in ionic_qcq_alloc()
661 netdev_err(lif->netdev, "Cannot allocate cq DMA memory\n"); in ionic_qcq_alloc()
676 netdev_err(lif->netdev, "Cannot allocate sg DMA memory\n"); in ionic_qcq_alloc()
844 netif_napi_add(lif->netdev, &qcq->napi, ionic_tx_napi); in ionic_lif_txq_init()
910 netif_napi_add(lif->netdev, &qcq->napi, ionic_rx_napi); in ionic_lif_rxq_init()
912 netif_napi_add(lif->netdev, &qcq->napi, ionic_txrx_napi); in ionic_lif_rxq_init()
961 if (netif_running(lif->netdev)) { in ionic_lif_create_hwstamp_txq()
1020 if (netif_running(lif->netdev)) { in ionic_lif_create_hwstamp_rxq()
1058 if (!netif_running(lif->netdev)) { in ionic_lif_config_hwstamp_rxq_all()
1107 netdev_dbg(lif->netdev, "rx_filter del RXSTEER (id %d)\n", filter_id); in ionic_lif_del_hwstamp_rxfilt()
1113 netdev_dbg(lif->netdev, "failed to delete rx_filter RXSTEER (id %d)\n", filter_id); in ionic_lif_del_hwstamp_rxfilt()
1140 netdev_dbg(lif->netdev, "rx_filter add RXSTEER\n"); in ionic_lif_add_hwstamp_rxfilt()
1167 struct net_device *netdev; in ionic_notifyq_service() local
1174 netdev = lif->netdev; in ionic_notifyq_service()
1197 netdev_err(lif->netdev, "Reset event dropped\n"); in ionic_notifyq_service()
1206 netdev_warn(netdev, "Notifyq event ecode=%d eid=%lld\n", in ionic_notifyq_service()
1285 void ionic_get_stats64(struct net_device *netdev, in ionic_get_stats64() argument
1288 struct ionic_lif *lif = netdev_priv(netdev); in ionic_get_stats64()
1338 static int ionic_addr_add(struct net_device *netdev, const u8 *addr) in ionic_addr_add() argument
1340 return ionic_lif_list_addr(netdev_priv(netdev), addr, ADD_ADDR); in ionic_addr_add()
1343 static int ionic_addr_del(struct net_device *netdev, const u8 *addr) in ionic_addr_del() argument
1346 if (ether_addr_equal(addr, netdev->dev_addr)) in ionic_addr_del()
1349 return ionic_lif_list_addr(netdev_priv(netdev), addr, DEL_ADDR); in ionic_addr_del()
1354 struct net_device *netdev = lif->netdev; in ionic_lif_rx_mode() local
1365 nd_flags = netdev->flags; in ionic_lif_rx_mode()
1409 netdev_dbg(netdev, "lif%d %s\n", lif->index, buf); in ionic_lif_rx_mode()
1424 netdev_warn(netdev, "set rx_mode 0x%04x failed: %d\n", in ionic_lif_rx_mode()
1433 static void ionic_ndo_set_rx_mode(struct net_device *netdev) in ionic_ndo_set_rx_mode() argument
1435 struct ionic_lif *lif = netdev_priv(netdev); in ionic_ndo_set_rx_mode()
1439 __dev_uc_sync(netdev, ionic_addr_add, ionic_addr_del); in ionic_ndo_set_rx_mode()
1440 __dev_mc_sync(netdev, ionic_addr_add, ionic_addr_del); in ionic_ndo_set_rx_mode()
1447 netdev_err(lif->netdev, "rxmode change dropped\n"); in ionic_ndo_set_rx_mode()
1451 netdev_dbg(lif->netdev, "deferred: rx_mode\n"); in ionic_ndo_set_rx_mode()
1573 struct net_device *netdev = lif->netdev; in ionic_init_nic_features() local
1602 netdev->features |= NETIF_F_HIGHDMA; in ionic_init_nic_features()
1605 netdev->hw_features |= NETIF_F_HW_VLAN_CTAG_TX; in ionic_init_nic_features()
1607 netdev->hw_features |= NETIF_F_HW_VLAN_CTAG_RX; in ionic_init_nic_features()
1609 netdev->hw_features |= NETIF_F_HW_VLAN_CTAG_FILTER; in ionic_init_nic_features()
1611 netdev->hw_features |= NETIF_F_RXHASH; in ionic_init_nic_features()
1613 netdev->hw_features |= NETIF_F_SG; in ionic_init_nic_features()
1616 netdev->hw_enc_features |= NETIF_F_HW_CSUM; in ionic_init_nic_features()
1618 netdev->hw_enc_features |= NETIF_F_RXCSUM; in ionic_init_nic_features()
1620 netdev->hw_enc_features |= NETIF_F_TSO; in ionic_init_nic_features()
1622 netdev->hw_enc_features |= NETIF_F_TSO6; in ionic_init_nic_features()
1624 netdev->hw_enc_features |= NETIF_F_TSO_ECN; in ionic_init_nic_features()
1626 netdev->hw_enc_features |= NETIF_F_GSO_GRE; in ionic_init_nic_features()
1628 netdev->hw_enc_features |= NETIF_F_GSO_GRE_CSUM; in ionic_init_nic_features()
1630 netdev->hw_enc_features |= NETIF_F_GSO_IPXIP4; in ionic_init_nic_features()
1632 netdev->hw_enc_features |= NETIF_F_GSO_IPXIP6; in ionic_init_nic_features()
1634 netdev->hw_enc_features |= NETIF_F_GSO_UDP_TUNNEL; in ionic_init_nic_features()
1636 netdev->hw_enc_features |= NETIF_F_GSO_UDP_TUNNEL_CSUM; in ionic_init_nic_features()
1638 netdev->hw_features |= netdev->hw_enc_features; in ionic_init_nic_features()
1639 netdev->features |= netdev->hw_features; in ionic_init_nic_features()
1640 netdev->vlan_features |= netdev->features & ~NETIF_F_VLAN_FEATURES; in ionic_init_nic_features()
1642 netdev->priv_flags |= IFF_UNICAST_FLT | in ionic_init_nic_features()
1648 static int ionic_set_features(struct net_device *netdev, in ionic_set_features() argument
1651 struct ionic_lif *lif = netdev_priv(netdev); in ionic_set_features()
1654 netdev_dbg(netdev, "%s: lif->features=0x%08llx new_features=0x%08llx\n", in ionic_set_features()
1655 __func__, (u64)lif->netdev->features, (u64)features); in ionic_set_features()
1720 static int ionic_set_mac_address(struct net_device *netdev, void *sa) in ionic_set_mac_address() argument
1722 struct ionic_lif *lif = netdev_priv(netdev); in ionic_set_mac_address()
1728 if (ether_addr_equal(netdev->dev_addr, mac)) in ionic_set_mac_address()
1736 netdev_dbg(netdev, "%s: SET and GET ATTR Mac are not equal-due to old FW running\n", in ionic_set_mac_address()
1739 err = eth_prepare_mac_addr_change(netdev, addr); in ionic_set_mac_address()
1743 if (!is_zero_ether_addr(netdev->dev_addr)) { in ionic_set_mac_address()
1744 netdev_info(netdev, "deleting mac addr %pM\n", in ionic_set_mac_address()
1745 netdev->dev_addr); in ionic_set_mac_address()
1746 ionic_lif_addr_del(netdev_priv(netdev), netdev->dev_addr); in ionic_set_mac_address()
1749 eth_commit_mac_addr_change(netdev, addr); in ionic_set_mac_address()
1750 netdev_info(netdev, "updating mac addr %pM\n", mac); in ionic_set_mac_address()
1752 return ionic_lif_addr_add(netdev_priv(netdev), mac); in ionic_set_mac_address()
1758 netif_device_detach(lif->netdev); in ionic_stop_queues_reconfig()
1777 netif_device_attach(lif->netdev); in ionic_start_queues_reconfig()
1782 static int ionic_change_mtu(struct net_device *netdev, int new_mtu) in ionic_change_mtu() argument
1784 struct ionic_lif *lif = netdev_priv(netdev); in ionic_change_mtu()
1801 if (!netif_running(netdev)) { in ionic_change_mtu()
1802 netdev->mtu = new_mtu; in ionic_change_mtu()
1808 netdev->mtu = new_mtu; in ionic_change_mtu()
1826 if (!netif_running(lif->netdev)) in ionic_tx_timeout_work()
1838 static void ionic_tx_timeout(struct net_device *netdev, unsigned int txqueue) in ionic_tx_timeout() argument
1840 struct ionic_lif *lif = netdev_priv(netdev); in ionic_tx_timeout()
1842 netdev_info(lif->netdev, "Tx Timeout triggered - txq %d\n", txqueue); in ionic_tx_timeout()
1846 static int ionic_vlan_rx_add_vid(struct net_device *netdev, __be16 proto, in ionic_vlan_rx_add_vid() argument
1849 struct ionic_lif *lif = netdev_priv(netdev); in ionic_vlan_rx_add_vid()
1861 static int ionic_vlan_rx_kill_vid(struct net_device *netdev, __be16 proto, in ionic_vlan_rx_kill_vid() argument
1864 struct ionic_lif *lif = netdev_priv(netdev); in ionic_vlan_rx_kill_vid()
1955 netdev_dbg(lif->netdev, "lif quiesce failed %d\n", err); in ionic_lif_quiesce()
2150 if (lif->netdev->features & NETIF_F_RXHASH) in ionic_txrx_init()
2237 netif_tx_wake_all_queues(lif->netdev); in ionic_start_queues()
2242 static int ionic_open(struct net_device *netdev) in ionic_open() argument
2244 struct ionic_lif *lif = netdev_priv(netdev); in ionic_open()
2249 netdev_info(netdev, "clearing broken state\n"); in ionic_open()
2261 err = netif_set_real_num_tx_queues(netdev, lif->nxqs); in ionic_open()
2265 err = netif_set_real_num_rx_queues(netdev, lif->nxqs); in ionic_open()
2270 if (netif_carrier_ok(netdev)) { in ionic_open()
2299 netif_tx_disable(lif->netdev); in ionic_stop_queues()
2303 static int ionic_stop(struct net_device *netdev) in ionic_stop() argument
2305 struct ionic_lif *lif = netdev_priv(netdev); in ionic_stop()
2319 static int ionic_eth_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) in ionic_eth_ioctl() argument
2321 struct ionic_lif *lif = netdev_priv(netdev); in ionic_eth_ioctl()
2403 static int ionic_get_vf_config(struct net_device *netdev, in ionic_get_vf_config() argument
2406 struct ionic_lif *lif = netdev_priv(netdev); in ionic_get_vf_config()
2411 if (!netif_device_present(netdev)) in ionic_get_vf_config()
2437 static int ionic_get_vf_stats(struct net_device *netdev, int vf, in ionic_get_vf_stats() argument
2440 struct ionic_lif *lif = netdev_priv(netdev); in ionic_get_vf_stats()
2445 if (!netif_device_present(netdev)) in ionic_get_vf_stats()
2474 static int ionic_set_vf_mac(struct net_device *netdev, int vf, u8 *mac) in ionic_set_vf_mac() argument
2477 struct ionic_lif *lif = netdev_priv(netdev); in ionic_set_vf_mac()
2484 if (!netif_device_present(netdev)) in ionic_set_vf_mac()
2505 static int ionic_set_vf_vlan(struct net_device *netdev, int vf, u16 vlan, in ionic_set_vf_vlan() argument
2509 struct ionic_lif *lif = netdev_priv(netdev); in ionic_set_vf_vlan()
2523 if (!netif_device_present(netdev)) in ionic_set_vf_vlan()
2544 static int ionic_set_vf_rate(struct net_device *netdev, int vf, in ionic_set_vf_rate() argument
2548 struct ionic_lif *lif = netdev_priv(netdev); in ionic_set_vf_rate()
2556 if (!netif_device_present(netdev)) in ionic_set_vf_rate()
2577 static int ionic_set_vf_spoofchk(struct net_device *netdev, int vf, bool set) in ionic_set_vf_spoofchk() argument
2580 struct ionic_lif *lif = netdev_priv(netdev); in ionic_set_vf_spoofchk()
2584 if (!netif_device_present(netdev)) in ionic_set_vf_spoofchk()
2605 static int ionic_set_vf_trust(struct net_device *netdev, int vf, bool set) in ionic_set_vf_trust() argument
2608 struct ionic_lif *lif = netdev_priv(netdev); in ionic_set_vf_trust()
2612 if (!netif_device_present(netdev)) in ionic_set_vf_trust()
2633 static int ionic_set_vf_link_state(struct net_device *netdev, int vf, int set) in ionic_set_vf_link_state() argument
2636 struct ionic_lif *lif = netdev_priv(netdev); in ionic_set_vf_link_state()
2655 if (!netif_device_present(netdev)) in ionic_set_vf_link_state()
2792 if (netif_running(lif->netdev)) { in ionic_cmb_reconfig()
2819 netif_device_attach(lif->netdev); in ionic_cmb_reconfig()
2961 err = netif_set_real_num_tx_queues(lif->netdev, qparam->nxqs); in ionic_reconfigure_queues()
2964 err = netif_set_real_num_rx_queues(lif->netdev, qparam->nxqs); in ionic_reconfigure_queues()
2966 netif_set_real_num_tx_queues(lif->netdev, lif->nxqs); in ionic_reconfigure_queues()
3097 netdev_info(lif->netdev, "%s: failed %d\n", __func__, err); in ionic_reconfigure_queues()
3106 struct net_device *netdev; in ionic_lif_alloc() local
3115 netdev = alloc_etherdev_mqs(sizeof(*lif), in ionic_lif_alloc()
3117 if (!netdev) { in ionic_lif_alloc()
3123 SET_NETDEV_DEV(netdev, dev); in ionic_lif_alloc()
3125 lif = netdev_priv(netdev); in ionic_lif_alloc()
3126 lif->netdev = netdev; in ionic_lif_alloc()
3128 netdev->netdev_ops = &ionic_netdev_ops; in ionic_lif_alloc()
3129 ionic_ethtool_set_ops(netdev); in ionic_lif_alloc()
3131 netdev->watchdog_timeo = 2 * HZ; in ionic_lif_alloc()
3132 netif_carrier_off(netdev); in ionic_lif_alloc()
3142 lif->netdev->min_mtu = max_t(unsigned int, ETH_MIN_MTU, in ionic_lif_alloc()
3144 lif->netdev->max_mtu = in ionic_lif_alloc()
3227 free_netdev(lif->netdev); in ionic_lif_alloc()
3257 netif_device_detach(lif->netdev); in ionic_lif_handle_fw_down()
3265 if (netif_running(lif->netdev)) { in ionic_lif_handle_fw_down()
3304 if (netif_running(lif->netdev)) { in ionic_restart_lif()
3318 netif_device_attach(lif->netdev); in ionic_restart_lif()
3406 free_netdev(lif->netdev); in ionic_lif_free()
3418 if (lif->netdev->features & NETIF_F_RXHASH) in ionic_lif_deinit()
3448 netdev_err(lif->netdev, "adminq init failed %d\n", err); in ionic_lif_adminq_init()
3462 netif_napi_add(lif->netdev, &qcq->napi, ionic_adminq_napi); in ionic_lif_adminq_init()
3532 struct net_device *netdev = lif->netdev; in ionic_station_set() local
3548 netdev_dbg(lif->netdev, "found initial MAC addr %pM\n", in ionic_station_set()
3553 eth_hw_addr_random(netdev); in ionic_station_set()
3554 netdev_dbg(netdev, "Random Mac generated: %pM\n", netdev->dev_addr); in ionic_station_set()
3555 ether_addr_copy(mac_address, netdev->dev_addr); in ionic_station_set()
3562 netdev_dbg(netdev, "%s:SET/GET ATTR Mac are not same-due to old FW running\n", in ionic_station_set()
3568 if (!is_zero_ether_addr(netdev->dev_addr)) { in ionic_station_set()
3574 if (!ether_addr_equal(mac_address, netdev->dev_addr)) in ionic_station_set()
3575 ionic_lif_addr_add(lif, netdev->dev_addr); in ionic_station_set()
3580 err = eth_prepare_mac_addr_change(netdev, &addr); in ionic_station_set()
3582 netdev_warn(lif->netdev, "ignoring bad MAC addr from NIC %pM - err %d\n", in ionic_station_set()
3587 eth_commit_mac_addr_change(netdev, &addr); in ionic_station_set()
3590 netdev_dbg(lif->netdev, "adding station MAC addr %pM\n", in ionic_station_set()
3591 netdev->dev_addr); in ionic_station_set()
3592 ionic_lif_addr_add(lif, netdev->dev_addr); in ionic_station_set()
3689 strscpy(ctx.cmd.lif_setattr.name, lif->netdev->name, in ionic_lif_set_netdev_info()
3695 static struct ionic_lif *ionic_netdev_lif(struct net_device *netdev) in ionic_netdev_lif() argument
3697 if (!netdev || netdev->netdev_ops->ndo_start_xmit != ionic_start_xmit) in ionic_netdev_lif()
3700 return netdev_priv(netdev); in ionic_netdev_lif()
3737 err = register_netdev(lif->netdev); in ionic_lif_register()
3759 if (lif->netdev->reg_state == NETREG_REGISTERED) in ionic_lif_unregister()
3760 unregister_netdev(lif->netdev); in ionic_lif_unregister()