Lines Matching refs:rx
444 struct rx { struct
445 struct rx *next, *prev; argument
572 struct rx *rxs ____cacheline_aligned;
573 struct rx *rx_to_use;
574 struct rx *rx_to_clean;
1934 static inline void e100_start_receiver(struct nic *nic, struct rx *rx) in e100_start_receiver() argument
1940 if (!rx) rx = nic->rxs; in e100_start_receiver()
1943 if (rx->skb) { in e100_start_receiver()
1944 e100_exec_cmd(nic, ruc_start, rx->dma_addr); in e100_start_receiver()
1950 static int e100_rx_alloc_skb(struct nic *nic, struct rx *rx) in e100_rx_alloc_skb() argument
1952 if (!(rx->skb = netdev_alloc_skb_ip_align(nic->netdev, RFD_BUF_LEN))) in e100_rx_alloc_skb()
1956 skb_copy_to_linear_data(rx->skb, &nic->blank_rfd, sizeof(struct rfd)); in e100_rx_alloc_skb()
1957 rx->dma_addr = pci_map_single(nic->pdev, rx->skb->data, in e100_rx_alloc_skb()
1960 if (pci_dma_mapping_error(nic->pdev, rx->dma_addr)) { in e100_rx_alloc_skb()
1961 dev_kfree_skb_any(rx->skb); in e100_rx_alloc_skb()
1962 rx->skb = NULL; in e100_rx_alloc_skb()
1963 rx->dma_addr = 0; in e100_rx_alloc_skb()
1970 if (rx->prev->skb) { in e100_rx_alloc_skb()
1971 struct rfd *prev_rfd = (struct rfd *)rx->prev->skb->data; in e100_rx_alloc_skb()
1972 put_unaligned_le32(rx->dma_addr, &prev_rfd->link); in e100_rx_alloc_skb()
1973 pci_dma_sync_single_for_device(nic->pdev, rx->prev->dma_addr, in e100_rx_alloc_skb()
1980 static int e100_rx_indicate(struct nic *nic, struct rx *rx, in e100_rx_indicate() argument
1984 struct sk_buff *skb = rx->skb; in e100_rx_indicate()
1993 pci_dma_sync_single_for_cpu(nic->pdev, rx->dma_addr, in e100_rx_indicate()
2013 pci_dma_sync_single_for_device(nic->pdev, rx->dma_addr, in e100_rx_indicate()
2027 pci_unmap_single(nic->pdev, rx->dma_addr, in e100_rx_indicate()
2074 rx->skb = NULL; in e100_rx_indicate()
2082 struct rx *rx; in e100_rx_clean() local
2084 struct rx *old_before_last_rx, *new_before_last_rx; in e100_rx_clean()
2088 for (rx = nic->rx_to_clean; rx->skb; rx = nic->rx_to_clean = rx->next) { in e100_rx_clean()
2089 err = e100_rx_indicate(nic, rx, work_done, work_to_do); in e100_rx_clean()
2109 for (rx = nic->rx_to_use; !rx->skb; rx = nic->rx_to_use = rx->next) { in e100_rx_clean()
2110 if (unlikely(e100_rx_alloc_skb(nic, rx))) in e100_rx_clean()
2158 struct rx *rx; in e100_rx_clean_list() local
2164 for (rx = nic->rxs, i = 0; i < count; rx++, i++) { in e100_rx_clean_list()
2165 if (rx->skb) { in e100_rx_clean_list()
2166 pci_unmap_single(nic->pdev, rx->dma_addr, in e100_rx_clean_list()
2168 dev_kfree_skb(rx->skb); in e100_rx_clean_list()
2180 struct rx *rx; in e100_rx_alloc_list() local
2187 if (!(nic->rxs = kcalloc(count, sizeof(struct rx), GFP_ATOMIC))) in e100_rx_alloc_list()
2190 for (rx = nic->rxs, i = 0; i < count; rx++, i++) { in e100_rx_alloc_list()
2191 rx->next = (i + 1 < count) ? rx + 1 : nic->rxs; in e100_rx_alloc_list()
2192 rx->prev = (i == 0) ? nic->rxs + count - 1 : rx - 1; in e100_rx_alloc_list()
2193 if (e100_rx_alloc_skb(nic, rx)) { in e100_rx_alloc_list()
2205 rx = nic->rxs->prev->prev; in e100_rx_alloc_list()
2206 before_last = (struct rfd *)rx->skb->data; in e100_rx_alloc_list()
2209 pci_dma_sync_single_for_device(nic->pdev, rx->dma_addr, in e100_rx_alloc_list()