qcacmn: Check null in qdf_nbuf_track_free

Freeing a null pointer shouldn't do anything.
Some code relies on this.  Specifically, in a
rare scenario, an allocation is made outside of
a spinlock and may freed without being used or
verified inside the spinlock.

Change-Id: Ib5f8ecabc62454a0ca9b6723cd80ff2f701196c3
CRs-Fixed: 1024277
This commit is contained in:
Houston Hoffman 2016-06-13 11:04:08 -07:00 • committed by Akash Patel
commit 28803728da

View file

@ -717,6 +717,9 @@ static void qdf_nbuf_track_free(QDF_NBUF_TRACK *node)
{
unsigned long irq_flag;
if (!node)
return;
/* Try to shrink the freelist if free_list_count > than FREEQ_POOLSIZE
* only shrink the freelist if it is bigger than twice the number of
* nbufs in use. If the driver is stalling in a consistent bursty