• Home
  • Raw
  • Download

Lines Matching refs:nesvnic

1557 static void nes_replenish_nic_rq(struct nes_vnic *nesvnic)  in nes_replenish_nic_rq()  argument
1568 nesnic = &nesvnic->nic; in nes_replenish_nic_rq()
1569 nesdev = nesvnic->nesdev; in nes_replenish_nic_rq()
1572 if (((nesnic->rq_size-1) == atomic_read(&nesvnic->rx_skbs_needed)) && in nes_replenish_nic_rq()
1573 (atomic_read(&nesvnic->rx_skb_timer_running) == 0)) { in nes_replenish_nic_rq()
1574 atomic_set(&nesvnic->rx_skb_timer_running, 1); in nes_replenish_nic_rq()
1576 nesvnic->rq_wqes_timer.expires = jiffies + (HZ/2); /* 1/2 second */ in nes_replenish_nic_rq()
1577 add_timer(&nesvnic->rq_wqes_timer); in nes_replenish_nic_rq()
1585 skb = dev_alloc_skb(nesvnic->max_frame_size); in nes_replenish_nic_rq()
1587 skb->dev = nesvnic->netdev; in nes_replenish_nic_rq()
1590 skb->data, nesvnic->max_frame_size, PCI_DMA_FROMDEVICE); in nes_replenish_nic_rq()
1593 cb->maplen = nesvnic->max_frame_size; in nes_replenish_nic_rq()
1595 nic_rqe = &nesnic->rq_vbase[nesvnic->nic.rq_head]; in nes_replenish_nic_rq()
1597 cpu_to_le32(nesvnic->max_frame_size); in nes_replenish_nic_rq()
1606 atomic_dec(&nesvnic->rx_skbs_needed); in nes_replenish_nic_rq()
1614 if (((nesnic->rq_size-1) == atomic_read(&nesvnic->rx_skbs_needed)) && in nes_replenish_nic_rq()
1615 (atomic_read(&nesvnic->rx_skb_timer_running) == 0)) { in nes_replenish_nic_rq()
1616 atomic_set(&nesvnic->rx_skb_timer_running, 1); in nes_replenish_nic_rq()
1618 nesvnic->rq_wqes_timer.expires = jiffies + (HZ/2); /* 1/2 second */ in nes_replenish_nic_rq()
1619 add_timer(&nesvnic->rq_wqes_timer); in nes_replenish_nic_rq()
1624 } while (atomic_read(&nesvnic->rx_skbs_needed)); in nes_replenish_nic_rq()
1637 struct nes_vnic *nesvnic = (struct nes_vnic *)parm; in nes_rq_wqes_timeout() local
1639 atomic_set(&nesvnic->rx_skb_timer_running, 0); in nes_rq_wqes_timeout()
1640 if (atomic_read(&nesvnic->rx_skbs_needed)) in nes_rq_wqes_timeout()
1641 nes_replenish_nic_rq(nesvnic); in nes_rq_wqes_timeout()
1674 struct nes_vnic *nesvnic = netdev_priv(netdev); in nes_init_nic_qp() local
1687 nesvnic->nic_mem_size = 256 + in nes_init_nic_qp()
1694 nesvnic->nic_vbase = pci_zalloc_consistent(nesdev->pcidev, in nes_init_nic_qp()
1695 nesvnic->nic_mem_size, in nes_init_nic_qp()
1696 &nesvnic->nic_pbase); in nes_init_nic_qp()
1697 if (!nesvnic->nic_vbase) { in nes_init_nic_qp()
1702 nesvnic->nic_vbase, (unsigned long)nesvnic->nic_pbase, nesvnic->nic_mem_size); in nes_init_nic_qp()
1704 vmem = (void *)(((unsigned long)nesvnic->nic_vbase + (256 - 1)) & in nes_init_nic_qp()
1706 pmem = (dma_addr_t)(((unsigned long long)nesvnic->nic_pbase + (256 - 1)) & in nes_init_nic_qp()
1710 nesvnic->nic.first_frag_vbase = vmem; in nes_init_nic_qp()
1713 nesvnic->nic.frag_paddr[counter] = pmem; in nes_init_nic_qp()
1720 nesvnic->nic.sq_vbase = (void *)vmem; in nes_init_nic_qp()
1721 nesvnic->nic.sq_pbase = pmem; in nes_init_nic_qp()
1722 nesvnic->nic.sq_head = 0; in nes_init_nic_qp()
1723 nesvnic->nic.sq_tail = 0; in nes_init_nic_qp()
1724 nesvnic->nic.sq_size = NES_NIC_WQ_SIZE; in nes_init_nic_qp()
1726 nic_sqe = &nesvnic->nic.sq_vbase[counter]; in nes_init_nic_qp()
1733 cpu_to_le32((u32)nesvnic->nic.frag_paddr[counter]); in nes_init_nic_qp()
1735 cpu_to_le32((u32)((u64)nesvnic->nic.frag_paddr[counter] >> 32)); in nes_init_nic_qp()
1738 nesvnic->get_cqp_request = nes_get_cqp_request; in nes_init_nic_qp()
1739 nesvnic->post_cqp_request = nes_post_cqp_request; in nes_init_nic_qp()
1740 nesvnic->mcrq_mcast_filter = NULL; in nes_init_nic_qp()
1742 spin_lock_init(&nesvnic->nic.rq_lock); in nes_init_nic_qp()
1749 nesvnic->nic.rq_vbase = vmem; in nes_init_nic_qp()
1750 nesvnic->nic.rq_pbase = pmem; in nes_init_nic_qp()
1751 nesvnic->nic.rq_head = 0; in nes_init_nic_qp()
1752 nesvnic->nic.rq_tail = 0; in nes_init_nic_qp()
1753 nesvnic->nic.rq_size = NES_NIC_WQ_SIZE; in nes_init_nic_qp()
1760 nesvnic->mcrq_qp_id = nesvnic->nic_index + 32; in nes_init_nic_qp()
1762 nesvnic->mcrq_qp_id = nesvnic->nic.qp_id + 4; in nes_init_nic_qp()
1764 nesvnic->nic_cq.cq_vbase = vmem; in nes_init_nic_qp()
1765 nesvnic->nic_cq.cq_pbase = pmem; in nes_init_nic_qp()
1766 nesvnic->nic_cq.cq_head = 0; in nes_init_nic_qp()
1767 nesvnic->nic_cq.cq_size = NES_NIC_WQ_SIZE * 2; in nes_init_nic_qp()
1769 nesvnic->nic_cq.ce_handler = nes_nic_napi_ce_handler; in nes_init_nic_qp()
1780 ((u32)nesvnic->nic_cq.cq_size << 16)); in nes_init_nic_qp()
1782 nesvnic->nic_cq.cq_number | ((u32)nesdev->nic_ceq_index << 16)); in nes_init_nic_qp()
1783 u64temp = (u64)nesvnic->nic_cq.cq_pbase; in nes_init_nic_qp()
1786 u64temp = (unsigned long)&nesvnic->nic_cq; in nes_init_nic_qp()
1797 nic_context = (void *)(&nesvnic->nic_cq.cq_vbase[nesvnic->nic_cq.cq_size]); in nes_init_nic_qp()
1808 u64temp = (u64)nesvnic->nic.sq_pbase; in nes_init_nic_qp()
1811 u64temp = (u64)nesvnic->nic.rq_pbase; in nes_init_nic_qp()
1817 cqp_wqe->wqe_words[NES_CQP_WQE_ID_IDX] = cpu_to_le32(nesvnic->nic.qp_id); in nes_init_nic_qp()
1818 u64temp = (u64)nesvnic->nic_cq.cq_pbase + in nes_init_nic_qp()
1819 (nesvnic->nic_cq.cq_size * sizeof(struct nes_hw_nic_cqe)); in nes_init_nic_qp()
1833 nesvnic->nic.qp_id); in nes_init_nic_qp()
1838 nesvnic->nic.qp_id, ret); in nes_init_nic_qp()
1840 nes_debug(NES_DBG_INIT, "NIC QP%u create timeout expired\n", nesvnic->nic.qp_id); in nes_init_nic_qp()
1841 pci_free_consistent(nesdev->pcidev, nesvnic->nic_mem_size, nesvnic->nic_vbase, in nes_init_nic_qp()
1842 nesvnic->nic_pbase); in nes_init_nic_qp()
1848 skb = dev_alloc_skb(nesvnic->max_frame_size); in nes_init_nic_qp()
1852 nes_destroy_nic_qp(nesvnic); in nes_init_nic_qp()
1859 nesvnic->max_frame_size, PCI_DMA_FROMDEVICE); in nes_init_nic_qp()
1862 cb->maplen = nesvnic->max_frame_size; in nes_init_nic_qp()
1864 nic_rqe = &nesvnic->nic.rq_vbase[counter]; in nes_init_nic_qp()
1865 nic_rqe->wqe_words[NES_NIC_RQ_WQE_LENGTH_1_0_IDX] = cpu_to_le32(nesvnic->max_frame_size); in nes_init_nic_qp()
1869 nesvnic->nic.rx_skb[counter] = skb; in nes_init_nic_qp()
1873 nesvnic->nic.rq_head = wqe_count; in nes_init_nic_qp()
1878 nes_write32(nesdev->regs+NES_WQE_ALLOC, (counter << 24) | nesvnic->nic.qp_id); in nes_init_nic_qp()
1880 init_timer(&nesvnic->rq_wqes_timer); in nes_init_nic_qp()
1881 nesvnic->rq_wqes_timer.function = nes_rq_wqes_timeout; in nes_init_nic_qp()
1882 nesvnic->rq_wqes_timer.data = (unsigned long)nesvnic; in nes_init_nic_qp()
1892 (nes_init_mgt_qp(nesdev, netdev, nesvnic))) { in nes_init_nic_qp()
1894 nes_destroy_nic_qp(nesvnic); in nes_init_nic_qp()
1898 nesvnic->lro_mgr.max_aggr = nes_lro_max_aggr; in nes_init_nic_qp()
1899 nesvnic->lro_mgr.max_desc = NES_MAX_LRO_DESCRIPTORS; in nes_init_nic_qp()
1900 nesvnic->lro_mgr.lro_arr = nesvnic->lro_desc; in nes_init_nic_qp()
1901 nesvnic->lro_mgr.get_skb_header = nes_lro_get_skb_hdr; in nes_init_nic_qp()
1902 nesvnic->lro_mgr.features = LRO_F_NAPI | LRO_F_EXTRACT_VLAN_ID; in nes_init_nic_qp()
1903 nesvnic->lro_mgr.dev = netdev; in nes_init_nic_qp()
1904 nesvnic->lro_mgr.ip_summed = CHECKSUM_UNNECESSARY; in nes_init_nic_qp()
1905 nesvnic->lro_mgr.ip_summed_aggr = CHECKSUM_UNNECESSARY; in nes_init_nic_qp()
1913 void nes_destroy_nic_qp(struct nes_vnic *nesvnic) in nes_destroy_nic_qp() argument
1917 struct nes_device *nesdev = nesvnic->nesdev; in nes_destroy_nic_qp()
1930 nes_destroy_mgt(nesvnic); in nes_destroy_nic_qp()
1937 while (nesvnic->nic.rq_head != nesvnic->nic.rq_tail) { in nes_destroy_nic_qp()
1938 rx_skb = nesvnic->nic.rx_skb[nesvnic->nic.rq_tail]; in nes_destroy_nic_qp()
1943 dev_kfree_skb(nesvnic->nic.rx_skb[nesvnic->nic.rq_tail++]); in nes_destroy_nic_qp()
1944 nesvnic->nic.rq_tail &= (nesvnic->nic.rq_size - 1); in nes_destroy_nic_qp()
1948 while (nesvnic->nic.sq_head != nesvnic->nic.sq_tail) { in nes_destroy_nic_qp()
1949 nic_sqe = &nesvnic->nic.sq_vbase[nesvnic->nic.sq_tail]; in nes_destroy_nic_qp()
1963 if (test_and_clear_bit(nesvnic->nic.sq_tail, in nes_destroy_nic_qp()
1964 nesvnic->nic.first_frag_overflow)) { in nes_destroy_nic_qp()
1992 if (nesvnic->nic.tx_skb[nesvnic->nic.sq_tail]) in nes_destroy_nic_qp()
1994 nesvnic->nic.tx_skb[nesvnic->nic.sq_tail]); in nes_destroy_nic_qp()
1996 nesvnic->nic.sq_tail = (nesvnic->nic.sq_tail + 1) in nes_destroy_nic_qp()
1997 & (nesvnic->nic.sq_size - 1); in nes_destroy_nic_qp()
2010 nesvnic->nic.qp_id); in nes_destroy_nic_qp()
2020 (NES_CQP_DESTROY_CQ | ((u32)nesvnic->nic_cq.cq_size << 16))); in nes_destroy_nic_qp()
2022 (nesvnic->nic_cq.cq_number | ((u32)nesdev->nic_ceq_index << 16))); in nes_destroy_nic_qp()
2047 nesvnic->nic.qp_id); in nes_destroy_nic_qp()
2050 pci_free_consistent(nesdev->pcidev, nesvnic->nic_mem_size, nesvnic->nic_vbase, in nes_destroy_nic_qp()
2051 nesvnic->nic_pbase); in nes_destroy_nic_qp()
2468 struct nes_vnic *nesvnic; in nes_process_mac_intr() local
2624 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_process_mac_intr()
2626 nesvnic->linkup); in nes_process_mac_intr()
2627 if (nesvnic->linkup == 0) { in nes_process_mac_intr()
2629 nesvnic->netdev->name, nesvnic->netdev); in nes_process_mac_intr()
2630 if (netif_queue_stopped(nesvnic->netdev)) in nes_process_mac_intr()
2631 netif_start_queue(nesvnic->netdev); in nes_process_mac_intr()
2632 nesvnic->linkup = 1; in nes_process_mac_intr()
2633 netif_carrier_on(nesvnic->netdev); in nes_process_mac_intr()
2635 spin_lock(&nesvnic->port_ibevent_lock); in nes_process_mac_intr()
2636 if (nesvnic->of_device_registered) { in nes_process_mac_intr()
2639 nes_port_ibevent(nesvnic); in nes_process_mac_intr()
2642 spin_unlock(&nesvnic->port_ibevent_lock); in nes_process_mac_intr()
2658 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_process_mac_intr()
2660 nesvnic->linkup); in nes_process_mac_intr()
2661 if (nesvnic->linkup == 1) { in nes_process_mac_intr()
2663 nesvnic->netdev->name, nesvnic->netdev); in nes_process_mac_intr()
2664 if (!(netif_queue_stopped(nesvnic->netdev))) in nes_process_mac_intr()
2665 netif_stop_queue(nesvnic->netdev); in nes_process_mac_intr()
2666 nesvnic->linkup = 0; in nes_process_mac_intr()
2667 netif_carrier_off(nesvnic->netdev); in nes_process_mac_intr()
2669 spin_lock(&nesvnic->port_ibevent_lock); in nes_process_mac_intr()
2670 if (nesvnic->of_device_registered) { in nes_process_mac_intr()
2673 nes_port_ibevent(nesvnic); in nes_process_mac_intr()
2676 spin_unlock(&nesvnic->port_ibevent_lock); in nes_process_mac_intr()
2697 struct nes_vnic *nesvnic; in nes_recheck_link_status() local
2721 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_recheck_link_status()
2722 if (nesvnic->linkup == 0) { in nes_recheck_link_status()
2724 nesvnic->netdev->name, nesvnic->netdev); in nes_recheck_link_status()
2725 if (netif_queue_stopped(nesvnic->netdev)) in nes_recheck_link_status()
2726 netif_start_queue(nesvnic->netdev); in nes_recheck_link_status()
2727 nesvnic->linkup = 1; in nes_recheck_link_status()
2728 netif_carrier_on(nesvnic->netdev); in nes_recheck_link_status()
2730 spin_lock(&nesvnic->port_ibevent_lock); in nes_recheck_link_status()
2731 if (nesvnic->of_device_registered) { in nes_recheck_link_status()
2734 nes_port_ibevent(nesvnic); in nes_recheck_link_status()
2737 spin_unlock(&nesvnic->port_ibevent_lock); in nes_recheck_link_status()
2743 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_recheck_link_status()
2744 if (nesvnic->linkup == 1) { in nes_recheck_link_status()
2746 nesvnic->netdev->name, nesvnic->netdev); in nes_recheck_link_status()
2747 if (!(netif_queue_stopped(nesvnic->netdev))) in nes_recheck_link_status()
2748 netif_stop_queue(nesvnic->netdev); in nes_recheck_link_status()
2749 nesvnic->linkup = 0; in nes_recheck_link_status()
2750 netif_carrier_off(nesvnic->netdev); in nes_recheck_link_status()
2752 spin_lock(&nesvnic->port_ibevent_lock); in nes_recheck_link_status()
2753 if (nesvnic->of_device_registered) { in nes_recheck_link_status()
2756 nes_port_ibevent(nesvnic); in nes_recheck_link_status()
2759 spin_unlock(&nesvnic->port_ibevent_lock); in nes_recheck_link_status()
2774 struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq); in nes_nic_napi_ce_handler() local
2776 napi_schedule(&nesvnic->napi); in nes_nic_napi_ce_handler()
2793 struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq); in nes_nic_ce_handler() local
2817 if (nesvnic->netdev->features & NETIF_F_LRO) in nes_nic_ce_handler()
2822 nesnic = &nesvnic->nic; in nes_nic_ce_handler()
2866 if (netif_queue_stopped(nesvnic->netdev)) in nes_nic_ce_handler()
2867 netif_wake_queue(nesvnic->netdev); in nes_nic_ce_handler()
2879 nic_rqe = &nesnic->rq_vbase[nesvnic->nic.rq_tail]; in nes_nic_ce_handler()
2883 nesvnic->max_frame_size, PCI_DMA_FROMDEVICE); in nes_nic_ce_handler()
2890 rx_skb->protocol = eth_type_trans(rx_skb, nesvnic->netdev); in nes_nic_ce_handler()
2894 atomic_inc(&nesvnic->rx_skbs_needed); in nes_nic_ce_handler()
2895 if (atomic_read(&nesvnic->rx_skbs_needed) > (nesvnic->nic.rq_size>>1)) { in nes_nic_ce_handler()
2901 nes_replenish_nic_rq(nesvnic); in nes_nic_ce_handler()
2912 if (nesvnic->netdev->features & NETIF_F_RXCSUM) in nes_nic_ce_handler()
2917 nesvnic->netdev->name, cqe_errv, pkt_type); in nes_nic_ce_handler()
2923 if (nesvnic->netdev->features & NETIF_F_RXCSUM) { in nes_nic_ce_handler()
2931 nesvnic->netdev->name, cqe_errv, pkt_type); in nes_nic_ce_handler()
2937 if (nes_cm_recv(rx_skb, nesvnic->netdev)) in nes_nic_ce_handler()
2949 nesvnic->netdev->name, vlan_tag); in nes_nic_ce_handler()
2954 lro_receive_skb(&nesvnic->lro_mgr, rx_skb, NULL); in nes_nic_ce_handler()
2978 if (cq->rx_cqes_completed >= nesvnic->budget) in nes_nic_ce_handler()
2988 lro_flush_all(&nesvnic->lro_mgr); in nes_nic_ce_handler()
2992 if (netif_queue_stopped(nesvnic->netdev)) in nes_nic_ce_handler()
2993 netif_wake_queue(nesvnic->netdev); in nes_nic_ce_handler()
3005 if (atomic_read(&nesvnic->rx_skbs_needed)) in nes_nic_ce_handler()
3006 nes_replenish_nic_rq(nesvnic); in nes_nic_ce_handler()
3449 struct nes_vnic *nesvnic = to_nesvnic(nesqp->ibqp.device); in nes_terminate_done() local
3450 struct nes_device *nesdev = nesvnic->nesdev; in nes_terminate_done()
3773 int nes_manage_apbvt(struct nes_vnic *nesvnic, u32 accel_local_port, in nes_manage_apbvt() argument
3776 struct nes_device *nesdev = nesvnic->nesdev; in nes_manage_apbvt()
3831 struct nes_vnic *nesvnic = netdev_priv(netdev); in nes_manage_arp_cache() local
3836 nesdev = nesvnic->nesdev; in nes_manage_arp_cache()