drivers/net/ethernet/cisco/enic/enic.h
303
struct enic *enic = vdev->priv;
drivers/net/ethernet/cisco/enic/enic.h
305
return enic->netdev;
drivers/net/ethernet/cisco/enic/enic.h
326
static inline struct device *enic_get_dev(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic.h
328
return &(enic->pdev->dev);
drivers/net/ethernet/cisco/enic/enic.h
331
static inline unsigned int enic_cq_rq(struct enic *enic, unsigned int rq)
drivers/net/ethernet/cisco/enic/enic.h
336
static inline unsigned int enic_cq_wq(struct enic *enic, unsigned int wq)
drivers/net/ethernet/cisco/enic/enic.h
338
return enic->rq_count + wq;
drivers/net/ethernet/cisco/enic/enic.h
341
static inline unsigned int enic_msix_rq_intr(struct enic *enic,
drivers/net/ethernet/cisco/enic/enic.h
344
return enic->cq[enic_cq_rq(enic, rq)].interrupt_offset;
drivers/net/ethernet/cisco/enic/enic.h
347
static inline unsigned int enic_msix_wq_intr(struct enic *enic,
drivers/net/ethernet/cisco/enic/enic.h
350
return enic->cq[enic_cq_wq(enic, wq)].interrupt_offset;
drivers/net/ethernet/cisco/enic/enic.h
367
static inline unsigned int enic_msix_err_intr(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic.h
372
static inline unsigned int enic_msix_notify_intr(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic.h
377
static inline bool enic_is_err_intr(struct enic *enic, int intr)
drivers/net/ethernet/cisco/enic/enic.h
379
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic.h
383
return intr == enic_msix_err_intr(enic);
drivers/net/ethernet/cisco/enic/enic.h
390
static inline bool enic_is_notify_intr(struct enic *enic, int intr)
drivers/net/ethernet/cisco/enic/enic.h
392
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic.h
396
return intr == enic_msix_notify_intr(enic);
drivers/net/ethernet/cisco/enic/enic.h
403
static inline int enic_dma_map_check(struct enic *enic, dma_addr_t dma_addr)
drivers/net/ethernet/cisco/enic/enic.h
405
if (unlikely(dma_mapping_error(&enic->pdev->dev, dma_addr))) {
drivers/net/ethernet/cisco/enic/enic.h
407
enic->netdev->name);
drivers/net/ethernet/cisco/enic/enic.h
408
enic->gen_stats.dma_map_error++;
drivers/net/ethernet/cisco/enic/enic.h
416
void enic_reset_addr_lists(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic.h
417
int enic_sriov_enabled(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic.h
418
int enic_is_valid_vf(struct enic *enic, int vf);
drivers/net/ethernet/cisco/enic/enic.h
419
int enic_is_dynamic(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic.h
421
int __enic_set_rsskey(struct enic *enic);
drivers/net/ethernet/cisco/enic/enic.h
422
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
if (enic->enable_count == 0)
drivers/net/ethernet/cisco/enic/enic_dev.c
138
err = vnic_dev_enable_wait(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_dev.c
140
enic->enable_count++;
drivers/net/ethernet/cisco/enic/enic_dev.c
141
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
146
int enic_dev_disable(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_dev.c
150
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
151
if (enic->enable_count == 0) {
drivers/net/ethernet/cisco/enic/enic_dev.c
152
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
155
enic->enable_count--;
drivers/net/ethernet/cisco/enic/enic_dev.c
156
if (enic->enable_count == 0)
drivers/net/ethernet/cisco/enic/enic_dev.c
157
err = vnic_dev_disable(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_dev.c
158
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
163
int enic_dev_intr_coal_timer_info(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_dev.c
167
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
168
err = vnic_dev_intr_coal_timer_info(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_dev.c
169
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
17
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
177
struct enic *enic = netdev_priv(netdev);
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
180
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
181
err = enic_add_vlan(enic, vid);
drivers/net/ethernet/cisco/enic/enic_dev.c
182
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
190
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_dev.c
193
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_dev.c
194
err = enic_del_vlan(enic, vid);
drivers/net/ethernet/cisco/enic/enic_dev.c
195
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
138
if (enic->pdev)
drivers/net/ethernet/cisco/enic/enic_ethtool.c
139
sub_dev_id = enic->pdev->subsystem_device;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
279
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
285
base->speed = vnic_dev_port_speed(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
300
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
304
err = enic_dev_fw_info(enic, &fw_info);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
315
strscpy(drvinfo->bus_info, pci_name(enic->pdev),
drivers/net/ethernet/cisco/enic/enic_ethtool.c
322
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
340
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
347
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
363
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
364
struct vnic_enet_config *c = &enic->config;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
377
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
378
struct vnic_enet_config *c = &enic->config;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
416
enic_free_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
417
err = enic_alloc_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
421
enic_free_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
424
enic_init_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
439
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
446
n_per_rq_stats = NUM_ENIC_PER_RQ_STATS * enic->rq_count;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
447
n_per_wq_stats = NUM_ENIC_PER_WQ_STATS * enic->wq_count;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
460
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
466
err = enic_dev_stats_dump(enic, &vstats);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
479
*(data++) = ((u64 *)&enic->gen_stats)[enic_gen_stats[i].index];
drivers/net/ethernet/cisco/enic/enic_ethtool.c
480
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
481
struct enic_rq_stats *rqstats = &enic->rq[i].stats;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
489
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
490
struct enic_wq_stats *wqstats = &enic->wq[i].stats;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
502
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
503
return enic->msg_enable;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
508
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
509
enic->msg_enable = value;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
517
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
518
struct enic_rx_coal *rxcoal = &enic->rx_coalesce_setting;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
520
if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX)
drivers/net/ethernet/cisco/enic/enic_ethtool.c
521
ecmd->tx_coalesce_usecs = enic->tx_coalesce_usecs;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
522
ecmd->rx_coalesce_usecs = enic->rx_coalesce_usecs;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
531
static int enic_coalesce_valid(struct enic *enic,
drivers/net/ethernet/cisco/enic/enic_ethtool.c
534
u32 coalesce_usecs_max = vnic_dev_get_intr_coal_timer_max(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
540
if ((vnic_dev_get_intr_mode(enic->vdev) != VNIC_DEV_INTR_MODE_MSIX) &&
drivers/net/ethernet/cisco/enic/enic_ethtool.c
548
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
564
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
572
struct enic_rx_coal *rxcoal = &enic->rx_coalesce_setting;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
574
ret = enic_coalesce_valid(enic, ecmd);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
577
coalesce_usecs_max = vnic_dev_get_intr_coal_timer_max(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
588
if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
589
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
590
intr = enic_msix_wq_intr(enic, i);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
591
vnic_intr_coalescing_timer_set(&enic->intr[intr],
drivers/net/ethernet/cisco/enic/enic_ethtool.c
594
enic->tx_coalesce_usecs = tx_coalesce_usecs;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
598
enic_intr_coal_set_rx(enic, rx_coalesce_usecs);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
606
enic->rx_coalesce_usecs = rx_coalesce_usecs;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
611
static int enic_grxclsrlall(struct enic *enic, struct ethtool_rxnfc *cmd,
drivers/net/ethernet/cisco/enic/enic_ethtool.c
616
cmd->data = enic->rfs_h.max - enic->rfs_h.free;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
622
hhead = &enic->rfs_h.ht_head[j];
drivers/net/ethernet/cisco/enic/enic_ethtool.c
635
static int enic_grxclsrule(struct enic *enic, struct ethtool_rxnfc *cmd)
drivers/net/ethernet/cisco/enic/enic_ethtool.c
641
n = htbl_fltr_search(enic, (u16)fsp->location);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
675
struct enic *enic = netdev_priv(dev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
679
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
680
(void)vnic_dev_capable_rss_hash_type(enic->vdev, &rss_hash_type);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
681
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
719
struct enic *enic = netdev_priv(dev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
721
return enic->rq_count;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
727
struct enic *enic = netdev_priv(dev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
732
spin_lock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
733
cmd->rule_cnt = enic->rfs_h.max - enic->rfs_h.free;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
734
cmd->data = enic->rfs_h.max;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
735
spin_unlock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
738
spin_lock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
739
ret = enic_grxclsrlall(enic, cmd, rule_locs);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
740
spin_unlock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
743
spin_lock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
744
ret = enic_grxclsrule(enic, cmd);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
745
spin_unlock_bh(&enic->rfs_h.lock);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
763
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
766
memcpy(rxfh->key, enic->rss_key, ENIC_RSS_LEN);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
777
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
785
memcpy(enic->rss_key, rxfh->key, ENIC_RSS_LEN);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
787
return __enic_set_rsskey(enic);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
801
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
803
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_ethtool.c
805
channels->max_rx = min(enic->rq_avail, ENIC_RQ_MAX);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
806
channels->max_tx = min(enic->wq_avail, ENIC_WQ_MAX);
drivers/net/ethernet/cisco/enic/enic_ethtool.c
807
channels->rx_count = enic->rq_count;
drivers/net/ethernet/cisco/enic/enic_ethtool.c
808
channels->tx_count = enic->wq_count;
drivers/net/ethernet/cisco/enic/enic_main.c
1000
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_main.c
1005
enic->mc_count = 0;
drivers/net/ethernet/cisco/enic/enic_main.c
1006
enic->uc_count = 0;
drivers/net/ethernet/cisco/enic/enic_main.c
1007
enic->flags = 0;
drivers/net/ethernet/cisco/enic/enic_main.c
1012
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1014
if (enic_is_dynamic(enic) || enic_is_sriov_vf(enic)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1029
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1034
if (netif_running(enic->netdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1035
err = enic_dev_del_station_addr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1044
if (netif_running(enic->netdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1045
err = enic_dev_add_station_addr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1057
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1060
err = enic_dev_del_station_addr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1068
return enic_dev_add_station_addr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1074
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1086
if (enic->flags != flags) {
drivers/net/ethernet/cisco/enic/enic_main.c
1087
enic->flags = flags;
drivers/net/ethernet/cisco/enic/enic_main.c
1088
enic_dev_packet_filter(enic, directed,
drivers/net/ethernet/cisco/enic/enic_main.c
1102
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1103
schedule_work(&enic->tx_hang_reset);
drivers/net/ethernet/cisco/enic/enic_main.c
1108
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1112
ENIC_PP_BY_INDEX(enic, vf, pp, &err);
drivers/net/ethernet/cisco/enic/enic_main.c
1124
ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic,
drivers/net/ethernet/cisco/enic/enic_main.c
1136
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1141
ENIC_PP_BY_INDEX(enic, vf, pp, &err);
drivers/net/ethernet/cisco/enic/enic_main.c
1148
memcpy(&prev_pp, pp, sizeof(*enic->pp));
drivers/net/ethernet/cisco/enic/enic_main.c
1149
memset(pp, 0, sizeof(*enic->pp));
drivers/net/ethernet/cisco/enic/enic_main.c
115
static void enic_init_affinity_hint(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
117
int numa_node = dev_to_node(&enic->pdev->dev);
drivers/net/ethernet/cisco/enic/enic_main.c
1193
ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic,
drivers/net/ethernet/cisco/enic/enic_main.c
120
for (i = 0; i < enic->intr_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1202
err = enic_process_set_pp_request(enic, vf, &prev_pp, &restore_pp);
drivers/net/ethernet/cisco/enic/enic_main.c
121
if (enic_is_err_intr(enic, i) || enic_is_notify_intr(enic, i) ||
drivers/net/ethernet/cisco/enic/enic_main.c
122
(cpumask_available(enic->msix[i].affinity_mask) &&
drivers/net/ethernet/cisco/enic/enic_main.c
123
!cpumask_empty(enic->msix[i].affinity_mask)))
drivers/net/ethernet/cisco/enic/enic_main.c
1237
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1242
ENIC_PP_BY_INDEX(enic, vf, pp, &err);
drivers/net/ethernet/cisco/enic/enic_main.c
1249
err = enic_process_get_pp_request(enic, vf, pp->request, &response);
drivers/net/ethernet/cisco/enic/enic_main.c
125
if (zalloc_cpumask_var(&enic->msix[i].affinity_mask,
drivers/net/ethernet/cisco/enic/enic_main.c
1269
static void enic_set_int_moderation(struct enic *enic, struct vnic_rq *rq)
drivers/net/ethernet/cisco/enic/enic_main.c
1271
unsigned int intr = enic_msix_rq_intr(enic, rq->index);
drivers/net/ethernet/cisco/enic/enic_main.c
1272
struct vnic_cq *cq = &enic->cq[enic_cq_rq(enic, rq->index)];
drivers/net/ethernet/cisco/enic/enic_main.c
1276
vnic_intr_coalescing_timer_set(&enic->intr[intr], timer);
drivers/net/ethernet/cisco/enic/enic_main.c
128
enic->msix[i].affinity_mask);
drivers/net/ethernet/cisco/enic/enic_main.c
1281
static void enic_calc_int_moderation(struct enic *enic, struct vnic_rq *rq)
drivers/net/ethernet/cisco/enic/enic_main.c
1283
struct enic_rx_coal *rx_coal = &enic->rx_coalesce_setting;
drivers/net/ethernet/cisco/enic/enic_main.c
1284
struct vnic_cq *cq = &enic->cq[enic_cq_rq(enic, rq->index)];
drivers/net/ethernet/cisco/enic/enic_main.c
132
static void enic_free_affinity_hint(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1330
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1331
unsigned int cq_rq = enic_cq_rq(enic, 0);
drivers/net/ethernet/cisco/enic/enic_main.c
1332
unsigned int cq_wq = enic_cq_wq(enic, 0);
drivers/net/ethernet/cisco/enic/enic_main.c
1339
wq_work_done = enic_wq_cq_service(enic, cq_wq, wq_work_to_do);
drivers/net/ethernet/cisco/enic/enic_main.c
1342
rq_work_done = enic_rq_cq_service(enic, cq_rq, rq_work_to_do);
drivers/net/ethernet/cisco/enic/enic_main.c
1352
vnic_intr_return_credits(&enic->intr[intr],
drivers/net/ethernet/cisco/enic/enic_main.c
1357
err = vnic_rq_fill(&enic->rq[0].vrq, enic_rq_alloc_buf);
drivers/net/ethernet/cisco/enic/enic_main.c
136
for (i = 0; i < enic->intr_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1365
if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce)
drivers/net/ethernet/cisco/enic/enic_main.c
1369
enic_calc_int_moderation(enic, &enic->rq[0].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
137
if (enic_is_err_intr(enic, i) || enic_is_notify_intr(enic, i))
drivers/net/ethernet/cisco/enic/enic_main.c
1377
if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce)
drivers/net/ethernet/cisco/enic/enic_main.c
1378
enic_set_int_moderation(enic, &enic->rq[0].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
1379
vnic_intr_unmask(&enic->intr[intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
1380
enic->rq[0].stats.napi_complete++;
drivers/net/ethernet/cisco/enic/enic_main.c
1382
enic->rq[0].stats.napi_repoll++;
drivers/net/ethernet/cisco/enic/enic_main.c
1389
static void enic_free_rx_cpu_rmap(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
139
free_cpumask_var(enic->msix[i].affinity_mask);
drivers/net/ethernet/cisco/enic/enic_main.c
1391
free_irq_cpu_rmap(enic->netdev->rx_cpu_rmap);
drivers/net/ethernet/cisco/enic/enic_main.c
1392
enic->netdev->rx_cpu_rmap = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
1395
static void enic_set_rx_cpu_rmap(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1399
if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX) {
drivers/net/ethernet/cisco/enic/enic_main.c
1400
enic->netdev->rx_cpu_rmap = alloc_irq_cpu_rmap(enic->rq_count);
drivers/net/ethernet/cisco/enic/enic_main.c
1401
if (unlikely(!enic->netdev->rx_cpu_rmap))
drivers/net/ethernet/cisco/enic/enic_main.c
1403
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1404
res = irq_cpu_rmap_add(enic->netdev->rx_cpu_rmap,
drivers/net/ethernet/cisco/enic/enic_main.c
1405
enic->msix_entry[i].vector);
drivers/net/ethernet/cisco/enic/enic_main.c
1407
enic_free_rx_cpu_rmap(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1416
static void enic_free_rx_cpu_rmap(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1420
static void enic_set_rx_cpu_rmap(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1429
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
143
static void enic_set_affinity_hint(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1430
unsigned int wq_index = (napi - &enic->napi[0]) - enic->rq_count;
drivers/net/ethernet/cisco/enic/enic_main.c
1431
struct vnic_wq *wq = &enic->wq[wq_index].vwq;
drivers/net/ethernet/cisco/enic/enic_main.c
1439
cq = enic_cq_wq(enic, wq_irq);
drivers/net/ethernet/cisco/enic/enic_main.c
1440
intr = enic_msix_wq_intr(enic, wq_irq);
drivers/net/ethernet/cisco/enic/enic_main.c
1442
wq_work_done = enic_wq_cq_service(enic, cq, wq_work_to_do);
drivers/net/ethernet/cisco/enic/enic_main.c
1444
vnic_intr_return_credits(&enic->intr[intr], wq_work_done,
drivers/net/ethernet/cisco/enic/enic_main.c
1449
vnic_intr_unmask(&enic->intr[intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
1459
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1460
unsigned int rq = (napi - &enic->napi[0]);
drivers/net/ethernet/cisco/enic/enic_main.c
1461
unsigned int cq = enic_cq_rq(enic, rq);
drivers/net/ethernet/cisco/enic/enic_main.c
1462
unsigned int intr = enic_msix_rq_intr(enic, rq);
drivers/net/ethernet/cisco/enic/enic_main.c
1471
work_done = enic_rq_cq_service(enic, cq, work_to_do);
drivers/net/ethernet/cisco/enic/enic_main.c
1479
vnic_intr_return_credits(&enic->intr[intr],
drivers/net/ethernet/cisco/enic/enic_main.c
148
for (i = 0; i < enic->intr_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1484
err = vnic_rq_fill(&enic->rq[rq].vrq, enic_rq_alloc_buf);
drivers/net/ethernet/cisco/enic/enic_main.c
149
if (enic_is_err_intr(enic, i) ||
drivers/net/ethernet/cisco/enic/enic_main.c
1492
if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce)
drivers/net/ethernet/cisco/enic/enic_main.c
1496
enic_calc_int_moderation(enic, &enic->rq[rq].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
150
enic_is_notify_intr(enic, i) ||
drivers/net/ethernet/cisco/enic/enic_main.c
1504
if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce)
drivers/net/ethernet/cisco/enic/enic_main.c
1505
enic_set_int_moderation(enic, &enic->rq[rq].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
1506
vnic_intr_unmask(&enic->intr[intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
1507
enic->rq[rq].stats.napi_complete++;
drivers/net/ethernet/cisco/enic/enic_main.c
1509
enic->rq[rq].stats.napi_repoll++;
drivers/net/ethernet/cisco/enic/enic_main.c
151
!cpumask_available(enic->msix[i].affinity_mask) ||
drivers/net/ethernet/cisco/enic/enic_main.c
1517
struct enic *enic = timer_container_of(enic, t, notify_timer);
drivers/net/ethernet/cisco/enic/enic_main.c
1519
enic_notify_check(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
152
cpumask_empty(enic->msix[i].affinity_mask))
drivers/net/ethernet/cisco/enic/enic_main.c
1521
mod_timer(&enic->notify_timer,
drivers/net/ethernet/cisco/enic/enic_main.c
1525
static void enic_free_intr(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1527
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_main.c
1530
enic_free_rx_cpu_rmap(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1531
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1533
free_irq(enic->pdev->irq, netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1536
free_irq(enic->pdev->irq, enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1539
for (i = 0; i < enic->intr_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
154
err = irq_update_affinity_hint(enic->msix_entry[i].vector,
drivers/net/ethernet/cisco/enic/enic_main.c
1540
if (enic->msix[i].requested)
drivers/net/ethernet/cisco/enic/enic_main.c
1541
free_irq(enic->msix_entry[i].vector,
drivers/net/ethernet/cisco/enic/enic_main.c
1542
enic->msix[i].devid);
drivers/net/ethernet/cisco/enic/enic_main.c
1549
static int enic_request_intr(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
155
enic->msix[i].affinity_mask);
drivers/net/ethernet/cisco/enic/enic_main.c
1551
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_main.c
1555
enic_set_rx_cpu_rmap(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1556
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1560
err = request_irq(enic->pdev->irq, enic_isr_legacy,
drivers/net/ethernet/cisco/enic/enic_main.c
1566
err = request_irq(enic->pdev->irq, enic_isr_msi,
drivers/net/ethernet/cisco/enic/enic_main.c
1567
0, netdev->name, enic);
drivers/net/ethernet/cisco/enic/enic_main.c
157
netdev_warn(enic->netdev, "irq_update_affinity_hint failed, err %d\n",
drivers/net/ethernet/cisco/enic/enic_main.c
1572
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1573
intr = enic_msix_rq_intr(enic, i);
drivers/net/ethernet/cisco/enic/enic_main.c
1574
snprintf(enic->msix[intr].devname,
drivers/net/ethernet/cisco/enic/enic_main.c
1575
sizeof(enic->msix[intr].devname),
drivers/net/ethernet/cisco/enic/enic_main.c
1577
enic->msix[intr].isr = enic_isr_msix;
drivers/net/ethernet/cisco/enic/enic_main.c
1578
enic->msix[intr].devid = &enic->napi[i];
drivers/net/ethernet/cisco/enic/enic_main.c
1581
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1582
int wq = enic_cq_wq(enic, i);
drivers/net/ethernet/cisco/enic/enic_main.c
1584
intr = enic_msix_wq_intr(enic, i);
drivers/net/ethernet/cisco/enic/enic_main.c
1585
snprintf(enic->msix[intr].devname,
drivers/net/ethernet/cisco/enic/enic_main.c
1586
sizeof(enic->msix[intr].devname),
drivers/net/ethernet/cisco/enic/enic_main.c
1588
enic->msix[intr].isr = enic_isr_msix;
drivers/net/ethernet/cisco/enic/enic_main.c
1589
enic->msix[intr].devid = &enic->napi[wq];
drivers/net/ethernet/cisco/enic/enic_main.c
1592
intr = enic_msix_err_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1593
snprintf(enic->msix[intr].devname,
drivers/net/ethernet/cisco/enic/enic_main.c
1594
sizeof(enic->msix[intr].devname),
drivers/net/ethernet/cisco/enic/enic_main.c
1596
enic->msix[intr].isr = enic_isr_msix_err;
drivers/net/ethernet/cisco/enic/enic_main.c
1597
enic->msix[intr].devid = enic;
drivers/net/ethernet/cisco/enic/enic_main.c
1599
intr = enic_msix_notify_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1600
snprintf(enic->msix[intr].devname,
drivers/net/ethernet/cisco/enic/enic_main.c
1601
sizeof(enic->msix[intr].devname),
drivers/net/ethernet/cisco/enic/enic_main.c
1603
enic->msix[intr].isr = enic_isr_msix_notify;
drivers/net/ethernet/cisco/enic/enic_main.c
1604
enic->msix[intr].devid = enic;
drivers/net/ethernet/cisco/enic/enic_main.c
1606
for (i = 0; i < enic->intr_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1607
enic->msix[i].requested = 0;
drivers/net/ethernet/cisco/enic/enic_main.c
1609
for (i = 0; i < enic->intr_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
161
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1610
err = request_irq(enic->msix_entry[i].vector,
drivers/net/ethernet/cisco/enic/enic_main.c
1611
enic->msix[i].isr, 0,
drivers/net/ethernet/cisco/enic/enic_main.c
1612
enic->msix[i].devname,
drivers/net/ethernet/cisco/enic/enic_main.c
1613
enic->msix[i].devid);
drivers/net/ethernet/cisco/enic/enic_main.c
1615
enic_free_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1618
enic->msix[i].requested = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
162
int wq_intr = enic_msix_wq_intr(enic, i);
drivers/net/ethernet/cisco/enic/enic_main.c
1630
static void enic_synchronize_irqs(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1634
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1637
synchronize_irq(enic->pdev->irq);
drivers/net/ethernet/cisco/enic/enic_main.c
164
if (cpumask_available(enic->msix[wq_intr].affinity_mask) &&
drivers/net/ethernet/cisco/enic/enic_main.c
1640
for (i = 0; i < enic->intr_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1641
synchronize_irq(enic->msix_entry[i].vector);
drivers/net/ethernet/cisco/enic/enic_main.c
1648
static int enic_dev_notify_set(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
165
!cpumask_empty(enic->msix[wq_intr].affinity_mask))
drivers/net/ethernet/cisco/enic/enic_main.c
1652
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
1653
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1655
err = vnic_dev_notify_set(enic->vdev, ENIC_LEGACY_NOTIFY_INTR);
drivers/net/ethernet/cisco/enic/enic_main.c
1658
err = vnic_dev_notify_set(enic->vdev,
drivers/net/ethernet/cisco/enic/enic_main.c
1659
enic_msix_notify_intr(enic));
drivers/net/ethernet/cisco/enic/enic_main.c
166
netif_set_xps_queue(enic->netdev,
drivers/net/ethernet/cisco/enic/enic_main.c
1662
err = vnic_dev_notify_set(enic->vdev, -1 /* no intr */);
drivers/net/ethernet/cisco/enic/enic_main.c
1665
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
167
enic->msix[wq_intr].affinity_mask,
drivers/net/ethernet/cisco/enic/enic_main.c
1670
static void enic_notify_timer_start(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1672
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1674
mod_timer(&enic->notify_timer, jiffies);
drivers/net/ethernet/cisco/enic/enic_main.c
1685
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1691
.pool_size = enic->config.rq_desc_count,
drivers/net/ethernet/cisco/enic/enic_main.c
1692
.nid = dev_to_node(&enic->pdev->dev),
drivers/net/ethernet/cisco/enic/enic_main.c
1693
.dev = &enic->pdev->dev,
drivers/net/ethernet/cisco/enic/enic_main.c
1700
err = enic_request_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1705
enic_init_affinity_hint(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1706
enic_set_affinity_hint(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1708
err = enic_dev_notify_set(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1715
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1717
pp_params.napi = &enic->napi[i];
drivers/net/ethernet/cisco/enic/enic_main.c
1719
enic->rq[i].pool = page_pool_create(&pp_params);
drivers/net/ethernet/cisco/enic/enic_main.c
172
static void enic_unset_affinity_hint(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1720
if (IS_ERR(enic->rq[i].pool)) {
drivers/net/ethernet/cisco/enic/enic_main.c
1721
err = PTR_ERR(enic->rq[i].pool);
drivers/net/ethernet/cisco/enic/enic_main.c
1722
enic->rq[i].pool = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
1727
vnic_rq_enable(&enic->rq[i].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
1728
vnic_rq_fill(&enic->rq[i].vrq, enic_rq_alloc_buf);
drivers/net/ethernet/cisco/enic/enic_main.c
1730
if (vnic_rq_desc_used(&enic->rq[i].vrq) == 0) {
drivers/net/ethernet/cisco/enic/enic_main.c
1737
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1738
vnic_wq_enable(&enic->wq[i].vwq);
drivers/net/ethernet/cisco/enic/enic_main.c
1740
if (!enic_is_dynamic(enic) && !enic_is_sriov_vf(enic))
drivers/net/ethernet/cisco/enic/enic_main.c
1741
enic_dev_add_station_addr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1747
for (i = 0; i < enic->rq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1748
napi_enable(&enic->napi[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
1750
if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX)
drivers/net/ethernet/cisco/enic/enic_main.c
1751
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1752
napi_enable(&enic->napi[enic_cq_wq(enic, i)]);
drivers/net/ethernet/cisco/enic/enic_main.c
1753
err = enic_dev_enable(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1759
for (i = 0; i < enic->intr_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
176
for (i = 0; i < enic->intr_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1760
vnic_intr_unmask(&enic->intr[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
1762
enic_notify_timer_start(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1763
enic_rfs_timer_start(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1768
for (i = 0; i < enic->rq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1769
napi_disable(&enic->napi[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
177
irq_update_affinity_hint(enic->msix_entry[i].vector, NULL);
drivers/net/ethernet/cisco/enic/enic_main.c
1770
if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX)
drivers/net/ethernet/cisco/enic/enic_main.c
1771
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1772
napi_disable(&enic->napi[enic_cq_wq(enic, i)]);
drivers/net/ethernet/cisco/enic/enic_main.c
1774
if (!enic_is_dynamic(enic) && !enic_is_sriov_vf(enic))
drivers/net/ethernet/cisco/enic/enic_main.c
1775
enic_dev_del_station_addr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1776
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1777
vnic_wq_disable(&enic->wq[i].vwq);
drivers/net/ethernet/cisco/enic/enic_main.c
1779
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1780
ret = vnic_rq_disable(&enic->rq[i].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
1782
vnic_rq_clean(&enic->rq[i].vrq, enic_free_rq_buf);
drivers/net/ethernet/cisco/enic/enic_main.c
1783
page_pool_destroy(enic->rq[i].pool);
drivers/net/ethernet/cisco/enic/enic_main.c
1784
enic->rq[i].pool = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
1787
enic_dev_notify_unset(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1789
enic_unset_affinity_hint(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1790
enic_free_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1798
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1802
for (i = 0; i < enic->intr_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1803
vnic_intr_mask(&enic->intr[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
1804
(void)vnic_intr_masked(&enic->intr[i]); /* flush write */
drivers/net/ethernet/cisco/enic/enic_main.c
1807
enic_synchronize_irqs(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1809
timer_delete_sync(&enic->notify_timer);
drivers/net/ethernet/cisco/enic/enic_main.c
1810
enic_rfs_flw_tbl_free(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1812
enic_dev_disable(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1814
for (i = 0; i < enic->rq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1815
napi_disable(&enic->napi[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
1818
if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX)
drivers/net/ethernet/cisco/enic/enic_main.c
1819
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1820
napi_disable(&enic->napi[enic_cq_wq(enic, i)]);
drivers/net/ethernet/cisco/enic/enic_main.c
1823
if (!enic_is_dynamic(enic) && !enic_is_sriov_vf(enic))
drivers/net/ethernet/cisco/enic/enic_main.c
1824
enic_dev_del_station_addr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1826
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1827
err = vnic_wq_disable(&enic->wq[i].vwq);
drivers/net/ethernet/cisco/enic/enic_main.c
1831
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1832
err = vnic_rq_disable(&enic->rq[i].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
1837
enic_dev_notify_unset(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1838
enic_unset_affinity_hint(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1839
enic_free_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
184
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1841
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1842
vnic_wq_clean(&enic->wq[i].vwq, enic_free_wq_buf);
drivers/net/ethernet/cisco/enic/enic_main.c
1843
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1844
vnic_rq_clean(&enic->rq[i].vrq, enic_free_rq_buf);
drivers/net/ethernet/cisco/enic/enic_main.c
1845
page_pool_destroy(enic->rq[i].pool);
drivers/net/ethernet/cisco/enic/enic_main.c
1846
enic->rq[i].pool = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
1848
for (i = 0; i < enic->cq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1849
vnic_cq_clean(&enic->cq[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
1850
for (i = 0; i < enic->intr_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
1851
vnic_intr_clean(&enic->intr[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
187
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
1881
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1883
if (enic_is_dynamic(enic) || enic_is_sriov_vf(enic))
drivers/net/ethernet/cisco/enic/enic_main.c
1886
if (new_mtu > enic->port_mtu)
drivers/net/ethernet/cisco/enic/enic_main.c
1889
new_mtu, enic->port_mtu);
drivers/net/ethernet/cisco/enic/enic_main.c
189
err = vnic_dev_overlay_offload_cfg(enic->vdev,
drivers/net/ethernet/cisco/enic/enic_main.c
1896
struct enic *enic = container_of(work, struct enic, change_mtu_work);
drivers/net/ethernet/cisco/enic/enic_main.c
1897
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_main.c
1898
int new_mtu = vnic_dev_mtu(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1910
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
1911
struct vnic_dev *vdev = enic->vdev;
drivers/net/ethernet/cisco/enic/enic_main.c
1916
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1917
intr = enic_msix_rq_intr(enic, i);
drivers/net/ethernet/cisco/enic/enic_main.c
1918
enic_isr_msix(enic->msix_entry[intr].vector,
drivers/net/ethernet/cisco/enic/enic_main.c
1919
&enic->napi[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
1922
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
1923
intr = enic_msix_wq_intr(enic, i);
drivers/net/ethernet/cisco/enic/enic_main.c
1924
enic_isr_msix(enic->msix_entry[intr].vector,
drivers/net/ethernet/cisco/enic/enic_main.c
1925
&enic->napi[enic_cq_wq(enic, i)]);
drivers/net/ethernet/cisco/enic/enic_main.c
1930
enic_isr_msi(enic->pdev->irq, enic);
drivers/net/ethernet/cisco/enic/enic_main.c
1933
enic_isr_legacy(enic->pdev->irq, netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
195
err = vnic_dev_overlay_offload_ctrl(enic->vdev, OVERLAY_FEATURE_VXLAN,
drivers/net/ethernet/cisco/enic/enic_main.c
196
enic->vxlan.patch_level);
drivers/net/ethernet/cisco/enic/enic_main.c
1974
static int enic_dev_open(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1979
err = enic_dev_wait(enic->vdev, vnic_dev_open,
drivers/net/ethernet/cisco/enic/enic_main.c
1982
dev_err(enic_get_dev(enic), "vNIC device open failed, err %d\n",
drivers/net/ethernet/cisco/enic/enic_main.c
1988
static int enic_dev_soft_reset(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
1992
err = enic_dev_wait(enic->vdev, vnic_dev_soft_reset,
drivers/net/ethernet/cisco/enic/enic_main.c
1995
netdev_err(enic->netdev, "vNIC soft reset failed, err %d\n",
drivers/net/ethernet/cisco/enic/enic_main.c
200
enic->vxlan.vxlan_udp_port_number = ntohs(ti->port);
drivers/net/ethernet/cisco/enic/enic_main.c
2001
static int enic_dev_hang_reset(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2005
err = enic_dev_wait(enic->vdev, vnic_dev_hang_reset,
drivers/net/ethernet/cisco/enic/enic_main.c
2008
netdev_err(enic->netdev, "vNIC hang reset failed, err %d\n",
drivers/net/ethernet/cisco/enic/enic_main.c
2014
int __enic_set_rsskey(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
202
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2020
rss_key_buf_va = dma_alloc_coherent(&enic->pdev->dev,
drivers/net/ethernet/cisco/enic/enic_main.c
2029
rss_key_buf_va->key[kidx].b[bidx] = enic->rss_key[i];
drivers/net/ethernet/cisco/enic/enic_main.c
2031
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2032
err = enic_set_rss_key(enic,
drivers/net/ethernet/cisco/enic/enic_main.c
2035
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2037
dma_free_coherent(&enic->pdev->dev, sizeof(union vnic_rss_key),
drivers/net/ethernet/cisco/enic/enic_main.c
2043
static int enic_set_rsskey(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2045
netdev_rss_key_fill(enic->rss_key, ENIC_RSS_LEN);
drivers/net/ethernet/cisco/enic/enic_main.c
2047
return __enic_set_rsskey(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2050
static int enic_set_rsscpu(struct enic *enic, u8 rss_hash_bits)
drivers/net/ethernet/cisco/enic/enic_main.c
2057
rss_cpu_buf_va = dma_alloc_coherent(&enic->pdev->dev,
drivers/net/ethernet/cisco/enic/enic_main.c
2064
(*rss_cpu_buf_va).cpu[i/4].b[i%4] = i % enic->rq_count;
drivers/net/ethernet/cisco/enic/enic_main.c
2066
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2067
err = enic_set_rss_cpu(enic,
drivers/net/ethernet/cisco/enic/enic_main.c
2070
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2072
dma_free_coherent(&enic->pdev->dev, sizeof(union vnic_rss_cpu),
drivers/net/ethernet/cisco/enic/enic_main.c
2078
static int enic_set_niccfg(struct enic *enic, u8 rss_default_cpu,
drivers/net/ethernet/cisco/enic/enic_main.c
2088
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2089
err = enic_set_nic_cfg(enic,
drivers/net/ethernet/cisco/enic/enic_main.c
2094
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2099
static int enic_set_rss_nic_cfg(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2101
struct device *dev = enic_get_dev(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2107
u8 rss_enable = ENIC_SETTING(enic, RSS) && (enic->rq_count > 1);
drivers/net/ethernet/cisco/enic/enic_main.c
2109
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
211
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2110
res = vnic_dev_capable_rss_hash_type(enic->vdev, &rss_hash_type);
drivers/net/ethernet/cisco/enic/enic_main.c
2111
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2122
if (!enic_set_rsskey(enic)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2123
if (enic_set_rsscpu(enic, rss_hash_bits)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2134
return enic_set_niccfg(enic, rss_default_cpu, rss_hash_type,
drivers/net/ethernet/cisco/enic/enic_main.c
2138
static void enic_set_api_busy(struct enic *enic, bool busy)
drivers/net/ethernet/cisco/enic/enic_main.c
214
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2140
spin_lock(&enic->enic_api_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2141
enic->enic_api_busy = busy;
drivers/net/ethernet/cisco/enic/enic_main.c
2142
spin_unlock(&enic->enic_api_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2147
struct enic *enic = container_of(work, struct enic, reset);
drivers/net/ethernet/cisco/enic/enic_main.c
2149
if (!netif_running(enic->netdev))
drivers/net/ethernet/cisco/enic/enic_main.c
2155
enic_set_api_busy(enic, true);
drivers/net/ethernet/cisco/enic/enic_main.c
2157
enic_stop(enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2158
enic_dev_soft_reset(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2159
enic_reset_addr_lists(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
216
err = vnic_dev_overlay_offload_ctrl(enic->vdev, OVERLAY_FEATURE_VXLAN,
drivers/net/ethernet/cisco/enic/enic_main.c
2160
enic_init_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2161
enic_set_rss_nic_cfg(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2162
enic_dev_set_ig_vlan_rewrite_mode(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2163
enic_ext_cq(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2164
enic_open(enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2167
enic_set_api_busy(enic, false);
drivers/net/ethernet/cisco/enic/enic_main.c
2169
call_netdevice_notifiers(NETDEV_REBOOT, enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2176
struct enic *enic = container_of(work, struct enic, tx_hang_reset);
drivers/net/ethernet/cisco/enic/enic_main.c
2181
enic_set_api_busy(enic, true);
drivers/net/ethernet/cisco/enic/enic_main.c
2183
enic_dev_hang_notify(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2184
enic_stop(enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2185
enic_dev_hang_reset(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2186
enic_reset_addr_lists(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2187
enic_init_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2188
enic_set_rss_nic_cfg(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2189
enic_dev_set_ig_vlan_rewrite_mode(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2190
enic_ext_cq(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2191
enic_open(enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2194
enic_set_api_busy(enic, false);
drivers/net/ethernet/cisco/enic/enic_main.c
2196
call_netdevice_notifiers(NETDEV_REBOOT, enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2201
static int enic_set_intr_mode(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
221
enic->vxlan.vxlan_udp_port_number = 0;
drivers/net/ethernet/cisco/enic/enic_main.c
2212
if (enic->config.intr_mode < 1 &&
drivers/net/ethernet/cisco/enic/enic_main.c
2213
enic->intr_avail >= ENIC_MSIX_MIN_INTR) {
drivers/net/ethernet/cisco/enic/enic_main.c
2214
for (i = 0; i < enic->intr_avail; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
2215
enic->msix_entry[i].entry = i;
drivers/net/ethernet/cisco/enic/enic_main.c
2217
num_intr = pci_enable_msix_range(enic->pdev, enic->msix_entry,
drivers/net/ethernet/cisco/enic/enic_main.c
2219
enic->intr_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2221
vnic_dev_set_intr_mode(enic->vdev,
drivers/net/ethernet/cisco/enic/enic_main.c
2223
enic->intr_avail = num_intr;
drivers/net/ethernet/cisco/enic/enic_main.c
2233
if (enic->config.intr_mode < 2 &&
drivers/net/ethernet/cisco/enic/enic_main.c
2234
enic->intr_avail >= 1 &&
drivers/net/ethernet/cisco/enic/enic_main.c
2235
!pci_enable_msi(enic->pdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2236
enic->intr_avail = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
2237
vnic_dev_set_intr_mode(enic->vdev, VNIC_DEV_INTR_MODE_MSI);
drivers/net/ethernet/cisco/enic/enic_main.c
224
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2249
if (enic->config.intr_mode < 3 &&
drivers/net/ethernet/cisco/enic/enic_main.c
2250
enic->intr_avail >= 3) {
drivers/net/ethernet/cisco/enic/enic_main.c
2251
enic->intr_avail = 3;
drivers/net/ethernet/cisco/enic/enic_main.c
2252
vnic_dev_set_intr_mode(enic->vdev, VNIC_DEV_INTR_MODE_INTX);
drivers/net/ethernet/cisco/enic/enic_main.c
2256
vnic_dev_set_intr_mode(enic->vdev, VNIC_DEV_INTR_MODE_UNKNOWN);
drivers/net/ethernet/cisco/enic/enic_main.c
2261
static void enic_clear_intr_mode(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2263
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2265
pci_disable_msix(enic->pdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2268
pci_disable_msi(enic->pdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2274
vnic_dev_set_intr_mode(enic->vdev, VNIC_DEV_INTR_MODE_UNKNOWN);
drivers/net/ethernet/cisco/enic/enic_main.c
2277
static int enic_adjust_resources(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2284
if (enic->rq_avail < 1 || enic->wq_avail < 1 || enic->cq_avail < 2) {
drivers/net/ethernet/cisco/enic/enic_main.c
2285
dev_err(enic_get_dev(enic),
drivers/net/ethernet/cisco/enic/enic_main.c
2287
enic->rq_avail, enic->wq_avail,
drivers/net/ethernet/cisco/enic/enic_main.c
2288
enic->cq_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2293
dev_info(enic_get_dev(enic), "Running from within kdump kernel. Using minimal resources\n");
drivers/net/ethernet/cisco/enic/enic_main.c
2294
enic->rq_avail = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
2295
enic->wq_avail = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
2296
enic->config.rq_desc_count = ENIC_MIN_RQ_DESCS;
drivers/net/ethernet/cisco/enic/enic_main.c
2297
enic->config.wq_desc_count = ENIC_MIN_WQ_DESCS;
drivers/net/ethernet/cisco/enic/enic_main.c
2298
enic->config.mtu = min_t(u16, 1500, enic->config.mtu);
drivers/net/ethernet/cisco/enic/enic_main.c
2302
if (!ENIC_SETTING(enic, RSS))
drivers/net/ethernet/cisco/enic/enic_main.c
2303
enic->rq_avail = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
2305
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2308
enic->rq_count = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
2309
enic->wq_count = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
2310
enic->cq_count = 2;
drivers/net/ethernet/cisco/enic/enic_main.c
2311
enic->intr_count = enic->intr_avail;
drivers/net/ethernet/cisco/enic/enic_main.c
2317
wq_avail = min(enic->wq_avail, ENIC_WQ_MAX);
drivers/net/ethernet/cisco/enic/enic_main.c
2320
rq_avail = min3(enic->rq_avail, ENIC_RQ_MAX, rq_default);
drivers/net/ethernet/cisco/enic/enic_main.c
2321
max_queues = min(enic->cq_avail,
drivers/net/ethernet/cisco/enic/enic_main.c
2322
enic->intr_avail - ENIC_MSIX_RESERVED_INTR);
drivers/net/ethernet/cisco/enic/enic_main.c
2324
enic->rq_count = rq_avail;
drivers/net/ethernet/cisco/enic/enic_main.c
2325
enic->wq_count = wq_avail;
drivers/net/ethernet/cisco/enic/enic_main.c
2329
enic->rq_count = min(rq_avail, max_queues / 2);
drivers/net/ethernet/cisco/enic/enic_main.c
2330
enic->wq_count = max_queues - enic->rq_count;
drivers/net/ethernet/cisco/enic/enic_main.c
2332
enic->wq_count = min(wq_avail, max_queues / 2);
drivers/net/ethernet/cisco/enic/enic_main.c
2333
enic->rq_count = max_queues - enic->wq_count;
drivers/net/ethernet/cisco/enic/enic_main.c
2336
enic->cq_count = enic->rq_count + enic->wq_count;
drivers/net/ethernet/cisco/enic/enic_main.c
2337
enic->intr_count = enic->cq_count + ENIC_MSIX_RESERVED_INTR;
drivers/net/ethernet/cisco/enic/enic_main.c
2341
dev_err(enic_get_dev(enic), "Unknown interrupt mode\n");
drivers/net/ethernet/cisco/enic/enic_main.c
2351
struct enic *enic = netdev_priv(dev);
drivers/net/ethernet/cisco/enic/enic_main.c
2352
struct enic_rq_stats *rqstats = &enic->rq[idx].stats;
drivers/net/ethernet/cisco/enic/enic_main.c
2366
struct enic *enic = netdev_priv(dev);
drivers/net/ethernet/cisco/enic/enic_main.c
2367
struct enic_wq_stats *wqstats = &enic->wq[idx].stats;
drivers/net/ethernet/cisco/enic/enic_main.c
2452
static void enic_free_enic_resources(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2454
kfree(enic->wq);
drivers/net/ethernet/cisco/enic/enic_main.c
2455
enic->wq = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
2457
kfree(enic->rq);
drivers/net/ethernet/cisco/enic/enic_main.c
2458
enic->rq = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
2460
kfree(enic->cq);
drivers/net/ethernet/cisco/enic/enic_main.c
2461
enic->cq = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
2463
kfree(enic->napi);
drivers/net/ethernet/cisco/enic/enic_main.c
2464
enic->napi = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
2466
kfree(enic->msix_entry);
drivers/net/ethernet/cisco/enic/enic_main.c
2467
enic->msix_entry = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
2469
kfree(enic->msix);
drivers/net/ethernet/cisco/enic/enic_main.c
2470
enic->msix = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
2472
kfree(enic->intr);
drivers/net/ethernet/cisco/enic/enic_main.c
2473
enic->intr = NULL;
drivers/net/ethernet/cisco/enic/enic_main.c
2476
static int enic_alloc_enic_resources(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2478
enic->wq = kzalloc_objs(struct enic_wq, enic->wq_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2479
if (!enic->wq)
drivers/net/ethernet/cisco/enic/enic_main.c
2482
enic->rq = kzalloc_objs(struct enic_rq, enic->rq_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2483
if (!enic->rq)
drivers/net/ethernet/cisco/enic/enic_main.c
2486
enic->cq = kzalloc_objs(struct vnic_cq, enic->cq_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2487
if (!enic->cq)
drivers/net/ethernet/cisco/enic/enic_main.c
249
struct enic *enic = netdev_priv(dev);
drivers/net/ethernet/cisco/enic/enic_main.c
2490
enic->napi = kzalloc_objs(struct napi_struct,
drivers/net/ethernet/cisco/enic/enic_main.c
2491
enic->wq_avail + enic->rq_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2492
if (!enic->napi)
drivers/net/ethernet/cisco/enic/enic_main.c
2495
enic->msix_entry = kzalloc_objs(struct msix_entry, enic->intr_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2496
if (!enic->msix_entry)
drivers/net/ethernet/cisco/enic/enic_main.c
2499
enic->msix = kzalloc_objs(struct enic_msix_entry, enic->intr_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2500
if (!enic->msix)
drivers/net/ethernet/cisco/enic/enic_main.c
2503
enic->intr = kzalloc_objs(struct vnic_intr, enic->intr_avail);
drivers/net/ethernet/cisco/enic/enic_main.c
2504
if (!enic->intr)
drivers/net/ethernet/cisco/enic/enic_main.c
2510
enic_free_enic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2514
static void enic_dev_deinit(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2518
for (i = 0; i < enic->rq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
2519
__netif_napi_del(&enic->napi[i]);
drivers/net/ethernet/cisco/enic/enic_main.c
2521
if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX)
drivers/net/ethernet/cisco/enic/enic_main.c
2522
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
2523
__netif_napi_del(&enic->napi[enic_cq_wq(enic, i)]);
drivers/net/ethernet/cisco/enic/enic_main.c
2528
enic_free_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2529
enic_clear_intr_mode(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2530
enic_free_affinity_hint(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2531
enic_free_enic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2534
static int enic_dev_init(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2536
struct device *dev = enic_get_dev(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2537
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_main.c
2542
err = enic_dev_intr_coal_timer_info(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2546
vnic_dev_intr_coal_timer_info_default(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2552
err = enic_get_vnic_config(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2561
enic_get_res_counts(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2563
enic_ext_cq(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2565
err = enic_alloc_enic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2573
err = enic_set_intr_mode(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2581
err = enic_adjust_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2590
err = enic_alloc_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2596
enic_init_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2598
err = enic_set_rss_nic_cfg(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2604
switch (vnic_dev_get_intr_mode(enic->vdev)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2606
netif_napi_add(netdev, &enic->napi[0], enic_poll);
drivers/net/ethernet/cisco/enic/enic_main.c
2609
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
261
if (!(enic->vxlan.flags & ENIC_VXLAN_OUTER_IPV6))
drivers/net/ethernet/cisco/enic/enic_main.c
2610
netif_napi_add(netdev, &enic->napi[i],
drivers/net/ethernet/cisco/enic/enic_main.c
2613
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
2615
&enic->napi[enic_cq_wq(enic, i)],
drivers/net/ethernet/cisco/enic/enic_main.c
2623
enic_free_affinity_hint(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2624
enic_clear_intr_mode(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2625
enic_free_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2626
enic_free_enic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2631
static void enic_iounmap(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2635
for (i = 0; i < ARRAY_SIZE(enic->bar); i++)
drivers/net/ethernet/cisco/enic/enic_main.c
2636
if (enic->bar[i].vaddr)
drivers/net/ethernet/cisco/enic/enic_main.c
2637
iounmap(enic->bar[i].vaddr);
drivers/net/ethernet/cisco/enic/enic_main.c
2641
static void enic_sriov_detect_vf_type(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
2643
struct pci_dev *pdev = enic->pdev;
drivers/net/ethernet/cisco/enic/enic_main.c
2647
if (enic_is_sriov_vf(enic) || enic_is_dynamic(enic))
drivers/net/ethernet/cisco/enic/enic_main.c
2652
enic->vf_type = ENIC_VF_TYPE_NONE;
drivers/net/ethernet/cisco/enic/enic_main.c
2660
enic->vf_type = ENIC_VF_TYPE_V1;
drivers/net/ethernet/cisco/enic/enic_main.c
2663
enic->vf_type = ENIC_VF_TYPE_USNIC;
drivers/net/ethernet/cisco/enic/enic_main.c
2666
enic->vf_type = ENIC_VF_TYPE_V2;
drivers/net/ethernet/cisco/enic/enic_main.c
2669
enic->vf_type = ENIC_VF_TYPE_NONE;
drivers/net/ethernet/cisco/enic/enic_main.c
2679
struct enic *enic;
drivers/net/ethernet/cisco/enic/enic_main.c
2692
netdev = alloc_etherdev_mqs(sizeof(struct enic),
drivers/net/ethernet/cisco/enic/enic_main.c
2701
enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2702
enic->netdev = netdev;
drivers/net/ethernet/cisco/enic/enic_main.c
2703
enic->pdev = pdev;
drivers/net/ethernet/cisco/enic/enic_main.c
274
if (!(enic->vxlan.flags & ENIC_VXLAN_INNER_IPV6))
drivers/net/ethernet/cisco/enic/enic_main.c
2741
for (i = 0; i < ARRAY_SIZE(enic->bar); i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
2744
enic->bar[i].len = pci_resource_len(pdev, i);
drivers/net/ethernet/cisco/enic/enic_main.c
2745
enic->bar[i].vaddr = pci_iomap(pdev, i, enic->bar[i].len);
drivers/net/ethernet/cisco/enic/enic_main.c
2746
if (!enic->bar[i].vaddr) {
drivers/net/ethernet/cisco/enic/enic_main.c
2751
enic->bar[i].bus_addr = pci_resource_start(pdev, i);
drivers/net/ethernet/cisco/enic/enic_main.c
2757
enic->vdev = vnic_dev_register(NULL, enic, pdev, enic->bar,
drivers/net/ethernet/cisco/enic/enic_main.c
2758
ARRAY_SIZE(enic->bar));
drivers/net/ethernet/cisco/enic/enic_main.c
2759
if (!enic->vdev) {
drivers/net/ethernet/cisco/enic/enic_main.c
2765
err = vnic_devcmd_init(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2775
&enic->num_vfs);
drivers/net/ethernet/cisco/enic/enic_main.c
2776
if (enic->num_vfs) {
drivers/net/ethernet/cisco/enic/enic_main.c
2777
err = pci_enable_sriov(pdev, enic->num_vfs);
drivers/net/ethernet/cisco/enic/enic_main.c
2784
enic->priv_flags |= ENIC_SRIOV_ENABLED;
drivers/net/ethernet/cisco/enic/enic_main.c
2785
num_pps = enic->num_vfs;
drivers/net/ethernet/cisco/enic/enic_main.c
2788
enic_sriov_detect_vf_type(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2792
enic->pp = kzalloc_objs(*enic->pp, num_pps);
drivers/net/ethernet/cisco/enic/enic_main.c
2793
if (!enic->pp) {
drivers/net/ethernet/cisco/enic/enic_main.c
2801
err = enic_dev_open(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2810
spin_lock_init(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2811
spin_lock_init(&enic->enic_api_lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2817
err = enic_dev_set_ig_vlan_rewrite_mode(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2839
if (!enic_is_dynamic(enic)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2840
err = vnic_dev_init(enic->vdev, 0);
drivers/net/ethernet/cisco/enic/enic_main.c
2847
err = enic_dev_init(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2853
netif_set_real_num_tx_queues(netdev, enic->wq_count);
drivers/net/ethernet/cisco/enic/enic_main.c
2854
netif_set_real_num_rx_queues(netdev, enic->rq_count);
drivers/net/ethernet/cisco/enic/enic_main.c
2859
timer_setup(&enic->notify_timer, enic_notify_timer, 0);
drivers/net/ethernet/cisco/enic/enic_main.c
2861
enic_rfs_flw_tbl_init(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2862
INIT_WORK(&enic->reset, enic_reset);
drivers/net/ethernet/cisco/enic/enic_main.c
2863
INIT_WORK(&enic->tx_hang_reset, enic_tx_hang_reset);
drivers/net/ethernet/cisco/enic/enic_main.c
2864
INIT_WORK(&enic->change_mtu_work, enic_change_mtu_work);
drivers/net/ethernet/cisco/enic/enic_main.c
2866
for (i = 0; i < enic->wq_count; i++)
drivers/net/ethernet/cisco/enic/enic_main.c
2867
spin_lock_init(&enic->wq[i].lock);
drivers/net/ethernet/cisco/enic/enic_main.c
2872
enic->port_mtu = enic->config.mtu;
drivers/net/ethernet/cisco/enic/enic_main.c
2874
err = enic_set_mac_addr(netdev, enic->mac_addr);
drivers/net/ethernet/cisco/enic/enic_main.c
2880
enic->tx_coalesce_usecs = enic->config.intr_timer_usec;
drivers/net/ethernet/cisco/enic/enic_main.c
2884
enic->rx_coalesce_usecs = enic->tx_coalesce_usecs;
drivers/net/ethernet/cisco/enic/enic_main.c
2886
if (enic_is_dynamic(enic) || enic_is_sriov_vf(enic))
drivers/net/ethernet/cisco/enic/enic_main.c
2896
if (ENIC_SETTING(enic, LOOP)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2898
enic->loop_enable = 1;
drivers/net/ethernet/cisco/enic/enic_main.c
2899
enic->loop_tag = enic->config.loop_tag;
drivers/net/ethernet/cisco/enic/enic_main.c
2900
dev_info(dev, "loopback tag=0x%04x\n", enic->loop_tag);
drivers/net/ethernet/cisco/enic/enic_main.c
2902
if (ENIC_SETTING(enic, TXCSUM))
drivers/net/ethernet/cisco/enic/enic_main.c
2904
if (ENIC_SETTING(enic, TSO))
drivers/net/ethernet/cisco/enic/enic_main.c
2907
if (ENIC_SETTING(enic, RSS))
drivers/net/ethernet/cisco/enic/enic_main.c
2909
if (ENIC_SETTING(enic, RXCSUM))
drivers/net/ethernet/cisco/enic/enic_main.c
2911
if (ENIC_SETTING(enic, VXLAN)) {
drivers/net/ethernet/cisco/enic/enic_main.c
292
if (port != enic->vxlan.vxlan_udp_port_number)
drivers/net/ethernet/cisco/enic/enic_main.c
2934
err = vnic_dev_get_supported_feature_ver(enic->vdev,
drivers/net/ethernet/cisco/enic/enic_main.c
2939
enic->vxlan.flags = (u8)a1;
drivers/net/ethernet/cisco/enic/enic_main.c
2945
enic->vxlan.patch_level = patch_level;
drivers/net/ethernet/cisco/enic/enic_main.c
2947
if (vnic_dev_get_res_count(enic->vdev, RES_TYPE_WQ) == 1 ||
drivers/net/ethernet/cisco/enic/enic_main.c
2948
enic->vxlan.flags & ENIC_VXLAN_MULTI_WQ) {
drivers/net/ethernet/cisco/enic/enic_main.c
2950
if (enic->vxlan.flags & ENIC_VXLAN_OUTER_IPV6)
drivers/net/ethernet/cisco/enic/enic_main.c
2970
netdev->mtu = enic->port_mtu;
drivers/net/ethernet/cisco/enic/enic_main.c
2981
enic_dev_deinit(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
2983
vnic_dev_close(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2985
kfree(enic->pp);
drivers/net/ethernet/cisco/enic/enic_main.c
2988
if (enic_sriov_enabled(enic)) {
drivers/net/ethernet/cisco/enic/enic_main.c
2990
enic->priv_flags &= ~ENIC_SRIOV_ENABLED;
drivers/net/ethernet/cisco/enic/enic_main.c
2994
vnic_dev_unregister(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
2996
enic_iounmap(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
301
int enic_is_dynamic(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
3012
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
3014
cancel_work_sync(&enic->reset);
drivers/net/ethernet/cisco/enic/enic_main.c
3015
cancel_work_sync(&enic->change_mtu_work);
drivers/net/ethernet/cisco/enic/enic_main.c
3017
enic_dev_deinit(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
3018
vnic_dev_close(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
3020
if (enic_sriov_enabled(enic)) {
drivers/net/ethernet/cisco/enic/enic_main.c
3022
enic->priv_flags &= ~ENIC_SRIOV_ENABLED;
drivers/net/ethernet/cisco/enic/enic_main.c
3025
kfree(enic->pp);
drivers/net/ethernet/cisco/enic/enic_main.c
3026
vnic_dev_unregister(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
3027
enic_iounmap(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
303
return enic->pdev->device == PCI_DEVICE_ID_CISCO_VIC_ENET_DYN;
drivers/net/ethernet/cisco/enic/enic_main.c
306
int enic_sriov_enabled(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
308
return (enic->priv_flags & ENIC_SRIOV_ENABLED) ? 1 : 0;
drivers/net/ethernet/cisco/enic/enic_main.c
311
static int enic_is_sriov_vf(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
313
return enic->pdev->device == PCI_DEVICE_ID_CISCO_VIC_ENET_VF ||
drivers/net/ethernet/cisco/enic/enic_main.c
314
enic->pdev->device == PCI_DEVICE_ID_CISCO_VIC_ENET_VF_V2;
drivers/net/ethernet/cisco/enic/enic_main.c
317
int enic_is_valid_vf(struct enic *enic, int vf)
drivers/net/ethernet/cisco/enic/enic_main.c
320
return vf >= 0 && vf < enic->num_vfs;
drivers/net/ethernet/cisco/enic/enic_main.c
326
static bool enic_log_q_error(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
332
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
333
error_status = vnic_wq_error_status(&enic->wq[i].vwq);
drivers/net/ethernet/cisco/enic/enic_main.c
336
netdev_err(enic->netdev, "WQ[%d] error_status %d\n",
drivers/net/ethernet/cisco/enic/enic_main.c
340
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
341
error_status = vnic_rq_error_status(&enic->rq[i].vrq);
drivers/net/ethernet/cisco/enic/enic_main.c
344
netdev_err(enic->netdev, "RQ[%d] error_status %d\n",
drivers/net/ethernet/cisco/enic/enic_main.c
351
static void enic_msglvl_check(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
353
u32 msg_enable = vnic_dev_msg_lvl(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
355
if (msg_enable != enic->msg_enable) {
drivers/net/ethernet/cisco/enic/enic_main.c
356
netdev_info(enic->netdev, "msg lvl changed from 0x%x to 0x%x\n",
drivers/net/ethernet/cisco/enic/enic_main.c
357
enic->msg_enable, msg_enable);
drivers/net/ethernet/cisco/enic/enic_main.c
358
enic->msg_enable = msg_enable;
drivers/net/ethernet/cisco/enic/enic_main.c
362
static void enic_mtu_check(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
364
u32 mtu = vnic_dev_mtu(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
365
struct net_device *netdev = enic->netdev;
drivers/net/ethernet/cisco/enic/enic_main.c
367
if (mtu && mtu != enic->port_mtu) {
drivers/net/ethernet/cisco/enic/enic_main.c
368
enic->port_mtu = mtu;
drivers/net/ethernet/cisco/enic/enic_main.c
369
if (enic_is_dynamic(enic) || enic_is_sriov_vf(enic)) {
drivers/net/ethernet/cisco/enic/enic_main.c
373
schedule_work(&enic->change_mtu_work);
drivers/net/ethernet/cisco/enic/enic_main.c
384
static void enic_set_rx_coal_setting(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
388
struct enic_rx_coal *rx_coal = &enic->rx_coalesce_setting;
drivers/net/ethernet/cisco/enic/enic_main.c
394
speed = vnic_dev_port_speed(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
407
for (index = 0; index < enic->rq_count; index++)
drivers/net/ethernet/cisco/enic/enic_main.c
408
enic->cq[index].cur_rx_coal_timeval =
drivers/net/ethernet/cisco/enic/enic_main.c
409
enic->config.intr_timer_usec;
drivers/net/ethernet/cisco/enic/enic_main.c
414
static void enic_link_check(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
416
int link_status = vnic_dev_link_status(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_main.c
417
int carrier_ok = netif_carrier_ok(enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
420
netdev_info(enic->netdev, "Link UP\n");
drivers/net/ethernet/cisco/enic/enic_main.c
421
netif_carrier_on(enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
422
enic_set_rx_coal_setting(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
424
netdev_info(enic->netdev, "Link DOWN\n");
drivers/net/ethernet/cisco/enic/enic_main.c
425
netif_carrier_off(enic->netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
429
static void enic_notify_check(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_main.c
431
enic_msglvl_check(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
432
enic_mtu_check(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
433
enic_link_check(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
441
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
447
vnic_intr_mask(&enic->intr[io_intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
449
pba = vnic_intr_legacy_pba(enic->legacy_pba);
drivers/net/ethernet/cisco/enic/enic_main.c
451
vnic_intr_unmask(&enic->intr[io_intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
456
enic_notify_check(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
457
vnic_intr_return_all_credits(&enic->intr[notify_intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
461
vnic_intr_return_all_credits(&enic->intr[err_intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
462
enic_log_q_error(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
464
schedule_work(&enic->reset);
drivers/net/ethernet/cisco/enic/enic_main.c
469
napi_schedule_irqoff(&enic->napi[0]);
drivers/net/ethernet/cisco/enic/enic_main.c
471
vnic_intr_unmask(&enic->intr[io_intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
478
struct enic *enic = data;
drivers/net/ethernet/cisco/enic/enic_main.c
496
napi_schedule_irqoff(&enic->napi[0]);
drivers/net/ethernet/cisco/enic/enic_main.c
512
struct enic *enic = data;
drivers/net/ethernet/cisco/enic/enic_main.c
513
unsigned int intr = enic_msix_err_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
515
vnic_intr_return_all_credits(&enic->intr[intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
517
if (enic_log_q_error(enic))
drivers/net/ethernet/cisco/enic/enic_main.c
519
schedule_work(&enic->reset);
drivers/net/ethernet/cisco/enic/enic_main.c
526
struct enic *enic = data;
drivers/net/ethernet/cisco/enic/enic_main.c
527
unsigned int intr = enic_msix_notify_intr(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
529
enic_notify_check(enic);
drivers/net/ethernet/cisco/enic/enic_main.c
530
vnic_intr_return_all_credits(&enic->intr[intr]);
drivers/net/ethernet/cisco/enic/enic_main.c
535
static int enic_queue_wq_skb_cont(struct enic *enic, struct vnic_wq *wq,
drivers/net/ethernet/cisco/enic/enic_main.c
545
dma_addr = skb_frag_dma_map(&enic->pdev->dev, frag, 0,
drivers/net/ethernet/cisco/enic/enic_main.c
548
if (unlikely(enic_dma_map_check(enic, dma_addr)))
drivers/net/ethernet/cisco/enic/enic_main.c
558
static int enic_queue_wq_skb_vlan(struct enic *enic, struct vnic_wq *wq,
drivers/net/ethernet/cisco/enic/enic_main.c
568
dma_addr = dma_map_single(&enic->pdev->dev, skb->data, head_len,
drivers/net/ethernet/cisco/enic/enic_main.c
570
if (unlikely(enic_dma_map_check(enic, dma_addr)))
drivers/net/ethernet/cisco/enic/enic_main.c
582
err = enic_queue_wq_skb_cont(enic, wq, skb, len_left, loopback);
drivers/net/ethernet/cisco/enic/enic_main.c
585
enic->wq[wq->index].stats.csum_none++;
drivers/net/ethernet/cisco/enic/enic_main.c
586
enic->wq[wq->index].stats.packets++;
drivers/net/ethernet/cisco/enic/enic_main.c
587
enic->wq[wq->index].stats.bytes += skb->len;
drivers/net/ethernet/cisco/enic/enic_main.c
592
static int enic_queue_wq_skb_csum_l4(struct enic *enic, struct vnic_wq *wq,
drivers/net/ethernet/cisco/enic/enic_main.c
604
dma_addr = dma_map_single(&enic->pdev->dev, skb->data, head_len,
drivers/net/ethernet/cisco/enic/enic_main.c
606
if (unlikely(enic_dma_map_check(enic, dma_addr)))
drivers/net/ethernet/cisco/enic/enic_main.c
619
err = enic_queue_wq_skb_cont(enic, wq, skb, len_left, loopback);
drivers/net/ethernet/cisco/enic/enic_main.c
621
enic->wq[wq->index].stats.csum_partial++;
drivers/net/ethernet/cisco/enic/enic_main.c
622
enic->wq[wq->index].stats.packets++;
drivers/net/ethernet/cisco/enic/enic_main.c
623
enic->wq[wq->index].stats.bytes += skb->len;
drivers/net/ethernet/cisco/enic/enic_main.c
668
static int enic_queue_wq_skb_tso(struct enic *enic, struct vnic_wq *wq,
drivers/net/ethernet/cisco/enic/enic_main.c
686
enic->wq[wq->index].stats.encap_tso++;
drivers/net/ethernet/cisco/enic/enic_main.c
690
enic->wq[wq->index].stats.tso++;
drivers/net/ethernet/cisco/enic/enic_main.c
698
dma_addr = dma_map_single(&enic->pdev->dev,
drivers/net/ethernet/cisco/enic/enic_main.c
701
if (unlikely(enic_dma_map_check(enic, dma_addr)))
drivers/net/ethernet/cisco/enic/enic_main.c
724
dma_addr = skb_frag_dma_map(&enic->pdev->dev, frag,
drivers/net/ethernet/cisco/enic/enic_main.c
727
if (unlikely(enic_dma_map_check(enic, dma_addr)))
drivers/net/ethernet/cisco/enic/enic_main.c
744
enic->wq[wq->index].stats.packets += pkts;
drivers/net/ethernet/cisco/enic/enic_main.c
745
enic->wq[wq->index].stats.bytes += (len + (pkts * hdr_len));
drivers/net/ethernet/cisco/enic/enic_main.c
750
static inline int enic_queue_wq_skb_encap(struct enic *enic, struct vnic_wq *wq,
drivers/net/ethernet/cisco/enic/enic_main.c
767
dma_addr = dma_map_single(&enic->pdev->dev, skb->data, head_len,
drivers/net/ethernet/cisco/enic/enic_main.c
769
if (unlikely(enic_dma_map_check(enic, dma_addr)))
drivers/net/ethernet/cisco/enic/enic_main.c
777
err = enic_queue_wq_skb_cont(enic, wq, skb, len_left, loopback);
drivers/net/ethernet/cisco/enic/enic_main.c
779
enic->wq[wq->index].stats.encap_csum++;
drivers/net/ethernet/cisco/enic/enic_main.c
780
enic->wq[wq->index].stats.packets++;
drivers/net/ethernet/cisco/enic/enic_main.c
781
enic->wq[wq->index].stats.bytes += skb->len;
drivers/net/ethernet/cisco/enic/enic_main.c
786
static inline int enic_queue_wq_skb(struct enic *enic,
drivers/net/ethernet/cisco/enic/enic_main.c
799
enic->wq[wq->index].stats.add_vlan++;
drivers/net/ethernet/cisco/enic/enic_main.c
800
} else if (enic->loop_enable) {
drivers/net/ethernet/cisco/enic/enic_main.c
801
vlan_tag = enic->loop_tag;
drivers/net/ethernet/cisco/enic/enic_main.c
806
err = enic_queue_wq_skb_tso(enic, wq, skb, mss,
drivers/net/ethernet/cisco/enic/enic_main.c
810
err = enic_queue_wq_skb_encap(enic, wq, skb, vlan_tag_insert,
drivers/net/ethernet/cisco/enic/enic_main.c
813
err = enic_queue_wq_skb_csum_l4(enic, wq, skb, vlan_tag_insert,
drivers/net/ethernet/cisco/enic/enic_main.c
816
err = enic_queue_wq_skb_vlan(enic, wq, skb, vlan_tag_insert,
drivers/net/ethernet/cisco/enic/enic_main.c
840
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
845
txq_map = skb_get_queue_mapping(skb) % enic->wq_count;
drivers/net/ethernet/cisco/enic/enic_main.c
846
wq = &enic->wq[txq_map].vwq;
drivers/net/ethernet/cisco/enic/enic_main.c
850
enic->wq[wq->index].stats.null_pkt++;
drivers/net/ethernet/cisco/enic/enic_main.c
865
enic->wq[wq->index].stats.skb_linear_fail++;
drivers/net/ethernet/cisco/enic/enic_main.c
869
spin_lock(&enic->wq[txq_map].lock);
drivers/net/ethernet/cisco/enic/enic_main.c
876
spin_unlock(&enic->wq[txq_map].lock);
drivers/net/ethernet/cisco/enic/enic_main.c
877
enic->wq[wq->index].stats.desc_full_awake++;
drivers/net/ethernet/cisco/enic/enic_main.c
881
if (enic_queue_wq_skb(enic, wq, skb))
drivers/net/ethernet/cisco/enic/enic_main.c
886
enic->wq[wq->index].stats.stopped++;
drivers/net/ethernet/cisco/enic/enic_main.c
893
spin_unlock(&enic->wq[txq_map].lock);
drivers/net/ethernet/cisco/enic/enic_main.c
902
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
909
err = enic_dev_stats_dump(enic, &stats);
drivers/net/ethernet/cisco/enic/enic_main.c
927
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_main.c
928
struct enic_rq_stats *rqs = &enic->rq[i].stats;
drivers/net/ethernet/cisco/enic/enic_main.c
930
if (!enic->rq[i].vrq.ctrl)
drivers/net/ethernet/cisco/enic/enic_main.c
942
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
944
if (enic->mc_count == ENIC_MULTICAST_PERFECT_FILTERS) {
drivers/net/ethernet/cisco/enic/enic_main.c
953
enic_dev_add_addr(enic, mc_addr);
drivers/net/ethernet/cisco/enic/enic_main.c
954
enic->mc_count++;
drivers/net/ethernet/cisco/enic/enic_main.c
961
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
963
enic_dev_del_addr(enic, mc_addr);
drivers/net/ethernet/cisco/enic/enic_main.c
964
enic->mc_count--;
drivers/net/ethernet/cisco/enic/enic_main.c
971
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
973
if (enic->uc_count == ENIC_UNICAST_PERFECT_FILTERS) {
drivers/net/ethernet/cisco/enic/enic_main.c
982
enic_dev_add_addr(enic, uc_addr);
drivers/net/ethernet/cisco/enic/enic_main.c
983
enic->uc_count++;
drivers/net/ethernet/cisco/enic/enic_main.c
990
struct enic *enic = netdev_priv(netdev);
drivers/net/ethernet/cisco/enic/enic_main.c
992
enic_dev_del_addr(enic, uc_addr);
drivers/net/ethernet/cisco/enic/enic_main.c
993
enic->uc_count--;
drivers/net/ethernet/cisco/enic/enic_main.c
998
void enic_reset_addr_lists(struct enic *enic)
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
enic->has_admin_channel =
drivers/net/ethernet/cisco/enic/enic_res.c
209
vnic_dev_get_res_count(enic->vdev, RES_TYPE_ADMIN_WQ) >= 1 &&
drivers/net/ethernet/cisco/enic/enic_res.c
210
vnic_dev_get_res_count(enic->vdev, RES_TYPE_ADMIN_RQ) >= 1 &&
drivers/net/ethernet/cisco/enic/enic_res.c
211
vnic_dev_get_res_count(enic->vdev, RES_TYPE_ADMIN_CQ) >=
drivers/net/ethernet/cisco/enic/enic_res.c
212
ARRAY_SIZE(enic->admin_cq) &&
drivers/net/ethernet/cisco/enic/enic_res.c
213
vnic_dev_get_res_count(enic->vdev, RES_TYPE_SRIOV_INTR) >= 1;
drivers/net/ethernet/cisco/enic/enic_res.c
215
dev_info(enic_get_dev(enic),
drivers/net/ethernet/cisco/enic/enic_res.c
217
enic->wq_avail, enic->rq_avail,
drivers/net/ethernet/cisco/enic/enic_res.c
218
enic->cq_avail, enic->intr_avail,
drivers/net/ethernet/cisco/enic/enic_res.c
219
enic->has_admin_channel ? "yes" : "no");
drivers/net/ethernet/cisco/enic/enic_res.c
222
void enic_init_vnic_resources(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_res.c
232
intr_mode = vnic_dev_get_intr_mode(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_res.c
249
error_interrupt_offset = enic_msix_err_intr(enic);
drivers/net/ethernet/cisco/enic/enic_res.c
257
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
259
vnic_rq_init(&enic->rq[i].vrq,
drivers/net/ethernet/cisco/enic/enic_res.c
265
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
266
cq_index = enic->rq_count + i;
drivers/net/ethernet/cisco/enic/enic_res.c
267
vnic_wq_init(&enic->wq[i].vwq,
drivers/net/ethernet/cisco/enic/enic_res.c
279
for (i = 0; i < enic->cq_count; 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
290
vnic_cq_init(&enic->cq[i],
drivers/net/ethernet/cisco/enic/enic_res.c
31
struct vnic_enet_config *c = &enic->config;
drivers/net/ethernet/cisco/enic/enic_res.c
319
for (i = 0; i < enic->intr_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
320
vnic_intr_init(&enic->intr[i],
drivers/net/ethernet/cisco/enic/enic_res.c
321
enic->config.intr_timer_usec,
drivers/net/ethernet/cisco/enic/enic_res.c
322
enic->config.intr_timer_type,
drivers/net/ethernet/cisco/enic/enic_res.c
327
int enic_alloc_vnic_resources(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_res.c
334
intr_mode = vnic_dev_get_intr_mode(enic->vdev);
drivers/net/ethernet/cisco/enic/enic_res.c
336
dev_info(enic_get_dev(enic), "vNIC resources used: "
drivers/net/ethernet/cisco/enic/enic_res.c
338
enic->wq_count, enic->rq_count,
drivers/net/ethernet/cisco/enic/enic_res.c
339
enic->cq_count, enic->intr_count,
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
345
switch (enic->ext_cq) {
drivers/net/ethernet/cisco/enic/enic_res.c
356
dev_err(enic_get_dev(enic),
drivers/net/ethernet/cisco/enic/enic_res.c
358
enic->ext_cq);
drivers/net/ethernet/cisco/enic/enic_res.c
36
dev_err(enic_get_dev(enic),
drivers/net/ethernet/cisco/enic/enic_res.c
366
for (i = 0; i < enic->wq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
367
err = vnic_wq_alloc(enic->vdev, &enic->wq[i].vwq, i,
drivers/net/ethernet/cisco/enic/enic_res.c
368
enic->config.wq_desc_count,
drivers/net/ethernet/cisco/enic/enic_res.c
374
for (i = 0; i < enic->rq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
375
err = vnic_rq_alloc(enic->vdev, &enic->rq[i].vrq, i,
drivers/net/ethernet/cisco/enic/enic_res.c
376
enic->config.rq_desc_count,
drivers/net/ethernet/cisco/enic/enic_res.c
382
for (i = 0; i < enic->cq_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
383
if (i < enic->rq_count)
drivers/net/ethernet/cisco/enic/enic_res.c
384
err = vnic_cq_alloc(enic->vdev, &enic->cq[i], i,
drivers/net/ethernet/cisco/enic/enic_res.c
385
enic->config.rq_desc_count,
drivers/net/ethernet/cisco/enic/enic_res.c
388
err = vnic_cq_alloc(enic->vdev, &enic->cq[i], i,
drivers/net/ethernet/cisco/enic/enic_res.c
389
enic->config.wq_desc_count,
drivers/net/ethernet/cisco/enic/enic_res.c
395
for (i = 0; i < enic->intr_count; i++) {
drivers/net/ethernet/cisco/enic/enic_res.c
396
err = vnic_intr_alloc(enic->vdev, &enic->intr[i], i);
drivers/net/ethernet/cisco/enic/enic_res.c
404
enic->legacy_pba = vnic_dev_get_res(enic->vdev,
drivers/net/ethernet/cisco/enic/enic_res.c
406
if (!enic->legacy_pba && intr_mode == VNIC_DEV_INTR_MODE_INTX) {
drivers/net/ethernet/cisco/enic/enic_res.c
407
dev_err(enic_get_dev(enic),
drivers/net/ethernet/cisco/enic/enic_res.c
416
enic_free_vnic_resources(enic);
drivers/net/ethernet/cisco/enic/enic_res.c
425
void enic_ext_cq(struct enic *enic)
drivers/net/ethernet/cisco/enic/enic_res.c
43
err = vnic_dev_spec(enic->vdev, \
drivers/net/ethernet/cisco/enic/enic_res.c
431
spin_lock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_res.c
432
ret = vnic_dev_cmd(enic->vdev, CMD_CAPABILITY, &a0, &a1, wait);
drivers/net/ethernet/cisco/enic/enic_res.c
434
dev_info(&enic->pdev->dev,
drivers/net/ethernet/cisco/enic/enic_res.c
436
enic->ext_cq = ENIC_RQ_CQ_ENTRY_SIZE_16;
drivers/net/ethernet/cisco/enic/enic_res.c
440
enic->ext_cq = fls(a1) - 1;
drivers/net/ethernet/cisco/enic/enic_res.c
442
a1 = enic->ext_cq;
drivers/net/ethernet/cisco/enic/enic_res.c
443
ret = vnic_dev_cmd(enic->vdev, CMD_CQ_ENTRY_SIZE_SET, &a0, &a1, wait);
drivers/net/ethernet/cisco/enic/enic_res.c
445
dev_info(&enic->pdev->dev, "CMD_CQ_ENTRY_SIZE_SET failed.");
drivers/net/ethernet/cisco/enic/enic_res.c
446
enic->ext_cq = ENIC_RQ_CQ_ENTRY_SIZE_16;
drivers/net/ethernet/cisco/enic/enic_res.c
449
spin_unlock_bh(&enic->devcmd_lock);
drivers/net/ethernet/cisco/enic/enic_res.c
450
dev_info(&enic->pdev->dev, "CQ entry size set to %d bytes",
drivers/net/ethernet/cisco/enic/enic_res.c
451
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,