On Sat, Jul 17, 2021 at 06:16:15PM +0800, Xiyu Yang wrote:
quoted hunk ↗ jump to hunk
refcount_t type and corresponding API can protect refcounters from
accidental underflow and overflow and further use-after-free situations.
Signed-off-by: Xiyu Yang <redacted>
Signed-off-by: Xin Tan <redacted>
---
drivers/net/ethernet/chelsio/cxgb3/l2t.c | 15 ++++++++-------
drivers/net/ethernet/chelsio/cxgb3/l2t.h | 10 +++++++---
2 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/drivers/net/ethernet/chelsio/cxgb3/l2t.c b/drivers/net/ethernet/chelsio/cxgb3/l2t.c
index 9749d1239f58..0f2a47bc20d8 100644
--- a/drivers/net/ethernet/chelsio/cxgb3/l2t.c
+++ b/drivers/net/ethernet/chelsio/cxgb3/l2t.c
@@ -225,10 +225,11 @@ static struct l2t_entry *alloc_l2e(struct l2t_data *d)
/* there's definitely a free entry */
for (e = d->rover, end = &d->l2tab[d->nentries]; e != end; ++e)
- if (atomic_read(&e->refcnt) == 0)
+ if (refcount_read(&e->refcnt) == 0)
All those atomic_t to refcount_t patches can't be right, refcount_t can't be 0.
Thanks