diff options
author | Julian Wiedmann | 2018-03-09 18:12:57 +0100 |
---|---|---|
committer | David S. Miller | 2018-03-09 19:10:04 +0100 |
commit | 37cf05d2fff52a8ad1ce977c2a485e91fe793162 (patch) | |
tree | c8034e6bf66133a2bfb15b0102df5a69895c5cf2 /drivers/s390/net/qeth_core_main.c | |
parent | s390/qeth: pass correct length to header_ops->create() (diff) | |
download | kernel-qcow2-linux-37cf05d2fff52a8ad1ce977c2a485e91fe793162.tar.gz kernel-qcow2-linux-37cf05d2fff52a8ad1ce977c2a485e91fe793162.tar.xz kernel-qcow2-linux-37cf05d2fff52a8ad1ce977c2a485e91fe793162.zip |
s390/qeth: allocate skb from NAPI cache
napi_alloc_skb() doesn't need to disable IRQs during the allocation,
and thus may save us a few cycles.
Doing so requires a small fix-up in the HiperTransport path, which
currently assumes a fixed NET_SKB_PAD headroom padding. napi_alloc_skb()
adds an additional NET_IP_ALIGN padding, so use the proper helper for
setting up the mac_header offset.
Use this opportunity to convert the non-NAPI path to netdev_alloc_skb(),
which means that skb->dev is now always set-up during allocation and
doesn't need to be assigned manually.
Signed-off-by: Julian Wiedmann <jwi@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/s390/net/qeth_core_main.c')
-rw-r--r-- | drivers/s390/net/qeth_core_main.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c index d884b399f92a..8f427621e656 100644 --- a/drivers/s390/net/qeth_core_main.c +++ b/drivers/s390/net/qeth_core_main.c @@ -2835,7 +2835,8 @@ static int qeth_init_input_buffer(struct qeth_card *card, int i; if ((card->options.cq == QETH_CQ_ENABLED) && (!buf->rx_skb)) { - buf->rx_skb = dev_alloc_skb(QETH_RX_PULL_LEN + ETH_HLEN); + buf->rx_skb = netdev_alloc_skb(card->dev, + QETH_RX_PULL_LEN + ETH_HLEN); if (!buf->rx_skb) return 1; } @@ -5325,7 +5326,7 @@ struct sk_buff *qeth_core_get_next_skb(struct qeth_card *card, } else { unsigned int linear = (use_rx_sg) ? QETH_RX_PULL_LEN : skb_len; - skb = dev_alloc_skb(linear + headroom); + skb = napi_alloc_skb(&card->napi, linear + headroom); } if (!skb) goto no_mem; |