drivers/net/ethernet/cisco/enic/enic.h
248
struct enic *enic = vdev->priv;
drivers/net/ethernet/cisco/enic/enic.h
250
return enic->netdev;
drivers/net/ethernet/cisco/enic/enic.h
269
static inline struct device *enic_get_dev(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic.h
271
return &(enic->pdev->dev);
drivers/net/ethernet/cisco/enic/enic.h
274
static inline unsigned int enic_cq_rq(struct enic *enic, unsigned int rq)
drivers/net/ethernet/cisco/enic/enic.h
279
static inline unsigned int enic_cq_wq(struct enic *enic, unsigned int wq)
drivers/net/ethernet/cisco/enic/enic.h
281
return enic->rq_count + wq;
drivers/net/ethernet/cisco/enic/enic.h
284
static inline unsigned int enic_msix_rq_intr(struct enic *enic,
drivers/net/ethernet/cisco/enic/enic.h
287
return enic->cq[enic_cq_rq(enic, rq)].interrupt_offset;
drivers/net/ethernet/cisco/enic/enic.h
290
static inline unsigned int enic_msix_wq_intr(struct enic *enic,
drivers/net/ethernet/cisco/enic/enic.h
293
return enic->cq[enic_cq_wq(enic, wq)].interrupt_offset;
drivers/net/ethernet/cisco/enic/enic.h
310
static inline unsigned int enic_msix_err_intr(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic.h
315
static inline unsigned int enic_msix_notify_intr(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic.h
320
static inline bool enic_is_err_intr(struct enic *enic, int intr)
drivers/net/ethernet/cisco/enic/enic.h
322
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic.h
326
return intr == enic_msix_err_intr(enic);
drivers/net/ethernet/cisco/enic/enic.h
333
static inline bool enic_is_notify_intr(struct enic *enic, int intr)
drivers/net/ethernet/cisco/enic/enic.h
335
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic.h
339
return intr == enic_msix_notify_intr(enic);
drivers/net/ethernet/cisco/enic/enic.h
346
static inline int enic_dma_map_check(struct enic *enic, dma_addr_t dma_addr)
drivers/net/ethernet/cisco/enic/enic.h
348
if (unlikely(dma_mapping_error(&enic->pdev->dev, dma_addr))) {
drivers/net/ethernet/cisco/enic/enic.h
350
enic->netdev->name);
drivers/net/ethernet/cisco/enic/enic.h
351
enic->gen_stats.dma_map_error++;
drivers/net/ethernet/cisco/enic/enic.h
359
void enic_reset_addr_lists(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic.h
360
int enic_sriov_enabled(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic.h
361
int enic_is_valid_vf(struct enic *enic, int vf);
drivers/net/ethernet/cisco/enic/enic.h
362
int enic_is_dynamic(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic.h
364
int __enic_set_rsskey(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic.h
365
void enic_ext_cq(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic_api.c
18
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_api.c
19
struct vnic_dev *vdev = enic->vdev;
drivers/net/ethernet/cisco/enic/enic_api.c
21
spin_lock(&enic->enic_api_lock);
drivers/net/ethernet/cisco/enic/enic_api.c
22
while (enic->enic_api_busy) {
drivers/net/ethernet/cisco/enic/enic_api.c
23
spin_unlock(&enic->enic_api_lock);
drivers/net/ethernet/cisco/enic/enic_api.c
25
spin_lock(&enic->enic_api_lock);
drivers/net/ethernet/cisco/enic/enic_api.c
28
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_api.c
34
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_api.c
35
spin_unlock(&enic->enic_api_lock);
drivers/net/ethernet/cisco/enic/enic_clsf.c
101
enic->rfs_h.free++;
drivers/net/ethernet/cisco/enic/enic_clsf.c
104
spin_unlock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_clsf.c
107
struct enic_rfs_fltr_node *htbl_fltr_search(struct enic *enic, u16 fltr_id)
drivers/net/ethernet/cisco/enic/enic_clsf.c
116
hhead = &enic->rfs_h.ht_head[i];
drivers/net/ethernet/cisco/enic/enic_clsf.c
128
struct enic *enic = timer_container_of(enic, t, rfs_h.rfs_may_expire);
drivers/net/ethernet/cisco/enic/enic_clsf.c
132
spin_lock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_clsf.c
138
hhead = &enic->rfs_h.ht_head[enic->rfs_h.toclean++];
drivers/net/ethernet/cisco/enic/enic_clsf.c
140
res = rps_may_expire_flow(enic->netdev, n->rq_id,
drivers/net/ethernet/cisco/enic/enic_clsf.c
143
res = enic_delfltr(enic, n->fltr_id);
drivers/net/ethernet/cisco/enic/enic_clsf.c
148
enic->rfs_h.free++;
drivers/net/ethernet/cisco/enic/enic_clsf.c
152
spin_unlock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_clsf.c
153
mod_timer(&enic->rfs_h.rfs_may_expire, jiffies + HZ/4);
drivers/net/ethernet/cisco/enic/enic_clsf.c
176
struct enic *enic;
drivers/net/ethernet/cisco/enic/enic_clsf.c
180
enic = netdev_priv(dev);
drivers/net/ethernet/cisco/enic/enic_clsf.c
188
spin_lock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_clsf.c
189
n = htbl_key_search(&enic->rfs_h.ht_head[tbl_idx], &keys);
drivers/net/ethernet/cisco/enic/enic_clsf.c
207
i = --enic->rfs_h.free;
drivers/net/ethernet/cisco/enic/enic_clsf.c
21
int enic_addfltr_5t(struct enic *enic, struct flow_keys *keys, u16 rq)
drivers/net/ethernet/cisco/enic/enic_clsf.c
210
enic->rfs_h.free++;
drivers/net/ethernet/cisco/enic/enic_clsf.c
211
res = enic_delfltr(enic, n->fltr_id);
drivers/net/ethernet/cisco/enic/enic_clsf.c
214
res = enic_addfltr_5t(enic, &keys, rxq_index);
drivers/net/ethernet/cisco/enic/enic_clsf.c
217
enic->rfs_h.free++;
drivers/net/ethernet/cisco/enic/enic_clsf.c
224
res = enic_addfltr_5t(enic, &keys, rxq_index);
drivers/net/ethernet/cisco/enic/enic_clsf.c
226
enic->rfs_h.free++;
drivers/net/ethernet/cisco/enic/enic_clsf.c
229
ret = enic_delfltr(enic, n->fltr_id);
drivers/net/ethernet/cisco/enic/enic_clsf.c
237
head = &enic->rfs_h.ht_head[tbl_idx];
drivers/net/ethernet/cisco/enic/enic_clsf.c
245
enic->rfs_h.free++;
drivers/net/ethernet/cisco/enic/enic_clsf.c
253
i = --enic->rfs_h.free;
drivers/net/ethernet/cisco/enic/enic_clsf.c
255
enic->rfs_h.free++;
drivers/net/ethernet/cisco/enic/enic_clsf.c
263
enic->rfs_h.free++;
drivers/net/ethernet/cisco/enic/enic_clsf.c
267
res = enic_addfltr_5t(enic, &keys, rxq_index);
drivers/net/ethernet/cisco/enic/enic_clsf.c
270
enic->rfs_h.free++;
drivers/net/ethernet/cisco/enic/enic_clsf.c
278
hlist_add_head(&n->node, &enic->rfs_h.ht_head[tbl_idx]);
drivers/net/ethernet/cisco/enic/enic_clsf.c
282
spin_unlock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_clsf.c
44
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_clsf.c
45
res = vnic_dev_classifier(enic->vdev, CLSF_ADD, &rq, &data);
drivers/net/ethernet/cisco/enic/enic_clsf.c
46
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_clsf.c
59
int enic_delfltr(struct enic *enic, u16 filter_id)
drivers/net/ethernet/cisco/enic/enic_clsf.c
63
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_clsf.c
64
ret = vnic_dev_classifier(enic->vdev, CLSF_DEL, &filter_id, NULL);
drivers/net/ethernet/cisco/enic/enic_clsf.c
65
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_clsf.c
73
void enic_rfs_flw_tbl_init(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_clsf.c
77
spin_lock_init(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_clsf.c
79
INIT_HLIST_HEAD(&enic->rfs_h.ht_head[i]);
drivers/net/ethernet/cisco/enic/enic_clsf.c
80
enic->rfs_h.max = enic->config.num_arfs;
drivers/net/ethernet/cisco/enic/enic_clsf.c
81
enic->rfs_h.free = enic->rfs_h.max;
drivers/net/ethernet/cisco/enic/enic_clsf.c
82
enic->rfs_h.toclean = 0;
drivers/net/ethernet/cisco/enic/enic_clsf.c
85
void enic_rfs_flw_tbl_free(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_clsf.c
89
enic_rfs_timer_stop(enic);
drivers/net/ethernet/cisco/enic/enic_clsf.c
90
spin_lock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_clsf.c
96
hhead = &enic->rfs_h.ht_head[i];
drivers/net/ethernet/cisco/enic/enic_clsf.c
98
enic_delfltr(enic, n->fltr_id);
drivers/net/ethernet/cisco/enic/enic_clsf.h
10
int enic_addfltr_5t(struct enic *enic, struct flow_keys *keys, u16 rq);
drivers/net/ethernet/cisco/enic/enic_clsf.h
11
int enic_delfltr(struct enic *enic, u16 filter_id);
drivers/net/ethernet/cisco/enic/enic_clsf.h
12
void enic_rfs_flw_tbl_init(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic_clsf.h
13
void enic_rfs_flw_tbl_free(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic_clsf.h
14
struct enic_rfs_fltr_node *htbl_fltr_search(struct enic *enic, u16 fltr_id);
drivers/net/ethernet/cisco/enic/enic_clsf.h
21
static inline void enic_rfs_timer_start(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_clsf.h
23
timer_setup(&enic->rfs_h.rfs_may_expire, enic_flow_may_expire, 0);
drivers/net/ethernet/cisco/enic/enic_clsf.h
24
mod_timer(&enic->rfs_h.rfs_may_expire, jiffies + HZ/4);
drivers/net/ethernet/cisco/enic/enic_clsf.h
27
static inline void enic_rfs_timer_stop(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_clsf.h
29
timer_delete_sync(&enic->rfs_h.rfs_may_expire);
drivers/net/ethernet/cisco/enic/enic_clsf.h
32
static inline void enic_rfs_timer_start(struct enic *enic) {}
drivers/net/ethernet/cisco/enic/enic_clsf.h
33
static inline void enic_rfs_timer_stop(struct enic *enic) {}
drivers/net/ethernet/cisco/enic/enic_dev.c
102
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
103
err = vnic_dev_notify_unset(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_dev.c
104
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
109
int enic_dev_hang_notify(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_dev.c
113
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
114
err = vnic_dev_hang_notify(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_dev.c
115
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
120
int enic_dev_set_ig_vlan_rewrite_mode(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_dev.c
124
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
125
err = vnic_dev_set_ig_vlan_rewrite_mode(enic->vdev,
drivers/net/ethernet/cisco/enic/enic_dev.c
127
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
13
int enic_dev_fw_info(struct enic *enic, struct vnic_devcmd_fw_info **fw_info)
drivers/net/ethernet/cisco/enic/enic_dev.c
132
int enic_dev_enable(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_dev.c
136
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
137
err = vnic_dev_enable_wait(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_dev.c
138
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
143
int enic_dev_disable(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_dev.c
147
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
148
err = vnic_dev_disable(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_dev.c
149
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
154
int enic_dev_intr_coal_timer_info(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_dev.c
158
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
159
err = vnic_dev_intr_coal_timer_info(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_dev.c
160
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
168
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_dev.c
17
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
171
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
172
err = enic_add_vlan(enic, vid);
drivers/net/ethernet/cisco/enic/enic_dev.c
173
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
18
err = vnic_dev_fw_info(enic->vdev, fw_info);
drivers/net/ethernet/cisco/enic/enic_dev.c
181
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_dev.c
184
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
185
err = enic_del_vlan(enic, vid);
drivers/net/ethernet/cisco/enic/enic_dev.c
186
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
19
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
24
int enic_dev_stats_dump(struct enic *enic, struct vnic_stats **vstats)
drivers/net/ethernet/cisco/enic/enic_dev.c
28
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
29
err = vnic_dev_stats_dump(enic->vdev, vstats);
drivers/net/ethernet/cisco/enic/enic_dev.c
30
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
35
int enic_dev_add_station_addr(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_dev.c
39
if (!is_valid_ether_addr(enic->netdev->dev_addr))
drivers/net/ethernet/cisco/enic/enic_dev.c
42
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
43
err = vnic_dev_add_addr(enic->vdev, enic->netdev->dev_addr);
drivers/net/ethernet/cisco/enic/enic_dev.c
44
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
49
int enic_dev_del_station_addr(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_dev.c
53
if (!is_valid_ether_addr(enic->netdev->dev_addr))
drivers/net/ethernet/cisco/enic/enic_dev.c
56
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
57
err = vnic_dev_del_addr(enic->vdev, enic->netdev->dev_addr);
drivers/net/ethernet/cisco/enic/enic_dev.c
58
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
63
int enic_dev_packet_filter(struct enic *enic, int directed, int multicast,
drivers/net/ethernet/cisco/enic/enic_dev.c
68
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
69
err = vnic_dev_packet_filter(enic->vdev, directed,
drivers/net/ethernet/cisco/enic/enic_dev.c
71
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
76
int enic_dev_add_addr(struct enic *enic, const u8 *addr)
drivers/net/ethernet/cisco/enic/enic_dev.c
80
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
81
err = vnic_dev_add_addr(enic->vdev, addr);
drivers/net/ethernet/cisco/enic/enic_dev.c
82
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
87
int enic_dev_del_addr(struct enic *enic, const u8 *addr)
drivers/net/ethernet/cisco/enic/enic_dev.c
91
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
92
err = vnic_dev_del_addr(enic->vdev, addr);
drivers/net/ethernet/cisco/enic/enic_dev.c
93
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
98
int enic_dev_notify_unset(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_dev.h
14
#define ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnicdevcmdfn, ...) \
drivers/net/ethernet/cisco/enic/enic_dev.h
16
spin_lock_bh(&enic->devcmd_lock); \
drivers/net/ethernet/cisco/enic/enic_dev.h
17
if (enic_is_valid_vf(enic, vf)) { \
drivers/net/ethernet/cisco/enic/enic_dev.h
18
vnic_dev_cmd_proxy_by_index_start(enic->vdev, vf); \
drivers/net/ethernet/cisco/enic/enic_dev.h
19
err = vnicdevcmdfn(enic->vdev, ##__VA_ARGS__); \
drivers/net/ethernet/cisco/enic/enic_dev.h
20
vnic_dev_cmd_proxy_end(enic->vdev); \
drivers/net/ethernet/cisco/enic/enic_dev.h
22
err = vnicdevcmdfn(enic->vdev, ##__VA_ARGS__); \
drivers/net/ethernet/cisco/enic/enic_dev.h
24
spin_unlock_bh(&enic->devcmd_lock); \
drivers/net/ethernet/cisco/enic/enic_dev.h
27
int enic_dev_fw_info(struct enic *enic, struct vnic_devcmd_fw_info **fw_info);
drivers/net/ethernet/cisco/enic/enic_dev.h
28
int enic_dev_stats_dump(struct enic *enic, struct vnic_stats **vstats);
drivers/net/ethernet/cisco/enic/enic_dev.h
29
int enic_dev_add_station_addr(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic_dev.h
30
int enic_dev_del_station_addr(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic_dev.h
31
int enic_dev_packet_filter(struct enic *enic, int directed, int multicast,
drivers/net/ethernet/cisco/enic/enic_dev.h
33
int enic_dev_add_addr(struct enic *enic, const u8 *addr);
drivers/net/ethernet/cisco/enic/enic_dev.h
34
int enic_dev_del_addr(struct enic *enic, const u8 *addr);
drivers/net/ethernet/cisco/enic/enic_dev.h
37
int enic_dev_notify_unset(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic_dev.h
38
int enic_dev_hang_notify(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic_dev.h
39
int enic_dev_set_ig_vlan_rewrite_mode(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic_dev.h
40
int enic_dev_enable(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic_dev.h
41
int enic_dev_disable(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic_dev.h
42
int enic_dev_intr_coal_timer_info(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
118
static void enic_intr_coal_set_rx(struct enic *enic, u32 timer)
drivers/net/ethernet/cisco/enic/enic_ethtool.c
123
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
124
intr = enic_msix_rq_intr(enic, i);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
125
vnic_intr_coalescing_timer_set(&enic->intr[intr], timer);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
132
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
144
base->speed = vnic_dev_port_speed(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
159
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
163
err = enic_dev_fw_info(enic, &fw_info);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
174
strscpy(drvinfo->bus_info, pci_name(enic->pdev),
drivers/net/ethernet/cisco/enic/enic_ethtool.c
181
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
199
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
206
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
222
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
223
struct vnic_enet_config *c = &enic->config;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
236
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
237
struct vnic_enet_config *c = &enic->config;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
275
enic_free_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
276
err = enic_alloc_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
280
enic_free_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
283
enic_init_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
298
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
305
n_per_rq_stats = NUM_ENIC_PER_RQ_STATS * enic->rq_count;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
306
n_per_wq_stats = NUM_ENIC_PER_WQ_STATS * enic->wq_count;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
319
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
325
err = enic_dev_stats_dump(enic, &vstats);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
338
*(data++) = ((u64 *)&enic->gen_stats)[enic_gen_stats[i].index];
drivers/net/ethernet/cisco/enic/enic_ethtool.c
339
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
340
struct enic_rq_stats *rqstats = &enic->rq[i].stats;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
348
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
349
struct enic_wq_stats *wqstats = &enic->wq[i].stats;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
361
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
362
return enic->msg_enable;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
367
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
368
enic->msg_enable = value;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
376
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
377
struct enic_rx_coal *rxcoal = &enic->rx_coalesce_setting;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
379
if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX)
drivers/net/ethernet/cisco/enic/enic_ethtool.c
380
ecmd->tx_coalesce_usecs = enic->tx_coalesce_usecs;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
381
ecmd->rx_coalesce_usecs = enic->rx_coalesce_usecs;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
390
static int enic_coalesce_valid(struct enic *enic,
drivers/net/ethernet/cisco/enic/enic_ethtool.c
393
u32 coalesce_usecs_max = vnic_dev_get_intr_coal_timer_max(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
399
if ((vnic_dev_get_intr_mode(enic->vdev) != VNIC_DEV_INTR_MODE_MSIX) &&
drivers/net/ethernet/cisco/enic/enic_ethtool.c
407
netdev_info(enic->netdev, "ethtool_set_coalesce: adaptor supports max coalesce value of %d. Setting max value.\n",
drivers/net/ethernet/cisco/enic/enic_ethtool.c
423
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
431
struct enic_rx_coal *rxcoal = &enic->rx_coalesce_setting;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
433
ret = enic_coalesce_valid(enic, ecmd);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
436
coalesce_usecs_max = vnic_dev_get_intr_coal_timer_max(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
447
if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
448
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
449
intr = enic_msix_wq_intr(enic, i);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
450
vnic_intr_coalescing_timer_set(&enic->intr[intr],
drivers/net/ethernet/cisco/enic/enic_ethtool.c
453
enic->tx_coalesce_usecs = tx_coalesce_usecs;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
457
enic_intr_coal_set_rx(enic, rx_coalesce_usecs);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
465
enic->rx_coalesce_usecs = rx_coalesce_usecs;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
470
static int enic_grxclsrlall(struct enic *enic, struct ethtool_rxnfc *cmd,
drivers/net/ethernet/cisco/enic/enic_ethtool.c
475
cmd->data = enic->rfs_h.max - enic->rfs_h.free;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
481
hhead = &enic->rfs_h.ht_head[j];
drivers/net/ethernet/cisco/enic/enic_ethtool.c
494
static int enic_grxclsrule(struct enic *enic, struct ethtool_rxnfc *cmd)
drivers/net/ethernet/cisco/enic/enic_ethtool.c
500
n = htbl_fltr_search(enic, (u16)fsp->location);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
534
struct enic *enic = netdev_priv(dev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
538
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
539
(void)vnic_dev_capable_rss_hash_type(enic->vdev, &rss_hash_type);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
540
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
578
struct enic *enic = netdev_priv(dev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
580
return enic->rq_count;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
586
struct enic *enic = netdev_priv(dev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
591
spin_lock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
592
cmd->rule_cnt = enic->rfs_h.max - enic->rfs_h.free;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
593
cmd->data = enic->rfs_h.max;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
594
spin_unlock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
597
spin_lock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
598
ret = enic_grxclsrlall(enic, cmd, rule_locs);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
599
spin_unlock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
602
spin_lock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
603
ret = enic_grxclsrule(enic, cmd);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
604
spin_unlock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
622
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
625
memcpy(rxfh->key, enic->rss_key, ENIC_RSS_LEN);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
636
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
644
memcpy(enic->rss_key, rxfh->key, ENIC_RSS_LEN);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
646
return __enic_set_rsskey(enic);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
660
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
662
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
664
channels->max_rx = min(enic->rq_avail, ENIC_RQ_MAX);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
665
channels->max_tx = min(enic->wq_avail, ENIC_WQ_MAX);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
666
channels->rx_count = enic->rq_count;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
667
channels->tx_count = enic->wq_count;
drivers/net/ethernet/cisco/enic/enic_main.c
1001
enic->mc_count = 0;
drivers/net/ethernet/cisco/enic/enic_main.c
1002
enic->uc_count = 0;
drivers/net/ethernet/cisco/enic/enic_main.c
1003
enic->flags = 0;
drivers/net/ethernet/cisco/enic/enic_main.c
1008
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1010
if (enic_is_dynamic(enic) || enic_is_sriov_vf(enic)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1025
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1030
if (netif_running(enic->netdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1031
err = enic_dev_del_station_addr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1040
if (netif_running(enic->netdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1041
err = enic_dev_add_station_addr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1053
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1056
err = enic_dev_del_station_addr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1064
return enic_dev_add_station_addr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1070
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1082
if (enic->flags != flags) {
drivers/net/ethernet/cisco/enic/enic_main.c
1083
enic->flags = flags;
drivers/net/ethernet/cisco/enic/enic_main.c
1084
enic_dev_packet_filter(enic, directed,
drivers/net/ethernet/cisco/enic/enic_main.c
1098
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1099
schedule_work(&enic->tx_hang_reset);
drivers/net/ethernet/cisco/enic/enic_main.c
1104
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1108
ENIC_PP_BY_INDEX(enic, vf, pp, &err);
drivers/net/ethernet/cisco/enic/enic_main.c
112
static void enic_init_affinity_hint(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1120
ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic,
drivers/net/ethernet/cisco/enic/enic_main.c
1132
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1137
ENIC_PP_BY_INDEX(enic, vf, pp, &err);
drivers/net/ethernet/cisco/enic/enic_main.c
114
int numa_node = dev_to_node(&enic->pdev->dev);
drivers/net/ethernet/cisco/enic/enic_main.c
1144
memcpy(&prev_pp, pp, sizeof(*enic->pp));
drivers/net/ethernet/cisco/enic/enic_main.c
1145
memset(pp, 0, sizeof(*enic->pp));
drivers/net/ethernet/cisco/enic/enic_main.c
117
for (i = 0; i < enic->intr_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
118
if (enic_is_err_intr(enic, i) || enic_is_notify_intr(enic, i) ||
drivers/net/ethernet/cisco/enic/enic_main.c
1189
ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic,
drivers/net/ethernet/cisco/enic/enic_main.c
119
(cpumask_available(enic->msix[i].affinity_mask) &&
drivers/net/ethernet/cisco/enic/enic_main.c
1198
err = enic_process_set_pp_request(enic, vf, &prev_pp, &restore_pp);
drivers/net/ethernet/cisco/enic/enic_main.c
120
!cpumask_empty(enic->msix[i].affinity_mask)))
drivers/net/ethernet/cisco/enic/enic_main.c
122
if (zalloc_cpumask_var(&enic->msix[i].affinity_mask,
drivers/net/ethernet/cisco/enic/enic_main.c
1233
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1238
ENIC_PP_BY_INDEX(enic, vf, pp, &err);
drivers/net/ethernet/cisco/enic/enic_main.c
1245
err = enic_process_get_pp_request(enic, vf, pp->request, &response);
drivers/net/ethernet/cisco/enic/enic_main.c
125
enic->msix[i].affinity_mask);
drivers/net/ethernet/cisco/enic/enic_main.c
1265
static void enic_set_int_moderation(struct enic *enic, struct vnic_rq *rq)
drivers/net/ethernet/cisco/enic/enic_main.c
1267
unsigned int intr = enic_msix_rq_intr(enic, rq->index);
drivers/net/ethernet/cisco/enic/enic_main.c
1268
struct vnic_cq *cq = &enic->cq[enic_cq_rq(enic, rq->index)];
drivers/net/ethernet/cisco/enic/enic_main.c
1272
vnic_intr_coalescing_timer_set(&enic->intr[intr], timer);
drivers/net/ethernet/cisco/enic/enic_main.c
1277
static void enic_calc_int_moderation(struct enic *enic, struct vnic_rq *rq)
drivers/net/ethernet/cisco/enic/enic_main.c
1279
struct enic_rx_coal *rx_coal = &enic->rx_coalesce_setting;
drivers/net/ethernet/cisco/enic/enic_main.c
1280
struct vnic_cq *cq = &enic->cq[enic_cq_rq(enic, rq->index)];
drivers/net/ethernet/cisco/enic/enic_main.c
129
static void enic_free_affinity_hint(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1326
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1327
unsigned int cq_rq = enic_cq_rq(enic, 0);
drivers/net/ethernet/cisco/enic/enic_main.c
1328
unsigned int cq_wq = enic_cq_wq(enic, 0);
drivers/net/ethernet/cisco/enic/enic_main.c
133
for (i = 0; i < enic->intr_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1335
wq_work_done = enic_wq_cq_service(enic, cq_wq, wq_work_to_do);
drivers/net/ethernet/cisco/enic/enic_main.c
1338
rq_work_done = enic_rq_cq_service(enic, cq_rq, rq_work_to_do);
drivers/net/ethernet/cisco/enic/enic_main.c
134
if (enic_is_err_intr(enic, i) || enic_is_notify_intr(enic, i))
drivers/net/ethernet/cisco/enic/enic_main.c
1348
vnic_intr_return_credits(&enic->intr[intr],
drivers/net/ethernet/cisco/enic/enic_main.c
1353
err = vnic_rq_fill(&enic->rq[0].vrq, enic_rq_alloc_buf);
drivers/net/ethernet/cisco/enic/enic_main.c
136
free_cpumask_var(enic->msix[i].affinity_mask);
drivers/net/ethernet/cisco/enic/enic_main.c
1361
if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce)
drivers/net/ethernet/cisco/enic/enic_main.c
1365
enic_calc_int_moderation(enic, &enic->rq[0].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
1373
if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce)
drivers/net/ethernet/cisco/enic/enic_main.c
1374
enic_set_int_moderation(enic, &enic->rq[0].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
1375
vnic_intr_unmask(&enic->intr[intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
1376
enic->rq[0].stats.napi_complete++;
drivers/net/ethernet/cisco/enic/enic_main.c
1378
enic->rq[0].stats.napi_repoll++;
drivers/net/ethernet/cisco/enic/enic_main.c
1385
static void enic_free_rx_cpu_rmap(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1387
free_irq_cpu_rmap(enic->netdev->rx_cpu_rmap);
drivers/net/ethernet/cisco/enic/enic_main.c
1388
enic->netdev->rx_cpu_rmap = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
1391
static void enic_set_rx_cpu_rmap(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1395
if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX) {
drivers/net/ethernet/cisco/enic/enic_main.c
1396
enic->netdev->rx_cpu_rmap = alloc_irq_cpu_rmap(enic->rq_count);
drivers/net/ethernet/cisco/enic/enic_main.c
1397
if (unlikely(!enic->netdev->rx_cpu_rmap))
drivers/net/ethernet/cisco/enic/enic_main.c
1399
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
140
static void enic_set_affinity_hint(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1400
res = irq_cpu_rmap_add(enic->netdev->rx_cpu_rmap,
drivers/net/ethernet/cisco/enic/enic_main.c
1401
enic->msix_entry[i].vector);
drivers/net/ethernet/cisco/enic/enic_main.c
1403
enic_free_rx_cpu_rmap(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1412
static void enic_free_rx_cpu_rmap(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1416
static void enic_set_rx_cpu_rmap(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1425
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1426
unsigned int wq_index = (napi - &enic->napi[0]) - enic->rq_count;
drivers/net/ethernet/cisco/enic/enic_main.c
1427
struct vnic_wq *wq = &enic->wq[wq_index].vwq;
drivers/net/ethernet/cisco/enic/enic_main.c
1435
cq = enic_cq_wq(enic, wq_irq);
drivers/net/ethernet/cisco/enic/enic_main.c
1436
intr = enic_msix_wq_intr(enic, wq_irq);
drivers/net/ethernet/cisco/enic/enic_main.c
1438
wq_work_done = enic_wq_cq_service(enic, cq, wq_work_to_do);
drivers/net/ethernet/cisco/enic/enic_main.c
1440
vnic_intr_return_credits(&enic->intr[intr], wq_work_done,
drivers/net/ethernet/cisco/enic/enic_main.c
1445
vnic_intr_unmask(&enic->intr[intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
145
for (i = 0; i < enic->intr_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1455
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1456
unsigned int rq = (napi - &enic->napi[0]);
drivers/net/ethernet/cisco/enic/enic_main.c
1457
unsigned int cq = enic_cq_rq(enic, rq);
drivers/net/ethernet/cisco/enic/enic_main.c
1458
unsigned int intr = enic_msix_rq_intr(enic, rq);
drivers/net/ethernet/cisco/enic/enic_main.c
146
if (enic_is_err_intr(enic, i) ||
drivers/net/ethernet/cisco/enic/enic_main.c
1467
work_done = enic_rq_cq_service(enic, cq, work_to_do);
drivers/net/ethernet/cisco/enic/enic_main.c
147
enic_is_notify_intr(enic, i) ||
drivers/net/ethernet/cisco/enic/enic_main.c
1475
vnic_intr_return_credits(&enic->intr[intr],
drivers/net/ethernet/cisco/enic/enic_main.c
148
!cpumask_available(enic->msix[i].affinity_mask) ||
drivers/net/ethernet/cisco/enic/enic_main.c
1480
err = vnic_rq_fill(&enic->rq[rq].vrq, enic_rq_alloc_buf);
drivers/net/ethernet/cisco/enic/enic_main.c
1488
if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce)
drivers/net/ethernet/cisco/enic/enic_main.c
149
cpumask_empty(enic->msix[i].affinity_mask))
drivers/net/ethernet/cisco/enic/enic_main.c
1492
enic_calc_int_moderation(enic, &enic->rq[rq].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
1500
if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce)
drivers/net/ethernet/cisco/enic/enic_main.c
1501
enic_set_int_moderation(enic, &enic->rq[rq].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
1502
vnic_intr_unmask(&enic->intr[intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
1503
enic->rq[rq].stats.napi_complete++;
drivers/net/ethernet/cisco/enic/enic_main.c
1505
enic->rq[rq].stats.napi_repoll++;
drivers/net/ethernet/cisco/enic/enic_main.c
151
err = irq_update_affinity_hint(enic->msix_entry[i].vector,
drivers/net/ethernet/cisco/enic/enic_main.c
1513
struct enic *enic = timer_container_of(enic, t, notify_timer);
drivers/net/ethernet/cisco/enic/enic_main.c
1515
enic_notify_check(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1517
mod_timer(&enic->notify_timer,
drivers/net/ethernet/cisco/enic/enic_main.c
152
enic->msix[i].affinity_mask);
drivers/net/ethernet/cisco/enic/enic_main.c
1521
static void enic_free_intr(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1523
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_main.c
1526
enic_free_rx_cpu_rmap(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1527
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1529
free_irq(enic->pdev->irq, netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1532
free_irq(enic->pdev->irq, enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1535
for (i = 0; i < enic->intr_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1536
if (enic->msix[i].requested)
drivers/net/ethernet/cisco/enic/enic_main.c
1537
free_irq(enic->msix_entry[i].vector,
drivers/net/ethernet/cisco/enic/enic_main.c
1538
enic->msix[i].devid);
drivers/net/ethernet/cisco/enic/enic_main.c
154
netdev_warn(enic->netdev, "irq_update_affinity_hint failed, err %d\n",
drivers/net/ethernet/cisco/enic/enic_main.c
1545
static int enic_request_intr(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1547
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_main.c
1551
enic_set_rx_cpu_rmap(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1552
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1556
err = request_irq(enic->pdev->irq, enic_isr_legacy,
drivers/net/ethernet/cisco/enic/enic_main.c
1562
err = request_irq(enic->pdev->irq, enic_isr_msi,
drivers/net/ethernet/cisco/enic/enic_main.c
1563
0, netdev->name, enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1568
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1569
intr = enic_msix_rq_intr(enic, i);
drivers/net/ethernet/cisco/enic/enic_main.c
1570
snprintf(enic->msix[intr].devname,
drivers/net/ethernet/cisco/enic/enic_main.c
1571
sizeof(enic->msix[intr].devname),
drivers/net/ethernet/cisco/enic/enic_main.c
1573
enic->msix[intr].isr = enic_isr_msix;
drivers/net/ethernet/cisco/enic/enic_main.c
1574
enic->msix[intr].devid = &enic->napi[i];
drivers/net/ethernet/cisco/enic/enic_main.c
1577
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1578
int wq = enic_cq_wq(enic, i);
drivers/net/ethernet/cisco/enic/enic_main.c
158
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1580
intr = enic_msix_wq_intr(enic, i);
drivers/net/ethernet/cisco/enic/enic_main.c
1581
snprintf(enic->msix[intr].devname,
drivers/net/ethernet/cisco/enic/enic_main.c
1582
sizeof(enic->msix[intr].devname),
drivers/net/ethernet/cisco/enic/enic_main.c
1584
enic->msix[intr].isr = enic_isr_msix;
drivers/net/ethernet/cisco/enic/enic_main.c
1585
enic->msix[intr].devid = &enic->napi[wq];
drivers/net/ethernet/cisco/enic/enic_main.c
1588
intr = enic_msix_err_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1589
snprintf(enic->msix[intr].devname,
drivers/net/ethernet/cisco/enic/enic_main.c
159
int wq_intr = enic_msix_wq_intr(enic, i);
drivers/net/ethernet/cisco/enic/enic_main.c
1590
sizeof(enic->msix[intr].devname),
drivers/net/ethernet/cisco/enic/enic_main.c
1592
enic->msix[intr].isr = enic_isr_msix_err;
drivers/net/ethernet/cisco/enic/enic_main.c
1593
enic->msix[intr].devid = enic;
drivers/net/ethernet/cisco/enic/enic_main.c
1595
intr = enic_msix_notify_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1596
snprintf(enic->msix[intr].devname,
drivers/net/ethernet/cisco/enic/enic_main.c
1597
sizeof(enic->msix[intr].devname),
drivers/net/ethernet/cisco/enic/enic_main.c
1599
enic->msix[intr].isr = enic_isr_msix_notify;
drivers/net/ethernet/cisco/enic/enic_main.c
1600
enic->msix[intr].devid = enic;
drivers/net/ethernet/cisco/enic/enic_main.c
1602
for (i = 0; i < enic->intr_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1603
enic->msix[i].requested = 0;
drivers/net/ethernet/cisco/enic/enic_main.c
1605
for (i = 0; i < enic->intr_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1606
err = request_irq(enic->msix_entry[i].vector,
drivers/net/ethernet/cisco/enic/enic_main.c
1607
enic->msix[i].isr, 0,
drivers/net/ethernet/cisco/enic/enic_main.c
1608
enic->msix[i].devname,
drivers/net/ethernet/cisco/enic/enic_main.c
1609
enic->msix[i].devid);
drivers/net/ethernet/cisco/enic/enic_main.c
161
if (cpumask_available(enic->msix[wq_intr].affinity_mask) &&
drivers/net/ethernet/cisco/enic/enic_main.c
1611
enic_free_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1614
enic->msix[i].requested = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
162
!cpumask_empty(enic->msix[wq_intr].affinity_mask))
drivers/net/ethernet/cisco/enic/enic_main.c
1626
static void enic_synchronize_irqs(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
163
netif_set_xps_queue(enic->netdev,
drivers/net/ethernet/cisco/enic/enic_main.c
1630
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1633
synchronize_irq(enic->pdev->irq);
drivers/net/ethernet/cisco/enic/enic_main.c
1636
for (i = 0; i < enic->intr_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1637
synchronize_irq(enic->msix_entry[i].vector);
drivers/net/ethernet/cisco/enic/enic_main.c
164
enic->msix[wq_intr].affinity_mask,
drivers/net/ethernet/cisco/enic/enic_main.c
1644
static int enic_dev_notify_set(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1648
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
1649
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1651
err = vnic_dev_notify_set(enic->vdev, ENIC_LEGACY_NOTIFY_INTR);
drivers/net/ethernet/cisco/enic/enic_main.c
1654
err = vnic_dev_notify_set(enic->vdev,
drivers/net/ethernet/cisco/enic/enic_main.c
1655
enic_msix_notify_intr(enic));
drivers/net/ethernet/cisco/enic/enic_main.c
1658
err = vnic_dev_notify_set(enic->vdev, -1 /* no intr */);
drivers/net/ethernet/cisco/enic/enic_main.c
1661
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
1666
static void enic_notify_timer_start(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1668
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1670
mod_timer(&enic->notify_timer, jiffies);
drivers/net/ethernet/cisco/enic/enic_main.c
1681
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1687
.pool_size = enic->config.rq_desc_count,
drivers/net/ethernet/cisco/enic/enic_main.c
1688
.nid = dev_to_node(&enic->pdev->dev),
drivers/net/ethernet/cisco/enic/enic_main.c
1689
.dev = &enic->pdev->dev,
drivers/net/ethernet/cisco/enic/enic_main.c
169
static void enic_unset_affinity_hint(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1696
err = enic_request_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1701
enic_init_affinity_hint(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1702
enic_set_affinity_hint(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1704
err = enic_dev_notify_set(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1711
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1713
pp_params.napi = &enic->napi[i];
drivers/net/ethernet/cisco/enic/enic_main.c
1715
enic->rq[i].pool = page_pool_create(&pp_params);
drivers/net/ethernet/cisco/enic/enic_main.c
1716
if (IS_ERR(enic->rq[i].pool)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1717
err = PTR_ERR(enic->rq[i].pool);
drivers/net/ethernet/cisco/enic/enic_main.c
1718
enic->rq[i].pool = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
1723
vnic_rq_enable(&enic->rq[i].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
1724
vnic_rq_fill(&enic->rq[i].vrq, enic_rq_alloc_buf);
drivers/net/ethernet/cisco/enic/enic_main.c
1726
if (vnic_rq_desc_used(&enic->rq[i].vrq) == 0) {
drivers/net/ethernet/cisco/enic/enic_main.c
173
for (i = 0; i < enic->intr_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1733
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1734
vnic_wq_enable(&enic->wq[i].vwq);
drivers/net/ethernet/cisco/enic/enic_main.c
1736
if (!enic_is_dynamic(enic) && !enic_is_sriov_vf(enic))
drivers/net/ethernet/cisco/enic/enic_main.c
1737
enic_dev_add_station_addr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
174
irq_update_affinity_hint(enic->msix_entry[i].vector, NULL);
drivers/net/ethernet/cisco/enic/enic_main.c
1743
for (i = 0; i < enic->rq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1744
napi_enable(&enic->napi[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
1746
if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX)
drivers/net/ethernet/cisco/enic/enic_main.c
1747
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1748
napi_enable(&enic->napi[enic_cq_wq(enic, i)]);
drivers/net/ethernet/cisco/enic/enic_main.c
1749
enic_dev_enable(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1751
for (i = 0; i < enic->intr_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1752
vnic_intr_unmask(&enic->intr[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
1754
enic_notify_timer_start(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1755
enic_rfs_timer_start(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1760
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1761
ret = vnic_rq_disable(&enic->rq[i].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
1763
vnic_rq_clean(&enic->rq[i].vrq, enic_free_rq_buf);
drivers/net/ethernet/cisco/enic/enic_main.c
1764
page_pool_destroy(enic->rq[i].pool);
drivers/net/ethernet/cisco/enic/enic_main.c
1765
enic->rq[i].pool = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
1768
enic_dev_notify_unset(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1770
enic_unset_affinity_hint(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1771
enic_free_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1779
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1783
for (i = 0; i < enic->intr_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1784
vnic_intr_mask(&enic->intr[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
1785
(void)vnic_intr_masked(&enic->intr[i]); /* flush write */
drivers/net/ethernet/cisco/enic/enic_main.c
1788
enic_synchronize_irqs(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1790
timer_delete_sync(&enic->notify_timer);
drivers/net/ethernet/cisco/enic/enic_main.c
1791
enic_rfs_flw_tbl_free(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1793
enic_dev_disable(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1795
for (i = 0; i < enic->rq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1796
napi_disable(&enic->napi[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
1799
if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX)
drivers/net/ethernet/cisco/enic/enic_main.c
1800
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1801
napi_disable(&enic->napi[enic_cq_wq(enic, i)]);
drivers/net/ethernet/cisco/enic/enic_main.c
1804
if (!enic_is_dynamic(enic) && !enic_is_sriov_vf(enic))
drivers/net/ethernet/cisco/enic/enic_main.c
1805
enic_dev_del_station_addr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1807
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1808
err = vnic_wq_disable(&enic->wq[i].vwq);
drivers/net/ethernet/cisco/enic/enic_main.c
181
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1812
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1813
err = vnic_rq_disable(&enic->rq[i].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
1818
enic_dev_notify_unset(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1819
enic_unset_affinity_hint(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1820
enic_free_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1822
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1823
vnic_wq_clean(&enic->wq[i].vwq, enic_free_wq_buf);
drivers/net/ethernet/cisco/enic/enic_main.c
1824
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1825
vnic_rq_clean(&enic->rq[i].vrq, enic_free_rq_buf);
drivers/net/ethernet/cisco/enic/enic_main.c
1826
page_pool_destroy(enic->rq[i].pool);
drivers/net/ethernet/cisco/enic/enic_main.c
1827
enic->rq[i].pool = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
1829
for (i = 0; i < enic->cq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1830
vnic_cq_clean(&enic->cq[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
1831
for (i = 0; i < enic->intr_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1832
vnic_intr_clean(&enic->intr[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
184
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
186
err = vnic_dev_overlay_offload_cfg(enic->vdev,
drivers/net/ethernet/cisco/enic/enic_main.c
1862
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1864
if (enic_is_dynamic(enic) || enic_is_sriov_vf(enic))
drivers/net/ethernet/cisco/enic/enic_main.c
1867
if (new_mtu > enic->port_mtu)
drivers/net/ethernet/cisco/enic/enic_main.c
1870
new_mtu, enic->port_mtu);
drivers/net/ethernet/cisco/enic/enic_main.c
1877
struct enic *enic = container_of(work, struct enic, change_mtu_work);
drivers/net/ethernet/cisco/enic/enic_main.c
1878
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_main.c
1879
int new_mtu = vnic_dev_mtu(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1891
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1892
struct vnic_dev *vdev = enic->vdev;
drivers/net/ethernet/cisco/enic/enic_main.c
1897
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1898
intr = enic_msix_rq_intr(enic, i);
drivers/net/ethernet/cisco/enic/enic_main.c
1899
enic_isr_msix(enic->msix_entry[intr].vector,
drivers/net/ethernet/cisco/enic/enic_main.c
1900
&enic->napi[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
1903
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1904
intr = enic_msix_wq_intr(enic, i);
drivers/net/ethernet/cisco/enic/enic_main.c
1905
enic_isr_msix(enic->msix_entry[intr].vector,
drivers/net/ethernet/cisco/enic/enic_main.c
1906
&enic->napi[enic_cq_wq(enic, i)]);
drivers/net/ethernet/cisco/enic/enic_main.c
1911
enic_isr_msi(enic->pdev->irq, enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1914
enic_isr_legacy(enic->pdev->irq, netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
192
err = vnic_dev_overlay_offload_ctrl(enic->vdev, OVERLAY_FEATURE_VXLAN,
drivers/net/ethernet/cisco/enic/enic_main.c
193
enic->vxlan.patch_level);
drivers/net/ethernet/cisco/enic/enic_main.c
1955
static int enic_dev_open(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1960
err = enic_dev_wait(enic->vdev, vnic_dev_open,
drivers/net/ethernet/cisco/enic/enic_main.c
1963
dev_err(enic_get_dev(enic), "vNIC device open failed, err %d\n",
drivers/net/ethernet/cisco/enic/enic_main.c
1969
static int enic_dev_soft_reset(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
197
enic->vxlan.vxlan_udp_port_number = ntohs(ti->port);
drivers/net/ethernet/cisco/enic/enic_main.c
1973
err = enic_dev_wait(enic->vdev, vnic_dev_soft_reset,
drivers/net/ethernet/cisco/enic/enic_main.c
1976
netdev_err(enic->netdev, "vNIC soft reset failed, err %d\n",
drivers/net/ethernet/cisco/enic/enic_main.c
1982
static int enic_dev_hang_reset(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1986
err = enic_dev_wait(enic->vdev, vnic_dev_hang_reset,
drivers/net/ethernet/cisco/enic/enic_main.c
1989
netdev_err(enic->netdev, "vNIC hang reset failed, err %d\n",
drivers/net/ethernet/cisco/enic/enic_main.c
199
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
1995
int __enic_set_rsskey(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2001
rss_key_buf_va = dma_alloc_coherent(&enic->pdev->dev,
drivers/net/ethernet/cisco/enic/enic_main.c
2010
rss_key_buf_va->key[kidx].b[bidx] = enic->rss_key[i];
drivers/net/ethernet/cisco/enic/enic_main.c
2012
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2013
err = enic_set_rss_key(enic,
drivers/net/ethernet/cisco/enic/enic_main.c
2016
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2018
dma_free_coherent(&enic->pdev->dev, sizeof(union vnic_rss_key),
drivers/net/ethernet/cisco/enic/enic_main.c
2024
static int enic_set_rsskey(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2026
netdev_rss_key_fill(enic->rss_key, ENIC_RSS_LEN);
drivers/net/ethernet/cisco/enic/enic_main.c
2028
return __enic_set_rsskey(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2031
static int enic_set_rsscpu(struct enic *enic, u8 rss_hash_bits)
drivers/net/ethernet/cisco/enic/enic_main.c
2038
rss_cpu_buf_va = dma_alloc_coherent(&enic->pdev->dev,
drivers/net/ethernet/cisco/enic/enic_main.c
2045
(*rss_cpu_buf_va).cpu[i/4].b[i%4] = i % enic->rq_count;
drivers/net/ethernet/cisco/enic/enic_main.c
2047
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2048
err = enic_set_rss_cpu(enic,
drivers/net/ethernet/cisco/enic/enic_main.c
2051
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2053
dma_free_coherent(&enic->pdev->dev, sizeof(union vnic_rss_cpu),
drivers/net/ethernet/cisco/enic/enic_main.c
2059
static int enic_set_niccfg(struct enic *enic, u8 rss_default_cpu,
drivers/net/ethernet/cisco/enic/enic_main.c
2069
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2070
err = enic_set_nic_cfg(enic,
drivers/net/ethernet/cisco/enic/enic_main.c
2075
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
208
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2080
static int enic_set_rss_nic_cfg(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2082
struct device *dev = enic_get_dev(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2088
u8 rss_enable = ENIC_SETTING(enic, RSS) && (enic->rq_count > 1);
drivers/net/ethernet/cisco/enic/enic_main.c
2090
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2091
res = vnic_dev_capable_rss_hash_type(enic->vdev, &rss_hash_type);
drivers/net/ethernet/cisco/enic/enic_main.c
2092
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2103
if (!enic_set_rsskey(enic)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2104
if (enic_set_rsscpu(enic, rss_hash_bits)) {
drivers/net/ethernet/cisco/enic/enic_main.c
211
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2115
return enic_set_niccfg(enic, rss_default_cpu, rss_hash_type,
drivers/net/ethernet/cisco/enic/enic_main.c
2119
static void enic_set_api_busy(struct enic *enic, bool busy)
drivers/net/ethernet/cisco/enic/enic_main.c
2121
spin_lock(&enic->enic_api_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2122
enic->enic_api_busy = busy;
drivers/net/ethernet/cisco/enic/enic_main.c
2123
spin_unlock(&enic->enic_api_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2128
struct enic *enic = container_of(work, struct enic, reset);
drivers/net/ethernet/cisco/enic/enic_main.c
213
err = vnic_dev_overlay_offload_ctrl(enic->vdev, OVERLAY_FEATURE_VXLAN,
drivers/net/ethernet/cisco/enic/enic_main.c
2130
if (!netif_running(enic->netdev))
drivers/net/ethernet/cisco/enic/enic_main.c
2136
enic_set_api_busy(enic, true);
drivers/net/ethernet/cisco/enic/enic_main.c
2138
enic_stop(enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2139
enic_dev_soft_reset(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2140
enic_reset_addr_lists(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2141
enic_init_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2142
enic_set_rss_nic_cfg(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2143
enic_dev_set_ig_vlan_rewrite_mode(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2144
enic_ext_cq(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2145
enic_open(enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2148
enic_set_api_busy(enic, false);
drivers/net/ethernet/cisco/enic/enic_main.c
2150
call_netdevice_notifiers(NETDEV_REBOOT, enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2157
struct enic *enic = container_of(work, struct enic, tx_hang_reset);
drivers/net/ethernet/cisco/enic/enic_main.c
2162
enic_set_api_busy(enic, true);
drivers/net/ethernet/cisco/enic/enic_main.c
2164
enic_dev_hang_notify(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2165
enic_stop(enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2166
enic_dev_hang_reset(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2167
enic_reset_addr_lists(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2168
enic_init_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2169
enic_set_rss_nic_cfg(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2170
enic_dev_set_ig_vlan_rewrite_mode(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2171
enic_ext_cq(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2172
enic_open(enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2175
enic_set_api_busy(enic, false);
drivers/net/ethernet/cisco/enic/enic_main.c
2177
call_netdevice_notifiers(NETDEV_REBOOT, enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
218
enic->vxlan.vxlan_udp_port_number = 0;
drivers/net/ethernet/cisco/enic/enic_main.c
2182
static int enic_set_intr_mode(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2193
if (enic->config.intr_mode < 1 &&
drivers/net/ethernet/cisco/enic/enic_main.c
2194
enic->intr_avail >= ENIC_MSIX_MIN_INTR) {
drivers/net/ethernet/cisco/enic/enic_main.c
2195
for (i = 0; i < enic->intr_avail; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
2196
enic->msix_entry[i].entry = i;
drivers/net/ethernet/cisco/enic/enic_main.c
2198
num_intr = pci_enable_msix_range(enic->pdev, enic->msix_entry,
drivers/net/ethernet/cisco/enic/enic_main.c
2200
enic->intr_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2202
vnic_dev_set_intr_mode(enic->vdev,
drivers/net/ethernet/cisco/enic/enic_main.c
2204
enic->intr_avail = num_intr;
drivers/net/ethernet/cisco/enic/enic_main.c
221
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2214
if (enic->config.intr_mode < 2 &&
drivers/net/ethernet/cisco/enic/enic_main.c
2215
enic->intr_avail >= 1 &&
drivers/net/ethernet/cisco/enic/enic_main.c
2216
!pci_enable_msi(enic->pdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2217
enic->intr_avail = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
2218
vnic_dev_set_intr_mode(enic->vdev, VNIC_DEV_INTR_MODE_MSI);
drivers/net/ethernet/cisco/enic/enic_main.c
2230
if (enic->config.intr_mode < 3 &&
drivers/net/ethernet/cisco/enic/enic_main.c
2231
enic->intr_avail >= 3) {
drivers/net/ethernet/cisco/enic/enic_main.c
2232
enic->intr_avail = 3;
drivers/net/ethernet/cisco/enic/enic_main.c
2233
vnic_dev_set_intr_mode(enic->vdev, VNIC_DEV_INTR_MODE_INTX);
drivers/net/ethernet/cisco/enic/enic_main.c
2237
vnic_dev_set_intr_mode(enic->vdev, VNIC_DEV_INTR_MODE_UNKNOWN);
drivers/net/ethernet/cisco/enic/enic_main.c
2242
static void enic_clear_intr_mode(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2244
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2246
pci_disable_msix(enic->pdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2249
pci_disable_msi(enic->pdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2255
vnic_dev_set_intr_mode(enic->vdev, VNIC_DEV_INTR_MODE_UNKNOWN);
drivers/net/ethernet/cisco/enic/enic_main.c
2258
static int enic_adjust_resources(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2265
if (enic->rq_avail < 1 || enic->wq_avail < 1 || enic->cq_avail < 2) {
drivers/net/ethernet/cisco/enic/enic_main.c
2266
dev_err(enic_get_dev(enic),
drivers/net/ethernet/cisco/enic/enic_main.c
2268
enic->rq_avail, enic->wq_avail,
drivers/net/ethernet/cisco/enic/enic_main.c
2269
enic->cq_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2274
dev_info(enic_get_dev(enic), "Running from within kdump kernel. Using minimal resources\n");
drivers/net/ethernet/cisco/enic/enic_main.c
2275
enic->rq_avail = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
2276
enic->wq_avail = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
2277
enic->config.rq_desc_count = ENIC_MIN_RQ_DESCS;
drivers/net/ethernet/cisco/enic/enic_main.c
2278
enic->config.wq_desc_count = ENIC_MIN_WQ_DESCS;
drivers/net/ethernet/cisco/enic/enic_main.c
2279
enic->config.mtu = min_t(u16, 1500, enic->config.mtu);
drivers/net/ethernet/cisco/enic/enic_main.c
2283
if (!ENIC_SETTING(enic, RSS))
drivers/net/ethernet/cisco/enic/enic_main.c
2284
enic->rq_avail = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
2286
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2289
enic->rq_count = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
2290
enic->wq_count = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
2291
enic->cq_count = 2;
drivers/net/ethernet/cisco/enic/enic_main.c
2292
enic->intr_count = enic->intr_avail;
drivers/net/ethernet/cisco/enic/enic_main.c
2298
wq_avail = min(enic->wq_avail, ENIC_WQ_MAX);
drivers/net/ethernet/cisco/enic/enic_main.c
2301
rq_avail = min3(enic->rq_avail, ENIC_RQ_MAX, rq_default);
drivers/net/ethernet/cisco/enic/enic_main.c
2302
max_queues = min(enic->cq_avail,
drivers/net/ethernet/cisco/enic/enic_main.c
2303
enic->intr_avail - ENIC_MSIX_RESERVED_INTR);
drivers/net/ethernet/cisco/enic/enic_main.c
2305
enic->rq_count = rq_avail;
drivers/net/ethernet/cisco/enic/enic_main.c
2306
enic->wq_count = wq_avail;
drivers/net/ethernet/cisco/enic/enic_main.c
2310
enic->rq_count = min(rq_avail, max_queues / 2);
drivers/net/ethernet/cisco/enic/enic_main.c
2311
enic->wq_count = max_queues - enic->rq_count;
drivers/net/ethernet/cisco/enic/enic_main.c
2313
enic->wq_count = min(wq_avail, max_queues / 2);
drivers/net/ethernet/cisco/enic/enic_main.c
2314
enic->rq_count = max_queues - enic->wq_count;
drivers/net/ethernet/cisco/enic/enic_main.c
2317
enic->cq_count = enic->rq_count + enic->wq_count;
drivers/net/ethernet/cisco/enic/enic_main.c
2318
enic->intr_count = enic->cq_count + ENIC_MSIX_RESERVED_INTR;
drivers/net/ethernet/cisco/enic/enic_main.c
2322
dev_err(enic_get_dev(enic), "Unknown interrupt mode\n");
drivers/net/ethernet/cisco/enic/enic_main.c
2332
struct enic *enic = netdev_priv(dev);
drivers/net/ethernet/cisco/enic/enic_main.c
2333
struct enic_rq_stats *rqstats = &enic->rq[idx].stats;
drivers/net/ethernet/cisco/enic/enic_main.c
2347
struct enic *enic = netdev_priv(dev);
drivers/net/ethernet/cisco/enic/enic_main.c
2348
struct enic_wq_stats *wqstats = &enic->wq[idx].stats;
drivers/net/ethernet/cisco/enic/enic_main.c
2433
static void enic_free_enic_resources(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2435
kfree(enic->wq);
drivers/net/ethernet/cisco/enic/enic_main.c
2436
enic->wq = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
2438
kfree(enic->rq);
drivers/net/ethernet/cisco/enic/enic_main.c
2439
enic->rq = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
2441
kfree(enic->cq);
drivers/net/ethernet/cisco/enic/enic_main.c
2442
enic->cq = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
2444
kfree(enic->napi);
drivers/net/ethernet/cisco/enic/enic_main.c
2445
enic->napi = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
2447
kfree(enic->msix_entry);
drivers/net/ethernet/cisco/enic/enic_main.c
2448
enic->msix_entry = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
2450
kfree(enic->msix);
drivers/net/ethernet/cisco/enic/enic_main.c
2451
enic->msix = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
2453
kfree(enic->intr);
drivers/net/ethernet/cisco/enic/enic_main.c
2454
enic->intr = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
2457
static int enic_alloc_enic_resources(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2459
enic->wq = kzalloc_objs(struct enic_wq, enic->wq_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
246
struct enic *enic = netdev_priv(dev);
drivers/net/ethernet/cisco/enic/enic_main.c
2460
if (!enic->wq)
drivers/net/ethernet/cisco/enic/enic_main.c
2463
enic->rq = kzalloc_objs(struct enic_rq, enic->rq_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2464
if (!enic->rq)
drivers/net/ethernet/cisco/enic/enic_main.c
2467
enic->cq = kzalloc_objs(struct vnic_cq, enic->cq_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2468
if (!enic->cq)
drivers/net/ethernet/cisco/enic/enic_main.c
2471
enic->napi = kzalloc_objs(struct napi_struct,
drivers/net/ethernet/cisco/enic/enic_main.c
2472
enic->wq_avail + enic->rq_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2473
if (!enic->napi)
drivers/net/ethernet/cisco/enic/enic_main.c
2476
enic->msix_entry = kzalloc_objs(struct msix_entry, enic->intr_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2477
if (!enic->msix_entry)
drivers/net/ethernet/cisco/enic/enic_main.c
2480
enic->msix = kzalloc_objs(struct enic_msix_entry, enic->intr_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2481
if (!enic->msix)
drivers/net/ethernet/cisco/enic/enic_main.c
2484
enic->intr = kzalloc_objs(struct vnic_intr, enic->intr_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2485
if (!enic->intr)
drivers/net/ethernet/cisco/enic/enic_main.c
2491
enic_free_enic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2495
static void enic_dev_deinit(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2499
for (i = 0; i < enic->rq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
2500
__netif_napi_del(&enic->napi[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
2502
if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX)
drivers/net/ethernet/cisco/enic/enic_main.c
2503
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
2504
__netif_napi_del(&enic->napi[enic_cq_wq(enic, i)]);
drivers/net/ethernet/cisco/enic/enic_main.c
2509
enic_free_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2510
enic_clear_intr_mode(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2511
enic_free_affinity_hint(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2512
enic_free_enic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2515
static int enic_dev_init(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2517
struct device *dev = enic_get_dev(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2518
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_main.c
2523
err = enic_dev_intr_coal_timer_info(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2527
vnic_dev_intr_coal_timer_info_default(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2533
err = enic_get_vnic_config(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2542
enic_get_res_counts(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2544
enic_ext_cq(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2546
err = enic_alloc_enic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2554
err = enic_set_intr_mode(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2562
err = enic_adjust_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2571
err = enic_alloc_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2577
enic_init_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2579
err = enic_set_rss_nic_cfg(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
258
if (!(enic->vxlan.flags & ENIC_VXLAN_OUTER_IPV6))
drivers/net/ethernet/cisco/enic/enic_main.c
2585
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2587
netif_napi_add(netdev, &enic->napi[0], enic_poll);
drivers/net/ethernet/cisco/enic/enic_main.c
2590
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
2591
netif_napi_add(netdev, &enic->napi[i],
drivers/net/ethernet/cisco/enic/enic_main.c
2594
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
2596
&enic->napi[enic_cq_wq(enic, i)],
drivers/net/ethernet/cisco/enic/enic_main.c
2604
enic_free_affinity_hint(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2605
enic_clear_intr_mode(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2606
enic_free_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2607
enic_free_enic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2612
static void enic_iounmap(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2616
for (i = 0; i < ARRAY_SIZE(enic->bar); i++)
drivers/net/ethernet/cisco/enic/enic_main.c
2617
if (enic->bar[i].vaddr)
drivers/net/ethernet/cisco/enic/enic_main.c
2618
iounmap(enic->bar[i].vaddr);
drivers/net/ethernet/cisco/enic/enic_main.c
2625
struct enic *enic;
drivers/net/ethernet/cisco/enic/enic_main.c
2638
netdev = alloc_etherdev_mqs(sizeof(struct enic),
drivers/net/ethernet/cisco/enic/enic_main.c
2647
enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2648
enic->netdev = netdev;
drivers/net/ethernet/cisco/enic/enic_main.c
2649
enic->pdev = pdev;
drivers/net/ethernet/cisco/enic/enic_main.c
2687
for (i = 0; i < ARRAY_SIZE(enic->bar); i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
2690
enic->bar[i].len = pci_resource_len(pdev, i);
drivers/net/ethernet/cisco/enic/enic_main.c
2691
enic->bar[i].vaddr = pci_iomap(pdev, i, enic->bar[i].len);
drivers/net/ethernet/cisco/enic/enic_main.c
2692
if (!enic->bar[i].vaddr) {
drivers/net/ethernet/cisco/enic/enic_main.c
2697
enic->bar[i].bus_addr = pci_resource_start(pdev, i);
drivers/net/ethernet/cisco/enic/enic_main.c
2703
enic->vdev = vnic_dev_register(NULL, enic, pdev, enic->bar,
drivers/net/ethernet/cisco/enic/enic_main.c
2704
ARRAY_SIZE(enic->bar));
drivers/net/ethernet/cisco/enic/enic_main.c
2705
if (!enic->vdev) {
drivers/net/ethernet/cisco/enic/enic_main.c
271
if (!(enic->vxlan.flags & ENIC_VXLAN_INNER_IPV6))
drivers/net/ethernet/cisco/enic/enic_main.c
2711
err = vnic_devcmd_init(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2721
&enic->num_vfs);
drivers/net/ethernet/cisco/enic/enic_main.c
2722
if (enic->num_vfs) {
drivers/net/ethernet/cisco/enic/enic_main.c
2723
err = pci_enable_sriov(pdev, enic->num_vfs);
drivers/net/ethernet/cisco/enic/enic_main.c
2730
enic->priv_flags |= ENIC_SRIOV_ENABLED;
drivers/net/ethernet/cisco/enic/enic_main.c
2731
num_pps = enic->num_vfs;
drivers/net/ethernet/cisco/enic/enic_main.c
2737
enic->pp = kzalloc_objs(*enic->pp, num_pps);
drivers/net/ethernet/cisco/enic/enic_main.c
2738
if (!enic->pp) {
drivers/net/ethernet/cisco/enic/enic_main.c
2746
err = enic_dev_open(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2755
spin_lock_init(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2756
spin_lock_init(&enic->enic_api_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2762
err = enic_dev_set_ig_vlan_rewrite_mode(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2784
if (!enic_is_dynamic(enic)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2785
err = vnic_dev_init(enic->vdev, 0);
drivers/net/ethernet/cisco/enic/enic_main.c
2792
err = enic_dev_init(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2798
netif_set_real_num_tx_queues(netdev, enic->wq_count);
drivers/net/ethernet/cisco/enic/enic_main.c
2799
netif_set_real_num_rx_queues(netdev, enic->rq_count);
drivers/net/ethernet/cisco/enic/enic_main.c
2804
timer_setup(&enic->notify_timer, enic_notify_timer, 0);
drivers/net/ethernet/cisco/enic/enic_main.c
2806
enic_rfs_flw_tbl_init(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2807
INIT_WORK(&enic->reset, enic_reset);
drivers/net/ethernet/cisco/enic/enic_main.c
2808
INIT_WORK(&enic->tx_hang_reset, enic_tx_hang_reset);
drivers/net/ethernet/cisco/enic/enic_main.c
2809
INIT_WORK(&enic->change_mtu_work, enic_change_mtu_work);
drivers/net/ethernet/cisco/enic/enic_main.c
2811
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
2812
spin_lock_init(&enic->wq[i].lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2817
enic->port_mtu = enic->config.mtu;
drivers/net/ethernet/cisco/enic/enic_main.c
2819
err = enic_set_mac_addr(netdev, enic->mac_addr);
drivers/net/ethernet/cisco/enic/enic_main.c
2825
enic->tx_coalesce_usecs = enic->config.intr_timer_usec;
drivers/net/ethernet/cisco/enic/enic_main.c
2829
enic->rx_coalesce_usecs = enic->tx_coalesce_usecs;
drivers/net/ethernet/cisco/enic/enic_main.c
2831
if (enic_is_dynamic(enic) || enic_is_sriov_vf(enic))
drivers/net/ethernet/cisco/enic/enic_main.c
2841
if (ENIC_SETTING(enic, LOOP)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2843
enic->loop_enable = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
2844
enic->loop_tag = enic->config.loop_tag;
drivers/net/ethernet/cisco/enic/enic_main.c
2845
dev_info(dev, "loopback tag=0x%04x\n", enic->loop_tag);
drivers/net/ethernet/cisco/enic/enic_main.c
2847
if (ENIC_SETTING(enic, TXCSUM))
drivers/net/ethernet/cisco/enic/enic_main.c
2849
if (ENIC_SETTING(enic, TSO))
drivers/net/ethernet/cisco/enic/enic_main.c
2852
if (ENIC_SETTING(enic, RSS))
drivers/net/ethernet/cisco/enic/enic_main.c
2854
if (ENIC_SETTING(enic, RXCSUM))
drivers/net/ethernet/cisco/enic/enic_main.c
2856
if (ENIC_SETTING(enic, VXLAN)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2879
err = vnic_dev_get_supported_feature_ver(enic->vdev,
drivers/net/ethernet/cisco/enic/enic_main.c
2884
enic->vxlan.flags = (u8)a1;
drivers/net/ethernet/cisco/enic/enic_main.c
289
if (port != enic->vxlan.vxlan_udp_port_number)
drivers/net/ethernet/cisco/enic/enic_main.c
2890
enic->vxlan.patch_level = patch_level;
drivers/net/ethernet/cisco/enic/enic_main.c
2892
if (vnic_dev_get_res_count(enic->vdev, RES_TYPE_WQ) == 1 ||
drivers/net/ethernet/cisco/enic/enic_main.c
2893
enic->vxlan.flags & ENIC_VXLAN_MULTI_WQ) {
drivers/net/ethernet/cisco/enic/enic_main.c
2895
if (enic->vxlan.flags & ENIC_VXLAN_OUTER_IPV6)
drivers/net/ethernet/cisco/enic/enic_main.c
2915
netdev->mtu = enic->port_mtu;
drivers/net/ethernet/cisco/enic/enic_main.c
2926
enic_dev_deinit(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2928
vnic_dev_close(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2930
kfree(enic->pp);
drivers/net/ethernet/cisco/enic/enic_main.c
2933
if (enic_sriov_enabled(enic)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2935
enic->priv_flags &= ~ENIC_SRIOV_ENABLED;
drivers/net/ethernet/cisco/enic/enic_main.c
2939
vnic_dev_unregister(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2941
enic_iounmap(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2957
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2959
cancel_work_sync(&enic->reset);
drivers/net/ethernet/cisco/enic/enic_main.c
2960
cancel_work_sync(&enic->change_mtu_work);
drivers/net/ethernet/cisco/enic/enic_main.c
2962
enic_dev_deinit(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2963
vnic_dev_close(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2965
if (enic_sriov_enabled(enic)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2967
enic->priv_flags &= ~ENIC_SRIOV_ENABLED;
drivers/net/ethernet/cisco/enic/enic_main.c
2970
kfree(enic->pp);
drivers/net/ethernet/cisco/enic/enic_main.c
2971
vnic_dev_unregister(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2972
enic_iounmap(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
298
int enic_is_dynamic(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
300
return enic->pdev->device == PCI_DEVICE_ID_CISCO_VIC_ENET_DYN;
drivers/net/ethernet/cisco/enic/enic_main.c
303
int enic_sriov_enabled(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
305
return (enic->priv_flags & ENIC_SRIOV_ENABLED) ? 1 : 0;
drivers/net/ethernet/cisco/enic/enic_main.c
308
static int enic_is_sriov_vf(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
310
return enic->pdev->device == PCI_DEVICE_ID_CISCO_VIC_ENET_VF;
drivers/net/ethernet/cisco/enic/enic_main.c
313
int enic_is_valid_vf(struct enic *enic, int vf)
drivers/net/ethernet/cisco/enic/enic_main.c
316
return vf >= 0 && vf < enic->num_vfs;
drivers/net/ethernet/cisco/enic/enic_main.c
322
static bool enic_log_q_error(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
328
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
329
error_status = vnic_wq_error_status(&enic->wq[i].vwq);
drivers/net/ethernet/cisco/enic/enic_main.c
332
netdev_err(enic->netdev, "WQ[%d] error_status %d\n",
drivers/net/ethernet/cisco/enic/enic_main.c
336
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
337
error_status = vnic_rq_error_status(&enic->rq[i].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
340
netdev_err(enic->netdev, "RQ[%d] error_status %d\n",
drivers/net/ethernet/cisco/enic/enic_main.c
347
static void enic_msglvl_check(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
349
u32 msg_enable = vnic_dev_msg_lvl(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
351
if (msg_enable != enic->msg_enable) {
drivers/net/ethernet/cisco/enic/enic_main.c
352
netdev_info(enic->netdev, "msg lvl changed from 0x%x to 0x%x\n",
drivers/net/ethernet/cisco/enic/enic_main.c
353
enic->msg_enable, msg_enable);
drivers/net/ethernet/cisco/enic/enic_main.c
354
enic->msg_enable = msg_enable;
drivers/net/ethernet/cisco/enic/enic_main.c
358
static void enic_mtu_check(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
360
u32 mtu = vnic_dev_mtu(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
361
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_main.c
363
if (mtu && mtu != enic->port_mtu) {
drivers/net/ethernet/cisco/enic/enic_main.c
364
enic->port_mtu = mtu;
drivers/net/ethernet/cisco/enic/enic_main.c
365
if (enic_is_dynamic(enic) || enic_is_sriov_vf(enic)) {
drivers/net/ethernet/cisco/enic/enic_main.c
369
schedule_work(&enic->change_mtu_work);
drivers/net/ethernet/cisco/enic/enic_main.c
380
static void enic_set_rx_coal_setting(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
384
struct enic_rx_coal *rx_coal = &enic->rx_coalesce_setting;
drivers/net/ethernet/cisco/enic/enic_main.c
390
speed = vnic_dev_port_speed(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
403
for (index = 0; index < enic->rq_count; index++)
drivers/net/ethernet/cisco/enic/enic_main.c
404
enic->cq[index].cur_rx_coal_timeval =
drivers/net/ethernet/cisco/enic/enic_main.c
405
enic->config.intr_timer_usec;
drivers/net/ethernet/cisco/enic/enic_main.c
410
static void enic_link_check(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
412
int link_status = vnic_dev_link_status(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
413
int carrier_ok = netif_carrier_ok(enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
416
netdev_info(enic->netdev, "Link UP\n");
drivers/net/ethernet/cisco/enic/enic_main.c
417
netif_carrier_on(enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
418
enic_set_rx_coal_setting(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
420
netdev_info(enic->netdev, "Link DOWN\n");
drivers/net/ethernet/cisco/enic/enic_main.c
421
netif_carrier_off(enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
425
static void enic_notify_check(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
427
enic_msglvl_check(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
428
enic_mtu_check(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
429
enic_link_check(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
437
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
443
vnic_intr_mask(&enic->intr[io_intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
445
pba = vnic_intr_legacy_pba(enic->legacy_pba);
drivers/net/ethernet/cisco/enic/enic_main.c
447
vnic_intr_unmask(&enic->intr[io_intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
452
enic_notify_check(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
453
vnic_intr_return_all_credits(&enic->intr[notify_intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
457
vnic_intr_return_all_credits(&enic->intr[err_intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
458
enic_log_q_error(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
460
schedule_work(&enic->reset);
drivers/net/ethernet/cisco/enic/enic_main.c
465
napi_schedule_irqoff(&enic->napi[0]);
drivers/net/ethernet/cisco/enic/enic_main.c
467
vnic_intr_unmask(&enic->intr[io_intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
474
struct enic *enic = data;
drivers/net/ethernet/cisco/enic/enic_main.c
492
napi_schedule_irqoff(&enic->napi[0]);
drivers/net/ethernet/cisco/enic/enic_main.c
508
struct enic *enic = data;
drivers/net/ethernet/cisco/enic/enic_main.c
509
unsigned int intr = enic_msix_err_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
511
vnic_intr_return_all_credits(&enic->intr[intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
513
if (enic_log_q_error(enic))
drivers/net/ethernet/cisco/enic/enic_main.c
515
schedule_work(&enic->reset);
drivers/net/ethernet/cisco/enic/enic_main.c
522
struct enic *enic = data;
drivers/net/ethernet/cisco/enic/enic_main.c
523
unsigned int intr = enic_msix_notify_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
525
enic_notify_check(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
526
vnic_intr_return_all_credits(&enic->intr[intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
531
static int enic_queue_wq_skb_cont(struct enic *enic, struct vnic_wq *wq,
drivers/net/ethernet/cisco/enic/enic_main.c
541
dma_addr = skb_frag_dma_map(&enic->pdev->dev, frag, 0,
drivers/net/ethernet/cisco/enic/enic_main.c
544
if (unlikely(enic_dma_map_check(enic, dma_addr)))
drivers/net/ethernet/cisco/enic/enic_main.c
554
static int enic_queue_wq_skb_vlan(struct enic *enic, struct vnic_wq *wq,
drivers/net/ethernet/cisco/enic/enic_main.c
564
dma_addr = dma_map_single(&enic->pdev->dev, skb->data, head_len,
drivers/net/ethernet/cisco/enic/enic_main.c
566
if (unlikely(enic_dma_map_check(enic, dma_addr)))
drivers/net/ethernet/cisco/enic/enic_main.c
578
err = enic_queue_wq_skb_cont(enic, wq, skb, len_left, loopback);
drivers/net/ethernet/cisco/enic/enic_main.c
581
enic->wq[wq->index].stats.csum_none++;
drivers/net/ethernet/cisco/enic/enic_main.c
582
enic->wq[wq->index].stats.packets++;
drivers/net/ethernet/cisco/enic/enic_main.c
583
enic->wq[wq->index].stats.bytes += skb->len;
drivers/net/ethernet/cisco/enic/enic_main.c
588
static int enic_queue_wq_skb_csum_l4(struct enic *enic, struct vnic_wq *wq,
drivers/net/ethernet/cisco/enic/enic_main.c
600
dma_addr = dma_map_single(&enic->pdev->dev, skb->data, head_len,
drivers/net/ethernet/cisco/enic/enic_main.c
602
if (unlikely(enic_dma_map_check(enic, dma_addr)))
drivers/net/ethernet/cisco/enic/enic_main.c
615
err = enic_queue_wq_skb_cont(enic, wq, skb, len_left, loopback);
drivers/net/ethernet/cisco/enic/enic_main.c
617
enic->wq[wq->index].stats.csum_partial++;
drivers/net/ethernet/cisco/enic/enic_main.c
618
enic->wq[wq->index].stats.packets++;
drivers/net/ethernet/cisco/enic/enic_main.c
619
enic->wq[wq->index].stats.bytes += skb->len;
drivers/net/ethernet/cisco/enic/enic_main.c
664
static int enic_queue_wq_skb_tso(struct enic *enic, struct vnic_wq *wq,
drivers/net/ethernet/cisco/enic/enic_main.c
682
enic->wq[wq->index].stats.encap_tso++;
drivers/net/ethernet/cisco/enic/enic_main.c
686
enic->wq[wq->index].stats.tso++;
drivers/net/ethernet/cisco/enic/enic_main.c
694
dma_addr = dma_map_single(&enic->pdev->dev,
drivers/net/ethernet/cisco/enic/enic_main.c
697
if (unlikely(enic_dma_map_check(enic, dma_addr)))
drivers/net/ethernet/cisco/enic/enic_main.c
720
dma_addr = skb_frag_dma_map(&enic->pdev->dev, frag,
drivers/net/ethernet/cisco/enic/enic_main.c
723
if (unlikely(enic_dma_map_check(enic, dma_addr)))
drivers/net/ethernet/cisco/enic/enic_main.c
740
enic->wq[wq->index].stats.packets += pkts;
drivers/net/ethernet/cisco/enic/enic_main.c
741
enic->wq[wq->index].stats.bytes += (len + (pkts * hdr_len));
drivers/net/ethernet/cisco/enic/enic_main.c
746
static inline int enic_queue_wq_skb_encap(struct enic *enic, struct vnic_wq *wq,
drivers/net/ethernet/cisco/enic/enic_main.c
763
dma_addr = dma_map_single(&enic->pdev->dev, skb->data, head_len,
drivers/net/ethernet/cisco/enic/enic_main.c
765
if (unlikely(enic_dma_map_check(enic, dma_addr)))
drivers/net/ethernet/cisco/enic/enic_main.c
773
err = enic_queue_wq_skb_cont(enic, wq, skb, len_left, loopback);
drivers/net/ethernet/cisco/enic/enic_main.c
775
enic->wq[wq->index].stats.encap_csum++;
drivers/net/ethernet/cisco/enic/enic_main.c
776
enic->wq[wq->index].stats.packets++;
drivers/net/ethernet/cisco/enic/enic_main.c
777
enic->wq[wq->index].stats.bytes += skb->len;
drivers/net/ethernet/cisco/enic/enic_main.c
782
static inline int enic_queue_wq_skb(struct enic *enic,
drivers/net/ethernet/cisco/enic/enic_main.c
795
enic->wq[wq->index].stats.add_vlan++;
drivers/net/ethernet/cisco/enic/enic_main.c
796
} else if (enic->loop_enable) {
drivers/net/ethernet/cisco/enic/enic_main.c
797
vlan_tag = enic->loop_tag;
drivers/net/ethernet/cisco/enic/enic_main.c
802
err = enic_queue_wq_skb_tso(enic, wq, skb, mss,
drivers/net/ethernet/cisco/enic/enic_main.c
806
err = enic_queue_wq_skb_encap(enic, wq, skb, vlan_tag_insert,
drivers/net/ethernet/cisco/enic/enic_main.c
809
err = enic_queue_wq_skb_csum_l4(enic, wq, skb, vlan_tag_insert,
drivers/net/ethernet/cisco/enic/enic_main.c
812
err = enic_queue_wq_skb_vlan(enic, wq, skb, vlan_tag_insert,
drivers/net/ethernet/cisco/enic/enic_main.c
836
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
841
txq_map = skb_get_queue_mapping(skb) % enic->wq_count;
drivers/net/ethernet/cisco/enic/enic_main.c
842
wq = &enic->wq[txq_map].vwq;
drivers/net/ethernet/cisco/enic/enic_main.c
846
enic->wq[wq->index].stats.null_pkt++;
drivers/net/ethernet/cisco/enic/enic_main.c
861
enic->wq[wq->index].stats.skb_linear_fail++;
drivers/net/ethernet/cisco/enic/enic_main.c
865
spin_lock(&enic->wq[txq_map].lock);
drivers/net/ethernet/cisco/enic/enic_main.c
872
spin_unlock(&enic->wq[txq_map].lock);
drivers/net/ethernet/cisco/enic/enic_main.c
873
enic->wq[wq->index].stats.desc_full_awake++;
drivers/net/ethernet/cisco/enic/enic_main.c
877
if (enic_queue_wq_skb(enic, wq, skb))
drivers/net/ethernet/cisco/enic/enic_main.c
882
enic->wq[wq->index].stats.stopped++;
drivers/net/ethernet/cisco/enic/enic_main.c
889
spin_unlock(&enic->wq[txq_map].lock);
drivers/net/ethernet/cisco/enic/enic_main.c
898
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
905
err = enic_dev_stats_dump(enic, &stats);
drivers/net/ethernet/cisco/enic/enic_main.c
923
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
924
struct enic_rq_stats *rqs = &enic->rq[i].stats;
drivers/net/ethernet/cisco/enic/enic_main.c
926
if (!enic->rq[i].vrq.ctrl)
drivers/net/ethernet/cisco/enic/enic_main.c
938
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
940
if (enic->mc_count == ENIC_MULTICAST_PERFECT_FILTERS) {
drivers/net/ethernet/cisco/enic/enic_main.c
949
enic_dev_add_addr(enic, mc_addr);
drivers/net/ethernet/cisco/enic/enic_main.c
950
enic->mc_count++;
drivers/net/ethernet/cisco/enic/enic_main.c
957
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
959
enic_dev_del_addr(enic, mc_addr);
drivers/net/ethernet/cisco/enic/enic_main.c
960
enic->mc_count--;
drivers/net/ethernet/cisco/enic/enic_main.c
967
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
969
if (enic->uc_count == ENIC_UNICAST_PERFECT_FILTERS) {
drivers/net/ethernet/cisco/enic/enic_main.c
978
enic_dev_add_addr(enic, uc_addr);
drivers/net/ethernet/cisco/enic/enic_main.c
979
enic->uc_count++;
drivers/net/ethernet/cisco/enic/enic_main.c
986
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
988
enic_dev_del_addr(enic, uc_addr);
drivers/net/ethernet/cisco/enic/enic_main.c
989
enic->uc_count--;
drivers/net/ethernet/cisco/enic/enic_main.c
994
void enic_reset_addr_lists(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
996
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_pp.c
120
ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_init_prov2, (u8 *)vp,
drivers/net/ethernet/cisco/enic/enic_pp.c
130
static int enic_unset_port_profile(struct enic *enic, int vf)
drivers/net/ethernet/cisco/enic/enic_pp.c
134
ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_deinit);
drivers/net/ethernet/cisco/enic/enic_pp.c
139
enic_reset_addr_lists(enic);
drivers/net/ethernet/cisco/enic/enic_pp.c
153
static int enic_pp_preassociate(struct enic *enic, int vf,
drivers/net/ethernet/cisco/enic/enic_pp.c
155
static int enic_pp_disassociate(struct enic *enic, int vf,
drivers/net/ethernet/cisco/enic/enic_pp.c
157
static int enic_pp_preassociate_rr(struct enic *enic, int vf,
drivers/net/ethernet/cisco/enic/enic_pp.c
159
static int enic_pp_associate(struct enic *enic, int vf,
drivers/net/ethernet/cisco/enic/enic_pp.c
162
static int (*enic_pp_handlers[])(struct enic *enic, int vf,
drivers/net/ethernet/cisco/enic/enic_pp.c
174
static int enic_pp_preassociate(struct enic *enic, int vf,
drivers/net/ethernet/cisco/enic/enic_pp.c
180
static int enic_pp_disassociate(struct enic *enic, int vf,
drivers/net/ethernet/cisco/enic/enic_pp.c
183
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_pp.c
187
ENIC_PP_BY_INDEX(enic, vf, pp, &err);
drivers/net/ethernet/cisco/enic/enic_pp.c
193
ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_del_addr,
drivers/net/ethernet/cisco/enic/enic_pp.c
196
ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_del_addr,
drivers/net/ethernet/cisco/enic/enic_pp.c
199
return enic_unset_port_profile(enic, vf);
drivers/net/ethernet/cisco/enic/enic_pp.c
202
static int enic_pp_preassociate_rr(struct enic *enic, int vf,
drivers/net/ethernet/cisco/enic/enic_pp.c
209
ENIC_PP_BY_INDEX(enic, vf, pp, &err);
drivers/net/ethernet/cisco/enic/enic_pp.c
216
err = enic_pp_handlers[PORT_REQUEST_DISASSOCIATE](enic, vf,
drivers/net/ethernet/cisco/enic/enic_pp.c
226
err = enic_set_port_profile(enic, vf);
drivers/net/ethernet/cisco/enic/enic_pp.c
23
int enic_is_valid_pp_vf(struct enic *enic, int vf, int *err)
drivers/net/ethernet/cisco/enic/enic_pp.c
233
ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_enable2,
drivers/net/ethernet/cisco/enic/enic_pp.c
241
static int enic_pp_associate(struct enic *enic, int vf,
drivers/net/ethernet/cisco/enic/enic_pp.c
244
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_pp.c
249
ENIC_PP_BY_INDEX(enic, vf, pp, &err);
drivers/net/ethernet/cisco/enic/enic_pp.c
258
enic, vf, prev_pp, restore_pp);
drivers/net/ethernet/cisco/enic/enic_pp.c
266
enic, vf, prev_pp, restore_pp);
drivers/net/ethernet/cisco/enic/enic_pp.c
27
if (enic_sriov_enabled(enic)) {
drivers/net/ethernet/cisco/enic/enic_pp.c
273
ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_enable2, active);
drivers/net/ethernet/cisco/enic/enic_pp.c
28
if (vf < 0 || vf >= enic->num_vfs) {
drivers/net/ethernet/cisco/enic/enic_pp.c
280
ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_add_addr,
drivers/net/ethernet/cisco/enic/enic_pp.c
283
ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_add_addr,
drivers/net/ethernet/cisco/enic/enic_pp.c
289
int enic_process_set_pp_request(struct enic *enic, int vf,
drivers/net/ethernet/cisco/enic/enic_pp.c
295
ENIC_PP_BY_INDEX(enic, vf, pp, &err);
drivers/net/ethernet/cisco/enic/enic_pp.c
303
return enic_pp_handlers[pp->request](enic, vf, prev_pp, restore_pp);
drivers/net/ethernet/cisco/enic/enic_pp.c
306
int enic_process_get_pp_request(struct enic *enic, int vf,
drivers/net/ethernet/cisco/enic/enic_pp.c
315
ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic,
drivers/net/ethernet/cisco/enic/enic_pp.c
320
ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic,
drivers/net/ethernet/cisco/enic/enic_pp.c
42
if (vf == PORT_SELF_VF && !enic_is_dynamic(enic)) {
drivers/net/ethernet/cisco/enic/enic_pp.c
54
static int enic_set_port_profile(struct enic *enic, int vf)
drivers/net/ethernet/cisco/enic/enic_pp.c
56
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_pp.c
66
ENIC_PP_BY_INDEX(enic, vf, pp, &err);
drivers/net/ethernet/cisco/enic/enic_pp.h
10
pp = (vf == PORT_SELF_VF) ? enic->pp : enic->pp + vf; \
drivers/net/ethernet/cisco/enic/enic_pp.h
15
int enic_process_set_pp_request(struct enic *enic, int vf,
drivers/net/ethernet/cisco/enic/enic_pp.h
17
int enic_process_get_pp_request(struct enic *enic, int vf,
drivers/net/ethernet/cisco/enic/enic_pp.h
19
int enic_is_valid_pp_vf(struct enic *enic, int vf, int *err);
drivers/net/ethernet/cisco/enic/enic_pp.h
7
#define ENIC_PP_BY_INDEX(enic, vf, pp, err) \
drivers/net/ethernet/cisco/enic/enic_pp.h
9
if (enic_is_valid_pp_vf(enic, vf, err)) \
drivers/net/ethernet/cisco/enic/enic_res.c
100
ENIC_SETTING(enic, TSO) ? "yes" : "no",
drivers/net/ethernet/cisco/enic/enic_res.c
101
ENIC_SETTING(enic, LRO) ? "yes" : "no",
drivers/net/ethernet/cisco/enic/enic_res.c
102
ENIC_SETTING(enic, RSS) ? "yes" : "no",
drivers/net/ethernet/cisco/enic/enic_res.c
116
int enic_add_vlan(struct enic *enic, u16 vlanid)
drivers/net/ethernet/cisco/enic/enic_res.c
122
err = vnic_dev_cmd(enic->vdev, CMD_VLAN_ADD, &a0, &a1, wait);
drivers/net/ethernet/cisco/enic/enic_res.c
124
dev_err(enic_get_dev(enic), "Can't add vlan id, %d\n", err);
drivers/net/ethernet/cisco/enic/enic_res.c
129
int enic_del_vlan(struct enic *enic, u16 vlanid)
drivers/net/ethernet/cisco/enic/enic_res.c
135
err = vnic_dev_cmd(enic->vdev, CMD_VLAN_DEL, &a0, &a1, wait);
drivers/net/ethernet/cisco/enic/enic_res.c
137
dev_err(enic_get_dev(enic), "Can't delete vlan id, %d\n", err);
drivers/net/ethernet/cisco/enic/enic_res.c
142
int enic_set_nic_cfg(struct enic *enic, u8 rss_default_cpu, u8 rss_hash_type,
drivers/net/ethernet/cisco/enic/enic_res.c
162
return vnic_dev_cmd(enic->vdev, cmd, &a0, &a1, wait);
drivers/net/ethernet/cisco/enic/enic_res.c
165
int enic_set_rss_key(struct enic *enic, dma_addr_t key_pa, u64 len)
drivers/net/ethernet/cisco/enic/enic_res.c
170
return vnic_dev_cmd(enic->vdev, CMD_RSS_KEY, &a0, &a1, wait);
drivers/net/ethernet/cisco/enic/enic_res.c
173
int enic_set_rss_cpu(struct enic *enic, dma_addr_t cpu_pa, u64 len)
drivers/net/ethernet/cisco/enic/enic_res.c
178
return vnic_dev_cmd(enic->vdev, CMD_RSS_CPU, &a0, &a1, wait);
drivers/net/ethernet/cisco/enic/enic_res.c
181
void enic_free_vnic_resources(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_res.c
185
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_res.c
186
vnic_wq_free(&enic->wq[i].vwq);
drivers/net/ethernet/cisco/enic/enic_res.c
187
for (i = 0; i < enic->rq_count; i++)
drivers/net/ethernet/cisco/enic/enic_res.c
188
vnic_rq_free(&enic->rq[i].vrq);
drivers/net/ethernet/cisco/enic/enic_res.c
189
for (i = 0; i < enic->cq_count; i++)
drivers/net/ethernet/cisco/enic/enic_res.c
190
vnic_cq_free(&enic->cq[i]);
drivers/net/ethernet/cisco/enic/enic_res.c
191
for (i = 0; i < enic->intr_count; i++)
drivers/net/ethernet/cisco/enic/enic_res.c
192
vnic_intr_free(&enic->intr[i]);
drivers/net/ethernet/cisco/enic/enic_res.c
195
void enic_get_res_counts(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_res.c
197
enic->wq_avail = vnic_dev_get_res_count(enic->vdev, RES_TYPE_WQ);
drivers/net/ethernet/cisco/enic/enic_res.c
198
enic->rq_avail = vnic_dev_get_res_count(enic->vdev, RES_TYPE_RQ);
drivers/net/ethernet/cisco/enic/enic_res.c
199
enic->cq_avail = vnic_dev_get_res_count(enic->vdev, RES_TYPE_CQ);
drivers/net/ethernet/cisco/enic/enic_res.c
200
enic->intr_avail = vnic_dev_get_res_count(enic->vdev,
drivers/net/ethernet/cisco/enic/enic_res.c
203
enic->wq_count = enic->wq_avail;
drivers/net/ethernet/cisco/enic/enic_res.c
204
enic->rq_count = enic->rq_avail;
drivers/net/ethernet/cisco/enic/enic_res.c
205
enic->cq_count = enic->cq_avail;
drivers/net/ethernet/cisco/enic/enic_res.c
206
enic->intr_count = enic->intr_avail;
drivers/net/ethernet/cisco/enic/enic_res.c
208
dev_info(enic_get_dev(enic),
drivers/net/ethernet/cisco/enic/enic_res.c
210
enic->wq_avail, enic->rq_avail,
drivers/net/ethernet/cisco/enic/enic_res.c
211
enic->cq_avail, enic->intr_avail);
drivers/net/ethernet/cisco/enic/enic_res.c
214
void enic_init_vnic_resources(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_res.c
224
intr_mode = vnic_dev_get_intr_mode(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_res.c
241
error_interrupt_offset = enic_msix_err_intr(enic);
drivers/net/ethernet/cisco/enic/enic_res.c
249
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
251
vnic_rq_init(&enic->rq[i].vrq,
drivers/net/ethernet/cisco/enic/enic_res.c
257
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
258
cq_index = enic->rq_count + i;
drivers/net/ethernet/cisco/enic/enic_res.c
259
vnic_wq_init(&enic->wq[i].vwq,
drivers/net/ethernet/cisco/enic/enic_res.c
271
for (i = 0; i < enic->cq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
282
vnic_cq_init(&enic->cq[i],
drivers/net/ethernet/cisco/enic/enic_res.c
29
int enic_get_vnic_config(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_res.c
31
struct vnic_enet_config *c = &enic->config;
drivers/net/ethernet/cisco/enic/enic_res.c
311
for (i = 0; i < enic->intr_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
312
vnic_intr_init(&enic->intr[i],
drivers/net/ethernet/cisco/enic/enic_res.c
313
enic->config.intr_timer_usec,
drivers/net/ethernet/cisco/enic/enic_res.c
314
enic->config.intr_timer_type,
drivers/net/ethernet/cisco/enic/enic_res.c
319
int enic_alloc_vnic_resources(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_res.c
326
intr_mode = vnic_dev_get_intr_mode(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_res.c
328
dev_info(enic_get_dev(enic), "vNIC resources used: "
drivers/net/ethernet/cisco/enic/enic_res.c
330
enic->wq_count, enic->rq_count,
drivers/net/ethernet/cisco/enic/enic_res.c
331
enic->cq_count, enic->intr_count,
drivers/net/ethernet/cisco/enic/enic_res.c
337
switch (enic->ext_cq) {
drivers/net/ethernet/cisco/enic/enic_res.c
34
err = vnic_dev_get_mac_addr(enic->vdev, enic->mac_addr);
drivers/net/ethernet/cisco/enic/enic_res.c
348
dev_err(enic_get_dev(enic),
drivers/net/ethernet/cisco/enic/enic_res.c
350
enic->ext_cq);
drivers/net/ethernet/cisco/enic/enic_res.c
358
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
359
err = vnic_wq_alloc(enic->vdev, &enic->wq[i].vwq, i,
drivers/net/ethernet/cisco/enic/enic_res.c
36
dev_err(enic_get_dev(enic),
drivers/net/ethernet/cisco/enic/enic_res.c
360
enic->config.wq_desc_count,
drivers/net/ethernet/cisco/enic/enic_res.c
366
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
367
err = vnic_rq_alloc(enic->vdev, &enic->rq[i].vrq, i,
drivers/net/ethernet/cisco/enic/enic_res.c
368
enic->config.rq_desc_count,
drivers/net/ethernet/cisco/enic/enic_res.c
374
for (i = 0; i < enic->cq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
375
if (i < enic->rq_count)
drivers/net/ethernet/cisco/enic/enic_res.c
376
err = vnic_cq_alloc(enic->vdev, &enic->cq[i], i,
drivers/net/ethernet/cisco/enic/enic_res.c
377
enic->config.rq_desc_count,
drivers/net/ethernet/cisco/enic/enic_res.c
380
err = vnic_cq_alloc(enic->vdev, &enic->cq[i], i,
drivers/net/ethernet/cisco/enic/enic_res.c
381
enic->config.wq_desc_count,
drivers/net/ethernet/cisco/enic/enic_res.c
387
for (i = 0; i < enic->intr_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
388
err = vnic_intr_alloc(enic->vdev, &enic->intr[i], i);
drivers/net/ethernet/cisco/enic/enic_res.c
396
enic->legacy_pba = vnic_dev_get_res(enic->vdev,
drivers/net/ethernet/cisco/enic/enic_res.c
398
if (!enic->legacy_pba && intr_mode == VNIC_DEV_INTR_MODE_INTX) {
drivers/net/ethernet/cisco/enic/enic_res.c
399
dev_err(enic_get_dev(enic),
drivers/net/ethernet/cisco/enic/enic_res.c
408
enic_free_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_res.c
417
void enic_ext_cq(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_res.c
423
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_res.c
424
ret = vnic_dev_cmd(enic->vdev, CMD_CAPABILITY, &a0, &a1, wait);
drivers/net/ethernet/cisco/enic/enic_res.c
426
dev_info(&enic->pdev->dev,
drivers/net/ethernet/cisco/enic/enic_res.c
428
enic->ext_cq = ENIC_RQ_CQ_ENTRY_SIZE_16;
drivers/net/ethernet/cisco/enic/enic_res.c
43
err = vnic_dev_spec(enic->vdev, \
drivers/net/ethernet/cisco/enic/enic_res.c
432
enic->ext_cq = fls(a1) - 1;
drivers/net/ethernet/cisco/enic/enic_res.c
434
a1 = enic->ext_cq;
drivers/net/ethernet/cisco/enic/enic_res.c
435
ret = vnic_dev_cmd(enic->vdev, CMD_CQ_ENTRY_SIZE_SET, &a0, &a1, wait);
drivers/net/ethernet/cisco/enic/enic_res.c
437
dev_info(&enic->pdev->dev, "CMD_CQ_ENTRY_SIZE_SET failed.");
drivers/net/ethernet/cisco/enic/enic_res.c
438
enic->ext_cq = ENIC_RQ_CQ_ENTRY_SIZE_16;
drivers/net/ethernet/cisco/enic/enic_res.c
441
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_res.c
442
dev_info(&enic->pdev->dev, "CQ entry size set to %d bytes",
drivers/net/ethernet/cisco/enic/enic_res.c
443
16 << enic->ext_cq);
drivers/net/ethernet/cisco/enic/enic_res.c
47
dev_err(enic_get_dev(enic), \
drivers/net/ethernet/cisco/enic/enic_res.c
88
vnic_dev_get_intr_coal_timer_max(enic->vdev));
drivers/net/ethernet/cisco/enic/enic_res.c
90
dev_info(enic_get_dev(enic),
drivers/net/ethernet/cisco/enic/enic_res.c
92
enic->mac_addr, c->wq_desc_count, c->rq_desc_count,
drivers/net/ethernet/cisco/enic/enic_res.c
95
dev_info(enic_get_dev(enic), "vNIC csum tx/rx %s/%s "
drivers/net/ethernet/cisco/enic/enic_res.c
98
ENIC_SETTING(enic, TXCSUM) ? "yes" : "no",
drivers/net/ethernet/cisco/enic/enic_res.c
99
ENIC_SETTING(enic, RXCSUM) ? "yes" : "no",
drivers/net/ethernet/cisco/enic/enic_res.h
128
struct enic;
drivers/net/ethernet/cisco/enic/enic_res.h
130
int enic_get_vnic_config(struct enic *);
drivers/net/ethernet/cisco/enic/enic_res.h
131
int enic_add_vlan(struct enic *enic, u16 vlanid);
drivers/net/ethernet/cisco/enic/enic_res.h
132
int enic_del_vlan(struct enic *enic, u16 vlanid);
drivers/net/ethernet/cisco/enic/enic_res.h
133
int enic_set_nic_cfg(struct enic *enic, u8 rss_default_cpu, u8 rss_hash_type,
drivers/net/ethernet/cisco/enic/enic_res.h
136
int enic_set_rss_key(struct enic *enic, dma_addr_t key_pa, u64 len);
drivers/net/ethernet/cisco/enic/enic_res.h
137
int enic_set_rss_cpu(struct enic *enic, dma_addr_t cpu_pa, u64 len);
drivers/net/ethernet/cisco/enic/enic_res.h
138
void enic_get_res_counts(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic_res.h
139
void enic_init_vnic_resources(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic_res.h
140
int enic_alloc_vnic_resources(struct enic *);
drivers/net/ethernet/cisco/enic/enic_res.h
141
void enic_free_vnic_resources(struct enic *);
drivers/net/ethernet/cisco/enic/enic_res.h
31
#define ENIC_SETTING(enic, f) ((enic->config.flags & VENETF_##f) ? 1 : 0)
drivers/net/ethernet/cisco/enic/enic_rq.c
104
struct enic *enic = vnic_dev_priv(vrq->vdev);
drivers/net/ethernet/cisco/enic/enic_rq.c
105
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_rq.c
106
struct enic_rq_stats *rqstats = &enic->rq[vrq->index].stats;
drivers/net/ethernet/cisco/enic/enic_rq.c
125
if (enic->vxlan.vxlan_udp_port_number) {
drivers/net/ethernet/cisco/enic/enic_rq.c
126
switch (enic->vxlan.patch_level) {
drivers/net/ethernet/cisco/enic/enic_rq.c
255
struct enic *enic = vnic_dev_priv(vrq->vdev);
drivers/net/ethernet/cisco/enic/enic_rq.c
256
struct enic_rq_stats *rqstats = &enic->rq[vrq->index].stats;
drivers/net/ethernet/cisco/enic/enic_rq.c
272
struct enic *enic = vnic_dev_priv(rq->vdev);
drivers/net/ethernet/cisco/enic/enic_rq.c
273
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_rq.c
274
struct enic_rq *erq = &enic->rq[rq->index];
drivers/net/ethernet/cisco/enic/enic_rq.c
306
struct enic *enic = vnic_dev_priv(rq->vdev);
drivers/net/ethernet/cisco/enic/enic_rq.c
307
struct enic_rq *erq = &enic->rq[rq->index];
drivers/net/ethernet/cisco/enic/enic_rq.c
316
static void enic_rq_indicate_buf(struct enic *enic, struct vnic_rq *rq,
drivers/net/ethernet/cisco/enic/enic_rq.c
321
struct vnic_cq *cq = &enic->cq[enic_cq_rq(enic, rq->index)];
drivers/net/ethernet/cisco/enic/enic_rq.c
322
struct enic_rq_stats *rqstats = &enic->rq[rq->index].stats;
drivers/net/ethernet/cisco/enic/enic_rq.c
350
napi = &enic->napi[rq->index];
drivers/net/ethernet/cisco/enic/enic_rq.c
354
enic->netdev->name, rq->index,
drivers/net/ethernet/cisco/enic/enic_rq.c
362
dma_sync_single_for_cpu(&enic->pdev->dev, buf->dma_addr,
drivers/net/ethernet/cisco/enic/enic_rq.c
374
if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce)
drivers/net/ethernet/cisco/enic/enic_rq.c
387
static void enic_rq_service(struct enic *enic, void *cq_desc, u8 type,
drivers/net/ethernet/cisco/enic/enic_rq.c
390
struct enic_rq_stats *rqstats = &enic->rq[q_number].stats;
drivers/net/ethernet/cisco/enic/enic_rq.c
391
struct vnic_rq *vrq = &enic->rq[q_number].vrq;
drivers/net/ethernet/cisco/enic/enic_rq.c
398
enic_rq_indicate_buf(enic, vrq, vrq_buf, cq_desc, type,
drivers/net/ethernet/cisco/enic/enic_rq.c
411
unsigned int enic_rq_cq_service(struct enic *enic, unsigned int cq_index,
drivers/net/ethernet/cisco/enic/enic_rq.c
414
struct vnic_cq *cq = &enic->cq[cq_index];
drivers/net/ethernet/cisco/enic/enic_rq.c
420
enic_rq_cq_desc_dec(cq_desc, enic->ext_cq, &type, &color, &q_number,
drivers/net/ethernet/cisco/enic/enic_rq.c
424
enic_rq_service(enic, cq_desc, type, q_number, completed_index);
drivers/net/ethernet/cisco/enic/enic_rq.c
431
enic_rq_cq_desc_dec(cq_desc, enic->ext_cq, &type, &color,
drivers/net/ethernet/cisco/enic/enic_rq.h
5
unsigned int enic_rq_cq_service(struct enic *enic, unsigned int cq_index,
drivers/net/ethernet/cisco/enic/enic_wq.c
43
struct enic *enic = vnic_dev_priv(wq->vdev);
drivers/net/ethernet/cisco/enic/enic_wq.c
46
dma_unmap_single(&enic->pdev->dev, buf->dma_addr, buf->len,
drivers/net/ethernet/cisco/enic/enic_wq.c
49
dma_unmap_page(&enic->pdev->dev, buf->dma_addr, buf->len,
drivers/net/ethernet/cisco/enic/enic_wq.c
59
struct enic *enic = vnic_dev_priv(wq->vdev);
drivers/net/ethernet/cisco/enic/enic_wq.c
61
enic->wq[wq->index].stats.cq_work++;
drivers/net/ethernet/cisco/enic/enic_wq.c
62
enic->wq[wq->index].stats.cq_bytes += buf->len;
drivers/net/ethernet/cisco/enic/enic_wq.c
69
struct enic *enic = vnic_dev_priv(vdev);
drivers/net/ethernet/cisco/enic/enic_wq.c
71
spin_lock(&enic->wq[q_number].lock);
drivers/net/ethernet/cisco/enic/enic_wq.c
73
vnic_wq_service(&enic->wq[q_number].vwq, cq_desc,
drivers/net/ethernet/cisco/enic/enic_wq.c
76
if (netif_tx_queue_stopped(netdev_get_tx_queue(enic->netdev, q_number))
drivers/net/ethernet/cisco/enic/enic_wq.c
77
&& vnic_wq_desc_avail(&enic->wq[q_number].vwq) >=
drivers/net/ethernet/cisco/enic/enic_wq.c
79
netif_wake_subqueue(enic->netdev, q_number);
drivers/net/ethernet/cisco/enic/enic_wq.c
80
enic->wq[q_number].stats.wake++;
drivers/net/ethernet/cisco/enic/enic_wq.c
83
spin_unlock(&enic->wq[q_number].lock);
drivers/net/ethernet/cisco/enic/enic_wq.c
86
unsigned int enic_wq_cq_service(struct enic *enic, unsigned int cq_index,
drivers/net/ethernet/cisco/enic/enic_wq.c
89
struct vnic_cq *cq = &enic->cq[cq_index];
drivers/net/ethernet/cisco/enic/enic_wq.h
6
unsigned int enic_wq_cq_service(struct enic *enic, unsigned int cq_index,