cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ethernet-rx.h (882B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * This file is based on code from OCTEON SDK by Cavium Networks.
      4 *
      5 * Copyright (c) 2003-2007 Cavium Networks
      6 */
      7
      8void cvm_oct_poll_controller(struct net_device *dev);
      9void cvm_oct_rx_initialize(void);
     10void cvm_oct_rx_shutdown(void);
     11
     12static inline void cvm_oct_rx_refill_pool(int fill_threshold)
     13{
     14	int number_to_free;
     15	int num_freed;
     16	/* Refill the packet buffer pool */
     17	number_to_free =
     18		cvmx_fau_fetch_and_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE, 0);
     19
     20	if (number_to_free > fill_threshold) {
     21		cvmx_fau_atomic_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE,
     22				      -number_to_free);
     23		num_freed = cvm_oct_mem_fill_fpa(CVMX_FPA_PACKET_POOL,
     24						 CVMX_FPA_PACKET_POOL_SIZE,
     25						 number_to_free);
     26		if (num_freed != number_to_free) {
     27			cvmx_fau_atomic_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE,
     28					      number_to_free - num_freed);
     29		}
     30	}
     31}