
Check if REO ring is near full at the end of dp_rx_process. In case the ring is near full, reap the packets in the ring (and replenish, send to upper layer) until the quota allows. Ignore the HIF yield time limit in such cases. This change is needed to prevent back pressure from the REO ring(in case it gets full). Backpressure from REO ring (to LMAC) may lead to a watchdog and eventually a FW crash. Hence, avoid such a scenario by reaping as many packets as the 'quota' allows when the REO ring is in aforementioned condition. A sid-effect of this change would be that at times the RX softirq may run longer (till the quota limit) than the configured HIF yield time. However, this logic is not expected to kick-in in perf builds. The issue is reported for a defconfig build where lots debug options are enabled in the kernel which can slow the processing down. Change-Id: I2eb6544c159ec5957d10386b1750fd96473fe13a CRs-Fixed: 2540964
The below qca6290 and qca8074 folder has c files defining functions and structures to hold target specific definitions to handle differences between chips with respect to hal. Please ensure changes get applied to all platform specific files if the fixes are generic and applicable to all the folders. qca6290 hal_6290_rx.c - rx related target specific function hal_6290_srng_table.c - holds hw srng table and hal hw reg offsets array hal_6290_tx.c - tx related target specific function qca8074 hal_8074_rx.c - rx related target specific function hal_8074_srng_table.c - holds hw srng table and hal hw reg offsets array hal_8074_tx.c - tx related target specific function