]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
cxgb4: avoid accessing registers when clearing filters
authorRaju Rangoju <rajur@chelsio.com>
Wed, 19 May 2021 11:18:31 +0000 (16:48 +0530)
committerDavid S. Miller <davem@davemloft.net>
Wed, 19 May 2021 20:00:54 +0000 (13:00 -0700)
Hardware register having the server TID base can contain
invalid values when adapter is in bad state (for example,
due to AER fatal error). Reading these invalid values in the
register can lead to out-of-bound memory access. So, fix
by using the saved server TID base when clearing filters.

Fixes: b1a79360ee86 ("cxgb4: Delete all hash and TCAM filters before resource cleanup")
Signed-off-by: Raju Rangoju <rajur@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c

index bc581b149b113608b0f2de68069121c1f26ad80d..22c9ac922ebae9bee87bb403e17ccfaed08557cc 100644 (file)
@@ -1042,7 +1042,7 @@ void clear_all_filters(struct adapter *adapter)
                                cxgb4_del_filter(dev, f->tid, &f->fs);
                }
 
-               sb = t4_read_reg(adapter, LE_DB_SRVR_START_INDEX_A);
+               sb = adapter->tids.stid_base;
                for (i = 0; i < sb; i++) {
                        f = (struct filter_entry *)adapter->tids.tid_tab[i];