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 --- |