mirror of https://gitee.com/openkylin/linux.git
i40e: Rewrite Flow Director busy wait loop
We can reorder the busy wait loop at the start of the Flow Director transmit function to reduce the overall code size while still retaining the same functionality. As such I am taking advantage of the opportunity to do so. Change-ID: I34c403ca001953c6ac9816e65d5305e73d869026 Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
c73d2e8462
commit
ed245406da
|
@ -122,7 +122,6 @@ static int i40e_program_fdir_filter(struct i40e_fdir_filter *fdir_data,
|
|||
struct device *dev;
|
||||
dma_addr_t dma;
|
||||
u32 td_cmd = 0;
|
||||
u16 delay = 0;
|
||||
u16 i;
|
||||
|
||||
/* find existing FDIR VSI */
|
||||
|
@ -137,15 +136,11 @@ static int i40e_program_fdir_filter(struct i40e_fdir_filter *fdir_data,
|
|||
dev = tx_ring->dev;
|
||||
|
||||
/* we need two descriptors to add/del a filter and we can wait */
|
||||
do {
|
||||
if (I40E_DESC_UNUSED(tx_ring) > 1)
|
||||
break;
|
||||
for (i = I40E_FD_CLEAN_DELAY; I40E_DESC_UNUSED(tx_ring) < 2; i--) {
|
||||
if (!i)
|
||||
return -EAGAIN;
|
||||
msleep_interruptible(1);
|
||||
delay++;
|
||||
} while (delay < I40E_FD_CLEAN_DELAY);
|
||||
|
||||
if (!(I40E_DESC_UNUSED(tx_ring) > 1))
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
dma = dma_map_single(dev, raw_packet,
|
||||
I40E_FDIR_MAX_RAW_PACKET_SIZE, DMA_TO_DEVICE);
|
||||
|
|
Loading…
Reference in New Issue