Messages in this thread Patch in this message | | | From | Chuhong Yuan <> | Subject | [PATCH] niu: Use refcount_t for refcount | Date | Fri, 2 Aug 2019 20:57:20 +0800 |
| |
refcount_t is better for reference counters since its implementation can prevent overflows. So convert atomic_t ref counters to refcount_t.
Also convert refcount from 0-based to 1-based.
Signed-off-by: Chuhong Yuan <hslester96@gmail.com> --- drivers/net/ethernet/sun/niu.c | 6 +++--- drivers/net/ethernet/sun/niu.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/sun/niu.c b/drivers/net/ethernet/sun/niu.c index 0bc5863bffeb..5bf096e51db7 100644 --- a/drivers/net/ethernet/sun/niu.c +++ b/drivers/net/ethernet/sun/niu.c @@ -9464,7 +9464,7 @@ static struct niu_parent *niu_new_parent(struct niu *np, memcpy(&p->id, id, sizeof(*id)); p->plat_type = ptype; INIT_LIST_HEAD(&p->list); - atomic_set(&p->refcnt, 0); + refcount_set(&p->refcnt, 1); list_add(&p->list, &niu_parent_list); spin_lock_init(&p->lock); @@ -9524,7 +9524,7 @@ static struct niu_parent *niu_get_parent(struct niu *np, port_name); if (!err) { p->ports[port] = np; - atomic_inc(&p->refcnt); + refcount_inc(&p->refcnt); } } mutex_unlock(&niu_parent_lock); @@ -9552,7 +9552,7 @@ static void niu_put_parent(struct niu *np) p->ports[port] = NULL; np->parent = NULL; - if (atomic_dec_and_test(&p->refcnt)) { + if (refcount_dec_and_test(&p->refcnt)) { list_del(&p->list); platform_device_unregister(p->plat_dev); } diff --git a/drivers/net/ethernet/sun/niu.h b/drivers/net/ethernet/sun/niu.h index 04c215f91fc0..755e6dd4c903 100644 --- a/drivers/net/ethernet/sun/niu.h +++ b/drivers/net/ethernet/sun/niu.h @@ -3071,7 +3071,7 @@ struct niu_parent { struct niu *ports[NIU_MAX_PORTS]; - atomic_t refcnt; + refcount_t refcnt; struct list_head list; spinlock_t lock; -- 2.20.1
| |