enic 207 drivers/net/ethernet/cisco/enic/enic.h struct enic *enic = vdev->priv; enic 209 drivers/net/ethernet/cisco/enic/enic.h return enic->netdev; enic 228 drivers/net/ethernet/cisco/enic/enic.h static inline struct device *enic_get_dev(struct enic *enic) enic 230 drivers/net/ethernet/cisco/enic/enic.h return &(enic->pdev->dev); enic 233 drivers/net/ethernet/cisco/enic/enic.h static inline unsigned int enic_cq_rq(struct enic *enic, unsigned int rq) enic 238 drivers/net/ethernet/cisco/enic/enic.h static inline unsigned int enic_cq_wq(struct enic *enic, unsigned int wq) enic 240 drivers/net/ethernet/cisco/enic/enic.h return enic->rq_count + wq; enic 258 drivers/net/ethernet/cisco/enic/enic.h static inline unsigned int enic_msix_rq_intr(struct enic *enic, enic 261 drivers/net/ethernet/cisco/enic/enic.h return enic->cq[enic_cq_rq(enic, rq)].interrupt_offset; enic 264 drivers/net/ethernet/cisco/enic/enic.h static inline unsigned int enic_msix_wq_intr(struct enic *enic, enic 267 drivers/net/ethernet/cisco/enic/enic.h return enic->cq[enic_cq_wq(enic, wq)].interrupt_offset; enic 270 drivers/net/ethernet/cisco/enic/enic.h static inline unsigned int enic_msix_err_intr(struct enic *enic) enic 272 drivers/net/ethernet/cisco/enic/enic.h return enic->rq_count + enic->wq_count; enic 275 drivers/net/ethernet/cisco/enic/enic.h static inline unsigned int enic_msix_notify_intr(struct enic *enic) enic 277 drivers/net/ethernet/cisco/enic/enic.h return enic->rq_count + enic->wq_count + 1; enic 280 drivers/net/ethernet/cisco/enic/enic.h static inline bool enic_is_err_intr(struct enic *enic, int intr) enic 282 drivers/net/ethernet/cisco/enic/enic.h switch (vnic_dev_get_intr_mode(enic->vdev)) { enic 286 drivers/net/ethernet/cisco/enic/enic.h return intr == enic_msix_err_intr(enic); enic 293 drivers/net/ethernet/cisco/enic/enic.h static inline bool enic_is_notify_intr(struct enic *enic, int intr) enic 295 drivers/net/ethernet/cisco/enic/enic.h switch (vnic_dev_get_intr_mode(enic->vdev)) { enic 299 drivers/net/ethernet/cisco/enic/enic.h return intr == enic_msix_notify_intr(enic); enic 306 drivers/net/ethernet/cisco/enic/enic.h static inline int enic_dma_map_check(struct enic *enic, dma_addr_t dma_addr) enic 308 drivers/net/ethernet/cisco/enic/enic.h if (unlikely(pci_dma_mapping_error(enic->pdev, dma_addr))) { enic 310 drivers/net/ethernet/cisco/enic/enic.h enic->netdev->name); enic 311 drivers/net/ethernet/cisco/enic/enic.h enic->gen_stats.dma_map_error++; enic 319 drivers/net/ethernet/cisco/enic/enic.h void enic_reset_addr_lists(struct enic *enic); enic 320 drivers/net/ethernet/cisco/enic/enic.h int enic_sriov_enabled(struct enic *enic); enic 321 drivers/net/ethernet/cisco/enic/enic.h int enic_is_valid_vf(struct enic *enic, int vf); enic 322 drivers/net/ethernet/cisco/enic/enic.h int enic_is_dynamic(struct enic *enic); enic 324 drivers/net/ethernet/cisco/enic/enic.h int __enic_set_rsskey(struct enic *enic); enic 33 drivers/net/ethernet/cisco/enic/enic_api.c struct enic *enic = netdev_priv(netdev); enic 34 drivers/net/ethernet/cisco/enic/enic_api.c struct vnic_dev *vdev = enic->vdev; enic 36 drivers/net/ethernet/cisco/enic/enic_api.c spin_lock(&enic->enic_api_lock); enic 37 drivers/net/ethernet/cisco/enic/enic_api.c spin_lock_bh(&enic->devcmd_lock); enic 43 drivers/net/ethernet/cisco/enic/enic_api.c spin_unlock_bh(&enic->devcmd_lock); enic 44 drivers/net/ethernet/cisco/enic/enic_api.c spin_unlock(&enic->enic_api_lock); enic 21 drivers/net/ethernet/cisco/enic/enic_clsf.c int enic_addfltr_5t(struct enic *enic, struct flow_keys *keys, u16 rq) enic 44 drivers/net/ethernet/cisco/enic/enic_clsf.c spin_lock_bh(&enic->devcmd_lock); enic 45 drivers/net/ethernet/cisco/enic/enic_clsf.c res = vnic_dev_classifier(enic->vdev, CLSF_ADD, &rq, &data); enic 46 drivers/net/ethernet/cisco/enic/enic_clsf.c spin_unlock_bh(&enic->devcmd_lock); enic 59 drivers/net/ethernet/cisco/enic/enic_clsf.c int enic_delfltr(struct enic *enic, u16 filter_id) enic 63 drivers/net/ethernet/cisco/enic/enic_clsf.c spin_lock_bh(&enic->devcmd_lock); enic 64 drivers/net/ethernet/cisco/enic/enic_clsf.c ret = vnic_dev_classifier(enic->vdev, CLSF_DEL, &filter_id, NULL); enic 65 drivers/net/ethernet/cisco/enic/enic_clsf.c spin_unlock_bh(&enic->devcmd_lock); enic 73 drivers/net/ethernet/cisco/enic/enic_clsf.c void enic_rfs_flw_tbl_init(struct enic *enic) enic 77 drivers/net/ethernet/cisco/enic/enic_clsf.c spin_lock_init(&enic->rfs_h.lock); enic 79 drivers/net/ethernet/cisco/enic/enic_clsf.c INIT_HLIST_HEAD(&enic->rfs_h.ht_head[i]); enic 80 drivers/net/ethernet/cisco/enic/enic_clsf.c enic->rfs_h.max = enic->config.num_arfs; enic 81 drivers/net/ethernet/cisco/enic/enic_clsf.c enic->rfs_h.free = enic->rfs_h.max; enic 82 drivers/net/ethernet/cisco/enic/enic_clsf.c enic->rfs_h.toclean = 0; enic 85 drivers/net/ethernet/cisco/enic/enic_clsf.c void enic_rfs_flw_tbl_free(struct enic *enic) enic 89 drivers/net/ethernet/cisco/enic/enic_clsf.c enic_rfs_timer_stop(enic); enic 90 drivers/net/ethernet/cisco/enic/enic_clsf.c spin_lock_bh(&enic->rfs_h.lock); enic 96 drivers/net/ethernet/cisco/enic/enic_clsf.c hhead = &enic->rfs_h.ht_head[i]; enic 98 drivers/net/ethernet/cisco/enic/enic_clsf.c enic_delfltr(enic, n->fltr_id); enic 101 drivers/net/ethernet/cisco/enic/enic_clsf.c enic->rfs_h.free++; enic 104 drivers/net/ethernet/cisco/enic/enic_clsf.c spin_unlock_bh(&enic->rfs_h.lock); enic 107 drivers/net/ethernet/cisco/enic/enic_clsf.c struct enic_rfs_fltr_node *htbl_fltr_search(struct enic *enic, u16 fltr_id) enic 116 drivers/net/ethernet/cisco/enic/enic_clsf.c hhead = &enic->rfs_h.ht_head[i]; enic 128 drivers/net/ethernet/cisco/enic/enic_clsf.c struct enic *enic = from_timer(enic, t, rfs_h.rfs_may_expire); enic 132 drivers/net/ethernet/cisco/enic/enic_clsf.c spin_lock_bh(&enic->rfs_h.lock); enic 138 drivers/net/ethernet/cisco/enic/enic_clsf.c hhead = &enic->rfs_h.ht_head[enic->rfs_h.toclean++]; enic 140 drivers/net/ethernet/cisco/enic/enic_clsf.c res = rps_may_expire_flow(enic->netdev, n->rq_id, enic 143 drivers/net/ethernet/cisco/enic/enic_clsf.c res = enic_delfltr(enic, n->fltr_id); enic 148 drivers/net/ethernet/cisco/enic/enic_clsf.c enic->rfs_h.free++; enic 152 drivers/net/ethernet/cisco/enic/enic_clsf.c spin_unlock_bh(&enic->rfs_h.lock); enic 153 drivers/net/ethernet/cisco/enic/enic_clsf.c mod_timer(&enic->rfs_h.rfs_may_expire, jiffies + HZ/4); enic 176 drivers/net/ethernet/cisco/enic/enic_clsf.c struct enic *enic; enic 180 drivers/net/ethernet/cisco/enic/enic_clsf.c enic = netdev_priv(dev); enic 188 drivers/net/ethernet/cisco/enic/enic_clsf.c spin_lock_bh(&enic->rfs_h.lock); enic 189 drivers/net/ethernet/cisco/enic/enic_clsf.c n = htbl_key_search(&enic->rfs_h.ht_head[tbl_idx], &keys); enic 207 drivers/net/ethernet/cisco/enic/enic_clsf.c i = --enic->rfs_h.free; enic 210 drivers/net/ethernet/cisco/enic/enic_clsf.c enic->rfs_h.free++; enic 211 drivers/net/ethernet/cisco/enic/enic_clsf.c res = enic_delfltr(enic, n->fltr_id); enic 214 drivers/net/ethernet/cisco/enic/enic_clsf.c res = enic_addfltr_5t(enic, &keys, rxq_index); enic 217 drivers/net/ethernet/cisco/enic/enic_clsf.c enic->rfs_h.free++; enic 224 drivers/net/ethernet/cisco/enic/enic_clsf.c res = enic_addfltr_5t(enic, &keys, rxq_index); enic 226 drivers/net/ethernet/cisco/enic/enic_clsf.c enic->rfs_h.free++; enic 229 drivers/net/ethernet/cisco/enic/enic_clsf.c ret = enic_delfltr(enic, n->fltr_id); enic 237 drivers/net/ethernet/cisco/enic/enic_clsf.c head = &enic->rfs_h.ht_head[tbl_idx]; enic 245 drivers/net/ethernet/cisco/enic/enic_clsf.c enic->rfs_h.free++; enic 253 drivers/net/ethernet/cisco/enic/enic_clsf.c i = --enic->rfs_h.free; enic 255 drivers/net/ethernet/cisco/enic/enic_clsf.c enic->rfs_h.free++; enic 263 drivers/net/ethernet/cisco/enic/enic_clsf.c enic->rfs_h.free++; enic 267 drivers/net/ethernet/cisco/enic/enic_clsf.c res = enic_addfltr_5t(enic, &keys, rxq_index); enic 270 drivers/net/ethernet/cisco/enic/enic_clsf.c enic->rfs_h.free++; enic 278 drivers/net/ethernet/cisco/enic/enic_clsf.c hlist_add_head(&n->node, &enic->rfs_h.ht_head[tbl_idx]); enic 282 drivers/net/ethernet/cisco/enic/enic_clsf.c spin_unlock_bh(&enic->rfs_h.lock); enic 10 drivers/net/ethernet/cisco/enic/enic_clsf.h int enic_addfltr_5t(struct enic *enic, struct flow_keys *keys, u16 rq); enic 11 drivers/net/ethernet/cisco/enic/enic_clsf.h int enic_delfltr(struct enic *enic, u16 filter_id); enic 12 drivers/net/ethernet/cisco/enic/enic_clsf.h void enic_rfs_flw_tbl_init(struct enic *enic); enic 13 drivers/net/ethernet/cisco/enic/enic_clsf.h void enic_rfs_flw_tbl_free(struct enic *enic); enic 14 drivers/net/ethernet/cisco/enic/enic_clsf.h struct enic_rfs_fltr_node *htbl_fltr_search(struct enic *enic, u16 fltr_id); enic 21 drivers/net/ethernet/cisco/enic/enic_clsf.h static inline void enic_rfs_timer_start(struct enic *enic) enic 23 drivers/net/ethernet/cisco/enic/enic_clsf.h timer_setup(&enic->rfs_h.rfs_may_expire, enic_flow_may_expire, 0); enic 24 drivers/net/ethernet/cisco/enic/enic_clsf.h mod_timer(&enic->rfs_h.rfs_may_expire, jiffies + HZ/4); enic 27 drivers/net/ethernet/cisco/enic/enic_clsf.h static inline void enic_rfs_timer_stop(struct enic *enic) enic 29 drivers/net/ethernet/cisco/enic/enic_clsf.h del_timer_sync(&enic->rfs_h.rfs_may_expire); enic 32 drivers/net/ethernet/cisco/enic/enic_clsf.h static inline void enic_rfs_timer_start(struct enic *enic) {} enic 33 drivers/net/ethernet/cisco/enic/enic_clsf.h static inline void enic_rfs_timer_stop(struct enic *enic) {} enic 28 drivers/net/ethernet/cisco/enic/enic_dev.c int enic_dev_fw_info(struct enic *enic, struct vnic_devcmd_fw_info **fw_info) enic 32 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 33 drivers/net/ethernet/cisco/enic/enic_dev.c err = vnic_dev_fw_info(enic->vdev, fw_info); enic 34 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 39 drivers/net/ethernet/cisco/enic/enic_dev.c int enic_dev_stats_dump(struct enic *enic, struct vnic_stats **vstats) enic 43 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 44 drivers/net/ethernet/cisco/enic/enic_dev.c err = vnic_dev_stats_dump(enic->vdev, vstats); enic 45 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 50 drivers/net/ethernet/cisco/enic/enic_dev.c int enic_dev_add_station_addr(struct enic *enic) enic 54 drivers/net/ethernet/cisco/enic/enic_dev.c if (!is_valid_ether_addr(enic->netdev->dev_addr)) enic 57 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 58 drivers/net/ethernet/cisco/enic/enic_dev.c err = vnic_dev_add_addr(enic->vdev, enic->netdev->dev_addr); enic 59 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 64 drivers/net/ethernet/cisco/enic/enic_dev.c int enic_dev_del_station_addr(struct enic *enic) enic 68 drivers/net/ethernet/cisco/enic/enic_dev.c if (!is_valid_ether_addr(enic->netdev->dev_addr)) enic 71 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 72 drivers/net/ethernet/cisco/enic/enic_dev.c err = vnic_dev_del_addr(enic->vdev, enic->netdev->dev_addr); enic 73 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 78 drivers/net/ethernet/cisco/enic/enic_dev.c int enic_dev_packet_filter(struct enic *enic, int directed, int multicast, enic 83 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 84 drivers/net/ethernet/cisco/enic/enic_dev.c err = vnic_dev_packet_filter(enic->vdev, directed, enic 86 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 91 drivers/net/ethernet/cisco/enic/enic_dev.c int enic_dev_add_addr(struct enic *enic, const u8 *addr) enic 95 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 96 drivers/net/ethernet/cisco/enic/enic_dev.c err = vnic_dev_add_addr(enic->vdev, addr); enic 97 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 102 drivers/net/ethernet/cisco/enic/enic_dev.c int enic_dev_del_addr(struct enic *enic, const u8 *addr) enic 106 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 107 drivers/net/ethernet/cisco/enic/enic_dev.c err = vnic_dev_del_addr(enic->vdev, addr); enic 108 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 113 drivers/net/ethernet/cisco/enic/enic_dev.c int enic_dev_notify_unset(struct enic *enic) enic 117 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 118 drivers/net/ethernet/cisco/enic/enic_dev.c err = vnic_dev_notify_unset(enic->vdev); enic 119 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 124 drivers/net/ethernet/cisco/enic/enic_dev.c int enic_dev_hang_notify(struct enic *enic) enic 128 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 129 drivers/net/ethernet/cisco/enic/enic_dev.c err = vnic_dev_hang_notify(enic->vdev); enic 130 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 135 drivers/net/ethernet/cisco/enic/enic_dev.c int enic_dev_set_ig_vlan_rewrite_mode(struct enic *enic) enic 139 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 140 drivers/net/ethernet/cisco/enic/enic_dev.c err = vnic_dev_set_ig_vlan_rewrite_mode(enic->vdev, enic 142 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 147 drivers/net/ethernet/cisco/enic/enic_dev.c int enic_dev_enable(struct enic *enic) enic 151 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 152 drivers/net/ethernet/cisco/enic/enic_dev.c err = vnic_dev_enable_wait(enic->vdev); enic 153 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 158 drivers/net/ethernet/cisco/enic/enic_dev.c int enic_dev_disable(struct enic *enic) enic 162 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 163 drivers/net/ethernet/cisco/enic/enic_dev.c err = vnic_dev_disable(enic->vdev); enic 164 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 169 drivers/net/ethernet/cisco/enic/enic_dev.c int enic_dev_intr_coal_timer_info(struct enic *enic) enic 173 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 174 drivers/net/ethernet/cisco/enic/enic_dev.c err = vnic_dev_intr_coal_timer_info(enic->vdev); enic 175 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 183 drivers/net/ethernet/cisco/enic/enic_dev.c struct enic *enic = netdev_priv(netdev); enic 186 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 187 drivers/net/ethernet/cisco/enic/enic_dev.c err = enic_add_vlan(enic, vid); enic 188 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 196 drivers/net/ethernet/cisco/enic/enic_dev.c struct enic *enic = netdev_priv(netdev); enic 199 drivers/net/ethernet/cisco/enic/enic_dev.c spin_lock_bh(&enic->devcmd_lock); enic 200 drivers/net/ethernet/cisco/enic/enic_dev.c err = enic_del_vlan(enic, vid); enic 201 drivers/net/ethernet/cisco/enic/enic_dev.c spin_unlock_bh(&enic->devcmd_lock); enic 29 drivers/net/ethernet/cisco/enic/enic_dev.h #define ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnicdevcmdfn, ...) \ enic 31 drivers/net/ethernet/cisco/enic/enic_dev.h spin_lock_bh(&enic->devcmd_lock); \ enic 32 drivers/net/ethernet/cisco/enic/enic_dev.h if (enic_is_valid_vf(enic, vf)) { \ enic 33 drivers/net/ethernet/cisco/enic/enic_dev.h vnic_dev_cmd_proxy_by_index_start(enic->vdev, vf); \ enic 34 drivers/net/ethernet/cisco/enic/enic_dev.h err = vnicdevcmdfn(enic->vdev, ##__VA_ARGS__); \ enic 35 drivers/net/ethernet/cisco/enic/enic_dev.h vnic_dev_cmd_proxy_end(enic->vdev); \ enic 37 drivers/net/ethernet/cisco/enic/enic_dev.h err = vnicdevcmdfn(enic->vdev, ##__VA_ARGS__); \ enic 39 drivers/net/ethernet/cisco/enic/enic_dev.h spin_unlock_bh(&enic->devcmd_lock); \ enic 42 drivers/net/ethernet/cisco/enic/enic_dev.h int enic_dev_fw_info(struct enic *enic, struct vnic_devcmd_fw_info **fw_info); enic 43 drivers/net/ethernet/cisco/enic/enic_dev.h int enic_dev_stats_dump(struct enic *enic, struct vnic_stats **vstats); enic 44 drivers/net/ethernet/cisco/enic/enic_dev.h int enic_dev_add_station_addr(struct enic *enic); enic 45 drivers/net/ethernet/cisco/enic/enic_dev.h int enic_dev_del_station_addr(struct enic *enic); enic 46 drivers/net/ethernet/cisco/enic/enic_dev.h int enic_dev_packet_filter(struct enic *enic, int directed, int multicast, enic 48 drivers/net/ethernet/cisco/enic/enic_dev.h int enic_dev_add_addr(struct enic *enic, const u8 *addr); enic 49 drivers/net/ethernet/cisco/enic/enic_dev.h int enic_dev_del_addr(struct enic *enic, const u8 *addr); enic 52 drivers/net/ethernet/cisco/enic/enic_dev.h int enic_dev_notify_unset(struct enic *enic); enic 53 drivers/net/ethernet/cisco/enic/enic_dev.h int enic_dev_hang_notify(struct enic *enic); enic 54 drivers/net/ethernet/cisco/enic/enic_dev.h int enic_dev_set_ig_vlan_rewrite_mode(struct enic *enic); enic 55 drivers/net/ethernet/cisco/enic/enic_dev.h int enic_dev_enable(struct enic *enic); enic 56 drivers/net/ethernet/cisco/enic/enic_dev.h int enic_dev_disable(struct enic *enic); enic 57 drivers/net/ethernet/cisco/enic/enic_dev.h int enic_dev_intr_coal_timer_info(struct enic *enic); enic 96 drivers/net/ethernet/cisco/enic/enic_ethtool.c static void enic_intr_coal_set_rx(struct enic *enic, u32 timer) enic 101 drivers/net/ethernet/cisco/enic/enic_ethtool.c for (i = 0; i < enic->rq_count; i++) { enic 102 drivers/net/ethernet/cisco/enic/enic_ethtool.c intr = enic_msix_rq_intr(enic, i); enic 103 drivers/net/ethernet/cisco/enic/enic_ethtool.c vnic_intr_coalescing_timer_set(&enic->intr[intr], timer); enic 110 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic *enic = netdev_priv(netdev); enic 122 drivers/net/ethernet/cisco/enic/enic_ethtool.c base->speed = vnic_dev_port_speed(enic->vdev); enic 137 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic *enic = netdev_priv(netdev); enic 141 drivers/net/ethernet/cisco/enic/enic_ethtool.c err = enic_dev_fw_info(enic, &fw_info); enic 153 drivers/net/ethernet/cisco/enic/enic_ethtool.c strlcpy(drvinfo->bus_info, pci_name(enic->pdev), enic 183 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic *enic = netdev_priv(netdev); enic 184 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct vnic_enet_config *c = &enic->config; enic 195 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic *enic = netdev_priv(netdev); enic 196 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct vnic_enet_config *c = &enic->config; enic 234 drivers/net/ethernet/cisco/enic/enic_ethtool.c enic_free_vnic_resources(enic); enic 235 drivers/net/ethernet/cisco/enic/enic_ethtool.c err = enic_alloc_vnic_resources(enic); enic 239 drivers/net/ethernet/cisco/enic/enic_ethtool.c enic_free_vnic_resources(enic); enic 242 drivers/net/ethernet/cisco/enic/enic_ethtool.c enic_init_vnic_resources(enic); enic 268 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic *enic = netdev_priv(netdev); enic 273 drivers/net/ethernet/cisco/enic/enic_ethtool.c err = enic_dev_stats_dump(enic, &vstats); enic 286 drivers/net/ethernet/cisco/enic/enic_ethtool.c *(data++) = ((u64 *)&enic->gen_stats)[enic_gen_stats[i].index]; enic 291 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic *enic = netdev_priv(netdev); enic 292 drivers/net/ethernet/cisco/enic/enic_ethtool.c return enic->msg_enable; enic 297 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic *enic = netdev_priv(netdev); enic 298 drivers/net/ethernet/cisco/enic/enic_ethtool.c enic->msg_enable = value; enic 304 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic *enic = netdev_priv(netdev); enic 305 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic_rx_coal *rxcoal = &enic->rx_coalesce_setting; enic 307 drivers/net/ethernet/cisco/enic/enic_ethtool.c if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX) enic 308 drivers/net/ethernet/cisco/enic/enic_ethtool.c ecmd->tx_coalesce_usecs = enic->tx_coalesce_usecs; enic 309 drivers/net/ethernet/cisco/enic/enic_ethtool.c ecmd->rx_coalesce_usecs = enic->rx_coalesce_usecs; enic 318 drivers/net/ethernet/cisco/enic/enic_ethtool.c static int enic_coalesce_valid(struct enic *enic, enic 321 drivers/net/ethernet/cisco/enic/enic_ethtool.c u32 coalesce_usecs_max = vnic_dev_get_intr_coal_timer_max(enic->vdev); enic 346 drivers/net/ethernet/cisco/enic/enic_ethtool.c if ((vnic_dev_get_intr_mode(enic->vdev) != VNIC_DEV_INTR_MODE_MSIX) && enic 354 drivers/net/ethernet/cisco/enic/enic_ethtool.c netdev_info(enic->netdev, "ethtool_set_coalesce: adaptor supports max coalesce value of %d. Setting max value.\n", enic 368 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic *enic = netdev_priv(netdev); enic 376 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic_rx_coal *rxcoal = &enic->rx_coalesce_setting; enic 378 drivers/net/ethernet/cisco/enic/enic_ethtool.c ret = enic_coalesce_valid(enic, ecmd); enic 381 drivers/net/ethernet/cisco/enic/enic_ethtool.c coalesce_usecs_max = vnic_dev_get_intr_coal_timer_max(enic->vdev); enic 392 drivers/net/ethernet/cisco/enic/enic_ethtool.c if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX) { enic 393 drivers/net/ethernet/cisco/enic/enic_ethtool.c for (i = 0; i < enic->wq_count; i++) { enic 394 drivers/net/ethernet/cisco/enic/enic_ethtool.c intr = enic_msix_wq_intr(enic, i); enic 395 drivers/net/ethernet/cisco/enic/enic_ethtool.c vnic_intr_coalescing_timer_set(&enic->intr[intr], enic 398 drivers/net/ethernet/cisco/enic/enic_ethtool.c enic->tx_coalesce_usecs = tx_coalesce_usecs; enic 402 drivers/net/ethernet/cisco/enic/enic_ethtool.c enic_intr_coal_set_rx(enic, rx_coalesce_usecs); enic 410 drivers/net/ethernet/cisco/enic/enic_ethtool.c enic->rx_coalesce_usecs = rx_coalesce_usecs; enic 415 drivers/net/ethernet/cisco/enic/enic_ethtool.c static int enic_grxclsrlall(struct enic *enic, struct ethtool_rxnfc *cmd, enic 420 drivers/net/ethernet/cisco/enic/enic_ethtool.c cmd->data = enic->rfs_h.max - enic->rfs_h.free; enic 426 drivers/net/ethernet/cisco/enic/enic_ethtool.c hhead = &enic->rfs_h.ht_head[j]; enic 439 drivers/net/ethernet/cisco/enic/enic_ethtool.c static int enic_grxclsrule(struct enic *enic, struct ethtool_rxnfc *cmd) enic 445 drivers/net/ethernet/cisco/enic/enic_ethtool.c n = htbl_fltr_search(enic, (u16)fsp->location); enic 477 drivers/net/ethernet/cisco/enic/enic_ethtool.c static int enic_get_rx_flow_hash(struct enic *enic, struct ethtool_rxnfc *cmd) enic 482 drivers/net/ethernet/cisco/enic/enic_ethtool.c spin_lock_bh(&enic->devcmd_lock); enic 483 drivers/net/ethernet/cisco/enic/enic_ethtool.c (void)vnic_dev_capable_rss_hash_type(enic->vdev, &rss_hash_type); enic 484 drivers/net/ethernet/cisco/enic/enic_ethtool.c spin_unlock_bh(&enic->devcmd_lock); enic 523 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic *enic = netdev_priv(dev); enic 528 drivers/net/ethernet/cisco/enic/enic_ethtool.c cmd->data = enic->rq_count; enic 531 drivers/net/ethernet/cisco/enic/enic_ethtool.c spin_lock_bh(&enic->rfs_h.lock); enic 532 drivers/net/ethernet/cisco/enic/enic_ethtool.c cmd->rule_cnt = enic->rfs_h.max - enic->rfs_h.free; enic 533 drivers/net/ethernet/cisco/enic/enic_ethtool.c cmd->data = enic->rfs_h.max; enic 534 drivers/net/ethernet/cisco/enic/enic_ethtool.c spin_unlock_bh(&enic->rfs_h.lock); enic 537 drivers/net/ethernet/cisco/enic/enic_ethtool.c spin_lock_bh(&enic->rfs_h.lock); enic 538 drivers/net/ethernet/cisco/enic/enic_ethtool.c ret = enic_grxclsrlall(enic, cmd, rule_locs); enic 539 drivers/net/ethernet/cisco/enic/enic_ethtool.c spin_unlock_bh(&enic->rfs_h.lock); enic 542 drivers/net/ethernet/cisco/enic/enic_ethtool.c spin_lock_bh(&enic->rfs_h.lock); enic 543 drivers/net/ethernet/cisco/enic/enic_ethtool.c ret = enic_grxclsrule(enic, cmd); enic 544 drivers/net/ethernet/cisco/enic/enic_ethtool.c spin_unlock_bh(&enic->rfs_h.lock); enic 547 drivers/net/ethernet/cisco/enic/enic_ethtool.c ret = enic_get_rx_flow_hash(enic, cmd); enic 560 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic *enic = netdev_priv(dev); enic 565 drivers/net/ethernet/cisco/enic/enic_ethtool.c *(u32 *)data = enic->rx_copybreak; enic 579 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic *enic = netdev_priv(dev); enic 584 drivers/net/ethernet/cisco/enic/enic_ethtool.c enic->rx_copybreak = *(u32 *)data; enic 602 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic *enic = netdev_priv(netdev); enic 605 drivers/net/ethernet/cisco/enic/enic_ethtool.c memcpy(hkey, enic->rss_key, ENIC_RSS_LEN); enic 616 drivers/net/ethernet/cisco/enic/enic_ethtool.c struct enic *enic = netdev_priv(netdev); enic 623 drivers/net/ethernet/cisco/enic/enic_ethtool.c memcpy(enic->rss_key, hkey, ENIC_RSS_LEN); enic 625 drivers/net/ethernet/cisco/enic/enic_ethtool.c return __enic_set_rsskey(enic); enic 115 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_init_affinity_hint(struct enic *enic) enic 117 drivers/net/ethernet/cisco/enic/enic_main.c int numa_node = dev_to_node(&enic->pdev->dev); enic 120 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->intr_count; i++) { enic 121 drivers/net/ethernet/cisco/enic/enic_main.c if (enic_is_err_intr(enic, i) || enic_is_notify_intr(enic, i) || enic 122 drivers/net/ethernet/cisco/enic/enic_main.c (cpumask_available(enic->msix[i].affinity_mask) && enic 123 drivers/net/ethernet/cisco/enic/enic_main.c !cpumask_empty(enic->msix[i].affinity_mask))) enic 125 drivers/net/ethernet/cisco/enic/enic_main.c if (zalloc_cpumask_var(&enic->msix[i].affinity_mask, enic 128 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[i].affinity_mask); enic 132 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_free_affinity_hint(struct enic *enic) enic 136 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->intr_count; i++) { enic 137 drivers/net/ethernet/cisco/enic/enic_main.c if (enic_is_err_intr(enic, i) || enic_is_notify_intr(enic, i)) enic 139 drivers/net/ethernet/cisco/enic/enic_main.c free_cpumask_var(enic->msix[i].affinity_mask); enic 143 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_set_affinity_hint(struct enic *enic) enic 148 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->intr_count; i++) { enic 149 drivers/net/ethernet/cisco/enic/enic_main.c if (enic_is_err_intr(enic, i) || enic 150 drivers/net/ethernet/cisco/enic/enic_main.c enic_is_notify_intr(enic, i) || enic 151 drivers/net/ethernet/cisco/enic/enic_main.c !cpumask_available(enic->msix[i].affinity_mask) || enic 152 drivers/net/ethernet/cisco/enic/enic_main.c cpumask_empty(enic->msix[i].affinity_mask)) enic 154 drivers/net/ethernet/cisco/enic/enic_main.c err = irq_set_affinity_hint(enic->msix_entry[i].vector, enic 155 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[i].affinity_mask); enic 157 drivers/net/ethernet/cisco/enic/enic_main.c netdev_warn(enic->netdev, "irq_set_affinity_hint failed, err %d\n", enic 161 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->wq_count; i++) { enic 162 drivers/net/ethernet/cisco/enic/enic_main.c int wq_intr = enic_msix_wq_intr(enic, i); enic 164 drivers/net/ethernet/cisco/enic/enic_main.c if (cpumask_available(enic->msix[wq_intr].affinity_mask) && enic 165 drivers/net/ethernet/cisco/enic/enic_main.c !cpumask_empty(enic->msix[wq_intr].affinity_mask)) enic 166 drivers/net/ethernet/cisco/enic/enic_main.c netif_set_xps_queue(enic->netdev, enic 167 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[wq_intr].affinity_mask, enic 172 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_unset_affinity_hint(struct enic *enic) enic 176 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->intr_count; i++) enic 177 drivers/net/ethernet/cisco/enic/enic_main.c irq_set_affinity_hint(enic->msix_entry[i].vector, NULL); enic 183 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 187 drivers/net/ethernet/cisco/enic/enic_main.c spin_lock_bh(&enic->devcmd_lock); enic 196 drivers/net/ethernet/cisco/enic/enic_main.c if (!(enic->vxlan.flags & ENIC_VXLAN_OUTER_IPV6)) { enic 207 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->vxlan.vxlan_udp_port_number) { enic 208 drivers/net/ethernet/cisco/enic/enic_main.c if (ntohs(port) == enic->vxlan.vxlan_udp_port_number) enic 215 drivers/net/ethernet/cisco/enic/enic_main.c if ((vnic_dev_get_res_count(enic->vdev, RES_TYPE_WQ) != 1) && enic 216 drivers/net/ethernet/cisco/enic/enic_main.c !(enic->vxlan.flags & ENIC_VXLAN_MULTI_WQ)) { enic 221 drivers/net/ethernet/cisco/enic/enic_main.c err = vnic_dev_overlay_offload_cfg(enic->vdev, enic 227 drivers/net/ethernet/cisco/enic/enic_main.c err = vnic_dev_overlay_offload_ctrl(enic->vdev, OVERLAY_FEATURE_VXLAN, enic 228 drivers/net/ethernet/cisco/enic/enic_main.c enic->vxlan.patch_level); enic 232 drivers/net/ethernet/cisco/enic/enic_main.c enic->vxlan.vxlan_udp_port_number = ntohs(port); enic 235 drivers/net/ethernet/cisco/enic/enic_main.c (int)enic->vxlan.patch_level, ntohs(port), ti->sa_family); enic 243 drivers/net/ethernet/cisco/enic/enic_main.c spin_unlock_bh(&enic->devcmd_lock); enic 249 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 252 drivers/net/ethernet/cisco/enic/enic_main.c spin_lock_bh(&enic->devcmd_lock); enic 254 drivers/net/ethernet/cisco/enic/enic_main.c if ((ntohs(ti->port) != enic->vxlan.vxlan_udp_port_number) || enic 261 drivers/net/ethernet/cisco/enic/enic_main.c err = vnic_dev_overlay_offload_ctrl(enic->vdev, OVERLAY_FEATURE_VXLAN, enic 269 drivers/net/ethernet/cisco/enic/enic_main.c enic->vxlan.vxlan_udp_port_number = 0; enic 275 drivers/net/ethernet/cisco/enic/enic_main.c spin_unlock_bh(&enic->devcmd_lock); enic 283 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(dev); enic 295 drivers/net/ethernet/cisco/enic/enic_main.c if (!(enic->vxlan.flags & ENIC_VXLAN_OUTER_IPV6)) enic 308 drivers/net/ethernet/cisco/enic/enic_main.c if (!(enic->vxlan.flags & ENIC_VXLAN_INNER_IPV6)) enic 326 drivers/net/ethernet/cisco/enic/enic_main.c if (port != enic->vxlan.vxlan_udp_port_number) enic 335 drivers/net/ethernet/cisco/enic/enic_main.c int enic_is_dynamic(struct enic *enic) enic 337 drivers/net/ethernet/cisco/enic/enic_main.c return enic->pdev->device == PCI_DEVICE_ID_CISCO_VIC_ENET_DYN; enic 340 drivers/net/ethernet/cisco/enic/enic_main.c int enic_sriov_enabled(struct enic *enic) enic 342 drivers/net/ethernet/cisco/enic/enic_main.c return (enic->priv_flags & ENIC_SRIOV_ENABLED) ? 1 : 0; enic 345 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_is_sriov_vf(struct enic *enic) enic 347 drivers/net/ethernet/cisco/enic/enic_main.c return enic->pdev->device == PCI_DEVICE_ID_CISCO_VIC_ENET_VF; enic 350 drivers/net/ethernet/cisco/enic/enic_main.c int enic_is_valid_vf(struct enic *enic, int vf) enic 353 drivers/net/ethernet/cisco/enic/enic_main.c return vf >= 0 && vf < enic->num_vfs; enic 361 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = vnic_dev_priv(wq->vdev); enic 364 drivers/net/ethernet/cisco/enic/enic_main.c pci_unmap_single(enic->pdev, buf->dma_addr, enic 367 drivers/net/ethernet/cisco/enic/enic_main.c pci_unmap_page(enic->pdev, buf->dma_addr, enic 383 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = vnic_dev_priv(vdev); enic 385 drivers/net/ethernet/cisco/enic/enic_main.c spin_lock(&enic->wq_lock[q_number]); enic 387 drivers/net/ethernet/cisco/enic/enic_main.c vnic_wq_service(&enic->wq[q_number], cq_desc, enic 391 drivers/net/ethernet/cisco/enic/enic_main.c if (netif_tx_queue_stopped(netdev_get_tx_queue(enic->netdev, q_number)) && enic 392 drivers/net/ethernet/cisco/enic/enic_main.c vnic_wq_desc_avail(&enic->wq[q_number]) >= enic 394 drivers/net/ethernet/cisco/enic/enic_main.c netif_wake_subqueue(enic->netdev, q_number); enic 396 drivers/net/ethernet/cisco/enic/enic_main.c spin_unlock(&enic->wq_lock[q_number]); enic 401 drivers/net/ethernet/cisco/enic/enic_main.c static bool enic_log_q_error(struct enic *enic) enic 407 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->wq_count; i++) { enic 408 drivers/net/ethernet/cisco/enic/enic_main.c error_status = vnic_wq_error_status(&enic->wq[i]); enic 411 drivers/net/ethernet/cisco/enic/enic_main.c netdev_err(enic->netdev, "WQ[%d] error_status %d\n", enic 415 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->rq_count; i++) { enic 416 drivers/net/ethernet/cisco/enic/enic_main.c error_status = vnic_rq_error_status(&enic->rq[i]); enic 419 drivers/net/ethernet/cisco/enic/enic_main.c netdev_err(enic->netdev, "RQ[%d] error_status %d\n", enic 426 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_msglvl_check(struct enic *enic) enic 428 drivers/net/ethernet/cisco/enic/enic_main.c u32 msg_enable = vnic_dev_msg_lvl(enic->vdev); enic 430 drivers/net/ethernet/cisco/enic/enic_main.c if (msg_enable != enic->msg_enable) { enic 431 drivers/net/ethernet/cisco/enic/enic_main.c netdev_info(enic->netdev, "msg lvl changed from 0x%x to 0x%x\n", enic 432 drivers/net/ethernet/cisco/enic/enic_main.c enic->msg_enable, msg_enable); enic 433 drivers/net/ethernet/cisco/enic/enic_main.c enic->msg_enable = msg_enable; enic 437 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_mtu_check(struct enic *enic) enic 439 drivers/net/ethernet/cisco/enic/enic_main.c u32 mtu = vnic_dev_mtu(enic->vdev); enic 440 drivers/net/ethernet/cisco/enic/enic_main.c struct net_device *netdev = enic->netdev; enic 442 drivers/net/ethernet/cisco/enic/enic_main.c if (mtu && mtu != enic->port_mtu) { enic 443 drivers/net/ethernet/cisco/enic/enic_main.c enic->port_mtu = mtu; enic 444 drivers/net/ethernet/cisco/enic/enic_main.c if (enic_is_dynamic(enic) || enic_is_sriov_vf(enic)) { enic 448 drivers/net/ethernet/cisco/enic/enic_main.c schedule_work(&enic->change_mtu_work); enic 459 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_link_check(struct enic *enic) enic 461 drivers/net/ethernet/cisco/enic/enic_main.c int link_status = vnic_dev_link_status(enic->vdev); enic 462 drivers/net/ethernet/cisco/enic/enic_main.c int carrier_ok = netif_carrier_ok(enic->netdev); enic 465 drivers/net/ethernet/cisco/enic/enic_main.c netdev_info(enic->netdev, "Link UP\n"); enic 466 drivers/net/ethernet/cisco/enic/enic_main.c netif_carrier_on(enic->netdev); enic 468 drivers/net/ethernet/cisco/enic/enic_main.c netdev_info(enic->netdev, "Link DOWN\n"); enic 469 drivers/net/ethernet/cisco/enic/enic_main.c netif_carrier_off(enic->netdev); enic 473 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_notify_check(struct enic *enic) enic 475 drivers/net/ethernet/cisco/enic/enic_main.c enic_msglvl_check(enic); enic 476 drivers/net/ethernet/cisco/enic/enic_main.c enic_mtu_check(enic); enic 477 drivers/net/ethernet/cisco/enic/enic_main.c enic_link_check(enic); enic 485 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 491 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_mask(&enic->intr[io_intr]); enic 493 drivers/net/ethernet/cisco/enic/enic_main.c pba = vnic_intr_legacy_pba(enic->legacy_pba); enic 495 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_unmask(&enic->intr[io_intr]); enic 500 drivers/net/ethernet/cisco/enic/enic_main.c enic_notify_check(enic); enic 501 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_return_all_credits(&enic->intr[notify_intr]); enic 505 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_return_all_credits(&enic->intr[err_intr]); enic 506 drivers/net/ethernet/cisco/enic/enic_main.c enic_log_q_error(enic); enic 508 drivers/net/ethernet/cisco/enic/enic_main.c schedule_work(&enic->reset); enic 513 drivers/net/ethernet/cisco/enic/enic_main.c napi_schedule_irqoff(&enic->napi[0]); enic 515 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_unmask(&enic->intr[io_intr]); enic 522 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = data; enic 540 drivers/net/ethernet/cisco/enic/enic_main.c napi_schedule_irqoff(&enic->napi[0]); enic 556 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = data; enic 557 drivers/net/ethernet/cisco/enic/enic_main.c unsigned int intr = enic_msix_err_intr(enic); enic 559 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_return_all_credits(&enic->intr[intr]); enic 561 drivers/net/ethernet/cisco/enic/enic_main.c if (enic_log_q_error(enic)) enic 563 drivers/net/ethernet/cisco/enic/enic_main.c schedule_work(&enic->reset); enic 570 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = data; enic 571 drivers/net/ethernet/cisco/enic/enic_main.c unsigned int intr = enic_msix_notify_intr(enic); enic 573 drivers/net/ethernet/cisco/enic/enic_main.c enic_notify_check(enic); enic 574 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_return_all_credits(&enic->intr[intr]); enic 579 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_queue_wq_skb_cont(struct enic *enic, struct vnic_wq *wq, enic 589 drivers/net/ethernet/cisco/enic/enic_main.c dma_addr = skb_frag_dma_map(&enic->pdev->dev, frag, 0, enic 592 drivers/net/ethernet/cisco/enic/enic_main.c if (unlikely(enic_dma_map_check(enic, dma_addr))) enic 602 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_queue_wq_skb_vlan(struct enic *enic, struct vnic_wq *wq, enic 612 drivers/net/ethernet/cisco/enic/enic_main.c dma_addr = pci_map_single(enic->pdev, skb->data, head_len, enic 614 drivers/net/ethernet/cisco/enic/enic_main.c if (unlikely(enic_dma_map_check(enic, dma_addr))) enic 626 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_queue_wq_skb_cont(enic, wq, skb, len_left, loopback); enic 631 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_queue_wq_skb_csum_l4(struct enic *enic, struct vnic_wq *wq, enic 643 drivers/net/ethernet/cisco/enic/enic_main.c dma_addr = pci_map_single(enic->pdev, skb->data, head_len, enic 645 drivers/net/ethernet/cisco/enic/enic_main.c if (unlikely(enic_dma_map_check(enic, dma_addr))) enic 658 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_queue_wq_skb_cont(enic, wq, skb, len_left, loopback); enic 704 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_queue_wq_skb_tso(struct enic *enic, struct vnic_wq *wq, enic 732 drivers/net/ethernet/cisco/enic/enic_main.c dma_addr = pci_map_single(enic->pdev, skb->data + offset, len, enic 734 drivers/net/ethernet/cisco/enic/enic_main.c if (unlikely(enic_dma_map_check(enic, dma_addr))) enic 757 drivers/net/ethernet/cisco/enic/enic_main.c dma_addr = skb_frag_dma_map(&enic->pdev->dev, frag, enic 760 drivers/net/ethernet/cisco/enic/enic_main.c if (unlikely(enic_dma_map_check(enic, dma_addr))) enic 774 drivers/net/ethernet/cisco/enic/enic_main.c static inline int enic_queue_wq_skb_encap(struct enic *enic, struct vnic_wq *wq, enic 791 drivers/net/ethernet/cisco/enic/enic_main.c dma_addr = pci_map_single(enic->pdev, skb->data, head_len, enic 793 drivers/net/ethernet/cisco/enic/enic_main.c if (unlikely(enic_dma_map_check(enic, dma_addr))) enic 801 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_queue_wq_skb_cont(enic, wq, skb, len_left, loopback); enic 806 drivers/net/ethernet/cisco/enic/enic_main.c static inline void enic_queue_wq_skb(struct enic *enic, enic 819 drivers/net/ethernet/cisco/enic/enic_main.c } else if (enic->loop_enable) { enic 820 drivers/net/ethernet/cisco/enic/enic_main.c vlan_tag = enic->loop_tag; enic 825 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_queue_wq_skb_tso(enic, wq, skb, mss, enic 829 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_queue_wq_skb_encap(enic, wq, skb, vlan_tag_insert, enic 832 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_queue_wq_skb_csum_l4(enic, wq, skb, vlan_tag_insert, enic 835 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_queue_wq_skb_vlan(enic, wq, skb, vlan_tag_insert, enic 858 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 868 drivers/net/ethernet/cisco/enic/enic_main.c txq_map = skb_get_queue_mapping(skb) % enic->wq_count; enic 869 drivers/net/ethernet/cisco/enic/enic_main.c wq = &enic->wq[txq_map]; enic 884 drivers/net/ethernet/cisco/enic/enic_main.c spin_lock(&enic->wq_lock[txq_map]); enic 891 drivers/net/ethernet/cisco/enic/enic_main.c spin_unlock(&enic->wq_lock[txq_map]); enic 895 drivers/net/ethernet/cisco/enic/enic_main.c enic_queue_wq_skb(enic, wq, skb); enic 903 drivers/net/ethernet/cisco/enic/enic_main.c spin_unlock(&enic->wq_lock[txq_map]); enic 912 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 916 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_dev_stats_dump(enic, &stats); enic 933 drivers/net/ethernet/cisco/enic/enic_main.c net_stats->rx_over_errors = enic->rq_truncated_pkts; enic 934 drivers/net/ethernet/cisco/enic/enic_main.c net_stats->rx_crc_errors = enic->rq_bad_fcs; enic 940 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 942 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->mc_count == ENIC_MULTICAST_PERFECT_FILTERS) { enic 951 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_add_addr(enic, mc_addr); enic 952 drivers/net/ethernet/cisco/enic/enic_main.c enic->mc_count++; enic 959 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 961 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_del_addr(enic, mc_addr); enic 962 drivers/net/ethernet/cisco/enic/enic_main.c enic->mc_count--; enic 969 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 971 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->uc_count == ENIC_UNICAST_PERFECT_FILTERS) { enic 980 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_add_addr(enic, uc_addr); enic 981 drivers/net/ethernet/cisco/enic/enic_main.c enic->uc_count++; enic 988 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 990 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_del_addr(enic, uc_addr); enic 991 drivers/net/ethernet/cisco/enic/enic_main.c enic->uc_count--; enic 996 drivers/net/ethernet/cisco/enic/enic_main.c void enic_reset_addr_lists(struct enic *enic) enic 998 drivers/net/ethernet/cisco/enic/enic_main.c struct net_device *netdev = enic->netdev; enic 1003 drivers/net/ethernet/cisco/enic/enic_main.c enic->mc_count = 0; enic 1004 drivers/net/ethernet/cisco/enic/enic_main.c enic->uc_count = 0; enic 1005 drivers/net/ethernet/cisco/enic/enic_main.c enic->flags = 0; enic 1010 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 1012 drivers/net/ethernet/cisco/enic/enic_main.c if (enic_is_dynamic(enic) || enic_is_sriov_vf(enic)) { enic 1027 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 1032 drivers/net/ethernet/cisco/enic/enic_main.c if (netif_running(enic->netdev)) { enic 1033 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_dev_del_station_addr(enic); enic 1042 drivers/net/ethernet/cisco/enic/enic_main.c if (netif_running(enic->netdev)) { enic 1043 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_dev_add_station_addr(enic); enic 1055 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 1058 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_dev_del_station_addr(enic); enic 1066 drivers/net/ethernet/cisco/enic/enic_main.c return enic_dev_add_station_addr(enic); enic 1072 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 1084 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->flags != flags) { enic 1085 drivers/net/ethernet/cisco/enic/enic_main.c enic->flags = flags; enic 1086 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_packet_filter(enic, directed, enic 1100 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 1101 drivers/net/ethernet/cisco/enic/enic_main.c schedule_work(&enic->tx_hang_reset); enic 1106 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 1110 drivers/net/ethernet/cisco/enic/enic_main.c ENIC_PP_BY_INDEX(enic, vf, pp, &err); enic 1122 drivers/net/ethernet/cisco/enic/enic_main.c ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, enic 1133 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 1138 drivers/net/ethernet/cisco/enic/enic_main.c ENIC_PP_BY_INDEX(enic, vf, pp, &err); enic 1145 drivers/net/ethernet/cisco/enic/enic_main.c memcpy(&prev_pp, pp, sizeof(*enic->pp)); enic 1146 drivers/net/ethernet/cisco/enic/enic_main.c memset(pp, 0, sizeof(*enic->pp)); enic 1178 drivers/net/ethernet/cisco/enic/enic_main.c ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, enic 1187 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_process_set_pp_request(enic, vf, &prev_pp, &restore_pp); enic 1222 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 1227 drivers/net/ethernet/cisco/enic/enic_main.c ENIC_PP_BY_INDEX(enic, vf, pp, &err); enic 1234 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_process_get_pp_request(enic, vf, pp->request, &response); enic 1256 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = vnic_dev_priv(rq->vdev); enic 1261 drivers/net/ethernet/cisco/enic/enic_main.c pci_unmap_single(enic->pdev, buf->dma_addr, enic 1269 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = vnic_dev_priv(rq->vdev); enic 1270 drivers/net/ethernet/cisco/enic/enic_main.c struct net_device *netdev = enic->netdev; enic 1287 drivers/net/ethernet/cisco/enic/enic_main.c dma_addr = pci_map_single(enic->pdev, skb->data, len, enic 1289 drivers/net/ethernet/cisco/enic/enic_main.c if (unlikely(enic_dma_map_check(enic, dma_addr))) { enic 1312 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 1315 drivers/net/ethernet/cisco/enic/enic_main.c if (len > enic->rx_copybreak) enic 1320 drivers/net/ethernet/cisco/enic/enic_main.c pci_dma_sync_single_for_cpu(enic->pdev, buf->dma_addr, len, enic 1332 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = vnic_dev_priv(rq->vdev); enic 1333 drivers/net/ethernet/cisco/enic/enic_main.c struct net_device *netdev = enic->netdev; enic 1335 drivers/net/ethernet/cisco/enic/enic_main.c struct vnic_cq *cq = &enic->cq[enic_cq_rq(enic, rq->index)]; enic 1365 drivers/net/ethernet/cisco/enic/enic_main.c enic->rq_bad_fcs++; enic 1367 drivers/net/ethernet/cisco/enic/enic_main.c enic->rq_truncated_pkts++; enic 1370 drivers/net/ethernet/cisco/enic/enic_main.c pci_unmap_single(enic->pdev, buf->dma_addr, buf->len, enic 1385 drivers/net/ethernet/cisco/enic/enic_main.c pci_unmap_single(enic->pdev, buf->dma_addr, buf->len, enic 1408 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->vxlan.vxlan_udp_port_number) { enic 1409 drivers/net/ethernet/cisco/enic/enic_main.c switch (enic->vxlan.patch_level) { enic 1446 drivers/net/ethernet/cisco/enic/enic_main.c skb_mark_napi_id(skb, &enic->napi[rq->index]); enic 1450 drivers/net/ethernet/cisco/enic/enic_main.c napi_gro_receive(&enic->napi[q_number], skb); enic 1451 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce) enic 1459 drivers/net/ethernet/cisco/enic/enic_main.c pci_unmap_single(enic->pdev, buf->dma_addr, buf->len, enic 1469 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = vnic_dev_priv(vdev); enic 1471 drivers/net/ethernet/cisco/enic/enic_main.c vnic_rq_service(&enic->rq[q_number], cq_desc, enic 1478 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_set_int_moderation(struct enic *enic, struct vnic_rq *rq) enic 1480 drivers/net/ethernet/cisco/enic/enic_main.c unsigned int intr = enic_msix_rq_intr(enic, rq->index); enic 1481 drivers/net/ethernet/cisco/enic/enic_main.c struct vnic_cq *cq = &enic->cq[enic_cq_rq(enic, rq->index)]; enic 1485 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_coalescing_timer_set(&enic->intr[intr], timer); enic 1490 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_calc_int_moderation(struct enic *enic, struct vnic_rq *rq) enic 1492 drivers/net/ethernet/cisco/enic/enic_main.c struct enic_rx_coal *rx_coal = &enic->rx_coalesce_setting; enic 1493 drivers/net/ethernet/cisco/enic/enic_main.c struct vnic_cq *cq = &enic->cq[enic_cq_rq(enic, rq->index)]; enic 1539 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 1540 drivers/net/ethernet/cisco/enic/enic_main.c unsigned int cq_rq = enic_cq_rq(enic, 0); enic 1541 drivers/net/ethernet/cisco/enic/enic_main.c unsigned int cq_wq = enic_cq_wq(enic, 0); enic 1548 drivers/net/ethernet/cisco/enic/enic_main.c wq_work_done = vnic_cq_service(&enic->cq[cq_wq], wq_work_to_do, enic 1552 drivers/net/ethernet/cisco/enic/enic_main.c rq_work_done = vnic_cq_service(&enic->cq[cq_rq], enic 1563 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_return_credits(&enic->intr[intr], enic 1568 drivers/net/ethernet/cisco/enic/enic_main.c err = vnic_rq_fill(&enic->rq[0], enic_rq_alloc_buf); enic 1576 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce) enic 1580 drivers/net/ethernet/cisco/enic/enic_main.c enic_calc_int_moderation(enic, &enic->rq[0]); enic 1588 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce) enic 1589 drivers/net/ethernet/cisco/enic/enic_main.c enic_set_int_moderation(enic, &enic->rq[0]); enic 1590 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_unmask(&enic->intr[intr]); enic 1597 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_free_rx_cpu_rmap(struct enic *enic) enic 1599 drivers/net/ethernet/cisco/enic/enic_main.c free_irq_cpu_rmap(enic->netdev->rx_cpu_rmap); enic 1600 drivers/net/ethernet/cisco/enic/enic_main.c enic->netdev->rx_cpu_rmap = NULL; enic 1603 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_set_rx_cpu_rmap(struct enic *enic) enic 1607 drivers/net/ethernet/cisco/enic/enic_main.c if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX) { enic 1608 drivers/net/ethernet/cisco/enic/enic_main.c enic->netdev->rx_cpu_rmap = alloc_irq_cpu_rmap(enic->rq_count); enic 1609 drivers/net/ethernet/cisco/enic/enic_main.c if (unlikely(!enic->netdev->rx_cpu_rmap)) enic 1611 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->rq_count; i++) { enic 1612 drivers/net/ethernet/cisco/enic/enic_main.c res = irq_cpu_rmap_add(enic->netdev->rx_cpu_rmap, enic 1613 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix_entry[i].vector); enic 1615 drivers/net/ethernet/cisco/enic/enic_main.c enic_free_rx_cpu_rmap(enic); enic 1624 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_free_rx_cpu_rmap(struct enic *enic) enic 1628 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_set_rx_cpu_rmap(struct enic *enic) enic 1637 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 1638 drivers/net/ethernet/cisco/enic/enic_main.c unsigned int wq_index = (napi - &enic->napi[0]) - enic->rq_count; enic 1639 drivers/net/ethernet/cisco/enic/enic_main.c struct vnic_wq *wq = &enic->wq[wq_index]; enic 1647 drivers/net/ethernet/cisco/enic/enic_main.c cq = enic_cq_wq(enic, wq_irq); enic 1648 drivers/net/ethernet/cisco/enic/enic_main.c intr = enic_msix_wq_intr(enic, wq_irq); enic 1649 drivers/net/ethernet/cisco/enic/enic_main.c wq_work_done = vnic_cq_service(&enic->cq[cq], wq_work_to_do, enic 1652 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_return_credits(&enic->intr[intr], wq_work_done, enic 1657 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_unmask(&enic->intr[intr]); enic 1667 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 1668 drivers/net/ethernet/cisco/enic/enic_main.c unsigned int rq = (napi - &enic->napi[0]); enic 1669 drivers/net/ethernet/cisco/enic/enic_main.c unsigned int cq = enic_cq_rq(enic, rq); enic 1670 drivers/net/ethernet/cisco/enic/enic_main.c unsigned int intr = enic_msix_rq_intr(enic, rq); enic 1679 drivers/net/ethernet/cisco/enic/enic_main.c work_done = vnic_cq_service(&enic->cq[cq], enic 1688 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_return_credits(&enic->intr[intr], enic 1693 drivers/net/ethernet/cisco/enic/enic_main.c err = vnic_rq_fill(&enic->rq[rq], enic_rq_alloc_buf); enic 1701 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce) enic 1705 drivers/net/ethernet/cisco/enic/enic_main.c enic_calc_int_moderation(enic, &enic->rq[rq]); enic 1713 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce) enic 1714 drivers/net/ethernet/cisco/enic/enic_main.c enic_set_int_moderation(enic, &enic->rq[rq]); enic 1715 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_unmask(&enic->intr[intr]); enic 1723 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = from_timer(enic, t, notify_timer); enic 1725 drivers/net/ethernet/cisco/enic/enic_main.c enic_notify_check(enic); enic 1727 drivers/net/ethernet/cisco/enic/enic_main.c mod_timer(&enic->notify_timer, enic 1731 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_free_intr(struct enic *enic) enic 1733 drivers/net/ethernet/cisco/enic/enic_main.c struct net_device *netdev = enic->netdev; enic 1736 drivers/net/ethernet/cisco/enic/enic_main.c enic_free_rx_cpu_rmap(enic); enic 1737 drivers/net/ethernet/cisco/enic/enic_main.c switch (vnic_dev_get_intr_mode(enic->vdev)) { enic 1739 drivers/net/ethernet/cisco/enic/enic_main.c free_irq(enic->pdev->irq, netdev); enic 1742 drivers/net/ethernet/cisco/enic/enic_main.c free_irq(enic->pdev->irq, enic); enic 1745 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < ARRAY_SIZE(enic->msix); i++) enic 1746 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->msix[i].requested) enic 1747 drivers/net/ethernet/cisco/enic/enic_main.c free_irq(enic->msix_entry[i].vector, enic 1748 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[i].devid); enic 1755 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_request_intr(struct enic *enic) enic 1757 drivers/net/ethernet/cisco/enic/enic_main.c struct net_device *netdev = enic->netdev; enic 1761 drivers/net/ethernet/cisco/enic/enic_main.c enic_set_rx_cpu_rmap(enic); enic 1762 drivers/net/ethernet/cisco/enic/enic_main.c switch (vnic_dev_get_intr_mode(enic->vdev)) { enic 1766 drivers/net/ethernet/cisco/enic/enic_main.c err = request_irq(enic->pdev->irq, enic_isr_legacy, enic 1772 drivers/net/ethernet/cisco/enic/enic_main.c err = request_irq(enic->pdev->irq, enic_isr_msi, enic 1773 drivers/net/ethernet/cisco/enic/enic_main.c 0, netdev->name, enic); enic 1778 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->rq_count; i++) { enic 1779 drivers/net/ethernet/cisco/enic/enic_main.c intr = enic_msix_rq_intr(enic, i); enic 1780 drivers/net/ethernet/cisco/enic/enic_main.c snprintf(enic->msix[intr].devname, enic 1781 drivers/net/ethernet/cisco/enic/enic_main.c sizeof(enic->msix[intr].devname), enic 1783 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[intr].isr = enic_isr_msix; enic 1784 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[intr].devid = &enic->napi[i]; enic 1787 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->wq_count; i++) { enic 1788 drivers/net/ethernet/cisco/enic/enic_main.c int wq = enic_cq_wq(enic, i); enic 1790 drivers/net/ethernet/cisco/enic/enic_main.c intr = enic_msix_wq_intr(enic, i); enic 1791 drivers/net/ethernet/cisco/enic/enic_main.c snprintf(enic->msix[intr].devname, enic 1792 drivers/net/ethernet/cisco/enic/enic_main.c sizeof(enic->msix[intr].devname), enic 1794 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[intr].isr = enic_isr_msix; enic 1795 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[intr].devid = &enic->napi[wq]; enic 1798 drivers/net/ethernet/cisco/enic/enic_main.c intr = enic_msix_err_intr(enic); enic 1799 drivers/net/ethernet/cisco/enic/enic_main.c snprintf(enic->msix[intr].devname, enic 1800 drivers/net/ethernet/cisco/enic/enic_main.c sizeof(enic->msix[intr].devname), enic 1802 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[intr].isr = enic_isr_msix_err; enic 1803 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[intr].devid = enic; enic 1805 drivers/net/ethernet/cisco/enic/enic_main.c intr = enic_msix_notify_intr(enic); enic 1806 drivers/net/ethernet/cisco/enic/enic_main.c snprintf(enic->msix[intr].devname, enic 1807 drivers/net/ethernet/cisco/enic/enic_main.c sizeof(enic->msix[intr].devname), enic 1809 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[intr].isr = enic_isr_msix_notify; enic 1810 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[intr].devid = enic; enic 1812 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < ARRAY_SIZE(enic->msix); i++) enic 1813 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[i].requested = 0; enic 1815 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->intr_count; i++) { enic 1816 drivers/net/ethernet/cisco/enic/enic_main.c err = request_irq(enic->msix_entry[i].vector, enic 1817 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[i].isr, 0, enic 1818 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[i].devname, enic 1819 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[i].devid); enic 1821 drivers/net/ethernet/cisco/enic/enic_main.c enic_free_intr(enic); enic 1824 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix[i].requested = 1; enic 1836 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_synchronize_irqs(struct enic *enic) enic 1840 drivers/net/ethernet/cisco/enic/enic_main.c switch (vnic_dev_get_intr_mode(enic->vdev)) { enic 1843 drivers/net/ethernet/cisco/enic/enic_main.c synchronize_irq(enic->pdev->irq); enic 1846 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->intr_count; i++) enic 1847 drivers/net/ethernet/cisco/enic/enic_main.c synchronize_irq(enic->msix_entry[i].vector); enic 1854 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_set_rx_coal_setting(struct enic *enic) enic 1858 drivers/net/ethernet/cisco/enic/enic_main.c struct enic_rx_coal *rx_coal = &enic->rx_coalesce_setting; enic 1864 drivers/net/ethernet/cisco/enic/enic_main.c speed = vnic_dev_port_speed(enic->vdev); enic 1877 drivers/net/ethernet/cisco/enic/enic_main.c for (index = 0; index < enic->rq_count; index++) enic 1878 drivers/net/ethernet/cisco/enic/enic_main.c enic->cq[index].cur_rx_coal_timeval = enic 1879 drivers/net/ethernet/cisco/enic/enic_main.c enic->config.intr_timer_usec; enic 1884 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_dev_notify_set(struct enic *enic) enic 1888 drivers/net/ethernet/cisco/enic/enic_main.c spin_lock_bh(&enic->devcmd_lock); enic 1889 drivers/net/ethernet/cisco/enic/enic_main.c switch (vnic_dev_get_intr_mode(enic->vdev)) { enic 1891 drivers/net/ethernet/cisco/enic/enic_main.c err = vnic_dev_notify_set(enic->vdev, enic 1895 drivers/net/ethernet/cisco/enic/enic_main.c err = vnic_dev_notify_set(enic->vdev, enic 1896 drivers/net/ethernet/cisco/enic/enic_main.c enic_msix_notify_intr(enic)); enic 1899 drivers/net/ethernet/cisco/enic/enic_main.c err = vnic_dev_notify_set(enic->vdev, -1 /* no intr */); enic 1902 drivers/net/ethernet/cisco/enic/enic_main.c spin_unlock_bh(&enic->devcmd_lock); enic 1907 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_notify_timer_start(struct enic *enic) enic 1909 drivers/net/ethernet/cisco/enic/enic_main.c switch (vnic_dev_get_intr_mode(enic->vdev)) { enic 1911 drivers/net/ethernet/cisco/enic/enic_main.c mod_timer(&enic->notify_timer, jiffies); enic 1922 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 1926 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_request_intr(enic); enic 1931 drivers/net/ethernet/cisco/enic/enic_main.c enic_init_affinity_hint(enic); enic 1932 drivers/net/ethernet/cisco/enic/enic_main.c enic_set_affinity_hint(enic); enic 1934 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_dev_notify_set(enic); enic 1941 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->rq_count; i++) { enic 1943 drivers/net/ethernet/cisco/enic/enic_main.c vnic_rq_enable(&enic->rq[i]); enic 1944 drivers/net/ethernet/cisco/enic/enic_main.c vnic_rq_fill(&enic->rq[i], enic_rq_alloc_buf); enic 1946 drivers/net/ethernet/cisco/enic/enic_main.c if (vnic_rq_desc_used(&enic->rq[i]) == 0) { enic 1953 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->wq_count; i++) enic 1954 drivers/net/ethernet/cisco/enic/enic_main.c vnic_wq_enable(&enic->wq[i]); enic 1956 drivers/net/ethernet/cisco/enic/enic_main.c if (!enic_is_dynamic(enic) && !enic_is_sriov_vf(enic)) enic 1957 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_add_station_addr(enic); enic 1963 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->rq_count; i++) enic 1964 drivers/net/ethernet/cisco/enic/enic_main.c napi_enable(&enic->napi[i]); enic 1966 drivers/net/ethernet/cisco/enic/enic_main.c if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX) enic 1967 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->wq_count; i++) enic 1968 drivers/net/ethernet/cisco/enic/enic_main.c napi_enable(&enic->napi[enic_cq_wq(enic, i)]); enic 1969 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_enable(enic); enic 1971 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->intr_count; i++) enic 1972 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_unmask(&enic->intr[i]); enic 1974 drivers/net/ethernet/cisco/enic/enic_main.c enic_notify_timer_start(enic); enic 1975 drivers/net/ethernet/cisco/enic/enic_main.c enic_rfs_timer_start(enic); enic 1980 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->rq_count; i++) { enic 1981 drivers/net/ethernet/cisco/enic/enic_main.c ret = vnic_rq_disable(&enic->rq[i]); enic 1983 drivers/net/ethernet/cisco/enic/enic_main.c vnic_rq_clean(&enic->rq[i], enic_free_rq_buf); enic 1985 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_notify_unset(enic); enic 1987 drivers/net/ethernet/cisco/enic/enic_main.c enic_unset_affinity_hint(enic); enic 1988 drivers/net/ethernet/cisco/enic/enic_main.c enic_free_intr(enic); enic 1996 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 2000 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->intr_count; i++) { enic 2001 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_mask(&enic->intr[i]); enic 2002 drivers/net/ethernet/cisco/enic/enic_main.c (void)vnic_intr_masked(&enic->intr[i]); /* flush write */ enic 2005 drivers/net/ethernet/cisco/enic/enic_main.c enic_synchronize_irqs(enic); enic 2007 drivers/net/ethernet/cisco/enic/enic_main.c del_timer_sync(&enic->notify_timer); enic 2008 drivers/net/ethernet/cisco/enic/enic_main.c enic_rfs_flw_tbl_free(enic); enic 2010 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_disable(enic); enic 2012 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->rq_count; i++) enic 2013 drivers/net/ethernet/cisco/enic/enic_main.c napi_disable(&enic->napi[i]); enic 2016 drivers/net/ethernet/cisco/enic/enic_main.c if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX) enic 2017 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->wq_count; i++) enic 2018 drivers/net/ethernet/cisco/enic/enic_main.c napi_disable(&enic->napi[enic_cq_wq(enic, i)]); enic 2021 drivers/net/ethernet/cisco/enic/enic_main.c if (!enic_is_dynamic(enic) && !enic_is_sriov_vf(enic)) enic 2022 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_del_station_addr(enic); enic 2024 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->wq_count; i++) { enic 2025 drivers/net/ethernet/cisco/enic/enic_main.c err = vnic_wq_disable(&enic->wq[i]); enic 2029 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->rq_count; i++) { enic 2030 drivers/net/ethernet/cisco/enic/enic_main.c err = vnic_rq_disable(&enic->rq[i]); enic 2035 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_notify_unset(enic); enic 2036 drivers/net/ethernet/cisco/enic/enic_main.c enic_unset_affinity_hint(enic); enic 2037 drivers/net/ethernet/cisco/enic/enic_main.c enic_free_intr(enic); enic 2039 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->wq_count; i++) enic 2040 drivers/net/ethernet/cisco/enic/enic_main.c vnic_wq_clean(&enic->wq[i], enic_free_wq_buf); enic 2041 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->rq_count; i++) enic 2042 drivers/net/ethernet/cisco/enic/enic_main.c vnic_rq_clean(&enic->rq[i], enic_free_rq_buf); enic 2043 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->cq_count; i++) enic 2044 drivers/net/ethernet/cisco/enic/enic_main.c vnic_cq_clean(&enic->cq[i]); enic 2045 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->intr_count; i++) enic 2046 drivers/net/ethernet/cisco/enic/enic_main.c vnic_intr_clean(&enic->intr[i]); enic 2076 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 2078 drivers/net/ethernet/cisco/enic/enic_main.c if (enic_is_dynamic(enic) || enic_is_sriov_vf(enic)) enic 2081 drivers/net/ethernet/cisco/enic/enic_main.c if (netdev->mtu > enic->port_mtu) enic 2084 drivers/net/ethernet/cisco/enic/enic_main.c netdev->mtu, enic->port_mtu); enic 2091 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = container_of(work, struct enic, change_mtu_work); enic 2092 drivers/net/ethernet/cisco/enic/enic_main.c struct net_device *netdev = enic->netdev; enic 2093 drivers/net/ethernet/cisco/enic/enic_main.c int new_mtu = vnic_dev_mtu(enic->vdev); enic 2105 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 2106 drivers/net/ethernet/cisco/enic/enic_main.c struct vnic_dev *vdev = enic->vdev; enic 2111 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->rq_count; i++) { enic 2112 drivers/net/ethernet/cisco/enic/enic_main.c intr = enic_msix_rq_intr(enic, i); enic 2113 drivers/net/ethernet/cisco/enic/enic_main.c enic_isr_msix(enic->msix_entry[intr].vector, enic 2114 drivers/net/ethernet/cisco/enic/enic_main.c &enic->napi[i]); enic 2117 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->wq_count; i++) { enic 2118 drivers/net/ethernet/cisco/enic/enic_main.c intr = enic_msix_wq_intr(enic, i); enic 2119 drivers/net/ethernet/cisco/enic/enic_main.c enic_isr_msix(enic->msix_entry[intr].vector, enic 2120 drivers/net/ethernet/cisco/enic/enic_main.c &enic->napi[enic_cq_wq(enic, i)]); enic 2125 drivers/net/ethernet/cisco/enic/enic_main.c enic_isr_msi(enic->pdev->irq, enic); enic 2128 drivers/net/ethernet/cisco/enic/enic_main.c enic_isr_legacy(enic->pdev->irq, netdev); enic 2171 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_dev_open(struct enic *enic) enic 2176 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_dev_wait(enic->vdev, vnic_dev_open, enic 2179 drivers/net/ethernet/cisco/enic/enic_main.c dev_err(enic_get_dev(enic), "vNIC device open failed, err %d\n", enic 2185 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_dev_soft_reset(struct enic *enic) enic 2189 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_dev_wait(enic->vdev, vnic_dev_soft_reset, enic 2192 drivers/net/ethernet/cisco/enic/enic_main.c netdev_err(enic->netdev, "vNIC soft reset failed, err %d\n", enic 2198 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_dev_hang_reset(struct enic *enic) enic 2202 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_dev_wait(enic->vdev, vnic_dev_hang_reset, enic 2205 drivers/net/ethernet/cisco/enic/enic_main.c netdev_err(enic->netdev, "vNIC hang reset failed, err %d\n", enic 2211 drivers/net/ethernet/cisco/enic/enic_main.c int __enic_set_rsskey(struct enic *enic) enic 2217 drivers/net/ethernet/cisco/enic/enic_main.c rss_key_buf_va = pci_zalloc_consistent(enic->pdev, enic 2226 drivers/net/ethernet/cisco/enic/enic_main.c rss_key_buf_va->key[kidx].b[bidx] = enic->rss_key[i]; enic 2228 drivers/net/ethernet/cisco/enic/enic_main.c spin_lock_bh(&enic->devcmd_lock); enic 2229 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_set_rss_key(enic, enic 2232 drivers/net/ethernet/cisco/enic/enic_main.c spin_unlock_bh(&enic->devcmd_lock); enic 2234 drivers/net/ethernet/cisco/enic/enic_main.c pci_free_consistent(enic->pdev, sizeof(union vnic_rss_key), enic 2240 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_set_rsskey(struct enic *enic) enic 2242 drivers/net/ethernet/cisco/enic/enic_main.c netdev_rss_key_fill(enic->rss_key, ENIC_RSS_LEN); enic 2244 drivers/net/ethernet/cisco/enic/enic_main.c return __enic_set_rsskey(enic); enic 2247 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_set_rsscpu(struct enic *enic, u8 rss_hash_bits) enic 2254 drivers/net/ethernet/cisco/enic/enic_main.c rss_cpu_buf_va = pci_alloc_consistent(enic->pdev, enic 2260 drivers/net/ethernet/cisco/enic/enic_main.c (*rss_cpu_buf_va).cpu[i/4].b[i%4] = i % enic->rq_count; enic 2262 drivers/net/ethernet/cisco/enic/enic_main.c spin_lock_bh(&enic->devcmd_lock); enic 2263 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_set_rss_cpu(enic, enic 2266 drivers/net/ethernet/cisco/enic/enic_main.c spin_unlock_bh(&enic->devcmd_lock); enic 2268 drivers/net/ethernet/cisco/enic/enic_main.c pci_free_consistent(enic->pdev, sizeof(union vnic_rss_cpu), enic 2274 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_set_niccfg(struct enic *enic, u8 rss_default_cpu, enic 2284 drivers/net/ethernet/cisco/enic/enic_main.c spin_lock_bh(&enic->devcmd_lock); enic 2285 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_set_nic_cfg(enic, enic 2290 drivers/net/ethernet/cisco/enic/enic_main.c spin_unlock_bh(&enic->devcmd_lock); enic 2295 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_set_rss_nic_cfg(struct enic *enic) enic 2297 drivers/net/ethernet/cisco/enic/enic_main.c struct device *dev = enic_get_dev(enic); enic 2303 drivers/net/ethernet/cisco/enic/enic_main.c u8 rss_enable = ENIC_SETTING(enic, RSS) && (enic->rq_count > 1); enic 2305 drivers/net/ethernet/cisco/enic/enic_main.c spin_lock_bh(&enic->devcmd_lock); enic 2306 drivers/net/ethernet/cisco/enic/enic_main.c res = vnic_dev_capable_rss_hash_type(enic->vdev, &rss_hash_type); enic 2307 drivers/net/ethernet/cisco/enic/enic_main.c spin_unlock_bh(&enic->devcmd_lock); enic 2318 drivers/net/ethernet/cisco/enic/enic_main.c if (!enic_set_rsskey(enic)) { enic 2319 drivers/net/ethernet/cisco/enic/enic_main.c if (enic_set_rsscpu(enic, rss_hash_bits)) { enic 2330 drivers/net/ethernet/cisco/enic/enic_main.c return enic_set_niccfg(enic, rss_default_cpu, rss_hash_type, enic 2336 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = container_of(work, struct enic, reset); enic 2338 drivers/net/ethernet/cisco/enic/enic_main.c if (!netif_running(enic->netdev)) enic 2343 drivers/net/ethernet/cisco/enic/enic_main.c spin_lock(&enic->enic_api_lock); enic 2344 drivers/net/ethernet/cisco/enic/enic_main.c enic_stop(enic->netdev); enic 2345 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_soft_reset(enic); enic 2346 drivers/net/ethernet/cisco/enic/enic_main.c enic_reset_addr_lists(enic); enic 2347 drivers/net/ethernet/cisco/enic/enic_main.c enic_init_vnic_resources(enic); enic 2348 drivers/net/ethernet/cisco/enic/enic_main.c enic_set_rss_nic_cfg(enic); enic 2349 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_set_ig_vlan_rewrite_mode(enic); enic 2350 drivers/net/ethernet/cisco/enic/enic_main.c enic_open(enic->netdev); enic 2351 drivers/net/ethernet/cisco/enic/enic_main.c spin_unlock(&enic->enic_api_lock); enic 2352 drivers/net/ethernet/cisco/enic/enic_main.c call_netdevice_notifiers(NETDEV_REBOOT, enic->netdev); enic 2359 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = container_of(work, struct enic, tx_hang_reset); enic 2363 drivers/net/ethernet/cisco/enic/enic_main.c spin_lock(&enic->enic_api_lock); enic 2364 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_hang_notify(enic); enic 2365 drivers/net/ethernet/cisco/enic/enic_main.c enic_stop(enic->netdev); enic 2366 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_hang_reset(enic); enic 2367 drivers/net/ethernet/cisco/enic/enic_main.c enic_reset_addr_lists(enic); enic 2368 drivers/net/ethernet/cisco/enic/enic_main.c enic_init_vnic_resources(enic); enic 2369 drivers/net/ethernet/cisco/enic/enic_main.c enic_set_rss_nic_cfg(enic); enic 2370 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_set_ig_vlan_rewrite_mode(enic); enic 2371 drivers/net/ethernet/cisco/enic/enic_main.c enic_open(enic->netdev); enic 2372 drivers/net/ethernet/cisco/enic/enic_main.c spin_unlock(&enic->enic_api_lock); enic 2373 drivers/net/ethernet/cisco/enic/enic_main.c call_netdevice_notifiers(NETDEV_REBOOT, enic->netdev); enic 2378 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_set_intr_mode(struct enic *enic) enic 2380 drivers/net/ethernet/cisco/enic/enic_main.c unsigned int n = min_t(unsigned int, enic->rq_count, ENIC_RQ_MAX); enic 2381 drivers/net/ethernet/cisco/enic/enic_main.c unsigned int m = min_t(unsigned int, enic->wq_count, ENIC_WQ_MAX); enic 2394 drivers/net/ethernet/cisco/enic/enic_main.c BUG_ON(ARRAY_SIZE(enic->msix_entry) < n + m + 2); enic 2396 drivers/net/ethernet/cisco/enic/enic_main.c enic->msix_entry[i].entry = i; enic 2401 drivers/net/ethernet/cisco/enic/enic_main.c if (ENIC_SETTING(enic, RSS) && enic 2402 drivers/net/ethernet/cisco/enic/enic_main.c enic->config.intr_mode < 1 && enic 2403 drivers/net/ethernet/cisco/enic/enic_main.c enic->rq_count >= n && enic 2404 drivers/net/ethernet/cisco/enic/enic_main.c enic->wq_count >= m && enic 2405 drivers/net/ethernet/cisco/enic/enic_main.c enic->cq_count >= n + m && enic 2406 drivers/net/ethernet/cisco/enic/enic_main.c enic->intr_count >= n + m + 2) { enic 2408 drivers/net/ethernet/cisco/enic/enic_main.c if (pci_enable_msix_range(enic->pdev, enic->msix_entry, enic 2411 drivers/net/ethernet/cisco/enic/enic_main.c enic->rq_count = n; enic 2412 drivers/net/ethernet/cisco/enic/enic_main.c enic->wq_count = m; enic 2413 drivers/net/ethernet/cisco/enic/enic_main.c enic->cq_count = n + m; enic 2414 drivers/net/ethernet/cisco/enic/enic_main.c enic->intr_count = n + m + 2; enic 2416 drivers/net/ethernet/cisco/enic/enic_main.c vnic_dev_set_intr_mode(enic->vdev, enic 2423 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->config.intr_mode < 1 && enic 2424 drivers/net/ethernet/cisco/enic/enic_main.c enic->rq_count >= 1 && enic 2425 drivers/net/ethernet/cisco/enic/enic_main.c enic->wq_count >= m && enic 2426 drivers/net/ethernet/cisco/enic/enic_main.c enic->cq_count >= 1 + m && enic 2427 drivers/net/ethernet/cisco/enic/enic_main.c enic->intr_count >= 1 + m + 2) { enic 2428 drivers/net/ethernet/cisco/enic/enic_main.c if (pci_enable_msix_range(enic->pdev, enic->msix_entry, enic 2431 drivers/net/ethernet/cisco/enic/enic_main.c enic->rq_count = 1; enic 2432 drivers/net/ethernet/cisco/enic/enic_main.c enic->wq_count = m; enic 2433 drivers/net/ethernet/cisco/enic/enic_main.c enic->cq_count = 1 + m; enic 2434 drivers/net/ethernet/cisco/enic/enic_main.c enic->intr_count = 1 + m + 2; enic 2436 drivers/net/ethernet/cisco/enic/enic_main.c vnic_dev_set_intr_mode(enic->vdev, enic 2448 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->config.intr_mode < 2 && enic 2449 drivers/net/ethernet/cisco/enic/enic_main.c enic->rq_count >= 1 && enic 2450 drivers/net/ethernet/cisco/enic/enic_main.c enic->wq_count >= 1 && enic 2451 drivers/net/ethernet/cisco/enic/enic_main.c enic->cq_count >= 2 && enic 2452 drivers/net/ethernet/cisco/enic/enic_main.c enic->intr_count >= 1 && enic 2453 drivers/net/ethernet/cisco/enic/enic_main.c !pci_enable_msi(enic->pdev)) { enic 2455 drivers/net/ethernet/cisco/enic/enic_main.c enic->rq_count = 1; enic 2456 drivers/net/ethernet/cisco/enic/enic_main.c enic->wq_count = 1; enic 2457 drivers/net/ethernet/cisco/enic/enic_main.c enic->cq_count = 2; enic 2458 drivers/net/ethernet/cisco/enic/enic_main.c enic->intr_count = 1; enic 2460 drivers/net/ethernet/cisco/enic/enic_main.c vnic_dev_set_intr_mode(enic->vdev, VNIC_DEV_INTR_MODE_MSI); enic 2473 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->config.intr_mode < 3 && enic 2474 drivers/net/ethernet/cisco/enic/enic_main.c enic->rq_count >= 1 && enic 2475 drivers/net/ethernet/cisco/enic/enic_main.c enic->wq_count >= 1 && enic 2476 drivers/net/ethernet/cisco/enic/enic_main.c enic->cq_count >= 2 && enic 2477 drivers/net/ethernet/cisco/enic/enic_main.c enic->intr_count >= 3) { enic 2479 drivers/net/ethernet/cisco/enic/enic_main.c enic->rq_count = 1; enic 2480 drivers/net/ethernet/cisco/enic/enic_main.c enic->wq_count = 1; enic 2481 drivers/net/ethernet/cisco/enic/enic_main.c enic->cq_count = 2; enic 2482 drivers/net/ethernet/cisco/enic/enic_main.c enic->intr_count = 3; enic 2484 drivers/net/ethernet/cisco/enic/enic_main.c vnic_dev_set_intr_mode(enic->vdev, VNIC_DEV_INTR_MODE_INTX); enic 2489 drivers/net/ethernet/cisco/enic/enic_main.c vnic_dev_set_intr_mode(enic->vdev, VNIC_DEV_INTR_MODE_UNKNOWN); enic 2494 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_clear_intr_mode(struct enic *enic) enic 2496 drivers/net/ethernet/cisco/enic/enic_main.c switch (vnic_dev_get_intr_mode(enic->vdev)) { enic 2498 drivers/net/ethernet/cisco/enic/enic_main.c pci_disable_msix(enic->pdev); enic 2501 drivers/net/ethernet/cisco/enic/enic_main.c pci_disable_msi(enic->pdev); enic 2507 drivers/net/ethernet/cisco/enic/enic_main.c vnic_dev_set_intr_mode(enic->vdev, VNIC_DEV_INTR_MODE_UNKNOWN); enic 2562 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_dev_deinit(struct enic *enic) enic 2566 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->rq_count; i++) { enic 2567 drivers/net/ethernet/cisco/enic/enic_main.c napi_hash_del(&enic->napi[i]); enic 2568 drivers/net/ethernet/cisco/enic/enic_main.c netif_napi_del(&enic->napi[i]); enic 2570 drivers/net/ethernet/cisco/enic/enic_main.c if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX) enic 2571 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->wq_count; i++) enic 2572 drivers/net/ethernet/cisco/enic/enic_main.c netif_napi_del(&enic->napi[enic_cq_wq(enic, i)]); enic 2574 drivers/net/ethernet/cisco/enic/enic_main.c enic_free_vnic_resources(enic); enic 2575 drivers/net/ethernet/cisco/enic/enic_main.c enic_clear_intr_mode(enic); enic 2576 drivers/net/ethernet/cisco/enic/enic_main.c enic_free_affinity_hint(enic); enic 2579 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_kdump_kernel_config(struct enic *enic) enic 2582 drivers/net/ethernet/cisco/enic/enic_main.c dev_info(enic_get_dev(enic), "Running from within kdump kernel. Using minimal resources\n"); enic 2583 drivers/net/ethernet/cisco/enic/enic_main.c enic->rq_count = 1; enic 2584 drivers/net/ethernet/cisco/enic/enic_main.c enic->wq_count = 1; enic 2585 drivers/net/ethernet/cisco/enic/enic_main.c enic->config.rq_desc_count = ENIC_MIN_RQ_DESCS; enic 2586 drivers/net/ethernet/cisco/enic/enic_main.c enic->config.wq_desc_count = ENIC_MIN_WQ_DESCS; enic 2587 drivers/net/ethernet/cisco/enic/enic_main.c enic->config.mtu = min_t(u16, 1500, enic->config.mtu); enic 2591 drivers/net/ethernet/cisco/enic/enic_main.c static int enic_dev_init(struct enic *enic) enic 2593 drivers/net/ethernet/cisco/enic/enic_main.c struct device *dev = enic_get_dev(enic); enic 2594 drivers/net/ethernet/cisco/enic/enic_main.c struct net_device *netdev = enic->netdev; enic 2599 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_dev_intr_coal_timer_info(enic); enic 2603 drivers/net/ethernet/cisco/enic/enic_main.c vnic_dev_intr_coal_timer_info_default(enic->vdev); enic 2609 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_get_vnic_config(enic); enic 2618 drivers/net/ethernet/cisco/enic/enic_main.c enic_get_res_counts(enic); enic 2622 drivers/net/ethernet/cisco/enic/enic_main.c enic_kdump_kernel_config(enic); enic 2628 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_set_intr_mode(enic); enic 2638 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_alloc_vnic_resources(enic); enic 2644 drivers/net/ethernet/cisco/enic/enic_main.c enic_init_vnic_resources(enic); enic 2646 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_set_rss_nic_cfg(enic); enic 2652 drivers/net/ethernet/cisco/enic/enic_main.c switch (vnic_dev_get_intr_mode(enic->vdev)) { enic 2654 drivers/net/ethernet/cisco/enic/enic_main.c netif_napi_add(netdev, &enic->napi[0], enic_poll, 64); enic 2657 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->rq_count; i++) { enic 2658 drivers/net/ethernet/cisco/enic/enic_main.c netif_napi_add(netdev, &enic->napi[i], enic 2661 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->wq_count; i++) enic 2662 drivers/net/ethernet/cisco/enic/enic_main.c netif_napi_add(netdev, &enic->napi[enic_cq_wq(enic, i)], enic 2670 drivers/net/ethernet/cisco/enic/enic_main.c enic_free_affinity_hint(enic); enic 2671 drivers/net/ethernet/cisco/enic/enic_main.c enic_clear_intr_mode(enic); enic 2672 drivers/net/ethernet/cisco/enic/enic_main.c enic_free_vnic_resources(enic); enic 2677 drivers/net/ethernet/cisco/enic/enic_main.c static void enic_iounmap(struct enic *enic) enic 2681 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < ARRAY_SIZE(enic->bar); i++) enic 2682 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->bar[i].vaddr) enic 2683 drivers/net/ethernet/cisco/enic/enic_main.c iounmap(enic->bar[i].vaddr); enic 2690 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic; enic 2703 drivers/net/ethernet/cisco/enic/enic_main.c netdev = alloc_etherdev_mqs(sizeof(struct enic), enic 2712 drivers/net/ethernet/cisco/enic/enic_main.c enic = netdev_priv(netdev); enic 2713 drivers/net/ethernet/cisco/enic/enic_main.c enic->netdev = netdev; enic 2714 drivers/net/ethernet/cisco/enic/enic_main.c enic->pdev = pdev; enic 2764 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < ARRAY_SIZE(enic->bar); i++) { enic 2767 drivers/net/ethernet/cisco/enic/enic_main.c enic->bar[i].len = pci_resource_len(pdev, i); enic 2768 drivers/net/ethernet/cisco/enic/enic_main.c enic->bar[i].vaddr = pci_iomap(pdev, i, enic->bar[i].len); enic 2769 drivers/net/ethernet/cisco/enic/enic_main.c if (!enic->bar[i].vaddr) { enic 2774 drivers/net/ethernet/cisco/enic/enic_main.c enic->bar[i].bus_addr = pci_resource_start(pdev, i); enic 2780 drivers/net/ethernet/cisco/enic/enic_main.c enic->vdev = vnic_dev_register(NULL, enic, pdev, enic->bar, enic 2781 drivers/net/ethernet/cisco/enic/enic_main.c ARRAY_SIZE(enic->bar)); enic 2782 drivers/net/ethernet/cisco/enic/enic_main.c if (!enic->vdev) { enic 2788 drivers/net/ethernet/cisco/enic/enic_main.c err = vnic_devcmd_init(enic->vdev); enic 2798 drivers/net/ethernet/cisco/enic/enic_main.c &enic->num_vfs); enic 2799 drivers/net/ethernet/cisco/enic/enic_main.c if (enic->num_vfs) { enic 2800 drivers/net/ethernet/cisco/enic/enic_main.c err = pci_enable_sriov(pdev, enic->num_vfs); enic 2807 drivers/net/ethernet/cisco/enic/enic_main.c enic->priv_flags |= ENIC_SRIOV_ENABLED; enic 2808 drivers/net/ethernet/cisco/enic/enic_main.c num_pps = enic->num_vfs; enic 2814 drivers/net/ethernet/cisco/enic/enic_main.c enic->pp = kcalloc(num_pps, sizeof(*enic->pp), GFP_KERNEL); enic 2815 drivers/net/ethernet/cisco/enic/enic_main.c if (!enic->pp) { enic 2823 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_dev_open(enic); enic 2832 drivers/net/ethernet/cisco/enic/enic_main.c spin_lock_init(&enic->devcmd_lock); enic 2833 drivers/net/ethernet/cisco/enic/enic_main.c spin_lock_init(&enic->enic_api_lock); enic 2839 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_dev_set_ig_vlan_rewrite_mode(enic); enic 2861 drivers/net/ethernet/cisco/enic/enic_main.c if (!enic_is_dynamic(enic)) { enic 2862 drivers/net/ethernet/cisco/enic/enic_main.c err = vnic_dev_init(enic->vdev, 0); enic 2869 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_dev_init(enic); enic 2875 drivers/net/ethernet/cisco/enic/enic_main.c netif_set_real_num_tx_queues(netdev, enic->wq_count); enic 2876 drivers/net/ethernet/cisco/enic/enic_main.c netif_set_real_num_rx_queues(netdev, enic->rq_count); enic 2881 drivers/net/ethernet/cisco/enic/enic_main.c timer_setup(&enic->notify_timer, enic_notify_timer, 0); enic 2883 drivers/net/ethernet/cisco/enic/enic_main.c enic_rfs_flw_tbl_init(enic); enic 2884 drivers/net/ethernet/cisco/enic/enic_main.c enic_set_rx_coal_setting(enic); enic 2885 drivers/net/ethernet/cisco/enic/enic_main.c INIT_WORK(&enic->reset, enic_reset); enic 2886 drivers/net/ethernet/cisco/enic/enic_main.c INIT_WORK(&enic->tx_hang_reset, enic_tx_hang_reset); enic 2887 drivers/net/ethernet/cisco/enic/enic_main.c INIT_WORK(&enic->change_mtu_work, enic_change_mtu_work); enic 2889 drivers/net/ethernet/cisco/enic/enic_main.c for (i = 0; i < enic->wq_count; i++) enic 2890 drivers/net/ethernet/cisco/enic/enic_main.c spin_lock_init(&enic->wq_lock[i]); enic 2895 drivers/net/ethernet/cisco/enic/enic_main.c enic->port_mtu = enic->config.mtu; enic 2897 drivers/net/ethernet/cisco/enic/enic_main.c err = enic_set_mac_addr(netdev, enic->mac_addr); enic 2903 drivers/net/ethernet/cisco/enic/enic_main.c enic->tx_coalesce_usecs = enic->config.intr_timer_usec; enic 2907 drivers/net/ethernet/cisco/enic/enic_main.c enic->rx_coalesce_usecs = enic->tx_coalesce_usecs; enic 2909 drivers/net/ethernet/cisco/enic/enic_main.c if (enic_is_dynamic(enic) || enic_is_sriov_vf(enic)) enic 2918 drivers/net/ethernet/cisco/enic/enic_main.c if (ENIC_SETTING(enic, LOOP)) { enic 2920 drivers/net/ethernet/cisco/enic/enic_main.c enic->loop_enable = 1; enic 2921 drivers/net/ethernet/cisco/enic/enic_main.c enic->loop_tag = enic->config.loop_tag; enic 2922 drivers/net/ethernet/cisco/enic/enic_main.c dev_info(dev, "loopback tag=0x%04x\n", enic->loop_tag); enic 2924 drivers/net/ethernet/cisco/enic/enic_main.c if (ENIC_SETTING(enic, TXCSUM)) enic 2926 drivers/net/ethernet/cisco/enic/enic_main.c if (ENIC_SETTING(enic, TSO)) enic 2929 drivers/net/ethernet/cisco/enic/enic_main.c if (ENIC_SETTING(enic, RSS)) enic 2931 drivers/net/ethernet/cisco/enic/enic_main.c if (ENIC_SETTING(enic, RXCSUM)) enic 2933 drivers/net/ethernet/cisco/enic/enic_main.c if (ENIC_SETTING(enic, VXLAN)) { enic 2956 drivers/net/ethernet/cisco/enic/enic_main.c err = vnic_dev_get_supported_feature_ver(enic->vdev, enic 2961 drivers/net/ethernet/cisco/enic/enic_main.c enic->vxlan.flags = (u8)a1; enic 2967 drivers/net/ethernet/cisco/enic/enic_main.c enic->vxlan.patch_level = patch_level; enic 2985 drivers/net/ethernet/cisco/enic/enic_main.c netdev->mtu = enic->port_mtu; enic 2992 drivers/net/ethernet/cisco/enic/enic_main.c enic->rx_copybreak = RX_COPYBREAK_DEFAULT; enic 2997 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_deinit(enic); enic 2999 drivers/net/ethernet/cisco/enic/enic_main.c vnic_dev_close(enic->vdev); enic 3001 drivers/net/ethernet/cisco/enic/enic_main.c kfree(enic->pp); enic 3004 drivers/net/ethernet/cisco/enic/enic_main.c if (enic_sriov_enabled(enic)) { enic 3006 drivers/net/ethernet/cisco/enic/enic_main.c enic->priv_flags &= ~ENIC_SRIOV_ENABLED; enic 3010 drivers/net/ethernet/cisco/enic/enic_main.c vnic_dev_unregister(enic->vdev); enic 3012 drivers/net/ethernet/cisco/enic/enic_main.c enic_iounmap(enic); enic 3028 drivers/net/ethernet/cisco/enic/enic_main.c struct enic *enic = netdev_priv(netdev); enic 3030 drivers/net/ethernet/cisco/enic/enic_main.c cancel_work_sync(&enic->reset); enic 3031 drivers/net/ethernet/cisco/enic/enic_main.c cancel_work_sync(&enic->change_mtu_work); enic 3033 drivers/net/ethernet/cisco/enic/enic_main.c enic_dev_deinit(enic); enic 3034 drivers/net/ethernet/cisco/enic/enic_main.c vnic_dev_close(enic->vdev); enic 3036 drivers/net/ethernet/cisco/enic/enic_main.c if (enic_sriov_enabled(enic)) { enic 3038 drivers/net/ethernet/cisco/enic/enic_main.c enic->priv_flags &= ~ENIC_SRIOV_ENABLED; enic 3041 drivers/net/ethernet/cisco/enic/enic_main.c kfree(enic->pp); enic 3042 drivers/net/ethernet/cisco/enic/enic_main.c vnic_dev_unregister(enic->vdev); enic 3043 drivers/net/ethernet/cisco/enic/enic_main.c enic_iounmap(enic); enic 38 drivers/net/ethernet/cisco/enic/enic_pp.c int enic_is_valid_pp_vf(struct enic *enic, int vf, int *err) enic 42 drivers/net/ethernet/cisco/enic/enic_pp.c if (enic_sriov_enabled(enic)) { enic 43 drivers/net/ethernet/cisco/enic/enic_pp.c if (vf < 0 || vf >= enic->num_vfs) { enic 57 drivers/net/ethernet/cisco/enic/enic_pp.c if (vf == PORT_SELF_VF && !enic_is_dynamic(enic)) { enic 69 drivers/net/ethernet/cisco/enic/enic_pp.c static int enic_set_port_profile(struct enic *enic, int vf) enic 71 drivers/net/ethernet/cisco/enic/enic_pp.c struct net_device *netdev = enic->netdev; enic 81 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_PP_BY_INDEX(enic, vf, pp, &err); enic 135 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_init_prov2, (u8 *)vp, enic 145 drivers/net/ethernet/cisco/enic/enic_pp.c static int enic_unset_port_profile(struct enic *enic, int vf) enic 149 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_deinit); enic 154 drivers/net/ethernet/cisco/enic/enic_pp.c enic_reset_addr_lists(enic); enic 168 drivers/net/ethernet/cisco/enic/enic_pp.c static int enic_pp_preassociate(struct enic *enic, int vf, enic 170 drivers/net/ethernet/cisco/enic/enic_pp.c static int enic_pp_disassociate(struct enic *enic, int vf, enic 172 drivers/net/ethernet/cisco/enic/enic_pp.c static int enic_pp_preassociate_rr(struct enic *enic, int vf, enic 174 drivers/net/ethernet/cisco/enic/enic_pp.c static int enic_pp_associate(struct enic *enic, int vf, enic 177 drivers/net/ethernet/cisco/enic/enic_pp.c static int (*enic_pp_handlers[])(struct enic *enic, int vf, enic 189 drivers/net/ethernet/cisco/enic/enic_pp.c static int enic_pp_preassociate(struct enic *enic, int vf, enic 195 drivers/net/ethernet/cisco/enic/enic_pp.c static int enic_pp_disassociate(struct enic *enic, int vf, enic 198 drivers/net/ethernet/cisco/enic/enic_pp.c struct net_device *netdev = enic->netdev; enic 202 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_PP_BY_INDEX(enic, vf, pp, &err); enic 208 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_del_addr, enic 211 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_del_addr, enic 214 drivers/net/ethernet/cisco/enic/enic_pp.c return enic_unset_port_profile(enic, vf); enic 217 drivers/net/ethernet/cisco/enic/enic_pp.c static int enic_pp_preassociate_rr(struct enic *enic, int vf, enic 224 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_PP_BY_INDEX(enic, vf, pp, &err); enic 231 drivers/net/ethernet/cisco/enic/enic_pp.c err = enic_pp_handlers[PORT_REQUEST_DISASSOCIATE](enic, vf, enic 241 drivers/net/ethernet/cisco/enic/enic_pp.c err = enic_set_port_profile(enic, vf); enic 248 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_enable2, enic 256 drivers/net/ethernet/cisco/enic/enic_pp.c static int enic_pp_associate(struct enic *enic, int vf, enic 259 drivers/net/ethernet/cisco/enic/enic_pp.c struct net_device *netdev = enic->netdev; enic 264 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_PP_BY_INDEX(enic, vf, pp, &err); enic 273 drivers/net/ethernet/cisco/enic/enic_pp.c enic, vf, prev_pp, restore_pp); enic 281 drivers/net/ethernet/cisco/enic/enic_pp.c enic, vf, prev_pp, restore_pp); enic 288 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_enable2, active); enic 295 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_add_addr, enic 298 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_add_addr, enic 304 drivers/net/ethernet/cisco/enic/enic_pp.c int enic_process_set_pp_request(struct enic *enic, int vf, enic 310 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_PP_BY_INDEX(enic, vf, pp, &err); enic 318 drivers/net/ethernet/cisco/enic/enic_pp.c return enic_pp_handlers[pp->request](enic, vf, prev_pp, restore_pp); enic 321 drivers/net/ethernet/cisco/enic/enic_pp.c int enic_process_get_pp_request(struct enic *enic, int vf, enic 330 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, enic 335 drivers/net/ethernet/cisco/enic/enic_pp.c ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, enic 22 drivers/net/ethernet/cisco/enic/enic_pp.h #define ENIC_PP_BY_INDEX(enic, vf, pp, err) \ enic 24 drivers/net/ethernet/cisco/enic/enic_pp.h if (enic_is_valid_pp_vf(enic, vf, err)) \ enic 25 drivers/net/ethernet/cisco/enic/enic_pp.h pp = (vf == PORT_SELF_VF) ? enic->pp : enic->pp + vf; \ enic 30 drivers/net/ethernet/cisco/enic/enic_pp.h int enic_process_set_pp_request(struct enic *enic, int vf, enic 32 drivers/net/ethernet/cisco/enic/enic_pp.h int enic_process_get_pp_request(struct enic *enic, int vf, enic 34 drivers/net/ethernet/cisco/enic/enic_pp.h int enic_is_valid_pp_vf(struct enic *enic, int vf, int *err); enic 42 drivers/net/ethernet/cisco/enic/enic_res.c int enic_get_vnic_config(struct enic *enic) enic 44 drivers/net/ethernet/cisco/enic/enic_res.c struct vnic_enet_config *c = &enic->config; enic 47 drivers/net/ethernet/cisco/enic/enic_res.c err = vnic_dev_get_mac_addr(enic->vdev, enic->mac_addr); enic 49 drivers/net/ethernet/cisco/enic/enic_res.c dev_err(enic_get_dev(enic), enic 56 drivers/net/ethernet/cisco/enic/enic_res.c err = vnic_dev_spec(enic->vdev, \ enic 60 drivers/net/ethernet/cisco/enic/enic_res.c dev_err(enic_get_dev(enic), \ enic 95 drivers/net/ethernet/cisco/enic/enic_res.c vnic_dev_get_intr_coal_timer_max(enic->vdev)); enic 97 drivers/net/ethernet/cisco/enic/enic_res.c dev_info(enic_get_dev(enic), enic 99 drivers/net/ethernet/cisco/enic/enic_res.c enic->mac_addr, c->wq_desc_count, c->rq_desc_count, c->mtu); enic 101 drivers/net/ethernet/cisco/enic/enic_res.c dev_info(enic_get_dev(enic), "vNIC csum tx/rx %s/%s " enic 104 drivers/net/ethernet/cisco/enic/enic_res.c ENIC_SETTING(enic, TXCSUM) ? "yes" : "no", enic 105 drivers/net/ethernet/cisco/enic/enic_res.c ENIC_SETTING(enic, RXCSUM) ? "yes" : "no", enic 106 drivers/net/ethernet/cisco/enic/enic_res.c ENIC_SETTING(enic, TSO) ? "yes" : "no", enic 107 drivers/net/ethernet/cisco/enic/enic_res.c ENIC_SETTING(enic, LRO) ? "yes" : "no", enic 108 drivers/net/ethernet/cisco/enic/enic_res.c ENIC_SETTING(enic, RSS) ? "yes" : "no", enic 122 drivers/net/ethernet/cisco/enic/enic_res.c int enic_add_vlan(struct enic *enic, u16 vlanid) enic 128 drivers/net/ethernet/cisco/enic/enic_res.c err = vnic_dev_cmd(enic->vdev, CMD_VLAN_ADD, &a0, &a1, wait); enic 130 drivers/net/ethernet/cisco/enic/enic_res.c dev_err(enic_get_dev(enic), "Can't add vlan id, %d\n", err); enic 135 drivers/net/ethernet/cisco/enic/enic_res.c int enic_del_vlan(struct enic *enic, u16 vlanid) enic 141 drivers/net/ethernet/cisco/enic/enic_res.c err = vnic_dev_cmd(enic->vdev, CMD_VLAN_DEL, &a0, &a1, wait); enic 143 drivers/net/ethernet/cisco/enic/enic_res.c dev_err(enic_get_dev(enic), "Can't delete vlan id, %d\n", err); enic 148 drivers/net/ethernet/cisco/enic/enic_res.c int enic_set_nic_cfg(struct enic *enic, u8 rss_default_cpu, u8 rss_hash_type, enic 168 drivers/net/ethernet/cisco/enic/enic_res.c return vnic_dev_cmd(enic->vdev, cmd, &a0, &a1, wait); enic 171 drivers/net/ethernet/cisco/enic/enic_res.c int enic_set_rss_key(struct enic *enic, dma_addr_t key_pa, u64 len) enic 176 drivers/net/ethernet/cisco/enic/enic_res.c return vnic_dev_cmd(enic->vdev, CMD_RSS_KEY, &a0, &a1, wait); enic 179 drivers/net/ethernet/cisco/enic/enic_res.c int enic_set_rss_cpu(struct enic *enic, dma_addr_t cpu_pa, u64 len) enic 184 drivers/net/ethernet/cisco/enic/enic_res.c return vnic_dev_cmd(enic->vdev, CMD_RSS_CPU, &a0, &a1, wait); enic 187 drivers/net/ethernet/cisco/enic/enic_res.c void enic_free_vnic_resources(struct enic *enic) enic 191 drivers/net/ethernet/cisco/enic/enic_res.c for (i = 0; i < enic->wq_count; i++) enic 192 drivers/net/ethernet/cisco/enic/enic_res.c vnic_wq_free(&enic->wq[i]); enic 193 drivers/net/ethernet/cisco/enic/enic_res.c for (i = 0; i < enic->rq_count; i++) enic 194 drivers/net/ethernet/cisco/enic/enic_res.c vnic_rq_free(&enic->rq[i]); enic 195 drivers/net/ethernet/cisco/enic/enic_res.c for (i = 0; i < enic->cq_count; i++) enic 196 drivers/net/ethernet/cisco/enic/enic_res.c vnic_cq_free(&enic->cq[i]); enic 197 drivers/net/ethernet/cisco/enic/enic_res.c for (i = 0; i < enic->intr_count; i++) enic 198 drivers/net/ethernet/cisco/enic/enic_res.c vnic_intr_free(&enic->intr[i]); enic 201 drivers/net/ethernet/cisco/enic/enic_res.c void enic_get_res_counts(struct enic *enic) enic 203 drivers/net/ethernet/cisco/enic/enic_res.c enic->wq_count = vnic_dev_get_res_count(enic->vdev, RES_TYPE_WQ); enic 204 drivers/net/ethernet/cisco/enic/enic_res.c enic->rq_count = vnic_dev_get_res_count(enic->vdev, RES_TYPE_RQ); enic 205 drivers/net/ethernet/cisco/enic/enic_res.c enic->cq_count = vnic_dev_get_res_count(enic->vdev, RES_TYPE_CQ); enic 206 drivers/net/ethernet/cisco/enic/enic_res.c enic->intr_count = vnic_dev_get_res_count(enic->vdev, enic 209 drivers/net/ethernet/cisco/enic/enic_res.c dev_info(enic_get_dev(enic), enic 211 drivers/net/ethernet/cisco/enic/enic_res.c enic->wq_count, enic->rq_count, enic 212 drivers/net/ethernet/cisco/enic/enic_res.c enic->cq_count, enic->intr_count); enic 215 drivers/net/ethernet/cisco/enic/enic_res.c void enic_init_vnic_resources(struct enic *enic) enic 225 drivers/net/ethernet/cisco/enic/enic_res.c intr_mode = vnic_dev_get_intr_mode(enic->vdev); enic 239 drivers/net/ethernet/cisco/enic/enic_res.c error_interrupt_offset = enic->intr_count - 2; enic 247 drivers/net/ethernet/cisco/enic/enic_res.c for (i = 0; i < enic->rq_count; i++) { enic 249 drivers/net/ethernet/cisco/enic/enic_res.c vnic_rq_init(&enic->rq[i], enic 255 drivers/net/ethernet/cisco/enic/enic_res.c for (i = 0; i < enic->wq_count; i++) { enic 256 drivers/net/ethernet/cisco/enic/enic_res.c cq_index = enic->rq_count + i; enic 257 drivers/net/ethernet/cisco/enic/enic_res.c vnic_wq_init(&enic->wq[i], enic 269 drivers/net/ethernet/cisco/enic/enic_res.c for (i = 0; i < enic->cq_count; i++) { enic 280 drivers/net/ethernet/cisco/enic/enic_res.c vnic_cq_init(&enic->cq[i], enic 309 drivers/net/ethernet/cisco/enic/enic_res.c for (i = 0; i < enic->intr_count; i++) { enic 310 drivers/net/ethernet/cisco/enic/enic_res.c vnic_intr_init(&enic->intr[i], enic 311 drivers/net/ethernet/cisco/enic/enic_res.c enic->config.intr_timer_usec, enic 312 drivers/net/ethernet/cisco/enic/enic_res.c enic->config.intr_timer_type, enic 317 drivers/net/ethernet/cisco/enic/enic_res.c int enic_alloc_vnic_resources(struct enic *enic) enic 323 drivers/net/ethernet/cisco/enic/enic_res.c intr_mode = vnic_dev_get_intr_mode(enic->vdev); enic 325 drivers/net/ethernet/cisco/enic/enic_res.c dev_info(enic_get_dev(enic), "vNIC resources used: " enic 327 drivers/net/ethernet/cisco/enic/enic_res.c enic->wq_count, enic->rq_count, enic 328 drivers/net/ethernet/cisco/enic/enic_res.c enic->cq_count, enic->intr_count, enic 337 drivers/net/ethernet/cisco/enic/enic_res.c for (i = 0; i < enic->wq_count; i++) { enic 338 drivers/net/ethernet/cisco/enic/enic_res.c err = vnic_wq_alloc(enic->vdev, &enic->wq[i], i, enic 339 drivers/net/ethernet/cisco/enic/enic_res.c enic->config.wq_desc_count, enic 345 drivers/net/ethernet/cisco/enic/enic_res.c for (i = 0; i < enic->rq_count; i++) { enic 346 drivers/net/ethernet/cisco/enic/enic_res.c err = vnic_rq_alloc(enic->vdev, &enic->rq[i], i, enic 347 drivers/net/ethernet/cisco/enic/enic_res.c enic->config.rq_desc_count, enic 353 drivers/net/ethernet/cisco/enic/enic_res.c for (i = 0; i < enic->cq_count; i++) { enic 354 drivers/net/ethernet/cisco/enic/enic_res.c if (i < enic->rq_count) enic 355 drivers/net/ethernet/cisco/enic/enic_res.c err = vnic_cq_alloc(enic->vdev, &enic->cq[i], i, enic 356 drivers/net/ethernet/cisco/enic/enic_res.c enic->config.rq_desc_count, enic 359 drivers/net/ethernet/cisco/enic/enic_res.c err = vnic_cq_alloc(enic->vdev, &enic->cq[i], i, enic 360 drivers/net/ethernet/cisco/enic/enic_res.c enic->config.wq_desc_count, enic 366 drivers/net/ethernet/cisco/enic/enic_res.c for (i = 0; i < enic->intr_count; i++) { enic 367 drivers/net/ethernet/cisco/enic/enic_res.c err = vnic_intr_alloc(enic->vdev, &enic->intr[i], i); enic 375 drivers/net/ethernet/cisco/enic/enic_res.c enic->legacy_pba = vnic_dev_get_res(enic->vdev, enic 377 drivers/net/ethernet/cisco/enic/enic_res.c if (!enic->legacy_pba && intr_mode == VNIC_DEV_INTR_MODE_INTX) { enic 378 drivers/net/ethernet/cisco/enic/enic_res.c dev_err(enic_get_dev(enic), enic 387 drivers/net/ethernet/cisco/enic/enic_res.c enic_free_vnic_resources(enic); enic 41 drivers/net/ethernet/cisco/enic/enic_res.h #define ENIC_SETTING(enic, f) ((enic->config.flags & VENETF_##f) ? 1 : 0) enic 138 drivers/net/ethernet/cisco/enic/enic_res.h struct enic; enic 140 drivers/net/ethernet/cisco/enic/enic_res.h int enic_get_vnic_config(struct enic *); enic 141 drivers/net/ethernet/cisco/enic/enic_res.h int enic_add_vlan(struct enic *enic, u16 vlanid); enic 142 drivers/net/ethernet/cisco/enic/enic_res.h int enic_del_vlan(struct enic *enic, u16 vlanid); enic 143 drivers/net/ethernet/cisco/enic/enic_res.h int enic_set_nic_cfg(struct enic *enic, u8 rss_default_cpu, u8 rss_hash_type, enic 146 drivers/net/ethernet/cisco/enic/enic_res.h int enic_set_rss_key(struct enic *enic, dma_addr_t key_pa, u64 len); enic 147 drivers/net/ethernet/cisco/enic/enic_res.h int enic_set_rss_cpu(struct enic *enic, dma_addr_t cpu_pa, u64 len); enic 148 drivers/net/ethernet/cisco/enic/enic_res.h void enic_get_res_counts(struct enic *enic); enic 149 drivers/net/ethernet/cisco/enic/enic_res.h void enic_init_vnic_resources(struct enic *enic); enic 150 drivers/net/ethernet/cisco/enic/enic_res.h int enic_alloc_vnic_resources(struct enic *); enic 151 drivers/net/ethernet/cisco/enic/enic_res.h void enic_free_vnic_resources(struct enic *);