Lines Matching refs:netdev

59 static int qlcnic_open(struct net_device *netdev);
60 static int qlcnic_close(struct net_device *netdev);
61 static void qlcnic_tx_timeout(struct net_device *netdev);
65 static void qlcnic_poll_controller(struct net_device *netdev);
77 static struct net_device_stats *qlcnic_get_stats(struct net_device *netdev);
303 struct net_device *netdev = adapter->netdev; in qlcnic_read_mac_addr() local
313 memcpy(netdev->dev_addr, mac_addr, ETH_ALEN); in qlcnic_read_mac_addr()
314 memcpy(adapter->mac_addr, netdev->dev_addr, netdev->addr_len); in qlcnic_read_mac_addr()
318 if (!is_valid_ether_addr(netdev->dev_addr)) in qlcnic_read_mac_addr()
320 netdev->dev_addr); in qlcnic_read_mac_addr()
342 static int qlcnic_set_mac(struct net_device *netdev, void *p) in qlcnic_set_mac() argument
344 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_set_mac()
357 ether_addr_equal_unaligned(netdev->dev_addr, addr->sa_data)) in qlcnic_set_mac()
361 netif_device_detach(netdev); in qlcnic_set_mac()
366 memcpy(adapter->mac_addr, addr->sa_data, netdev->addr_len); in qlcnic_set_mac()
367 memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len); in qlcnic_set_mac()
368 qlcnic_set_multi(adapter->netdev); in qlcnic_set_mac()
371 netif_device_attach(netdev); in qlcnic_set_mac()
378 struct net_device *netdev, in qlcnic_fdb_del() argument
381 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_fdb_del()
385 return ndo_dflt_fdb_del(ndm, tb, netdev, addr, vid); in qlcnic_fdb_del()
390 err = dev_uc_del(netdev, addr); in qlcnic_fdb_del()
394 err = dev_mc_del(netdev, addr); in qlcnic_fdb_del()
403 struct net_device *netdev, in qlcnic_fdb_add() argument
406 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_fdb_add()
410 return ndo_dflt_fdb_add(ndm, tb, netdev, addr, vid, flags); in qlcnic_fdb_add()
422 if (netdev_uc_count(netdev) < adapter->ahw->max_uc_count) in qlcnic_fdb_add()
423 err = dev_uc_add_excl(netdev, addr); in qlcnic_fdb_add()
427 err = dev_mc_add_excl(netdev, addr); in qlcnic_fdb_add()
436 struct net_device *netdev, in qlcnic_fdb_dump() argument
439 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_fdb_dump()
442 return ndo_dflt_fdb_dump(skb, ncb, netdev, filter_dev, idx); in qlcnic_fdb_dump()
446 idx = ndo_dflt_fdb_dump(skb, ncb, netdev, filter_dev, idx); in qlcnic_fdb_dump()
462 static int qlcnic_get_phys_port_id(struct net_device *netdev, in qlcnic_get_phys_port_id() argument
465 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_get_phys_port_id()
478 static void qlcnic_add_vxlan_port(struct net_device *netdev, in qlcnic_add_vxlan_port() argument
481 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_add_vxlan_port()
500 static void qlcnic_del_vxlan_port(struct net_device *netdev, in qlcnic_del_vxlan_port() argument
503 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_del_vxlan_port()
725 netdev_info(adapter->netdev, in qlcnic_setup_tss_rss_intr()
738 netdev_info(adapter->netdev, in qlcnic_setup_tss_rss_intr()
1370 qlcnic_vlan_rx_add(struct net_device *netdev, __be16 proto, u16 vid) in qlcnic_vlan_rx_add() argument
1372 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_vlan_rx_add()
1378 netdev_err(netdev, in qlcnic_vlan_rx_add()
1390 qlcnic_vlan_rx_del(struct net_device *netdev, __be16 proto, u16 vid) in qlcnic_vlan_rx_del() argument
1392 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_vlan_rx_del()
1398 netdev_err(netdev, in qlcnic_vlan_rx_del()
1405 qlcnic_restore_indev_addr(netdev, NETDEV_DOWN); in qlcnic_vlan_rx_del()
1446 struct net_device *netdev = adapter->netdev; in qlcnic_set_netdev_features() local
1453 netdev_update_features(netdev); in qlcnic_set_netdev_features()
1726 struct net_device *netdev = adapter->netdev; in qlcnic_request_irq() local
1750 adapter->irq = netdev->irq; in qlcnic_request_irq()
1771 netdev->name, ring); in qlcnic_request_irq()
1776 netdev->name, ring); in qlcnic_request_irq()
1794 "%s-tx-%d", netdev->name, ring); in qlcnic_request_irq()
1879 int __qlcnic_up(struct qlcnic_adapter *adapter, struct net_device *netdev) in __qlcnic_up() argument
1903 qlcnic_set_multi(netdev); in __qlcnic_up()
1904 qlcnic_fw_cmd_set_mtu(adapter, netdev->mtu); in __qlcnic_up()
1913 if (netdev->features & NETIF_F_LRO) in __qlcnic_up()
1922 netif_tx_start_all_queues(netdev); in __qlcnic_up()
1926 int qlcnic_up(struct qlcnic_adapter *adapter, struct net_device *netdev) in qlcnic_up() argument
1931 if (netif_running(netdev)) in qlcnic_up()
1932 err = __qlcnic_up(adapter, netdev); in qlcnic_up()
1938 void __qlcnic_down(struct qlcnic_adapter *adapter, struct net_device *netdev) in __qlcnic_down() argument
1949 netif_carrier_off(netdev); in __qlcnic_down()
1951 netif_tx_disable(netdev); in __qlcnic_down()
1975 void qlcnic_down(struct qlcnic_adapter *adapter, struct net_device *netdev) in qlcnic_down() argument
1978 if (netif_running(netdev)) in qlcnic_down()
1979 __qlcnic_down(adapter, netdev); in qlcnic_down()
1987 struct net_device *netdev = adapter->netdev; in qlcnic_attach() local
1994 err = qlcnic_napi_add(adapter, netdev); in qlcnic_attach()
2020 vxlan_get_rx_port(netdev); in qlcnic_attach()
2051 void qlcnic_diag_free_res(struct net_device *netdev, int drv_sds_rings) in qlcnic_diag_free_res() argument
2053 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_diag_free_res()
2077 if (netif_running(netdev)) in qlcnic_diag_free_res()
2078 __qlcnic_up(adapter, netdev); in qlcnic_diag_free_res()
2080 netif_device_attach(netdev); in qlcnic_diag_free_res()
2135 int qlcnic_diag_alloc_res(struct net_device *netdev, int test) in qlcnic_diag_alloc_res() argument
2137 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_diag_alloc_res()
2143 netif_device_detach(netdev); in qlcnic_diag_alloc_res()
2145 if (netif_running(netdev)) in qlcnic_diag_alloc_res()
2146 __qlcnic_down(adapter, netdev); in qlcnic_diag_alloc_res()
2156 netif_device_attach(netdev); in qlcnic_diag_alloc_res()
2163 netif_device_attach(netdev); in qlcnic_diag_alloc_res()
2193 struct net_device *netdev = adapter->netdev; in qlcnic_reset_hw_context() local
2198 netif_device_detach(netdev); in qlcnic_reset_hw_context()
2200 qlcnic_down(adapter, netdev); in qlcnic_reset_hw_context()
2202 qlcnic_up(adapter, netdev); in qlcnic_reset_hw_context()
2204 netif_device_attach(netdev); in qlcnic_reset_hw_context()
2207 netdev_info(adapter->netdev, "%s: soft reset complete\n", __func__); in qlcnic_reset_hw_context()
2215 struct net_device *netdev = adapter->netdev; in qlcnic_reset_context() local
2222 netif_device_detach(netdev); in qlcnic_reset_context()
2224 if (netif_running(netdev)) in qlcnic_reset_context()
2225 __qlcnic_down(adapter, netdev); in qlcnic_reset_context()
2229 if (netif_running(netdev)) { in qlcnic_reset_context()
2232 __qlcnic_up(adapter, netdev); in qlcnic_reset_context()
2233 qlcnic_restore_indev_addr(netdev, NETDEV_UP); in qlcnic_reset_context()
2237 netif_device_attach(netdev); in qlcnic_reset_context()
2263 struct net_device *netdev = adapter->netdev; in qlcnic_set_real_num_queues() local
2267 err = netif_set_real_num_tx_queues(netdev, tx_queues); in qlcnic_set_real_num_queues()
2269 netdev_err(netdev, "failed to set %d Tx queues\n", in qlcnic_set_real_num_queues()
2276 err = netif_set_real_num_rx_queues(netdev, rx_queues); in qlcnic_set_real_num_queues()
2278 netdev_err(netdev, "failed to set %d Rx queues\n", in qlcnic_set_real_num_queues()
2286 qlcnic_setup_netdev(struct qlcnic_adapter *adapter, struct net_device *netdev, in qlcnic_setup_netdev() argument
2296 netdev->netdev_ops = &qlcnic_netdev_ops; in qlcnic_setup_netdev()
2297 netdev->watchdog_timeo = QLCNIC_WATCHDOG_TIMEOUTVALUE * HZ; in qlcnic_setup_netdev()
2299 qlcnic_change_mtu(netdev, netdev->mtu); in qlcnic_setup_netdev()
2301 netdev->ethtool_ops = (qlcnic_sriov_vf_check(adapter)) ? in qlcnic_setup_netdev()
2304 netdev->features |= (NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM | in qlcnic_setup_netdev()
2307 netdev->vlan_features |= (NETIF_F_SG | NETIF_F_IP_CSUM | in qlcnic_setup_netdev()
2311 netdev->features |= (NETIF_F_TSO | NETIF_F_TSO6); in qlcnic_setup_netdev()
2312 netdev->vlan_features |= (NETIF_F_TSO | NETIF_F_TSO6); in qlcnic_setup_netdev()
2316 netdev->features |= NETIF_F_HIGHDMA; in qlcnic_setup_netdev()
2317 netdev->vlan_features |= NETIF_F_HIGHDMA; in qlcnic_setup_netdev()
2321 netdev->features |= (NETIF_F_HW_VLAN_CTAG_TX); in qlcnic_setup_netdev()
2324 netdev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; in qlcnic_setup_netdev()
2327 netdev->features |= NETIF_F_LRO; in qlcnic_setup_netdev()
2330 netdev->features |= NETIF_F_GSO_UDP_TUNNEL; in qlcnic_setup_netdev()
2333 netdev->hw_enc_features = NETIF_F_IP_CSUM | in qlcnic_setup_netdev()
2340 netdev->hw_enc_features |= NETIF_F_RXCSUM; in qlcnic_setup_netdev()
2342 netdev->hw_features = netdev->features; in qlcnic_setup_netdev()
2343 netdev->priv_flags |= IFF_UNICAST_FLT; in qlcnic_setup_netdev()
2344 netdev->irq = adapter->msix_entries[0].vector; in qlcnic_setup_netdev()
2353 err = register_netdev(netdev); in qlcnic_setup_netdev()
2394 struct net_device *netdev) in qlcnic_alloc_tx_rings() argument
2410 tx_ring->txq = netdev_get_tx_queue(netdev, ring); in qlcnic_alloc_tx_rings()
2461 struct net_device *netdev = NULL; in qlcnic_probe() local
2516 netdev = alloc_etherdev_mq(sizeof(struct qlcnic_adapter), in qlcnic_probe()
2518 if (!netdev) { in qlcnic_probe()
2523 SET_NETDEV_DEV(netdev, &pdev->dev); in qlcnic_probe()
2525 adapter = netdev_priv(netdev); in qlcnic_probe()
2526 adapter->netdev = netdev; in qlcnic_probe()
2655 err = qlcnic_setup_netdev(adapter, netdev, pci_using_dac); in qlcnic_probe()
2668 adapter->netdev->name); in qlcnic_probe()
2672 adapter->netdev->name); in qlcnic_probe()
2699 free_netdev(netdev); in qlcnic_probe()
2716 netdev->netdev_ops = &qlcnic_netdev_failed_ops; in qlcnic_probe()
2717 netdev->ethtool_ops = &qlcnic_ethtool_failed_ops; in qlcnic_probe()
2725 err = register_netdev(netdev); in qlcnic_probe()
2742 struct net_device *netdev; in qlcnic_remove() local
2749 netdev = adapter->netdev; in qlcnic_remove()
2755 unregister_netdev(netdev); in qlcnic_remove()
2800 free_netdev(netdev); in qlcnic_remove()
2841 static int qlcnic_open(struct net_device *netdev) in qlcnic_open() argument
2843 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_open()
2847 netdev_err(netdev, "%s: Device is in non-operational state\n", in qlcnic_open()
2853 netif_carrier_off(netdev); in qlcnic_open()
2859 err = __qlcnic_up(adapter, netdev); in qlcnic_open()
2869 static int qlcnic_close(struct net_device *netdev) in qlcnic_close() argument
2871 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_close()
2873 __qlcnic_down(adapter, netdev); in qlcnic_close()
2884 struct net_device *netdev = adapter->netdev; in qlcnic_alloc_lb_filters_mem() local
2915 netdev_info(netdev, "active nic func = %d, mac filter size=%d\n", in qlcnic_alloc_lb_filters_mem()
2953 struct net_device *netdev = adapter->netdev; in qlcnic_check_temp() local
2967 dev_err(&netdev->dev, in qlcnic_check_temp()
2974 dev_err(&netdev->dev, in qlcnic_check_temp()
2982 dev_info(&netdev->dev, in qlcnic_check_temp()
3008 struct net_device *netdev = adapter->netdev; in qlcnic_dump_rings() local
3014 if (!netdev || !netif_running(netdev)) in qlcnic_dump_rings()
3021 netdev_info(netdev, in qlcnic_dump_rings()
3031 netdev_info(netdev, in qlcnic_dump_rings()
3042 netdev_info(netdev, "Tx ring=%d Context Id=0x%x\n", in qlcnic_dump_rings()
3044 netdev_info(netdev, in qlcnic_dump_rings()
3052 netdev_info(netdev, "crb_intr_mask=%d\n", in qlcnic_dump_rings()
3055 netdev_info(netdev, in qlcnic_dump_rings()
3061 netdev_info(netdev, "Total desc=%d, Available desc=%d\n", in qlcnic_dump_rings()
3070 static void qlcnic_tx_timeout(struct net_device *netdev) in qlcnic_tx_timeout() argument
3072 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_tx_timeout()
3081 netdev_err(netdev, "Tx timeout, reset the adapter.\n"); in qlcnic_tx_timeout()
3088 netdev_err(netdev, "Tx timeout, reset adapter context.\n"); in qlcnic_tx_timeout()
3093 static struct net_device_stats *qlcnic_get_stats(struct net_device *netdev) in qlcnic_get_stats() argument
3095 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_get_stats()
3096 struct net_device_stats *stats = &netdev->stats; in qlcnic_get_stats()
3196 static void qlcnic_poll_controller(struct net_device *netdev) in qlcnic_poll_controller() argument
3198 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_poll_controller()
3543 netif_device_attach(adapter->netdev); in qlcnic_fwinit_work()
3552 struct net_device *netdev = adapter->netdev; in qlcnic_detach_work() local
3555 netif_device_detach(netdev); in qlcnic_detach_work()
3559 if (netif_running(netdev)) in qlcnic_detach_work()
3560 __qlcnic_down(adapter, netdev); in qlcnic_detach_work()
3562 qlcnic_down(adapter, netdev); in qlcnic_detach_work()
3605 netif_device_attach(netdev); in qlcnic_detach_work()
3649 netdev_err(adapter->netdev, "%s: Device is in non-operational state\n", in qlcnic_82xx_dev_request_reset()
3699 struct net_device *netdev = adapter->netdev; in qlcnic_attach_work() local
3718 if (netif_running(netdev)) { in qlcnic_attach_work()
3719 if (qlcnic_up(adapter, netdev)) in qlcnic_attach_work()
3722 qlcnic_restore_indev_addr(netdev, NETDEV_UP); in qlcnic_attach_work()
3726 netif_device_attach(netdev); in qlcnic_attach_work()
3862 struct net_device *netdev = adapter->netdev; in qlcnic_attach_func() local
3898 netdev_err(netdev, "failed to setup interrupt\n"); in qlcnic_attach_func()
3902 if (netif_running(netdev)) { in qlcnic_attach_func()
3907 netif_device_attach(netdev); in qlcnic_attach_func()
3911 err = qlcnic_up(adapter, netdev); in qlcnic_attach_func()
3915 qlcnic_restore_indev_addr(netdev, NETDEV_UP); in qlcnic_attach_func()
3918 netif_device_attach(netdev); in qlcnic_attach_func()
3926 struct net_device *netdev = adapter->netdev; in qlcnic_82xx_io_error_detected() local
3935 netif_device_detach(netdev); in qlcnic_82xx_io_error_detected()
3939 if (netif_running(netdev)) in qlcnic_82xx_io_error_detected()
3940 qlcnic_down(adapter, netdev); in qlcnic_82xx_io_error_detected()
4042 struct net_device *netdev = adapter->netdev; in qlcnic_validate_rings() local
4058 netdev_err(netdev, "%s rings value should be a power of 2\n", in qlcnic_validate_rings()
4065 netdev_err(netdev, "No Multi Tx queue support\n"); in qlcnic_validate_rings()
4070 netdev_err(netdev, in qlcnic_validate_rings()
4081 struct net_device *netdev = adapter->netdev; in qlcnic_setup_rings() local
4091 netif_device_detach(netdev); in qlcnic_setup_rings()
4097 if (netif_running(netdev)) in qlcnic_setup_rings()
4098 __qlcnic_down(adapter, netdev); in qlcnic_setup_rings()
4112 netdev_err(netdev, "failed to setup interrupt\n"); in qlcnic_setup_rings()
4139 if (netif_running(netdev)) { in qlcnic_setup_rings()
4143 err = __qlcnic_up(adapter, netdev); in qlcnic_setup_rings()
4146 qlcnic_restore_indev_addr(netdev, NETDEV_UP); in qlcnic_setup_rings()
4149 netif_device_attach(netdev); in qlcnic_setup_rings()
4186 void qlcnic_restore_indev_addr(struct net_device *netdev, unsigned long event) in qlcnic_restore_indev_addr() argument
4188 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_restore_indev_addr()
4192 qlcnic_config_indev_addr(adapter, netdev, event); in qlcnic_restore_indev_addr()
4196 dev = __vlan_find_dev_deep_rcu(netdev, htons(ETH_P_8021Q), vid); in qlcnic_restore_indev_addr()