mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 00:22:00 +02:00
ice: Inline eop check
This might be in future used by ZC driver and might potentially yield a minor performance boost. While at it, constify arguments that ice_is_non_eop() takes, since they are pointers and this will help compiler while generating asm. Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Reviewed-by: Alexander Lobakin <alexandr.lobakin@intel.com> Link: https://lore.kernel.org/bpf/20230131204506.219292-6-maciej.fijalkowski@intel.com
This commit is contained in:
parent
d7956d81f1
commit
e44f4790a2
|
|
@ -1065,27 +1065,6 @@ ice_put_rx_buf(struct ice_rx_ring *rx_ring, struct ice_rx_buf *rx_buf)
|
|||
rx_buf->page = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* ice_is_non_eop - process handling of non-EOP buffers
|
||||
* @rx_ring: Rx ring being processed
|
||||
* @rx_desc: Rx descriptor for current buffer
|
||||
*
|
||||
* If the buffer is an EOP buffer, this function exits returning false,
|
||||
* otherwise return true indicating that this is in fact a non-EOP buffer.
|
||||
*/
|
||||
static bool
|
||||
ice_is_non_eop(struct ice_rx_ring *rx_ring, union ice_32b_rx_flex_desc *rx_desc)
|
||||
{
|
||||
/* if we are the last buffer then there is nothing else to do */
|
||||
#define ICE_RXD_EOF BIT(ICE_RX_FLEX_DESC_STATUS0_EOF_S)
|
||||
if (likely(ice_test_staterr(rx_desc->wb.status_error0, ICE_RXD_EOF)))
|
||||
return false;
|
||||
|
||||
rx_ring->ring_stats->rx_stats.non_eop_descs++;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* ice_clean_rx_irq - Clean completed descriptors from Rx ring - bounce buf
|
||||
* @rx_ring: Rx descriptor ring to transact packets on
|
||||
|
|
|
|||
|
|
@ -21,6 +21,28 @@ ice_test_staterr(__le16 status_err_n, const u16 stat_err_bits)
|
|||
return !!(status_err_n & cpu_to_le16(stat_err_bits));
|
||||
}
|
||||
|
||||
/**
|
||||
* ice_is_non_eop - process handling of non-EOP buffers
|
||||
* @rx_ring: Rx ring being processed
|
||||
* @rx_desc: Rx descriptor for current buffer
|
||||
*
|
||||
* If the buffer is an EOP buffer, this function exits returning false,
|
||||
* otherwise return true indicating that this is in fact a non-EOP buffer.
|
||||
*/
|
||||
static inline bool
|
||||
ice_is_non_eop(const struct ice_rx_ring *rx_ring,
|
||||
const union ice_32b_rx_flex_desc *rx_desc)
|
||||
{
|
||||
/* if we are the last buffer then there is nothing else to do */
|
||||
#define ICE_RXD_EOF BIT(ICE_RX_FLEX_DESC_STATUS0_EOF_S)
|
||||
if (likely(ice_test_staterr(rx_desc->wb.status_error0, ICE_RXD_EOF)))
|
||||
return false;
|
||||
|
||||
rx_ring->ring_stats->rx_stats.non_eop_descs++;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static inline __le64
|
||||
ice_build_ctob(u64 td_cmd, u64 td_offset, unsigned int size, u64 td_tag)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user