Lines Matching defs:cdev

75 int cxgbi_device_portmap_create(struct cxgbi_device *cdev, unsigned int base,
78 struct cxgbi_ports_map *pmap = &cdev->pmap;
84 pr_warn("cdev 0x%p, portmap OOM %u.\n", cdev, max_conn);
95 void cxgbi_device_portmap_cleanup(struct cxgbi_device *cdev)
97 struct cxgbi_ports_map *pmap = &cdev->pmap;
106 "csk 0x%p, cdev 0x%p, offload down.\n",
107 csk, cdev);
118 static inline void cxgbi_device_destroy(struct cxgbi_device *cdev)
121 "cdev 0x%p, p# %u.\n", cdev, cdev->nports);
122 cxgbi_hbas_remove(cdev);
123 cxgbi_device_portmap_cleanup(cdev);
124 if (cdev->cdev2ppm)
125 cxgbi_ppm_release(cdev->cdev2ppm(cdev));
126 if (cdev->pmap.max_connect)
127 kvfree(cdev->pmap.port_csk);
128 kfree(cdev);
134 struct cxgbi_device *cdev;
136 cdev = kzalloc(sizeof(*cdev) + extra + nports *
140 if (!cdev) {
144 cdev->ports = (struct net_device **)(cdev + 1);
145 cdev->hbas = (struct cxgbi_hba **)(((char*)cdev->ports) + nports *
148 cdev->dd_data = ((char *)cdev->hbas) +
150 spin_lock_init(&cdev->pmap.lock);
153 list_add_tail(&cdev->list_head, &cdev_list);
157 list_add_tail_rcu(&cdev->rcu_node, &cdev_rcu_list);
161 "cdev 0x%p, p# %u.\n", cdev, nports);
162 return cdev;
166 void cxgbi_device_unregister(struct cxgbi_device *cdev)
169 "cdev 0x%p, p# %u,%s.\n",
170 cdev, cdev->nports, cdev->nports ? cdev->ports[0]->name : "");
173 list_del(&cdev->list_head);
177 list_del_rcu(&cdev->rcu_node);
181 cxgbi_device_destroy(cdev);
187 struct cxgbi_device *cdev, *tmp;
190 list_for_each_entry_safe(cdev, tmp, &cdev_list, list_head) {
191 if ((cdev->flags & flag) == flag) {
193 cxgbi_device_unregister(cdev);
203 struct cxgbi_device *cdev, *tmp;
206 list_for_each_entry_safe(cdev, tmp, &cdev_list, list_head) {
207 if (cdev->lldev == lldev) {
209 return cdev;
224 struct cxgbi_device *cdev, *tmp;
235 list_for_each_entry_safe(cdev, tmp, &cdev_list, list_head) {
236 for (i = 0; i < cdev->nports; i++) {
237 if (ndev == cdev->ports[i]) {
238 cdev->hbas[i]->vdev = vdev;
242 return cdev;
257 struct cxgbi_device *cdev;
267 list_for_each_entry_rcu(cdev, &cdev_rcu_list, rcu_node) {
268 for (i = 0; i < cdev->nports; i++) {
269 if (ndev == cdev->ports[i]) {
270 cdev->hbas[i]->vdev = vdev;
274 return cdev;
290 struct cxgbi_device *cdev, *tmp;
300 list_for_each_entry_safe(cdev, tmp, &cdev_list, list_head) {
301 for (i = 0; i < cdev->nports; i++) {
302 if (!memcmp(ndev->dev_addr, cdev->ports[i]->dev_addr,
304 cdev->hbas[i]->vdev = vdev;
308 return cdev;
319 void cxgbi_hbas_remove(struct cxgbi_device *cdev)
325 "cdev 0x%p, p#%u.\n", cdev, cdev->nports);
327 for (i = 0; i < cdev->nports; i++) {
328 chba = cdev->hbas[i];
330 cdev->hbas[i] = NULL;
332 pci_dev_put(cdev->pdev);
339 int cxgbi_hbas_add(struct cxgbi_device *cdev, u64 max_lun,
347 log_debug(1 << CXGBI_DBG_DEV, "cdev 0x%p, p#%u.\n", cdev, cdev->nports);
349 for (i = 0; i < cdev->nports; i++) {
353 cdev, i, cdev->ports[i]->name);
365 chba->cdev = cdev;
366 chba->ndev = cdev->ports[i];
372 "cdev 0x%p, p#%d %s: chba 0x%p.\n",
373 cdev, i, cdev->ports[i]->name, chba);
375 pci_dev_get(cdev->pdev);
376 err = iscsi_host_add(shost, &cdev->pdev->dev);
378 pr_info("cdev 0x%p, p#%d %s, host add failed.\n",
379 cdev, i, cdev->ports[i]->name);
380 pci_dev_put(cdev->pdev);
385 cdev->hbas[i] = chba;
391 cxgbi_hbas_remove(cdev);
411 static struct cxgbi_sock *find_sock_on_port(struct cxgbi_device *cdev,
414 struct cxgbi_ports_map *pmap = &cdev->pmap;
441 struct cxgbi_device *cdev = csk->cdev;
442 struct cxgbi_ports_map *pmap = &cdev->pmap;
448 pr_err("cdev 0x%p, p#%u %s, NO port map.\n",
449 cdev, csk->port_id, cdev->ports[csk->port_id]->name);
467 pr_info("cdev 0x%p, p#%u %s, ALL ports used.\n",
468 cdev, csk->port_id, cdev->ports[csk->port_id]->name);
484 "cdev 0x%p, p#%u %s, p %u, %u.\n",
485 cdev, csk->port_id,
486 cdev->ports[csk->port_id]->name,
494 pr_warn("cdev 0x%p, p#%u %s, next %u?\n",
495 cdev, csk->port_id, cdev->ports[csk->port_id]->name,
502 struct cxgbi_device *cdev = csk->cdev;
503 struct cxgbi_ports_map *pmap = &cdev->pmap;
516 pr_err("cdev 0x%p, p#%u %s, port %u OOR.\n",
517 cdev, csk->port_id,
518 cdev->ports[csk->port_id]->name,
529 "cdev 0x%p, p#%u %s, release %u.\n",
530 cdev, csk->port_id, cdev->ports[csk->port_id]->name,
557 static struct cxgbi_sock *cxgbi_sock_create(struct cxgbi_device *cdev)
566 if (cdev->csk_alloc_cpls(csk) < 0) {
579 csk->cdev = cdev;
583 log_debug(1 << CXGBI_DBG_SOCK, "cdev 0x%p, new csk 0x%p.\n", cdev, csk);
609 struct cxgbi_device *cdev;
660 cdev = cxgbi_device_find_by_netdev(ndev, &port);
661 if (!cdev)
662 cdev = cxgbi_device_find_by_mac(ndev, &port);
663 if (!cdev) {
670 "route to %pI4 :%u, ndev p#%d,%s, cdev 0x%p.\n",
672 port, ndev->name, cdev);
674 csk = cxgbi_sock_create(cdev);
679 csk->cdev = cdev;
725 struct cxgbi_device *cdev;
771 cdev = cxgbi_device_find_by_netdev(ndev, &port);
772 if (!cdev)
773 cdev = cxgbi_device_find_by_mac(ndev, &port);
774 if (!cdev) {
781 "route to %pI6 :%u, ndev p#%d,%s, cdev 0x%p.\n",
783 ndev->name, cdev);
785 csk = cxgbi_sock_create(cdev);
790 csk->cdev = cdev;
866 csk->cdev->csk_release_offload_resources(csk);
899 csk->cdev->csk_send_abort_req(csk);
901 csk->cdev->csk_send_close_req(csk);
924 struct module *owner = csk->cdev->owner;
1078 if (csk->cdev->csk_push_tx_frames(csk, 0))
1092 while (i < csk->cdev->nmtus - 1 && csk->cdev->mtus[i + 1] <= mtu)
1107 if (csk->advmss < csk->cdev->mtus[0] - 40)
1108 csk->advmss = csk->cdev->mtus[0] - 40;
1213 int cxgbi_ddp_ppm_setup(void **ppm_pp, struct cxgbi_device *cdev,
1219 int err = cxgbi_ppm_init(ppm_pp, cdev->ports[0], cdev->pdev,
1220 cdev->lldev, tformat, iscsi_size, llimit, start,
1228 cdev->flags |= CXGBI_FLAG_DDP_OFF;
1231 cdev->flags |= CXGBI_FLAG_DDP_OFF;
1265 struct cxgbi_device *cdev = csk->cdev;
1266 struct cxgbi_ppm *ppm = cdev->cdev2ppm(cdev);
1273 if (cdev->flags & CXGBI_FLAG_DDP_OFF) {
1275 "cdev 0x%p DDP off.\n", cdev);
1329 if (cdev->flags & CXGBI_FLAG_USE_PPOD_OFLDQ) {
1334 err = cdev->csk_ddp_set_map(ppm, csk, ttinfo);
1356 struct cxgbi_device *cdev = cconn->chba->cdev;
1357 struct cxgbi_ppm *ppm = cdev->cdev2ppm(cdev);
1361 "cdev 0x%p, task 0x%p, release tag 0x%x.\n",
1362 cdev, task, tag);
1368 if (!(cdev->flags & CXGBI_FLAG_USE_PPOD_OFLDQ))
1369 cdev->csk_ddp_clear_map(cdev, ppm, ttinfo);
1389 struct cxgbi_device *cdev = cconn->chba->cdev;
1390 struct cxgbi_ppm *ppm = cdev->cdev2ppm(cdev);
1420 "cdev 0x%p, task 0x%p, 0x%x(0x%x,0x%x)->0x%x/0x%x.\n",
1421 cdev, task, sw_tag, task->itt, sess->age, tag, *hdr_itt);
1429 struct cxgbi_device *cdev = cconn->chba->cdev;
1430 struct cxgbi_ppm *ppm = cdev->cdev2ppm(cdev);
1445 "cdev 0x%p, tag 0x%x/0x%x, -> 0x%x(0x%x,0x%x).\n",
1446 cdev, tag, itt, sw_bits, idx ? *idx : 0xFFFFF,
1602 struct cxgbi_device *cdev = csk->cdev;
1609 csk->rcv_wup, cdev->rx_credit_thres,
1612 if (!cdev->rx_credit_thres)
1622 if (must_send || credits >= cdev->rx_credit_thres)
1623 csk->rcv_wup += cdev->csk_send_rx_credits(csk, credits);
1628 struct cxgbi_device *cdev = csk->cdev;
1674 err + cdev->skb_rx_extra);
1891 struct cxgbi_device *cdev = cconn->chba->cdev;
1948 if (cdev->skb_iso_txhdr && !csk->disable_iso &&
1972 iso_tx_rsvd = cdev->skb_iso_txhdr;
2015 tdata->skb = alloc_skb(local_iso_info + cdev->skb_tx_rsvd +
2024 skb_reserve(tdata->skb, local_iso_info + cdev->skb_tx_rsvd +
2049 task, op, tdata->skb, cdev->skb_tx_rsvd, headroom,
2275 struct cxgbi_device *cdev = csk->cdev;
2295 if ((cdev->flags & CXGBI_FLAG_DEV_T3) &&
2305 iso_tx_rsvd = cdev->skb_iso_txhdr;
2307 if (unlikely(skb_headroom(skb) < (cdev->skb_tx_rsvd + iso_tx_rsvd))) {
2309 csk, skb_headroom(skb), cdev->skb_tx_rsvd);
2344 struct cxgbi_device *cdev = csk->cdev;
2356 cdev->csk_push_tx_frames(csk, 0);
2402 struct cxgbi_ppm *ppm = csk->cdev->cdev2ppm(csk->cdev);
2405 if (csk->cdev->csk_ddp_set_map(ppm, csk, ttinfo) < 0)
2531 struct cxgbi_device *cdev = cconn->chba->cdev;
2532 unsigned int headroom = SKB_MAX_HEAD(cdev->skb_tx_rsvd);
2536 max = min(cconn->chba->cdev->tx_max_size, max);
2550 unsigned int max = cconn->chba->cdev->rx_max_size;
2585 err = csk->cdev->csk_ddp_setup_digest(csk, csk->tid,
2592 err = csk->cdev->csk_ddp_setup_digest(csk, csk->tid,
2689 ppm = csk->cdev->cdev2ppm(csk->cdev);
2690 err = csk->cdev->csk_ddp_setup_pgidx(csk, csk->tid,
2747 cls_session = iscsi_session_setup(chba->cdev->itp, shost,
2837 struct cxgbi_sock *csk = find_sock_on_port(chba->cdev,
2897 hba = csk->cdev->hbas[csk->port_id];
2898 else if (hba != csk->cdev->hbas[csk->port_id]) {
2909 csk->cdev->hbas[csk->port_id], csk->port_id);
2919 err = csk->cdev->csk_init_act_open(csk);