static int ionic_rx_page_alloc(struct ionic_queue *q,
struct ionic_buf_info *buf_info)
{
- struct ionic_rx_stats *stats;
+ struct device *dev = q->dev;
dma_addr_t dma_addr;
- struct device *dev;
struct page *page;
- dev = q->dev;
- stats = q_to_rx_stats(q);
-
page = alloc_pages(IONIC_PAGE_GFP_MASK, 0);
if (unlikely(!page)) {
net_err_ratelimited("%s: %s page alloc failed\n",
dev_name(dev), q->name);
- stats->alloc_err++;
+ q_to_rx_stats(q)->alloc_err++;
return -ENOMEM;
}
__free_pages(page, 0);
net_err_ratelimited("%s: %s dma map failed\n",
dev_name(dev), q->name);
- stats->dma_map_err++;
+ q_to_rx_stats(q)->dma_map_err++;
return -EIO;
}
bool synced)
{
struct ionic_buf_info *buf_info;
- struct ionic_rx_stats *stats;
struct sk_buff *skb;
unsigned int i;
u16 frag_len;
- stats = q_to_rx_stats(q);
-
buf_info = &desc_info->bufs[0];
prefetchw(buf_info->page);
if (unlikely(!skb)) {
net_warn_ratelimited("%s: SKB alloc failed on %s!\n",
dev_name(q->dev), q->name);
- stats->alloc_err++;
+ q_to_rx_stats(q)->alloc_err++;
return NULL;
}
bool synced)
{
struct ionic_buf_info *buf_info;
- struct ionic_rx_stats *stats;
struct device *dev = q->dev;
struct sk_buff *skb;
- stats = q_to_rx_stats(q);
-
buf_info = &desc_info->bufs[0];
skb = napi_alloc_skb(&q_to_qcq(q)->napi, len);
if (unlikely(!skb)) {
net_warn_ratelimited("%s: SKB alloc failed on %s!\n",
dev_name(dev), q->name);
- stats->alloc_err++;
+ q_to_rx_stats(q)->alloc_err++;
return NULL;
}
static dma_addr_t ionic_tx_map_single(struct ionic_queue *q,
void *data, size_t len)
{
- struct ionic_tx_stats *stats = q_to_tx_stats(q);
struct device *dev = q->dev;
dma_addr_t dma_addr;
if (dma_mapping_error(dev, dma_addr)) {
net_warn_ratelimited("%s: DMA single map failed on %s!\n",
dev_name(dev), q->name);
- stats->dma_map_err++;
+ q_to_tx_stats(q)->dma_map_err++;
return 0;
}
return dma_addr;
const skb_frag_t *frag,
size_t offset, size_t len)
{
- struct ionic_tx_stats *stats = q_to_tx_stats(q);
struct device *dev = q->dev;
dma_addr_t dma_addr;
if (dma_mapping_error(dev, dma_addr)) {
net_warn_ratelimited("%s: DMA frag map failed on %s!\n",
dev_name(dev), q->name);
- stats->dma_map_err++;
+ q_to_tx_stats(q)->dma_map_err++;
return 0;
}
return dma_addr;
linearize:
if (too_many_frags) {
- struct ionic_tx_stats *stats = q_to_tx_stats(q);
-
err = skb_linearize(skb);
if (err)
return err;
- stats->linearize++;
+ q_to_tx_stats(q)->linearize++;
}
return ndescs;