• Home
  • Raw
  • Download

Lines Matching refs:ss

200 	struct myri10ge_slice_state *ss;  member
902 struct myri10ge_slice_state *ss; in myri10ge_reset() local
930 bytes = mgp->max_intr_slots * sizeof(*mgp->ss[0].rx_done.entry); in myri10ge_reset()
987 ss = &mgp->ss[i]; in myri10ge_reset()
988 cmd.data0 = MYRI10GE_LOWPART_TO_U32(ss->rx_done.bus); in myri10ge_reset()
989 cmd.data1 = MYRI10GE_HIGHPART_TO_U32(ss->rx_done.bus); in myri10ge_reset()
998 ss = &mgp->ss[i]; in myri10ge_reset()
999 ss->irq_claim = in myri10ge_reset()
1019 ss = &mgp->ss[i]; in myri10ge_reset()
1021 ss->dca_tag = (__iomem __be32 *) in myri10ge_reset()
1024 ss->dca_tag = NULL; in myri10ge_reset()
1033 ss = &mgp->ss[i]; in myri10ge_reset()
1035 memset(ss->rx_done.entry, 0, bytes); in myri10ge_reset()
1036 ss->tx.req = 0; in myri10ge_reset()
1037 ss->tx.done = 0; in myri10ge_reset()
1038 ss->tx.pkt_start = 0; in myri10ge_reset()
1039 ss->tx.pkt_done = 0; in myri10ge_reset()
1040 ss->rx_big.cnt = 0; in myri10ge_reset()
1041 ss->rx_small.cnt = 0; in myri10ge_reset()
1042 ss->rx_done.idx = 0; in myri10ge_reset()
1043 ss->rx_done.cnt = 0; in myri10ge_reset()
1044 ss->tx.wake_queue = 0; in myri10ge_reset()
1045 ss->tx.stop_queue = 0; in myri10ge_reset()
1056 myri10ge_write_dca(struct myri10ge_slice_state *ss, int cpu, int tag) in myri10ge_write_dca() argument
1058 ss->cpu = cpu; in myri10ge_write_dca()
1059 ss->cached_dca_tag = tag; in myri10ge_write_dca()
1060 put_be32(htonl(tag), ss->dca_tag); in myri10ge_write_dca()
1063 static inline void myri10ge_update_dca(struct myri10ge_slice_state *ss) in myri10ge_update_dca() argument
1068 if (cpu != ss->cpu) { in myri10ge_update_dca()
1070 if (ss->cached_dca_tag != tag) in myri10ge_update_dca()
1071 myri10ge_write_dca(ss, cpu, tag); in myri10ge_update_dca()
1081 if (mgp->ss[0].dca_tag == NULL || mgp->dca_enabled) in myri10ge_setup_dca()
1096 myri10ge_write_dca(&mgp->ss[i], -1, 0); in myri10ge_setup_dca()
1264 myri10ge_rx_done(struct myri10ge_slice_state *ss, struct myri10ge_rx_buf *rx, in myri10ge_rx_done() argument
1267 struct myri10ge_priv *mgp = ss->mgp; in myri10ge_rx_done()
1297 lro_receive_frags(&ss->rx_done.lro_mgr, rx_frags, in myri10ge_rx_done()
1312 ss->stats.rx_dropped++; in myri10ge_rx_done()
1341 myri10ge_tx_done(struct myri10ge_slice_state *ss, int mcp_index) in myri10ge_tx_done() argument
1343 struct pci_dev *pdev = ss->mgp->pdev; in myri10ge_tx_done()
1344 struct myri10ge_tx_buf *tx = &ss->tx; in myri10ge_tx_done()
1363 ss->stats.tx_bytes += skb->len; in myri10ge_tx_done()
1364 ss->stats.tx_packets++; in myri10ge_tx_done()
1380 dev_queue = netdev_get_tx_queue(ss->dev, ss - ss->mgp->ss); in myri10ge_tx_done()
1390 if ((ss->mgp->dev->real_num_tx_queues > 1) && in myri10ge_tx_done()
1410 myri10ge_clean_rx_done(struct myri10ge_slice_state *ss, int budget) in myri10ge_clean_rx_done() argument
1412 struct myri10ge_rx_done *rx_done = &ss->rx_done; in myri10ge_clean_rx_done()
1413 struct myri10ge_priv *mgp = ss->mgp; in myri10ge_clean_rx_done()
1429 rx_ok = myri10ge_rx_done(ss, &ss->rx_small, in myri10ge_clean_rx_done()
1433 rx_ok = myri10ge_rx_done(ss, &ss->rx_big, in myri10ge_clean_rx_done()
1444 ss->stats.rx_packets += rx_packets; in myri10ge_clean_rx_done()
1445 ss->stats.rx_bytes += rx_bytes; in myri10ge_clean_rx_done()
1451 if (ss->rx_small.fill_cnt - ss->rx_small.cnt < myri10ge_fill_thresh) in myri10ge_clean_rx_done()
1452 myri10ge_alloc_rx_pages(mgp, &ss->rx_small, in myri10ge_clean_rx_done()
1454 if (ss->rx_big.fill_cnt - ss->rx_big.cnt < myri10ge_fill_thresh) in myri10ge_clean_rx_done()
1455 myri10ge_alloc_rx_pages(mgp, &ss->rx_big, mgp->big_bytes, 0); in myri10ge_clean_rx_done()
1462 struct mcp_irq_data *stats = mgp->ss[0].fw_stats; in myri10ge_check_statblock()
1504 struct myri10ge_slice_state *ss = in myri10ge_poll() local
1509 if (ss->mgp->dca_enabled) in myri10ge_poll()
1510 myri10ge_update_dca(ss); in myri10ge_poll()
1514 work_done = myri10ge_clean_rx_done(ss, budget); in myri10ge_poll()
1518 put_be32(htonl(3), ss->irq_claim); in myri10ge_poll()
1525 struct myri10ge_slice_state *ss = arg; in myri10ge_intr() local
1526 struct myri10ge_priv *mgp = ss->mgp; in myri10ge_intr()
1527 struct mcp_irq_data *stats = ss->fw_stats; in myri10ge_intr()
1528 struct myri10ge_tx_buf *tx = &ss->tx; in myri10ge_intr()
1534 if ((mgp->dev->real_num_tx_queues == 1) && (ss != mgp->ss)) { in myri10ge_intr()
1535 netif_rx_schedule(&ss->napi); in myri10ge_intr()
1546 netif_rx_schedule(&ss->napi); in myri10ge_intr()
1563 myri10ge_tx_done(ss, (int)send_done_count); in myri10ge_intr()
1577 if (ss == mgp->ss) in myri10ge_intr()
1580 put_be32(htonl(3), ss->irq_claim + 1); in myri10ge_intr()
1685 ring->rx_mini_max_pending = mgp->ss[0].rx_small.mask + 1; in myri10ge_get_ringparam()
1686 ring->rx_max_pending = mgp->ss[0].rx_big.mask + 1; in myri10ge_get_ringparam()
1688 ring->tx_max_pending = mgp->ss[0].rx_small.mask + 1; in myri10ge_get_ringparam()
1801 struct myri10ge_slice_state *ss; in myri10ge_get_ethtool_stats() local
1819 data[i++] = (unsigned int)(mgp->ss[0].dca_tag != NULL); in myri10ge_get_ethtool_stats()
1825 ss = &mgp->ss[0]; in myri10ge_get_ethtool_stats()
1826 data[i++] = (unsigned int)ntohl(ss->fw_stats->link_up); in myri10ge_get_ethtool_stats()
1827 data[i++] = (unsigned int)ntohl(ss->fw_stats->dropped_link_overflow); in myri10ge_get_ethtool_stats()
1829 (unsigned int)ntohl(ss->fw_stats->dropped_link_error_or_filtered); in myri10ge_get_ethtool_stats()
1830 data[i++] = (unsigned int)ntohl(ss->fw_stats->dropped_pause); in myri10ge_get_ethtool_stats()
1831 data[i++] = (unsigned int)ntohl(ss->fw_stats->dropped_bad_phy); in myri10ge_get_ethtool_stats()
1832 data[i++] = (unsigned int)ntohl(ss->fw_stats->dropped_bad_crc32); in myri10ge_get_ethtool_stats()
1833 data[i++] = (unsigned int)ntohl(ss->fw_stats->dropped_unicast_filtered); in myri10ge_get_ethtool_stats()
1835 (unsigned int)ntohl(ss->fw_stats->dropped_multicast_filtered); in myri10ge_get_ethtool_stats()
1836 data[i++] = (unsigned int)ntohl(ss->fw_stats->dropped_runt); in myri10ge_get_ethtool_stats()
1837 data[i++] = (unsigned int)ntohl(ss->fw_stats->dropped_overrun); in myri10ge_get_ethtool_stats()
1838 data[i++] = (unsigned int)ntohl(ss->fw_stats->dropped_no_small_buffer); in myri10ge_get_ethtool_stats()
1839 data[i++] = (unsigned int)ntohl(ss->fw_stats->dropped_no_big_buffer); in myri10ge_get_ethtool_stats()
1842 ss = &mgp->ss[slice]; in myri10ge_get_ethtool_stats()
1844 data[i++] = (unsigned int)ss->tx.pkt_start; in myri10ge_get_ethtool_stats()
1845 data[i++] = (unsigned int)ss->tx.pkt_done; in myri10ge_get_ethtool_stats()
1846 data[i++] = (unsigned int)ss->tx.req; in myri10ge_get_ethtool_stats()
1847 data[i++] = (unsigned int)ss->tx.done; in myri10ge_get_ethtool_stats()
1848 data[i++] = (unsigned int)ss->rx_small.cnt; in myri10ge_get_ethtool_stats()
1849 data[i++] = (unsigned int)ss->rx_big.cnt; in myri10ge_get_ethtool_stats()
1850 data[i++] = (unsigned int)ss->tx.wake_queue; in myri10ge_get_ethtool_stats()
1851 data[i++] = (unsigned int)ss->tx.stop_queue; in myri10ge_get_ethtool_stats()
1852 data[i++] = (unsigned int)ss->tx.linearized; in myri10ge_get_ethtool_stats()
1853 data[i++] = ss->rx_done.lro_mgr.stats.aggregated; in myri10ge_get_ethtool_stats()
1854 data[i++] = ss->rx_done.lro_mgr.stats.flushed; in myri10ge_get_ethtool_stats()
1855 if (ss->rx_done.lro_mgr.stats.flushed) in myri10ge_get_ethtool_stats()
1856 data[i++] = ss->rx_done.lro_mgr.stats.aggregated / in myri10ge_get_ethtool_stats()
1857 ss->rx_done.lro_mgr.stats.flushed; in myri10ge_get_ethtool_stats()
1860 data[i++] = ss->rx_done.lro_mgr.stats.no_desc; in myri10ge_get_ethtool_stats()
1897 static int myri10ge_allocate_rings(struct myri10ge_slice_state *ss) in myri10ge_allocate_rings() argument
1899 struct myri10ge_priv *mgp = ss->mgp; in myri10ge_allocate_rings()
1908 slice = ss - mgp->ss; in myri10ge_allocate_rings()
1920 ss->tx.mask = tx_ring_entries - 1; in myri10ge_allocate_rings()
1921 ss->rx_small.mask = ss->rx_big.mask = rx_ring_entries - 1; in myri10ge_allocate_rings()
1928 * sizeof(*ss->tx.req_list); in myri10ge_allocate_rings()
1929 ss->tx.req_bytes = kzalloc(bytes, GFP_KERNEL); in myri10ge_allocate_rings()
1930 if (ss->tx.req_bytes == NULL) in myri10ge_allocate_rings()
1934 ss->tx.req_list = (struct mcp_kreq_ether_send *) in myri10ge_allocate_rings()
1935 ALIGN((unsigned long)ss->tx.req_bytes, 8); in myri10ge_allocate_rings()
1936 ss->tx.queue_active = 0; in myri10ge_allocate_rings()
1938 bytes = rx_ring_entries * sizeof(*ss->rx_small.shadow); in myri10ge_allocate_rings()
1939 ss->rx_small.shadow = kzalloc(bytes, GFP_KERNEL); in myri10ge_allocate_rings()
1940 if (ss->rx_small.shadow == NULL) in myri10ge_allocate_rings()
1943 bytes = rx_ring_entries * sizeof(*ss->rx_big.shadow); in myri10ge_allocate_rings()
1944 ss->rx_big.shadow = kzalloc(bytes, GFP_KERNEL); in myri10ge_allocate_rings()
1945 if (ss->rx_big.shadow == NULL) in myri10ge_allocate_rings()
1950 bytes = tx_ring_entries * sizeof(*ss->tx.info); in myri10ge_allocate_rings()
1951 ss->tx.info = kzalloc(bytes, GFP_KERNEL); in myri10ge_allocate_rings()
1952 if (ss->tx.info == NULL) in myri10ge_allocate_rings()
1955 bytes = rx_ring_entries * sizeof(*ss->rx_small.info); in myri10ge_allocate_rings()
1956 ss->rx_small.info = kzalloc(bytes, GFP_KERNEL); in myri10ge_allocate_rings()
1957 if (ss->rx_small.info == NULL) in myri10ge_allocate_rings()
1960 bytes = rx_ring_entries * sizeof(*ss->rx_big.info); in myri10ge_allocate_rings()
1961 ss->rx_big.info = kzalloc(bytes, GFP_KERNEL); in myri10ge_allocate_rings()
1962 if (ss->rx_big.info == NULL) in myri10ge_allocate_rings()
1966 ss->rx_big.cnt = 0; in myri10ge_allocate_rings()
1967 ss->rx_small.cnt = 0; in myri10ge_allocate_rings()
1968 ss->rx_big.fill_cnt = 0; in myri10ge_allocate_rings()
1969 ss->rx_small.fill_cnt = 0; in myri10ge_allocate_rings()
1970 ss->rx_small.page_offset = MYRI10GE_ALLOC_SIZE; in myri10ge_allocate_rings()
1971 ss->rx_big.page_offset = MYRI10GE_ALLOC_SIZE; in myri10ge_allocate_rings()
1972 ss->rx_small.watchdog_needed = 0; in myri10ge_allocate_rings()
1973 ss->rx_big.watchdog_needed = 0; in myri10ge_allocate_rings()
1974 myri10ge_alloc_rx_pages(mgp, &ss->rx_small, in myri10ge_allocate_rings()
1977 if (ss->rx_small.fill_cnt < ss->rx_small.mask + 1) { in myri10ge_allocate_rings()
1980 dev->name, slice, ss->rx_small.fill_cnt); in myri10ge_allocate_rings()
1984 myri10ge_alloc_rx_pages(mgp, &ss->rx_big, mgp->big_bytes, 0); in myri10ge_allocate_rings()
1985 if (ss->rx_big.fill_cnt < ss->rx_big.mask + 1) { in myri10ge_allocate_rings()
1988 dev->name, slice, ss->rx_big.fill_cnt); in myri10ge_allocate_rings()
1995 for (i = ss->rx_big.cnt; i < ss->rx_big.fill_cnt; i++) { in myri10ge_allocate_rings()
1996 int idx = i & ss->rx_big.mask; in myri10ge_allocate_rings()
1997 myri10ge_unmap_rx_page(mgp->pdev, &ss->rx_big.info[idx], in myri10ge_allocate_rings()
1999 put_page(ss->rx_big.info[idx].page); in myri10ge_allocate_rings()
2003 for (i = ss->rx_small.cnt; i < ss->rx_small.fill_cnt; i++) { in myri10ge_allocate_rings()
2004 int idx = i & ss->rx_small.mask; in myri10ge_allocate_rings()
2005 myri10ge_unmap_rx_page(mgp->pdev, &ss->rx_small.info[idx], in myri10ge_allocate_rings()
2007 put_page(ss->rx_small.info[idx].page); in myri10ge_allocate_rings()
2010 kfree(ss->rx_big.info); in myri10ge_allocate_rings()
2013 kfree(ss->rx_small.info); in myri10ge_allocate_rings()
2016 kfree(ss->tx.info); in myri10ge_allocate_rings()
2019 kfree(ss->rx_big.shadow); in myri10ge_allocate_rings()
2022 kfree(ss->rx_small.shadow); in myri10ge_allocate_rings()
2025 kfree(ss->tx.req_bytes); in myri10ge_allocate_rings()
2026 ss->tx.req_bytes = NULL; in myri10ge_allocate_rings()
2027 ss->tx.req_list = NULL; in myri10ge_allocate_rings()
2033 static void myri10ge_free_rings(struct myri10ge_slice_state *ss) in myri10ge_free_rings() argument
2035 struct myri10ge_priv *mgp = ss->mgp; in myri10ge_free_rings()
2041 if (ss->tx.req_list == NULL) in myri10ge_free_rings()
2044 for (i = ss->rx_big.cnt; i < ss->rx_big.fill_cnt; i++) { in myri10ge_free_rings()
2045 idx = i & ss->rx_big.mask; in myri10ge_free_rings()
2046 if (i == ss->rx_big.fill_cnt - 1) in myri10ge_free_rings()
2047 ss->rx_big.info[idx].page_offset = MYRI10GE_ALLOC_SIZE; in myri10ge_free_rings()
2048 myri10ge_unmap_rx_page(mgp->pdev, &ss->rx_big.info[idx], in myri10ge_free_rings()
2050 put_page(ss->rx_big.info[idx].page); in myri10ge_free_rings()
2053 for (i = ss->rx_small.cnt; i < ss->rx_small.fill_cnt; i++) { in myri10ge_free_rings()
2054 idx = i & ss->rx_small.mask; in myri10ge_free_rings()
2055 if (i == ss->rx_small.fill_cnt - 1) in myri10ge_free_rings()
2056 ss->rx_small.info[idx].page_offset = in myri10ge_free_rings()
2058 myri10ge_unmap_rx_page(mgp->pdev, &ss->rx_small.info[idx], in myri10ge_free_rings()
2060 put_page(ss->rx_small.info[idx].page); in myri10ge_free_rings()
2062 tx = &ss->tx; in myri10ge_free_rings()
2073 ss->stats.tx_dropped++; in myri10ge_free_rings()
2088 kfree(ss->rx_big.info); in myri10ge_free_rings()
2090 kfree(ss->rx_small.info); in myri10ge_free_rings()
2092 kfree(ss->tx.info); in myri10ge_free_rings()
2094 kfree(ss->rx_big.shadow); in myri10ge_free_rings()
2096 kfree(ss->rx_small.shadow); in myri10ge_free_rings()
2098 kfree(ss->tx.req_bytes); in myri10ge_free_rings()
2099 ss->tx.req_bytes = NULL; in myri10ge_free_rings()
2100 ss->tx.req_list = NULL; in myri10ge_free_rings()
2106 struct myri10ge_slice_state *ss; in myri10ge_request_irq() local
2140 ss = &mgp->ss[i]; in myri10ge_request_irq()
2141 snprintf(ss->irq_desc, sizeof(ss->irq_desc), in myri10ge_request_irq()
2144 myri10ge_intr, 0, ss->irq_desc, in myri10ge_request_irq()
2145 ss); in myri10ge_request_irq()
2152 &mgp->ss[i]); in myri10ge_request_irq()
2161 mgp->dev->name, &mgp->ss[0]); in myri10ge_request_irq()
2178 free_irq(mgp->msix_vectors[i].vector, &mgp->ss[i]); in myri10ge_free_irq()
2180 free_irq(pdev->irq, &mgp->ss[0]); in myri10ge_free_irq()
2252 struct myri10ge_slice_state *ss; in myri10ge_get_txrx() local
2255 ss = &mgp->ss[slice]; in myri10ge_get_txrx()
2261 ss->tx.lanai = (struct mcp_kreq_ether_send __iomem *) in myri10ge_get_txrx()
2267 ss->rx_small.lanai = (struct mcp_kreq_ether_recv __iomem *) in myri10ge_get_txrx()
2272 ss->rx_big.lanai = (struct mcp_kreq_ether_recv __iomem *) in myri10ge_get_txrx()
2275 ss->tx.send_go = (__iomem __be32 *) in myri10ge_get_txrx()
2277 ss->tx.send_stop = (__iomem __be32 *) in myri10ge_get_txrx()
2286 struct myri10ge_slice_state *ss; in myri10ge_set_stats() local
2289 ss = &mgp->ss[slice]; in myri10ge_set_stats()
2290 cmd.data0 = MYRI10GE_LOWPART_TO_U32(ss->fw_stats_bus); in myri10ge_set_stats()
2291 cmd.data1 = MYRI10GE_HIGHPART_TO_U32(ss->fw_stats_bus); in myri10ge_set_stats()
2295 dma_addr_t bus = ss->fw_stats_bus; in myri10ge_set_stats()
2314 struct myri10ge_slice_state *ss; in myri10ge_open() local
2415 ss = &mgp->ss[slice]; in myri10ge_open()
2424 status = myri10ge_allocate_rings(ss); in myri10ge_open()
2440 lro_mgr = &ss->rx_done.lro_mgr; in myri10ge_open()
2446 lro_mgr->lro_arr = ss->rx_done.lro_desc; in myri10ge_open()
2453 napi_enable(&(ss)->napi); in myri10ge_open()
2504 napi_disable(&mgp->ss[slice].napi); in myri10ge_open()
2507 myri10ge_free_rings(&mgp->ss[i]); in myri10ge_open()
2526 if (mgp->ss[0].tx.req_bytes == NULL) in myri10ge_close()
2532 napi_disable(&mgp->ss[i].napi); in myri10ge_close()
2551 myri10ge_free_rings(&mgp->ss[i]); in myri10ge_close()
2637 struct myri10ge_slice_state *ss; in myri10ge_xmit() local
2652 ss = &mgp->ss[queue]; in myri10ge_xmit()
2654 tx = &ss->tx; in myri10ge_xmit()
2732 ss->stats.tx_dropped += 1; in myri10ge_xmit()
2921 ss->stats.tx_dropped += 1; in myri10ge_xmit()
2930 struct myri10ge_slice_state *ss; in myri10ge_sw_tso() local
2957 ss = &mgp->ss[skb_get_queue_mapping(skb)]; in myri10ge_sw_tso()
2959 ss->stats.tx_dropped += 1; in myri10ge_sw_tso()
2972 slice_stats = &mgp->ss[i].stats; in myri10ge_get_stats()
3451 tx = &mgp->ss[i].tx; in myri10ge_watchdog()
3456 (int)ntohl(mgp->ss[i].fw_stats-> in myri10ge_watchdog()
3463 (int)ntohl(mgp->ss[i].fw_stats-> in myri10ge_watchdog()
3489 struct myri10ge_slice_state *ss; in myri10ge_watchdog_timer() local
3495 rx_pause_cnt = ntohl(mgp->ss[0].fw_stats->dropped_pause); in myri10ge_watchdog_timer()
3499 ss = &mgp->ss[i]; in myri10ge_watchdog_timer()
3500 if (ss->rx_small.watchdog_needed) { in myri10ge_watchdog_timer()
3501 myri10ge_alloc_rx_pages(mgp, &ss->rx_small, in myri10ge_watchdog_timer()
3504 if (ss->rx_small.fill_cnt - ss->rx_small.cnt >= in myri10ge_watchdog_timer()
3506 ss->rx_small.watchdog_needed = 0; in myri10ge_watchdog_timer()
3508 if (ss->rx_big.watchdog_needed) { in myri10ge_watchdog_timer()
3509 myri10ge_alloc_rx_pages(mgp, &ss->rx_big, in myri10ge_watchdog_timer()
3511 if (ss->rx_big.fill_cnt - ss->rx_big.cnt >= in myri10ge_watchdog_timer()
3513 ss->rx_big.watchdog_needed = 0; in myri10ge_watchdog_timer()
3516 if (ss->tx.req != ss->tx.done && in myri10ge_watchdog_timer()
3517 ss->tx.done == ss->watchdog_tx_done && in myri10ge_watchdog_timer()
3518 ss->watchdog_tx_req != ss->watchdog_tx_done) { in myri10ge_watchdog_timer()
3533 ss->watchdog_tx_done = ss->tx.done; in myri10ge_watchdog_timer()
3534 ss->watchdog_tx_req = ss->tx.req; in myri10ge_watchdog_timer()
3549 struct myri10ge_slice_state *ss; in myri10ge_free_slices() local
3554 if (mgp->ss == NULL) in myri10ge_free_slices()
3558 ss = &mgp->ss[i]; in myri10ge_free_slices()
3559 if (ss->rx_done.entry != NULL) { in myri10ge_free_slices()
3561 sizeof(*ss->rx_done.entry); in myri10ge_free_slices()
3563 ss->rx_done.entry, ss->rx_done.bus); in myri10ge_free_slices()
3564 ss->rx_done.entry = NULL; in myri10ge_free_slices()
3566 if (ss->fw_stats != NULL) { in myri10ge_free_slices()
3567 bytes = sizeof(*ss->fw_stats); in myri10ge_free_slices()
3569 ss->fw_stats, ss->fw_stats_bus); in myri10ge_free_slices()
3570 ss->fw_stats = NULL; in myri10ge_free_slices()
3573 kfree(mgp->ss); in myri10ge_free_slices()
3574 mgp->ss = NULL; in myri10ge_free_slices()
3579 struct myri10ge_slice_state *ss; in myri10ge_alloc_slices() local
3584 bytes = sizeof(*mgp->ss) * mgp->num_slices; in myri10ge_alloc_slices()
3585 mgp->ss = kzalloc(bytes, GFP_KERNEL); in myri10ge_alloc_slices()
3586 if (mgp->ss == NULL) { in myri10ge_alloc_slices()
3591 ss = &mgp->ss[i]; in myri10ge_alloc_slices()
3592 bytes = mgp->max_intr_slots * sizeof(*ss->rx_done.entry); in myri10ge_alloc_slices()
3593 ss->rx_done.entry = dma_alloc_coherent(&pdev->dev, bytes, in myri10ge_alloc_slices()
3594 &ss->rx_done.bus, in myri10ge_alloc_slices()
3596 if (ss->rx_done.entry == NULL) in myri10ge_alloc_slices()
3598 memset(ss->rx_done.entry, 0, bytes); in myri10ge_alloc_slices()
3599 bytes = sizeof(*ss->fw_stats); in myri10ge_alloc_slices()
3600 ss->fw_stats = dma_alloc_coherent(&pdev->dev, bytes, in myri10ge_alloc_slices()
3601 &ss->fw_stats_bus, in myri10ge_alloc_slices()
3603 if (ss->fw_stats == NULL) in myri10ge_alloc_slices()
3605 ss->mgp = mgp; in myri10ge_alloc_slices()
3606 ss->dev = mgp->dev; in myri10ge_alloc_slices()
3607 netif_napi_add(ss->dev, &ss->napi, myri10ge_poll, in myri10ge_alloc_slices()