ena.c (75dfc66c1b2b44609e5a7c3e1d6a751be4922689) ena.c (04cf2b885d7dc385ed8e48df1d0218b5e4162869)
1/*-
2 * BSD LICENSE
3 *
4 * Copyright (c) 2015-2019 Amazon.com, Inc. or its affiliates.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 354 unchanged lines hidden (view full) ---

363 uint16_t qid)
364{
365
366 ring->qid = qid;
367 ring->adapter = adapter;
368 ring->ena_dev = adapter->ena_dev;
369 ring->first_interrupt = false;
370 ring->no_interrupt_event_cnt = 0;
1/*-
2 * BSD LICENSE
3 *
4 * Copyright (c) 2015-2019 Amazon.com, Inc. or its affiliates.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 354 unchanged lines hidden (view full) ---

363 uint16_t qid)
364{
365
366 ring->qid = qid;
367 ring->adapter = adapter;
368 ring->ena_dev = adapter->ena_dev;
369 ring->first_interrupt = false;
370 ring->no_interrupt_event_cnt = 0;
371 ring->rx_mbuf_sz = ena_mbuf_sz;
371}
372
373static void
374ena_init_io_rings(struct ena_adapter *adapter)
375{
376 struct ena_com_dev *ena_dev;
377 struct ena_ring *txr, *rxr;
378 struct ena_que *que;

--- 124 unchanged lines hidden (view full) ---

503 int ret;
504
505 /* Create DMA tag for Rx buffers*/
506 ret = bus_dma_tag_create(bus_get_dma_tag(adapter->pdev), /* parent */
507 1, 0, /* alignment, bounds */
508 ENA_DMA_BIT_MASK(adapter->dma_width), /* lowaddr of excl window */
509 BUS_SPACE_MAXADDR, /* highaddr of excl window */
510 NULL, NULL, /* filter, filterarg */
372}
373
374static void
375ena_init_io_rings(struct ena_adapter *adapter)
376{
377 struct ena_com_dev *ena_dev;
378 struct ena_ring *txr, *rxr;
379 struct ena_que *que;

--- 124 unchanged lines hidden (view full) ---

504 int ret;
505
506 /* Create DMA tag for Rx buffers*/
507 ret = bus_dma_tag_create(bus_get_dma_tag(adapter->pdev), /* parent */
508 1, 0, /* alignment, bounds */
509 ENA_DMA_BIT_MASK(adapter->dma_width), /* lowaddr of excl window */
510 BUS_SPACE_MAXADDR, /* highaddr of excl window */
511 NULL, NULL, /* filter, filterarg */
511 MJUM16BYTES, /* maxsize */
512 ena_mbuf_sz, /* maxsize */
512 adapter->max_rx_sgl_size, /* nsegments */
513 adapter->max_rx_sgl_size, /* nsegments */
513 MJUM16BYTES, /* maxsegsize */
514 ena_mbuf_sz, /* maxsegsize */
514 0, /* flags */
515 NULL, /* lockfunc */
516 NULL, /* lockarg */
517 &adapter->rx_buf_tag);
518
519 return (ret);
520}
521

--- 436 unchanged lines hidden (view full) ---

958 int nsegs, error;
959 int mlen;
960
961 /* if previous allocated frag is not used */
962 if (unlikely(rx_info->mbuf != NULL))
963 return (0);
964
965 /* Get mbuf using UMA allocator */
515 0, /* flags */
516 NULL, /* lockfunc */
517 NULL, /* lockarg */
518 &adapter->rx_buf_tag);
519
520 return (ret);
521}
522

--- 436 unchanged lines hidden (view full) ---

959 int nsegs, error;
960 int mlen;
961
962 /* if previous allocated frag is not used */
963 if (unlikely(rx_info->mbuf != NULL))
964 return (0);
965
966 /* Get mbuf using UMA allocator */
966 rx_info->mbuf = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, MJUM16BYTES);
967 rx_info->mbuf = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR,
968 rx_ring->rx_mbuf_sz);
967
968 if (unlikely(rx_info->mbuf == NULL)) {
969 counter_u64_add(rx_ring->rx_stats.mjum_alloc_fail, 1);
970 rx_info->mbuf = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR);
971 if (unlikely(rx_info->mbuf == NULL)) {
972 counter_u64_add(rx_ring->rx_stats.mbuf_alloc_fail, 1);
973 return (ENOMEM);
974 }
975 mlen = MCLBYTES;
976 } else {
969
970 if (unlikely(rx_info->mbuf == NULL)) {
971 counter_u64_add(rx_ring->rx_stats.mjum_alloc_fail, 1);
972 rx_info->mbuf = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR);
973 if (unlikely(rx_info->mbuf == NULL)) {
974 counter_u64_add(rx_ring->rx_stats.mbuf_alloc_fail, 1);
975 return (ENOMEM);
976 }
977 mlen = MCLBYTES;
978 } else {
977 mlen = MJUM16BYTES;
979 mlen = rx_ring->rx_mbuf_sz;
978 }
979 /* Set mbuf length*/
980 rx_info->mbuf->m_pkthdr.len = rx_info->mbuf->m_len = mlen;
981
982 /* Map packets for DMA */
983 ena_trace(ENA_DBG | ENA_RSC | ENA_RXPTH,
984 "Using tag %p for buffers' DMA mapping, mbuf %p len: %d\n",
985 adapter->rx_buf_tag,rx_info->mbuf, rx_info->mbuf->m_len);

--- 2609 unchanged lines hidden ---
980 }
981 /* Set mbuf length*/
982 rx_info->mbuf->m_pkthdr.len = rx_info->mbuf->m_len = mlen;
983
984 /* Map packets for DMA */
985 ena_trace(ENA_DBG | ENA_RSC | ENA_RXPTH,
986 "Using tag %p for buffers' DMA mapping, mbuf %p len: %d\n",
987 adapter->rx_buf_tag,rx_info->mbuf, rx_info->mbuf->m_len);

--- 2609 unchanged lines hidden ---