• Home
  • Raw
  • Download

Lines Matching refs:nesvnic

1459 static void nes_replenish_nic_rq(struct nes_vnic *nesvnic)  in nes_replenish_nic_rq()  argument
1469 nesnic = &nesvnic->nic; in nes_replenish_nic_rq()
1470 nesdev = nesvnic->nesdev; in nes_replenish_nic_rq()
1473 if (((nesnic->rq_size-1) == atomic_read(&nesvnic->rx_skbs_needed)) && in nes_replenish_nic_rq()
1474 (atomic_read(&nesvnic->rx_skb_timer_running) == 0)) { in nes_replenish_nic_rq()
1475 atomic_set(&nesvnic->rx_skb_timer_running, 1); in nes_replenish_nic_rq()
1477 nesvnic->rq_wqes_timer.expires = jiffies + (HZ/2); /* 1/2 second */ in nes_replenish_nic_rq()
1478 add_timer(&nesvnic->rq_wqes_timer); in nes_replenish_nic_rq()
1486 skb = dev_alloc_skb(nesvnic->max_frame_size); in nes_replenish_nic_rq()
1488 skb->dev = nesvnic->netdev; in nes_replenish_nic_rq()
1491 skb->data, nesvnic->max_frame_size, PCI_DMA_FROMDEVICE); in nes_replenish_nic_rq()
1493 nic_rqe = &nesnic->rq_vbase[nesvnic->nic.rq_head]; in nes_replenish_nic_rq()
1495 cpu_to_le32(nesvnic->max_frame_size); in nes_replenish_nic_rq()
1504 atomic_dec(&nesvnic->rx_skbs_needed); in nes_replenish_nic_rq()
1512 if (((nesnic->rq_size-1) == atomic_read(&nesvnic->rx_skbs_needed)) && in nes_replenish_nic_rq()
1513 (atomic_read(&nesvnic->rx_skb_timer_running) == 0)) { in nes_replenish_nic_rq()
1514 atomic_set(&nesvnic->rx_skb_timer_running, 1); in nes_replenish_nic_rq()
1516 nesvnic->rq_wqes_timer.expires = jiffies + (HZ/2); /* 1/2 second */ in nes_replenish_nic_rq()
1517 add_timer(&nesvnic->rq_wqes_timer); in nes_replenish_nic_rq()
1522 } while (atomic_read(&nesvnic->rx_skbs_needed)); in nes_replenish_nic_rq()
1535 struct nes_vnic *nesvnic = (struct nes_vnic *)parm; in nes_rq_wqes_timeout() local
1537 atomic_set(&nesvnic->rx_skb_timer_running, 0); in nes_rq_wqes_timeout()
1538 if (atomic_read(&nesvnic->rx_skbs_needed)) in nes_rq_wqes_timeout()
1539 nes_replenish_nic_rq(nesvnic); in nes_rq_wqes_timeout()
1572 struct nes_vnic *nesvnic = netdev_priv(netdev); in nes_init_nic_qp() local
1584 nesvnic->nic_mem_size = 256 + in nes_init_nic_qp()
1591 nesvnic->nic_vbase = pci_alloc_consistent(nesdev->pcidev, nesvnic->nic_mem_size, in nes_init_nic_qp()
1592 &nesvnic->nic_pbase); in nes_init_nic_qp()
1593 if (!nesvnic->nic_vbase) { in nes_init_nic_qp()
1597 memset(nesvnic->nic_vbase, 0, nesvnic->nic_mem_size); in nes_init_nic_qp()
1599 nesvnic->nic_vbase, (unsigned long)nesvnic->nic_pbase, nesvnic->nic_mem_size); in nes_init_nic_qp()
1601 vmem = (void *)(((unsigned long)nesvnic->nic_vbase + (256 - 1)) & in nes_init_nic_qp()
1603 pmem = (dma_addr_t)(((unsigned long long)nesvnic->nic_pbase + (256 - 1)) & in nes_init_nic_qp()
1607 nesvnic->nic.first_frag_vbase = vmem; in nes_init_nic_qp()
1610 nesvnic->nic.frag_paddr[counter] = pmem; in nes_init_nic_qp()
1617 nesvnic->nic.sq_vbase = (void *)vmem; in nes_init_nic_qp()
1618 nesvnic->nic.sq_pbase = pmem; in nes_init_nic_qp()
1619 nesvnic->nic.sq_head = 0; in nes_init_nic_qp()
1620 nesvnic->nic.sq_tail = 0; in nes_init_nic_qp()
1621 nesvnic->nic.sq_size = NES_NIC_WQ_SIZE; in nes_init_nic_qp()
1623 nic_sqe = &nesvnic->nic.sq_vbase[counter]; in nes_init_nic_qp()
1630 cpu_to_le32((u32)nesvnic->nic.frag_paddr[counter]); in nes_init_nic_qp()
1632 cpu_to_le32((u32)((u64)nesvnic->nic.frag_paddr[counter] >> 32)); in nes_init_nic_qp()
1635 nesvnic->get_cqp_request = nes_get_cqp_request; in nes_init_nic_qp()
1636 nesvnic->post_cqp_request = nes_post_cqp_request; in nes_init_nic_qp()
1637 nesvnic->mcrq_mcast_filter = NULL; in nes_init_nic_qp()
1639 spin_lock_init(&nesvnic->nic.sq_lock); in nes_init_nic_qp()
1640 spin_lock_init(&nesvnic->nic.rq_lock); in nes_init_nic_qp()
1647 nesvnic->nic.rq_vbase = vmem; in nes_init_nic_qp()
1648 nesvnic->nic.rq_pbase = pmem; in nes_init_nic_qp()
1649 nesvnic->nic.rq_head = 0; in nes_init_nic_qp()
1650 nesvnic->nic.rq_tail = 0; in nes_init_nic_qp()
1651 nesvnic->nic.rq_size = NES_NIC_WQ_SIZE; in nes_init_nic_qp()
1658 nesvnic->mcrq_qp_id = nesvnic->nic_index + 32; in nes_init_nic_qp()
1660 nesvnic->mcrq_qp_id = nesvnic->nic.qp_id + 4; in nes_init_nic_qp()
1662 nesvnic->nic_cq.cq_vbase = vmem; in nes_init_nic_qp()
1663 nesvnic->nic_cq.cq_pbase = pmem; in nes_init_nic_qp()
1664 nesvnic->nic_cq.cq_head = 0; in nes_init_nic_qp()
1665 nesvnic->nic_cq.cq_size = NES_NIC_WQ_SIZE * 2; in nes_init_nic_qp()
1667 nesvnic->nic_cq.ce_handler = nes_nic_napi_ce_handler; in nes_init_nic_qp()
1678 ((u32)nesvnic->nic_cq.cq_size << 16)); in nes_init_nic_qp()
1680 nesvnic->nic_cq.cq_number | ((u32)nesdev->nic_ceq_index << 16)); in nes_init_nic_qp()
1681 u64temp = (u64)nesvnic->nic_cq.cq_pbase; in nes_init_nic_qp()
1684 u64temp = (unsigned long)&nesvnic->nic_cq; in nes_init_nic_qp()
1695 nic_context = (void *)(&nesvnic->nic_cq.cq_vbase[nesvnic->nic_cq.cq_size]); in nes_init_nic_qp()
1706 u64temp = (u64)nesvnic->nic.sq_pbase; in nes_init_nic_qp()
1709 u64temp = (u64)nesvnic->nic.rq_pbase; in nes_init_nic_qp()
1715 cqp_wqe->wqe_words[NES_CQP_WQE_ID_IDX] = cpu_to_le32(nesvnic->nic.qp_id); in nes_init_nic_qp()
1716 u64temp = (u64)nesvnic->nic_cq.cq_pbase + in nes_init_nic_qp()
1717 (nesvnic->nic_cq.cq_size * sizeof(struct nes_hw_nic_cqe)); in nes_init_nic_qp()
1731 nesvnic->nic.qp_id); in nes_init_nic_qp()
1736 nesvnic->nic.qp_id, ret); in nes_init_nic_qp()
1738 nes_debug(NES_DBG_INIT, "NIC QP%u create timeout expired\n", nesvnic->nic.qp_id); in nes_init_nic_qp()
1739 pci_free_consistent(nesdev->pcidev, nesvnic->nic_mem_size, nesvnic->nic_vbase, in nes_init_nic_qp()
1740 nesvnic->nic_pbase); in nes_init_nic_qp()
1746 skb = dev_alloc_skb(nesvnic->max_frame_size); in nes_init_nic_qp()
1750 nes_destroy_nic_qp(nesvnic); in nes_init_nic_qp()
1757 nesvnic->max_frame_size, PCI_DMA_FROMDEVICE); in nes_init_nic_qp()
1759 nic_rqe = &nesvnic->nic.rq_vbase[counter]; in nes_init_nic_qp()
1760 nic_rqe->wqe_words[NES_NIC_RQ_WQE_LENGTH_1_0_IDX] = cpu_to_le32(nesvnic->max_frame_size); in nes_init_nic_qp()
1764 nesvnic->nic.rx_skb[counter] = skb; in nes_init_nic_qp()
1768 nesvnic->nic.rq_head = wqe_count; in nes_init_nic_qp()
1773 nes_write32(nesdev->regs+NES_WQE_ALLOC, (counter << 24) | nesvnic->nic.qp_id); in nes_init_nic_qp()
1775 init_timer(&nesvnic->rq_wqes_timer); in nes_init_nic_qp()
1776 nesvnic->rq_wqes_timer.function = nes_rq_wqes_timeout; in nes_init_nic_qp()
1777 nesvnic->rq_wqes_timer.data = (unsigned long)nesvnic; in nes_init_nic_qp()
1786 nesvnic->lro_mgr.max_aggr = nes_lro_max_aggr; in nes_init_nic_qp()
1787 nesvnic->lro_mgr.max_desc = NES_MAX_LRO_DESCRIPTORS; in nes_init_nic_qp()
1788 nesvnic->lro_mgr.lro_arr = nesvnic->lro_desc; in nes_init_nic_qp()
1789 nesvnic->lro_mgr.get_skb_header = nes_lro_get_skb_hdr; in nes_init_nic_qp()
1790 nesvnic->lro_mgr.features = LRO_F_NAPI | LRO_F_EXTRACT_VLAN_ID; in nes_init_nic_qp()
1791 nesvnic->lro_mgr.dev = netdev; in nes_init_nic_qp()
1792 nesvnic->lro_mgr.ip_summed = CHECKSUM_UNNECESSARY; in nes_init_nic_qp()
1793 nesvnic->lro_mgr.ip_summed_aggr = CHECKSUM_UNNECESSARY; in nes_init_nic_qp()
1801 void nes_destroy_nic_qp(struct nes_vnic *nesvnic) in nes_destroy_nic_qp() argument
1805 struct nes_device *nesdev = nesvnic->nesdev; in nes_destroy_nic_qp()
1817 while (nesvnic->nic.rq_head != nesvnic->nic.rq_tail) { in nes_destroy_nic_qp()
1818 nic_rqe = &nesvnic->nic.rq_vbase[nesvnic->nic.rq_tail]; in nes_destroy_nic_qp()
1824 nesvnic->max_frame_size, PCI_DMA_FROMDEVICE); in nes_destroy_nic_qp()
1825 dev_kfree_skb(nesvnic->nic.rx_skb[nesvnic->nic.rq_tail++]); in nes_destroy_nic_qp()
1826 nesvnic->nic.rq_tail &= (nesvnic->nic.rq_size - 1); in nes_destroy_nic_qp()
1830 while (nesvnic->nic.sq_head != nesvnic->nic.sq_tail) { in nes_destroy_nic_qp()
1831 nic_sqe = &nesvnic->nic.sq_vbase[nesvnic->nic.sq_tail]; in nes_destroy_nic_qp()
1845 if (test_and_clear_bit(nesvnic->nic.sq_tail, in nes_destroy_nic_qp()
1846 nesvnic->nic.first_frag_overflow)) { in nes_destroy_nic_qp()
1874 if (nesvnic->nic.tx_skb[nesvnic->nic.sq_tail]) in nes_destroy_nic_qp()
1876 nesvnic->nic.tx_skb[nesvnic->nic.sq_tail]); in nes_destroy_nic_qp()
1878 nesvnic->nic.sq_tail = (++nesvnic->nic.sq_tail) in nes_destroy_nic_qp()
1879 & (nesvnic->nic.sq_size - 1); in nes_destroy_nic_qp()
1892 nesvnic->nic.qp_id); in nes_destroy_nic_qp()
1902 (NES_CQP_DESTROY_CQ | ((u32)nesvnic->nic_cq.cq_size << 16))); in nes_destroy_nic_qp()
1904 (nesvnic->nic_cq.cq_number | ((u32)nesdev->nic_ceq_index << 16))); in nes_destroy_nic_qp()
1929 nesvnic->nic.qp_id); in nes_destroy_nic_qp()
1932 pci_free_consistent(nesdev->pcidev, nesvnic->nic_mem_size, nesvnic->nic_vbase, in nes_destroy_nic_qp()
1933 nesvnic->nic_pbase); in nes_destroy_nic_qp()
2345 struct nes_vnic *nesvnic; in nes_process_mac_intr() local
2506 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_process_mac_intr()
2508 nesvnic->linkup); in nes_process_mac_intr()
2509 if (nesvnic->linkup == 0) { in nes_process_mac_intr()
2511 nesvnic->netdev->name, nesvnic->netdev); in nes_process_mac_intr()
2512 if (netif_queue_stopped(nesvnic->netdev)) in nes_process_mac_intr()
2513 netif_start_queue(nesvnic->netdev); in nes_process_mac_intr()
2514 nesvnic->linkup = 1; in nes_process_mac_intr()
2515 netif_carrier_on(nesvnic->netdev); in nes_process_mac_intr()
2520 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_process_mac_intr()
2522 nesvnic->linkup); in nes_process_mac_intr()
2523 if (nesvnic->linkup == 1) { in nes_process_mac_intr()
2525 nesvnic->netdev->name, nesvnic->netdev); in nes_process_mac_intr()
2526 if (!(netif_queue_stopped(nesvnic->netdev))) in nes_process_mac_intr()
2527 netif_stop_queue(nesvnic->netdev); in nes_process_mac_intr()
2528 nesvnic->linkup = 0; in nes_process_mac_intr()
2529 netif_carrier_off(nesvnic->netdev); in nes_process_mac_intr()
2542 struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq); in nes_nic_napi_ce_handler() local
2544 netif_rx_schedule(&nesvnic->napi); in nes_nic_napi_ce_handler()
2561 struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq); in nes_nic_ce_handler() local
2584 if (nesvnic->netdev->features & NETIF_F_LRO) in nes_nic_ce_handler()
2589 nesnic = &nesvnic->nic; in nes_nic_ce_handler()
2633 if (netif_queue_stopped(nesvnic->netdev)) in nes_nic_ce_handler()
2634 netif_wake_queue(nesvnic->netdev); in nes_nic_ce_handler()
2646 nic_rqe = &nesnic->rq_vbase[nesvnic->nic.rq_tail]; in nes_nic_ce_handler()
2650 nesvnic->max_frame_size, PCI_DMA_FROMDEVICE); in nes_nic_ce_handler()
2655 rx_skb->protocol = eth_type_trans(rx_skb, nesvnic->netdev); in nes_nic_ce_handler()
2659 atomic_inc(&nesvnic->rx_skbs_needed); in nes_nic_ce_handler()
2660 if (atomic_read(&nesvnic->rx_skbs_needed) > (nesvnic->nic.rq_size>>1)) { in nes_nic_ce_handler()
2666 nes_replenish_nic_rq(nesvnic); in nes_nic_ce_handler()
2677 if (nesvnic->rx_checksum_disabled == 0) { in nes_nic_ce_handler()
2683 nesvnic->netdev->name, cqe_errv, pkt_type); in nes_nic_ce_handler()
2689 if (nesvnic->rx_checksum_disabled == 0) { in nes_nic_ce_handler()
2697 nesvnic->netdev->name, cqe_errv, pkt_type); in nes_nic_ce_handler()
2703 if (nes_cm_recv(rx_skb, nesvnic->netdev)) in nes_nic_ce_handler()
2711 (nesvnic->vlan_grp != NULL)) { in nes_nic_ce_handler()
2716 nesvnic->netdev->name, vlan_tag); in nes_nic_ce_handler()
2718 lro_vlan_hwaccel_receive_skb(&nesvnic->lro_mgr, rx_skb, in nes_nic_ce_handler()
2719 nesvnic->vlan_grp, vlan_tag, NULL); in nes_nic_ce_handler()
2721 nes_vlan_rx(rx_skb, nesvnic->vlan_grp, vlan_tag); in nes_nic_ce_handler()
2724 lro_receive_skb(&nesvnic->lro_mgr, rx_skb, NULL); in nes_nic_ce_handler()
2730 nesvnic->netdev->last_rx = jiffies; in nes_nic_ce_handler()
2749 if (cq->rx_cqes_completed >= nesvnic->budget) in nes_nic_ce_handler()
2759 lro_flush_all(&nesvnic->lro_mgr); in nes_nic_ce_handler()
2763 if (netif_queue_stopped(nesvnic->netdev)) in nes_nic_ce_handler()
2764 netif_wake_queue(nesvnic->netdev); in nes_nic_ce_handler()
2776 if (atomic_read(&nesvnic->rx_skbs_needed)) in nes_nic_ce_handler()
2777 nes_replenish_nic_rq(nesvnic); in nes_nic_ce_handler()
3249 int nes_manage_apbvt(struct nes_vnic *nesvnic, u32 accel_local_port, in nes_manage_apbvt() argument
3252 struct nes_device *nesdev = nesvnic->nesdev; in nes_manage_apbvt()
3307 struct nes_vnic *nesvnic = netdev_priv(netdev); in nes_manage_arp_cache() local
3312 nesdev = nesvnic->nesdev; in nes_manage_arp_cache()