For T4 adapter, offloaded servers tid for IPv4 connections are
allocated from filter region. So add a new field for server filter tid if
server tid is allocated from filter region.
Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
                t->stid_tab[stid].data = data;
                stid -= t->nstids;
                stid += t->sftid_base;
-               t->stids_in_use++;
+               t->sftids_in_use++;
        }
        spin_unlock_bh(&t->stid_lock);
        return stid;
        else
                bitmap_release_region(t->stid_bmap, stid, 2);
        t->stid_tab[stid].data = NULL;
-       if (family == PF_INET)
-               t->stids_in_use--;
-       else
-               t->stids_in_use -= 4;
+       if (stid < t->nstids) {
+               if (family == PF_INET)
+                       t->stids_in_use--;
+               else
+                       t->stids_in_use -= 4;
+       } else {
+               t->sftids_in_use--;
+       }
        spin_unlock_bh(&t->stid_lock);
 }
 EXPORT_SYMBOL(cxgb4_free_stid);
        spin_lock_init(&t->atid_lock);
 
        t->stids_in_use = 0;
+       t->sftids_in_use = 0;
        t->afree = NULL;
        t->atids_in_use = 0;
        atomic_set(&t->tids_in_use, 0);
 
 
        spinlock_t stid_lock;
        unsigned int stids_in_use;
+       unsigned int sftids_in_use;
 
        /* TIDs in the TCAM */
        atomic_t tids_in_use;