Lines Matching refs:netdev
60 static int qlcnic_open(struct net_device *netdev);
61 static int qlcnic_close(struct net_device *netdev);
62 static void qlcnic_tx_timeout(struct net_device *netdev);
66 static void qlcnic_poll_controller(struct net_device *netdev);
78 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()
360 netif_device_detach(netdev); in qlcnic_set_mac()
365 memcpy(adapter->mac_addr, addr->sa_data, netdev->addr_len); in qlcnic_set_mac()
366 memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len); in qlcnic_set_mac()
367 qlcnic_set_multi(adapter->netdev); in qlcnic_set_mac()
370 netif_device_attach(netdev); in qlcnic_set_mac()
377 struct net_device *netdev, in qlcnic_fdb_del() argument
380 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_fdb_del()
384 return ndo_dflt_fdb_del(ndm, tb, netdev, addr, vid); in qlcnic_fdb_del()
389 err = dev_uc_del(netdev, addr); in qlcnic_fdb_del()
393 err = dev_mc_del(netdev, addr); in qlcnic_fdb_del()
402 struct net_device *netdev, in qlcnic_fdb_add() argument
405 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_fdb_add()
409 return ndo_dflt_fdb_add(ndm, tb, netdev, addr, vid, flags); in qlcnic_fdb_add()
421 if (netdev_uc_count(netdev) < adapter->ahw->max_uc_count) in qlcnic_fdb_add()
422 err = dev_uc_add_excl(netdev, addr); in qlcnic_fdb_add()
426 err = dev_mc_add_excl(netdev, addr); in qlcnic_fdb_add()
435 struct net_device *netdev, in qlcnic_fdb_dump() argument
438 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_fdb_dump()
441 return ndo_dflt_fdb_dump(skb, ncb, netdev, filter_dev, idx); in qlcnic_fdb_dump()
445 idx = ndo_dflt_fdb_dump(skb, ncb, netdev, filter_dev, idx); in qlcnic_fdb_dump()
461 static int qlcnic_get_phys_port_id(struct net_device *netdev, in qlcnic_get_phys_port_id() argument
464 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_get_phys_port_id()
477 static void qlcnic_add_vxlan_port(struct net_device *netdev, in qlcnic_add_vxlan_port() argument
480 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_add_vxlan_port()
493 static void qlcnic_del_vxlan_port(struct net_device *netdev, in qlcnic_del_vxlan_port() argument
496 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_del_vxlan_port()
716 netdev_info(adapter->netdev, in qlcnic_setup_tss_rss_intr()
729 netdev_info(adapter->netdev, in qlcnic_setup_tss_rss_intr()
1360 qlcnic_vlan_rx_add(struct net_device *netdev, __be16 proto, u16 vid) in qlcnic_vlan_rx_add() argument
1362 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_vlan_rx_add()
1368 netdev_err(netdev, in qlcnic_vlan_rx_add()
1380 qlcnic_vlan_rx_del(struct net_device *netdev, __be16 proto, u16 vid) in qlcnic_vlan_rx_del() argument
1382 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_vlan_rx_del()
1388 netdev_err(netdev, in qlcnic_vlan_rx_del()
1395 qlcnic_restore_indev_addr(netdev, NETDEV_DOWN); in qlcnic_vlan_rx_del()
1436 struct net_device *netdev = adapter->netdev; in qlcnic_set_netdev_features() local
1443 netdev_update_features(netdev); in qlcnic_set_netdev_features()
1716 struct net_device *netdev = adapter->netdev; in qlcnic_request_irq() local
1740 adapter->irq = netdev->irq; in qlcnic_request_irq()
1761 netdev->name, ring); in qlcnic_request_irq()
1766 netdev->name, ring); in qlcnic_request_irq()
1784 "%s-tx-%d", netdev->name, ring); in qlcnic_request_irq()
1869 int __qlcnic_up(struct qlcnic_adapter *adapter, struct net_device *netdev) in __qlcnic_up() argument
1893 qlcnic_set_multi(netdev); in __qlcnic_up()
1894 qlcnic_fw_cmd_set_mtu(adapter, netdev->mtu); in __qlcnic_up()
1903 if (netdev->features & NETIF_F_LRO) in __qlcnic_up()
1912 netif_tx_start_all_queues(netdev); in __qlcnic_up()
1916 int qlcnic_up(struct qlcnic_adapter *adapter, struct net_device *netdev) in qlcnic_up() argument
1921 if (netif_running(netdev)) in qlcnic_up()
1922 err = __qlcnic_up(adapter, netdev); in qlcnic_up()
1928 void __qlcnic_down(struct qlcnic_adapter *adapter, struct net_device *netdev) in __qlcnic_down() argument
1939 netif_carrier_off(netdev); in __qlcnic_down()
1941 netif_tx_disable(netdev); in __qlcnic_down()
1965 void qlcnic_down(struct qlcnic_adapter *adapter, struct net_device *netdev) in qlcnic_down() argument
1968 if (netif_running(netdev)) in qlcnic_down()
1969 __qlcnic_down(adapter, netdev); in qlcnic_down()
1977 struct net_device *netdev = adapter->netdev; in qlcnic_attach() local
1984 err = qlcnic_napi_add(adapter, netdev); in qlcnic_attach()
2010 vxlan_get_rx_port(netdev); in qlcnic_attach()
2041 void qlcnic_diag_free_res(struct net_device *netdev, int drv_sds_rings) in qlcnic_diag_free_res() argument
2043 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_diag_free_res()
2067 if (netif_running(netdev)) in qlcnic_diag_free_res()
2068 __qlcnic_up(adapter, netdev); in qlcnic_diag_free_res()
2070 netif_device_attach(netdev); in qlcnic_diag_free_res()
2125 int qlcnic_diag_alloc_res(struct net_device *netdev, int test) in qlcnic_diag_alloc_res() argument
2127 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_diag_alloc_res()
2133 netif_device_detach(netdev); in qlcnic_diag_alloc_res()
2135 if (netif_running(netdev)) in qlcnic_diag_alloc_res()
2136 __qlcnic_down(adapter, netdev); in qlcnic_diag_alloc_res()
2146 netif_device_attach(netdev); in qlcnic_diag_alloc_res()
2153 netif_device_attach(netdev); in qlcnic_diag_alloc_res()
2183 struct net_device *netdev = adapter->netdev; in qlcnic_reset_hw_context() local
2188 netif_device_detach(netdev); in qlcnic_reset_hw_context()
2190 qlcnic_down(adapter, netdev); in qlcnic_reset_hw_context()
2192 qlcnic_up(adapter, netdev); in qlcnic_reset_hw_context()
2194 netif_device_attach(netdev); in qlcnic_reset_hw_context()
2197 netdev_info(adapter->netdev, "%s: soft reset complete\n", __func__); in qlcnic_reset_hw_context()
2205 struct net_device *netdev = adapter->netdev; in qlcnic_reset_context() local
2212 netif_device_detach(netdev); in qlcnic_reset_context()
2214 if (netif_running(netdev)) in qlcnic_reset_context()
2215 __qlcnic_down(adapter, netdev); in qlcnic_reset_context()
2219 if (netif_running(netdev)) { in qlcnic_reset_context()
2222 __qlcnic_up(adapter, netdev); in qlcnic_reset_context()
2223 qlcnic_restore_indev_addr(netdev, NETDEV_UP); in qlcnic_reset_context()
2227 netif_device_attach(netdev); in qlcnic_reset_context()
2253 struct net_device *netdev = adapter->netdev; in qlcnic_set_real_num_queues() local
2257 err = netif_set_real_num_tx_queues(netdev, tx_queues); in qlcnic_set_real_num_queues()
2259 netdev_err(netdev, "failed to set %d Tx queues\n", in qlcnic_set_real_num_queues()
2266 err = netif_set_real_num_rx_queues(netdev, rx_queues); in qlcnic_set_real_num_queues()
2268 netdev_err(netdev, "failed to set %d Rx queues\n", in qlcnic_set_real_num_queues()
2276 qlcnic_setup_netdev(struct qlcnic_adapter *adapter, struct net_device *netdev, in qlcnic_setup_netdev() argument
2286 netdev->netdev_ops = &qlcnic_netdev_ops; in qlcnic_setup_netdev()
2287 netdev->watchdog_timeo = QLCNIC_WATCHDOG_TIMEOUTVALUE * HZ; in qlcnic_setup_netdev()
2289 qlcnic_change_mtu(netdev, netdev->mtu); in qlcnic_setup_netdev()
2291 netdev->ethtool_ops = (qlcnic_sriov_vf_check(adapter)) ? in qlcnic_setup_netdev()
2294 netdev->features |= (NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM | in qlcnic_setup_netdev()
2297 netdev->vlan_features |= (NETIF_F_SG | NETIF_F_IP_CSUM | in qlcnic_setup_netdev()
2301 netdev->features |= (NETIF_F_TSO | NETIF_F_TSO6); in qlcnic_setup_netdev()
2302 netdev->vlan_features |= (NETIF_F_TSO | NETIF_F_TSO6); in qlcnic_setup_netdev()
2306 netdev->features |= NETIF_F_HIGHDMA; in qlcnic_setup_netdev()
2307 netdev->vlan_features |= NETIF_F_HIGHDMA; in qlcnic_setup_netdev()
2311 netdev->features |= (NETIF_F_HW_VLAN_CTAG_TX); in qlcnic_setup_netdev()
2314 netdev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; in qlcnic_setup_netdev()
2317 netdev->features |= NETIF_F_LRO; in qlcnic_setup_netdev()
2320 netdev->features |= NETIF_F_GSO_UDP_TUNNEL; in qlcnic_setup_netdev()
2323 netdev->hw_enc_features = NETIF_F_IP_CSUM | in qlcnic_setup_netdev()
2330 netdev->hw_enc_features |= NETIF_F_RXCSUM; in qlcnic_setup_netdev()
2332 netdev->hw_features = netdev->features; in qlcnic_setup_netdev()
2333 netdev->priv_flags |= IFF_UNICAST_FLT; in qlcnic_setup_netdev()
2334 netdev->irq = adapter->msix_entries[0].vector; in qlcnic_setup_netdev()
2343 err = register_netdev(netdev); in qlcnic_setup_netdev()
2384 struct net_device *netdev) in qlcnic_alloc_tx_rings() argument
2400 tx_ring->txq = netdev_get_tx_queue(netdev, ring); in qlcnic_alloc_tx_rings()
2452 struct net_device *netdev = NULL; in qlcnic_probe() local
2506 netdev = alloc_etherdev_mq(sizeof(struct qlcnic_adapter), in qlcnic_probe()
2508 if (!netdev) { in qlcnic_probe()
2513 SET_NETDEV_DEV(netdev, &pdev->dev); in qlcnic_probe()
2515 adapter = netdev_priv(netdev); in qlcnic_probe()
2516 adapter->netdev = netdev; in qlcnic_probe()
2645 err = qlcnic_setup_netdev(adapter, netdev, pci_using_dac); in qlcnic_probe()
2658 adapter->netdev->name); in qlcnic_probe()
2662 adapter->netdev->name); in qlcnic_probe()
2689 free_netdev(netdev); in qlcnic_probe()
2706 netdev->netdev_ops = &qlcnic_netdev_failed_ops; in qlcnic_probe()
2707 netdev->ethtool_ops = &qlcnic_ethtool_failed_ops; in qlcnic_probe()
2715 err = register_netdev(netdev); in qlcnic_probe()
2732 struct net_device *netdev; in qlcnic_remove() local
2739 netdev = adapter->netdev; in qlcnic_remove()
2745 unregister_netdev(netdev); in qlcnic_remove()
2790 free_netdev(netdev); in qlcnic_remove()
2831 static int qlcnic_open(struct net_device *netdev) in qlcnic_open() argument
2833 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_open()
2837 netdev_err(netdev, "%s: Device is in non-operational state\n", in qlcnic_open()
2843 netif_carrier_off(netdev); in qlcnic_open()
2849 err = __qlcnic_up(adapter, netdev); in qlcnic_open()
2859 static int qlcnic_close(struct net_device *netdev) in qlcnic_close() argument
2861 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_close()
2863 __qlcnic_down(adapter, netdev); in qlcnic_close()
2874 struct net_device *netdev = adapter->netdev; in qlcnic_alloc_lb_filters_mem() local
2905 netdev_info(netdev, "active nic func = %d, mac filter size=%d\n", in qlcnic_alloc_lb_filters_mem()
2943 struct net_device *netdev = adapter->netdev; in qlcnic_check_temp() local
2957 dev_err(&netdev->dev, in qlcnic_check_temp()
2964 dev_err(&netdev->dev, in qlcnic_check_temp()
2972 dev_info(&netdev->dev, in qlcnic_check_temp()
2998 struct net_device *netdev = adapter->netdev; in qlcnic_dump_rings() local
3004 if (!netdev || !netif_running(netdev)) in qlcnic_dump_rings()
3011 netdev_info(netdev, in qlcnic_dump_rings()
3021 netdev_info(netdev, in qlcnic_dump_rings()
3032 netdev_info(netdev, "Tx ring=%d Context Id=0x%x\n", in qlcnic_dump_rings()
3034 netdev_info(netdev, in qlcnic_dump_rings()
3042 netdev_info(netdev, "crb_intr_mask=%d\n", in qlcnic_dump_rings()
3045 netdev_info(netdev, in qlcnic_dump_rings()
3051 netdev_info(netdev, "Total desc=%d, Available desc=%d\n", in qlcnic_dump_rings()
3060 static void qlcnic_tx_timeout(struct net_device *netdev) in qlcnic_tx_timeout() argument
3062 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_tx_timeout()
3071 netdev_err(netdev, "Tx timeout, reset the adapter.\n"); in qlcnic_tx_timeout()
3078 netdev_err(netdev, "Tx timeout, reset adapter context.\n"); in qlcnic_tx_timeout()
3083 static struct net_device_stats *qlcnic_get_stats(struct net_device *netdev) in qlcnic_get_stats() argument
3085 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_get_stats()
3086 struct net_device_stats *stats = &netdev->stats; in qlcnic_get_stats()
3186 static void qlcnic_poll_controller(struct net_device *netdev) in qlcnic_poll_controller() argument
3188 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_poll_controller()
3533 netif_device_attach(adapter->netdev); in qlcnic_fwinit_work()
3542 struct net_device *netdev = adapter->netdev; in qlcnic_detach_work() local
3545 netif_device_detach(netdev); in qlcnic_detach_work()
3549 if (netif_running(netdev)) in qlcnic_detach_work()
3550 __qlcnic_down(adapter, netdev); in qlcnic_detach_work()
3552 qlcnic_down(adapter, netdev); in qlcnic_detach_work()
3595 netif_device_attach(netdev); in qlcnic_detach_work()
3639 netdev_err(adapter->netdev, "%s: Device is in non-operational state\n", in qlcnic_82xx_dev_request_reset()
3689 struct net_device *netdev = adapter->netdev; in qlcnic_attach_work() local
3708 if (netif_running(netdev)) { in qlcnic_attach_work()
3709 if (qlcnic_up(adapter, netdev)) in qlcnic_attach_work()
3712 qlcnic_restore_indev_addr(netdev, NETDEV_UP); in qlcnic_attach_work()
3716 netif_device_attach(netdev); in qlcnic_attach_work()
3852 struct net_device *netdev = adapter->netdev; in qlcnic_attach_func() local
3888 netdev_err(netdev, "failed to setup interrupt\n"); in qlcnic_attach_func()
3892 if (netif_running(netdev)) { in qlcnic_attach_func()
3897 netif_device_attach(netdev); in qlcnic_attach_func()
3901 err = qlcnic_up(adapter, netdev); in qlcnic_attach_func()
3905 qlcnic_restore_indev_addr(netdev, NETDEV_UP); in qlcnic_attach_func()
3908 netif_device_attach(netdev); in qlcnic_attach_func()
3916 struct net_device *netdev = adapter->netdev; in qlcnic_82xx_io_error_detected() local
3925 netif_device_detach(netdev); in qlcnic_82xx_io_error_detected()
3929 if (netif_running(netdev)) in qlcnic_82xx_io_error_detected()
3930 qlcnic_down(adapter, netdev); in qlcnic_82xx_io_error_detected()
4032 struct net_device *netdev = adapter->netdev; in qlcnic_validate_rings() local
4048 netdev_err(netdev, "%s rings value should be a power of 2\n", in qlcnic_validate_rings()
4055 netdev_err(netdev, "No Multi Tx queue support\n"); in qlcnic_validate_rings()
4060 netdev_err(netdev, in qlcnic_validate_rings()
4071 struct net_device *netdev = adapter->netdev; in qlcnic_setup_rings() local
4081 netif_device_detach(netdev); in qlcnic_setup_rings()
4087 if (netif_running(netdev)) in qlcnic_setup_rings()
4088 __qlcnic_down(adapter, netdev); in qlcnic_setup_rings()
4102 netdev_err(netdev, "failed to setup interrupt\n"); in qlcnic_setup_rings()
4129 if (netif_running(netdev)) { in qlcnic_setup_rings()
4133 err = __qlcnic_up(adapter, netdev); in qlcnic_setup_rings()
4136 qlcnic_restore_indev_addr(netdev, NETDEV_UP); in qlcnic_setup_rings()
4139 netif_device_attach(netdev); in qlcnic_setup_rings()
4176 void qlcnic_restore_indev_addr(struct net_device *netdev, unsigned long event) in qlcnic_restore_indev_addr() argument
4178 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_restore_indev_addr()
4182 qlcnic_config_indev_addr(adapter, netdev, event); in qlcnic_restore_indev_addr()
4186 dev = __vlan_find_dev_deep_rcu(netdev, htons(ETH_P_8021Q), vid); in qlcnic_restore_indev_addr()