mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-04-01 03:54:02 +00:00
locking/atomic, kref: Add kref_read()
Since we need to change the implementation, stop exposing internals. Provide kref_read() to read the current reference count; typically used for debug messages. Kills two anti-patterns: atomic_read(&kref->refcount) kref->refcount.counter Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
1e24edca05
commit
2c935bc572
56 changed files with 121 additions and 117 deletions
|
@ -520,7 +520,7 @@ static void mod_rq_state(struct drbd_request *req, struct bio_and_error *m,
|
||||||
/* Completion does it's own kref_put. If we are going to
|
/* Completion does it's own kref_put. If we are going to
|
||||||
* kref_sub below, we need req to be still around then. */
|
* kref_sub below, we need req to be still around then. */
|
||||||
int at_least = k_put + !!c_put;
|
int at_least = k_put + !!c_put;
|
||||||
int refcount = atomic_read(&req->kref.refcount);
|
int refcount = kref_read(&req->kref);
|
||||||
if (refcount < at_least)
|
if (refcount < at_least)
|
||||||
drbd_err(device,
|
drbd_err(device,
|
||||||
"mod_rq_state: Logic BUG: %x -> %x: refcount = %d, should be >= %d\n",
|
"mod_rq_state: Logic BUG: %x -> %x: refcount = %d, should be >= %d\n",
|
||||||
|
|
|
@ -1535,7 +1535,7 @@ static bool obj_request_overlaps_parent(struct rbd_obj_request *obj_request)
|
||||||
static void rbd_obj_request_get(struct rbd_obj_request *obj_request)
|
static void rbd_obj_request_get(struct rbd_obj_request *obj_request)
|
||||||
{
|
{
|
||||||
dout("%s: obj %p (was %d)\n", __func__, obj_request,
|
dout("%s: obj %p (was %d)\n", __func__, obj_request,
|
||||||
atomic_read(&obj_request->kref.refcount));
|
kref_read(&obj_request->kref));
|
||||||
kref_get(&obj_request->kref);
|
kref_get(&obj_request->kref);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1544,14 +1544,14 @@ static void rbd_obj_request_put(struct rbd_obj_request *obj_request)
|
||||||
{
|
{
|
||||||
rbd_assert(obj_request != NULL);
|
rbd_assert(obj_request != NULL);
|
||||||
dout("%s: obj %p (was %d)\n", __func__, obj_request,
|
dout("%s: obj %p (was %d)\n", __func__, obj_request,
|
||||||
atomic_read(&obj_request->kref.refcount));
|
kref_read(&obj_request->kref));
|
||||||
kref_put(&obj_request->kref, rbd_obj_request_destroy);
|
kref_put(&obj_request->kref, rbd_obj_request_destroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rbd_img_request_get(struct rbd_img_request *img_request)
|
static void rbd_img_request_get(struct rbd_img_request *img_request)
|
||||||
{
|
{
|
||||||
dout("%s: img %p (was %d)\n", __func__, img_request,
|
dout("%s: img %p (was %d)\n", __func__, img_request,
|
||||||
atomic_read(&img_request->kref.refcount));
|
kref_read(&img_request->kref));
|
||||||
kref_get(&img_request->kref);
|
kref_get(&img_request->kref);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1562,7 +1562,7 @@ static void rbd_img_request_put(struct rbd_img_request *img_request)
|
||||||
{
|
{
|
||||||
rbd_assert(img_request != NULL);
|
rbd_assert(img_request != NULL);
|
||||||
dout("%s: img %p (was %d)\n", __func__, img_request,
|
dout("%s: img %p (was %d)\n", __func__, img_request,
|
||||||
atomic_read(&img_request->kref.refcount));
|
kref_read(&img_request->kref));
|
||||||
if (img_request_child_test(img_request))
|
if (img_request_child_test(img_request))
|
||||||
kref_put(&img_request->kref, rbd_parent_request_destroy);
|
kref_put(&img_request->kref, rbd_parent_request_destroy);
|
||||||
else
|
else
|
||||||
|
|
|
@ -767,7 +767,7 @@ static void virtblk_remove(struct virtio_device *vdev)
|
||||||
/* Stop all the virtqueues. */
|
/* Stop all the virtqueues. */
|
||||||
vdev->config->reset(vdev);
|
vdev->config->reset(vdev);
|
||||||
|
|
||||||
refc = atomic_read(&disk_to_dev(vblk->disk)->kobj.kref.refcount);
|
refc = kref_read(&disk_to_dev(vblk->disk)->kobj.kref);
|
||||||
put_disk(vblk->disk);
|
put_disk(vblk->disk);
|
||||||
vdev->config->del_vqs(vdev);
|
vdev->config->del_vqs(vdev);
|
||||||
kfree(vblk->vqs);
|
kfree(vblk->vqs);
|
||||||
|
|
|
@ -376,7 +376,7 @@ void drm_gem_cma_describe(struct drm_gem_cma_object *cma_obj,
|
||||||
off = drm_vma_node_start(&obj->vma_node);
|
off = drm_vma_node_start(&obj->vma_node);
|
||||||
|
|
||||||
seq_printf(m, "%2d (%2d) %08llx %pad %p %zu",
|
seq_printf(m, "%2d (%2d) %08llx %pad %p %zu",
|
||||||
obj->name, obj->refcount.refcount.counter,
|
obj->name, kref_read(&obj->refcount),
|
||||||
off, &cma_obj->paddr, cma_obj->vaddr, obj->size);
|
off, &cma_obj->paddr, cma_obj->vaddr, obj->size);
|
||||||
|
|
||||||
seq_printf(m, "\n");
|
seq_printf(m, "\n");
|
||||||
|
|
|
@ -118,7 +118,7 @@ static int drm_gem_one_name_info(int id, void *ptr, void *data)
|
||||||
seq_printf(m, "%6d %8zd %7d %8d\n",
|
seq_printf(m, "%6d %8zd %7d %8d\n",
|
||||||
obj->name, obj->size,
|
obj->name, obj->size,
|
||||||
obj->handle_count,
|
obj->handle_count,
|
||||||
atomic_read(&obj->refcount.refcount));
|
kref_read(&obj->refcount));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -159,7 +159,7 @@ EXPORT_SYMBOL(drm_mode_object_find);
|
||||||
void drm_mode_object_unreference(struct drm_mode_object *obj)
|
void drm_mode_object_unreference(struct drm_mode_object *obj)
|
||||||
{
|
{
|
||||||
if (obj->free_cb) {
|
if (obj->free_cb) {
|
||||||
DRM_DEBUG("OBJ ID: %d (%d)\n", obj->id, atomic_read(&obj->refcount.refcount));
|
DRM_DEBUG("OBJ ID: %d (%d)\n", obj->id, kref_read(&obj->refcount));
|
||||||
kref_put(&obj->refcount, obj->free_cb);
|
kref_put(&obj->refcount, obj->free_cb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -176,7 +176,7 @@ EXPORT_SYMBOL(drm_mode_object_unreference);
|
||||||
void drm_mode_object_reference(struct drm_mode_object *obj)
|
void drm_mode_object_reference(struct drm_mode_object *obj)
|
||||||
{
|
{
|
||||||
if (obj->free_cb) {
|
if (obj->free_cb) {
|
||||||
DRM_DEBUG("OBJ ID: %d (%d)\n", obj->id, atomic_read(&obj->refcount.refcount));
|
DRM_DEBUG("OBJ ID: %d (%d)\n", obj->id, kref_read(&obj->refcount));
|
||||||
kref_get(&obj->refcount);
|
kref_get(&obj->refcount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -486,7 +486,7 @@ static void etnaviv_gem_describe(struct drm_gem_object *obj, struct seq_file *m)
|
||||||
|
|
||||||
seq_printf(m, "%08x: %c %2d (%2d) %08lx %p %zd\n",
|
seq_printf(m, "%08x: %c %2d (%2d) %08lx %p %zd\n",
|
||||||
etnaviv_obj->flags, is_active(etnaviv_obj) ? 'A' : 'I',
|
etnaviv_obj->flags, is_active(etnaviv_obj) ? 'A' : 'I',
|
||||||
obj->name, obj->refcount.refcount.counter,
|
obj->name, kref_read(&obj->refcount),
|
||||||
off, etnaviv_obj->vaddr, obj->size);
|
off, etnaviv_obj->vaddr, obj->size);
|
||||||
|
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
|
|
|
@ -256,7 +256,7 @@ extern void drm_gem_object_unreference_unlocked(struct drm_gem_object *);
|
||||||
static inline bool
|
static inline bool
|
||||||
i915_gem_object_is_dead(const struct drm_i915_gem_object *obj)
|
i915_gem_object_is_dead(const struct drm_i915_gem_object *obj)
|
||||||
{
|
{
|
||||||
return atomic_read(&obj->base.refcount.refcount) == 0;
|
return kref_read(&obj->base.refcount) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool
|
static inline bool
|
||||||
|
|
|
@ -640,7 +640,7 @@ void msm_gem_describe(struct drm_gem_object *obj, struct seq_file *m)
|
||||||
|
|
||||||
seq_printf(m, "%08x: %c %2d (%2d) %08llx %p\t",
|
seq_printf(m, "%08x: %c %2d (%2d) %08llx %p\t",
|
||||||
msm_obj->flags, is_active(msm_obj) ? 'A' : 'I',
|
msm_obj->flags, is_active(msm_obj) ? 'A' : 'I',
|
||||||
obj->name, obj->refcount.refcount.counter,
|
obj->name, kref_read(&obj->refcount),
|
||||||
off, msm_obj->vaddr);
|
off, msm_obj->vaddr);
|
||||||
|
|
||||||
for (id = 0; id < priv->num_aspaces; id++)
|
for (id = 0; id < priv->num_aspaces; id++)
|
||||||
|
|
|
@ -527,7 +527,7 @@ static bool nouveau_fence_no_signaling(struct dma_fence *f)
|
||||||
* caller should have a reference on the fence,
|
* caller should have a reference on the fence,
|
||||||
* else fence could get freed here
|
* else fence could get freed here
|
||||||
*/
|
*/
|
||||||
WARN_ON(atomic_read(&fence->base.refcount.refcount) <= 1);
|
WARN_ON(kref_read(&fence->base.refcount) <= 1);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This needs uevents to work correctly, but dma_fence_add_callback relies on
|
* This needs uevents to work correctly, but dma_fence_add_callback relies on
|
||||||
|
|
|
@ -1033,7 +1033,7 @@ void omap_gem_describe(struct drm_gem_object *obj, struct seq_file *m)
|
||||||
off = drm_vma_node_start(&obj->vma_node);
|
off = drm_vma_node_start(&obj->vma_node);
|
||||||
|
|
||||||
seq_printf(m, "%08x: %2d (%2d) %08llx %pad (%2d) %p %4d",
|
seq_printf(m, "%08x: %2d (%2d) %08llx %pad (%2d) %p %4d",
|
||||||
omap_obj->flags, obj->name, obj->refcount.refcount.counter,
|
omap_obj->flags, obj->name, kref_read(&obj->refcount),
|
||||||
off, &omap_obj->paddr, omap_obj->paddr_cnt,
|
off, &omap_obj->paddr, omap_obj->paddr_cnt,
|
||||||
omap_obj->vaddr, omap_obj->roll);
|
omap_obj->vaddr, omap_obj->roll);
|
||||||
|
|
||||||
|
|
|
@ -140,8 +140,8 @@ static void ttm_bo_release_list(struct kref *list_kref)
|
||||||
struct ttm_bo_device *bdev = bo->bdev;
|
struct ttm_bo_device *bdev = bo->bdev;
|
||||||
size_t acc_size = bo->acc_size;
|
size_t acc_size = bo->acc_size;
|
||||||
|
|
||||||
BUG_ON(atomic_read(&bo->list_kref.refcount));
|
BUG_ON(kref_read(&bo->list_kref));
|
||||||
BUG_ON(atomic_read(&bo->kref.refcount));
|
BUG_ON(kref_read(&bo->kref));
|
||||||
BUG_ON(atomic_read(&bo->cpu_writers));
|
BUG_ON(atomic_read(&bo->cpu_writers));
|
||||||
BUG_ON(bo->mem.mm_node != NULL);
|
BUG_ON(bo->mem.mm_node != NULL);
|
||||||
BUG_ON(!list_empty(&bo->lru));
|
BUG_ON(!list_empty(&bo->lru));
|
||||||
|
|
|
@ -304,7 +304,7 @@ bool ttm_ref_object_exists(struct ttm_object_file *tfile,
|
||||||
* Verify that the ref->obj pointer was actually valid!
|
* Verify that the ref->obj pointer was actually valid!
|
||||||
*/
|
*/
|
||||||
rmb();
|
rmb();
|
||||||
if (unlikely(atomic_read(&ref->kref.refcount) == 0))
|
if (unlikely(kref_read(&ref->kref) == 0))
|
||||||
goto out_false;
|
goto out_false;
|
||||||
|
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
|
|
|
@ -55,14 +55,14 @@
|
||||||
|
|
||||||
#define put_ep(ep) { \
|
#define put_ep(ep) { \
|
||||||
PDBG("put_ep (via %s:%u) ep %p refcnt %d\n", __func__, __LINE__, \
|
PDBG("put_ep (via %s:%u) ep %p refcnt %d\n", __func__, __LINE__, \
|
||||||
ep, atomic_read(&((ep)->kref.refcount))); \
|
ep, kref_read(&((ep)->kref))); \
|
||||||
WARN_ON(atomic_read(&((ep)->kref.refcount)) < 1); \
|
WARN_ON(kref_read(&((ep)->kref)) < 1); \
|
||||||
kref_put(&((ep)->kref), __free_ep); \
|
kref_put(&((ep)->kref), __free_ep); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define get_ep(ep) { \
|
#define get_ep(ep) { \
|
||||||
PDBG("get_ep (via %s:%u) ep %p, refcnt %d\n", __func__, __LINE__, \
|
PDBG("get_ep (via %s:%u) ep %p, refcnt %d\n", __func__, __LINE__, \
|
||||||
ep, atomic_read(&((ep)->kref.refcount))); \
|
ep, kref_read(&((ep)->kref))); \
|
||||||
kref_get(&((ep)->kref)); \
|
kref_get(&((ep)->kref)); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -961,7 +961,7 @@ int iwch_modify_qp(struct iwch_dev *rhp, struct iwch_qp *qhp,
|
||||||
case IWCH_QP_STATE_RTS:
|
case IWCH_QP_STATE_RTS:
|
||||||
switch (attrs->next_state) {
|
switch (attrs->next_state) {
|
||||||
case IWCH_QP_STATE_CLOSING:
|
case IWCH_QP_STATE_CLOSING:
|
||||||
BUG_ON(atomic_read(&qhp->ep->com.kref.refcount) < 2);
|
BUG_ON(kref_read(&qhp->ep->com.kref) < 2);
|
||||||
qhp->attr.state = IWCH_QP_STATE_CLOSING;
|
qhp->attr.state = IWCH_QP_STATE_CLOSING;
|
||||||
if (!internal) {
|
if (!internal) {
|
||||||
abort=0;
|
abort=0;
|
||||||
|
|
|
@ -654,14 +654,14 @@ enum c4iw_mmid_state {
|
||||||
|
|
||||||
#define c4iw_put_ep(ep) { \
|
#define c4iw_put_ep(ep) { \
|
||||||
PDBG("put_ep (via %s:%u) ep %p refcnt %d\n", __func__, __LINE__, \
|
PDBG("put_ep (via %s:%u) ep %p refcnt %d\n", __func__, __LINE__, \
|
||||||
ep, atomic_read(&((ep)->kref.refcount))); \
|
ep, kref_read(&((ep)->kref))); \
|
||||||
WARN_ON(atomic_read(&((ep)->kref.refcount)) < 1); \
|
WARN_ON(kref_read(&((ep)->kref)) < 1); \
|
||||||
kref_put(&((ep)->kref), _c4iw_free_ep); \
|
kref_put(&((ep)->kref), _c4iw_free_ep); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define c4iw_get_ep(ep) { \
|
#define c4iw_get_ep(ep) { \
|
||||||
PDBG("get_ep (via %s:%u) ep %p, refcnt %d\n", __func__, __LINE__, \
|
PDBG("get_ep (via %s:%u) ep %p, refcnt %d\n", __func__, __LINE__, \
|
||||||
ep, atomic_read(&((ep)->kref.refcount))); \
|
ep, kref_read(&((ep)->kref))); \
|
||||||
kref_get(&((ep)->kref)); \
|
kref_get(&((ep)->kref)); \
|
||||||
}
|
}
|
||||||
void _c4iw_free_ep(struct kref *kref);
|
void _c4iw_free_ep(struct kref *kref);
|
||||||
|
|
|
@ -1503,7 +1503,7 @@ int c4iw_modify_qp(struct c4iw_dev *rhp, struct c4iw_qp *qhp,
|
||||||
case C4IW_QP_STATE_RTS:
|
case C4IW_QP_STATE_RTS:
|
||||||
switch (attrs->next_state) {
|
switch (attrs->next_state) {
|
||||||
case C4IW_QP_STATE_CLOSING:
|
case C4IW_QP_STATE_CLOSING:
|
||||||
BUG_ON(atomic_read(&qhp->ep->com.kref.refcount) < 2);
|
BUG_ON(kref_read(&qhp->ep->com.kref) < 2);
|
||||||
t4_set_wq_in_error(&qhp->wq);
|
t4_set_wq_in_error(&qhp->wq);
|
||||||
set_state(qhp, C4IW_QP_STATE_CLOSING);
|
set_state(qhp, C4IW_QP_STATE_CLOSING);
|
||||||
ep = qhp->ep;
|
ep = qhp->ep;
|
||||||
|
|
|
@ -80,7 +80,7 @@ usnic_ib_show_config(struct device *device, struct device_attribute *attr,
|
||||||
left = PAGE_SIZE;
|
left = PAGE_SIZE;
|
||||||
|
|
||||||
mutex_lock(&us_ibdev->usdev_lock);
|
mutex_lock(&us_ibdev->usdev_lock);
|
||||||
if (atomic_read(&us_ibdev->vf_cnt.refcount) > 0) {
|
if (kref_read(&us_ibdev->vf_cnt) > 0) {
|
||||||
char *busname;
|
char *busname;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -99,7 +99,7 @@ usnic_ib_show_config(struct device *device, struct device_attribute *attr,
|
||||||
PCI_FUNC(us_ibdev->pdev->devfn),
|
PCI_FUNC(us_ibdev->pdev->devfn),
|
||||||
netdev_name(us_ibdev->netdev),
|
netdev_name(us_ibdev->netdev),
|
||||||
us_ibdev->ufdev->mac,
|
us_ibdev->ufdev->mac,
|
||||||
atomic_read(&us_ibdev->vf_cnt.refcount));
|
kref_read(&us_ibdev->vf_cnt));
|
||||||
UPDATE_PTR_LEFT(n, ptr, left);
|
UPDATE_PTR_LEFT(n, ptr, left);
|
||||||
|
|
||||||
for (res_type = USNIC_VNIC_RES_TYPE_EOL;
|
for (res_type = USNIC_VNIC_RES_TYPE_EOL;
|
||||||
|
@ -147,7 +147,7 @@ usnic_ib_show_max_vf(struct device *device, struct device_attribute *attr,
|
||||||
us_ibdev = container_of(device, struct usnic_ib_dev, ib_dev.dev);
|
us_ibdev = container_of(device, struct usnic_ib_dev, ib_dev.dev);
|
||||||
|
|
||||||
return scnprintf(buf, PAGE_SIZE, "%u\n",
|
return scnprintf(buf, PAGE_SIZE, "%u\n",
|
||||||
atomic_read(&us_ibdev->vf_cnt.refcount));
|
kref_read(&us_ibdev->vf_cnt));
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t
|
static ssize_t
|
||||||
|
|
|
@ -291,11 +291,11 @@ int usnic_ib_query_device(struct ib_device *ibdev,
|
||||||
qp_per_vf = max(us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_WQ],
|
qp_per_vf = max(us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_WQ],
|
||||||
us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_RQ]);
|
us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_RQ]);
|
||||||
props->max_qp = qp_per_vf *
|
props->max_qp = qp_per_vf *
|
||||||
atomic_read(&us_ibdev->vf_cnt.refcount);
|
kref_read(&us_ibdev->vf_cnt);
|
||||||
props->device_cap_flags = IB_DEVICE_PORT_ACTIVE_EVENT |
|
props->device_cap_flags = IB_DEVICE_PORT_ACTIVE_EVENT |
|
||||||
IB_DEVICE_SYS_IMAGE_GUID | IB_DEVICE_BLOCK_MULTICAST_LOOPBACK;
|
IB_DEVICE_SYS_IMAGE_GUID | IB_DEVICE_BLOCK_MULTICAST_LOOPBACK;
|
||||||
props->max_cq = us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_CQ] *
|
props->max_cq = us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_CQ] *
|
||||||
atomic_read(&us_ibdev->vf_cnt.refcount);
|
kref_read(&us_ibdev->vf_cnt);
|
||||||
props->max_pd = USNIC_UIOM_MAX_PD_CNT;
|
props->max_pd = USNIC_UIOM_MAX_PD_CNT;
|
||||||
props->max_mr = USNIC_UIOM_MAX_MR_CNT;
|
props->max_mr = USNIC_UIOM_MAX_MR_CNT;
|
||||||
props->local_ca_ack_delay = 0;
|
props->local_ca_ack_delay = 0;
|
||||||
|
|
|
@ -1396,7 +1396,7 @@ int genwqe_device_remove(struct genwqe_dev *cd)
|
||||||
* application which will decrease this reference from
|
* application which will decrease this reference from
|
||||||
* 1/unused to 0/illegal and not from 2/used 1/empty.
|
* 1/unused to 0/illegal and not from 2/used 1/empty.
|
||||||
*/
|
*/
|
||||||
rc = atomic_read(&cd->cdev_genwqe.kobj.kref.refcount);
|
rc = kref_read(&cd->cdev_genwqe.kobj.kref);
|
||||||
if (rc != 1) {
|
if (rc != 1) {
|
||||||
dev_err(&pci_dev->dev,
|
dev_err(&pci_dev->dev,
|
||||||
"[%s] err: cdev_genwqe...refcount=%d\n", __func__, rc);
|
"[%s] err: cdev_genwqe...refcount=%d\n", __func__, rc);
|
||||||
|
|
|
@ -67,7 +67,7 @@ static ssize_t mei_dbgfs_read_meclients(struct file *fp, char __user *ubuf,
|
||||||
me_cl->props.max_number_of_connections,
|
me_cl->props.max_number_of_connections,
|
||||||
me_cl->props.max_msg_length,
|
me_cl->props.max_msg_length,
|
||||||
me_cl->props.single_recv_buf,
|
me_cl->props.single_recv_buf,
|
||||||
atomic_read(&me_cl->refcnt.refcount));
|
kref_read(&me_cl->refcnt));
|
||||||
|
|
||||||
mei_me_cl_put(me_cl);
|
mei_me_cl_put(me_cl);
|
||||||
}
|
}
|
||||||
|
|
|
@ -155,7 +155,7 @@ static void pnv_php_detach_device_nodes(struct device_node *parent)
|
||||||
pnv_php_detach_device_nodes(dn);
|
pnv_php_detach_device_nodes(dn);
|
||||||
|
|
||||||
of_node_put(dn);
|
of_node_put(dn);
|
||||||
refcount = atomic_read(&dn->kobj.kref.refcount);
|
refcount = kref_read(&dn->kobj.kref);
|
||||||
if (refcount != 1)
|
if (refcount != 1)
|
||||||
pr_warn("Invalid refcount %d on <%s>\n",
|
pr_warn("Invalid refcount %d on <%s>\n",
|
||||||
refcount, of_node_full_name(dn));
|
refcount, of_node_full_name(dn));
|
||||||
|
|
|
@ -345,7 +345,7 @@ EXPORT_SYMBOL_GPL(pci_create_slot);
|
||||||
void pci_destroy_slot(struct pci_slot *slot)
|
void pci_destroy_slot(struct pci_slot *slot)
|
||||||
{
|
{
|
||||||
dev_dbg(&slot->bus->dev, "dev %02x, dec refcount to %d\n",
|
dev_dbg(&slot->bus->dev, "dev %02x, dec refcount to %d\n",
|
||||||
slot->number, atomic_read(&slot->kobj.kref.refcount) - 1);
|
slot->number, kref_read(&slot->kobj.kref) - 1);
|
||||||
|
|
||||||
mutex_lock(&pci_slot_mutex);
|
mutex_lock(&pci_slot_mutex);
|
||||||
kobject_put(&slot->kobj);
|
kobject_put(&slot->kobj);
|
||||||
|
|
|
@ -74,7 +74,7 @@ static void bnx2fc_cmd_timeout(struct work_struct *work)
|
||||||
&io_req->req_flags)) {
|
&io_req->req_flags)) {
|
||||||
/* Handle internally generated ABTS timeout */
|
/* Handle internally generated ABTS timeout */
|
||||||
BNX2FC_IO_DBG(io_req, "ABTS timed out refcnt = %d\n",
|
BNX2FC_IO_DBG(io_req, "ABTS timed out refcnt = %d\n",
|
||||||
io_req->refcount.refcount.counter);
|
kref_read(&io_req->refcount));
|
||||||
if (!(test_and_set_bit(BNX2FC_FLAG_ABTS_DONE,
|
if (!(test_and_set_bit(BNX2FC_FLAG_ABTS_DONE,
|
||||||
&io_req->req_flags))) {
|
&io_req->req_flags))) {
|
||||||
/*
|
/*
|
||||||
|
@ -1141,7 +1141,7 @@ int bnx2fc_eh_abort(struct scsi_cmnd *sc_cmd)
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
BNX2FC_IO_DBG(io_req, "eh_abort - refcnt = %d\n",
|
BNX2FC_IO_DBG(io_req, "eh_abort - refcnt = %d\n",
|
||||||
io_req->refcount.refcount.counter);
|
kref_read(&io_req->refcount));
|
||||||
|
|
||||||
/* Hold IO request across abort processing */
|
/* Hold IO request across abort processing */
|
||||||
kref_get(&io_req->refcount);
|
kref_get(&io_req->refcount);
|
||||||
|
@ -1299,7 +1299,7 @@ void bnx2fc_process_cleanup_compl(struct bnx2fc_cmd *io_req,
|
||||||
{
|
{
|
||||||
BNX2FC_IO_DBG(io_req, "Entered process_cleanup_compl "
|
BNX2FC_IO_DBG(io_req, "Entered process_cleanup_compl "
|
||||||
"refcnt = %d, cmd_type = %d\n",
|
"refcnt = %d, cmd_type = %d\n",
|
||||||
io_req->refcount.refcount.counter, io_req->cmd_type);
|
kref_read(&io_req->refcount), io_req->cmd_type);
|
||||||
bnx2fc_scsi_done(io_req, DID_ERROR);
|
bnx2fc_scsi_done(io_req, DID_ERROR);
|
||||||
kref_put(&io_req->refcount, bnx2fc_cmd_release);
|
kref_put(&io_req->refcount, bnx2fc_cmd_release);
|
||||||
if (io_req->wait_for_comp)
|
if (io_req->wait_for_comp)
|
||||||
|
@ -1318,7 +1318,7 @@ void bnx2fc_process_abts_compl(struct bnx2fc_cmd *io_req,
|
||||||
BNX2FC_IO_DBG(io_req, "Entered process_abts_compl xid = 0x%x"
|
BNX2FC_IO_DBG(io_req, "Entered process_abts_compl xid = 0x%x"
|
||||||
"refcnt = %d, cmd_type = %d\n",
|
"refcnt = %d, cmd_type = %d\n",
|
||||||
io_req->xid,
|
io_req->xid,
|
||||||
io_req->refcount.refcount.counter, io_req->cmd_type);
|
kref_read(&io_req->refcount), io_req->cmd_type);
|
||||||
|
|
||||||
if (test_and_set_bit(BNX2FC_FLAG_ABTS_DONE,
|
if (test_and_set_bit(BNX2FC_FLAG_ABTS_DONE,
|
||||||
&io_req->req_flags)) {
|
&io_req->req_flags)) {
|
||||||
|
|
|
@ -301,7 +301,7 @@ static inline void __cxgbi_sock_put(const char *fn, struct cxgbi_sock *csk)
|
||||||
{
|
{
|
||||||
log_debug(1 << CXGBI_DBG_SOCK,
|
log_debug(1 << CXGBI_DBG_SOCK,
|
||||||
"%s, put csk 0x%p, ref %u-1.\n",
|
"%s, put csk 0x%p, ref %u-1.\n",
|
||||||
fn, csk, atomic_read(&csk->refcnt.refcount));
|
fn, csk, kref_read(&csk->refcnt));
|
||||||
kref_put(&csk->refcnt, cxgbi_sock_free);
|
kref_put(&csk->refcnt, cxgbi_sock_free);
|
||||||
}
|
}
|
||||||
#define cxgbi_sock_put(csk) __cxgbi_sock_put(__func__, csk)
|
#define cxgbi_sock_put(csk) __cxgbi_sock_put(__func__, csk)
|
||||||
|
@ -310,7 +310,7 @@ static inline void __cxgbi_sock_get(const char *fn, struct cxgbi_sock *csk)
|
||||||
{
|
{
|
||||||
log_debug(1 << CXGBI_DBG_SOCK,
|
log_debug(1 << CXGBI_DBG_SOCK,
|
||||||
"%s, get csk 0x%p, ref %u+1.\n",
|
"%s, get csk 0x%p, ref %u+1.\n",
|
||||||
fn, csk, atomic_read(&csk->refcnt.refcount));
|
fn, csk, kref_read(&csk->refcnt));
|
||||||
kref_get(&csk->refcnt);
|
kref_get(&csk->refcnt);
|
||||||
}
|
}
|
||||||
#define cxgbi_sock_get(csk) __cxgbi_sock_get(__func__, csk)
|
#define cxgbi_sock_get(csk) __cxgbi_sock_get(__func__, csk)
|
||||||
|
|
|
@ -607,7 +607,7 @@ lpfc_debugfs_nodelist_data(struct lpfc_vport *vport, char *buf, int size)
|
||||||
len += snprintf(buf+len, size-len, "usgmap:%x ",
|
len += snprintf(buf+len, size-len, "usgmap:%x ",
|
||||||
ndlp->nlp_usg_map);
|
ndlp->nlp_usg_map);
|
||||||
len += snprintf(buf+len, size-len, "refcnt:%x",
|
len += snprintf(buf+len, size-len, "refcnt:%x",
|
||||||
atomic_read(&ndlp->kref.refcount));
|
kref_read(&ndlp->kref));
|
||||||
len += snprintf(buf+len, size-len, "\n");
|
len += snprintf(buf+len, size-len, "\n");
|
||||||
}
|
}
|
||||||
spin_unlock_irq(shost->host_lock);
|
spin_unlock_irq(shost->host_lock);
|
||||||
|
|
|
@ -3688,7 +3688,7 @@ lpfc_mbx_cmpl_dflt_rpi(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
|
||||||
lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_NODE,
|
lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_NODE,
|
||||||
"0006 rpi%x DID:%x flg:%x %d map:%x %p\n",
|
"0006 rpi%x DID:%x flg:%x %d map:%x %p\n",
|
||||||
ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag,
|
ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag,
|
||||||
atomic_read(&ndlp->kref.refcount),
|
kref_read(&ndlp->kref),
|
||||||
ndlp->nlp_usg_map, ndlp);
|
ndlp->nlp_usg_map, ndlp);
|
||||||
if (NLP_CHK_NODE_ACT(ndlp)) {
|
if (NLP_CHK_NODE_ACT(ndlp)) {
|
||||||
lpfc_nlp_put(ndlp);
|
lpfc_nlp_put(ndlp);
|
||||||
|
|
|
@ -3440,7 +3440,7 @@ lpfc_mbx_cmpl_reg_login(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
|
||||||
lpfc_printf_vlog(vport, KERN_INFO, LOG_SLI,
|
lpfc_printf_vlog(vport, KERN_INFO, LOG_SLI,
|
||||||
"0002 rpi:%x DID:%x flg:%x %d map:%x %p\n",
|
"0002 rpi:%x DID:%x flg:%x %d map:%x %p\n",
|
||||||
ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag,
|
ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag,
|
||||||
atomic_read(&ndlp->kref.refcount),
|
kref_read(&ndlp->kref),
|
||||||
ndlp->nlp_usg_map, ndlp);
|
ndlp->nlp_usg_map, ndlp);
|
||||||
if (ndlp->nlp_flag & NLP_REG_LOGIN_SEND)
|
if (ndlp->nlp_flag & NLP_REG_LOGIN_SEND)
|
||||||
ndlp->nlp_flag &= ~NLP_REG_LOGIN_SEND;
|
ndlp->nlp_flag &= ~NLP_REG_LOGIN_SEND;
|
||||||
|
@ -3861,7 +3861,7 @@ out:
|
||||||
lpfc_printf_vlog(vport, KERN_INFO, LOG_SLI,
|
lpfc_printf_vlog(vport, KERN_INFO, LOG_SLI,
|
||||||
"0003 rpi:%x DID:%x flg:%x %d map%x %p\n",
|
"0003 rpi:%x DID:%x flg:%x %d map%x %p\n",
|
||||||
ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag,
|
ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag,
|
||||||
atomic_read(&ndlp->kref.refcount),
|
kref_read(&ndlp->kref),
|
||||||
ndlp->nlp_usg_map, ndlp);
|
ndlp->nlp_usg_map, ndlp);
|
||||||
|
|
||||||
if (vport->port_state < LPFC_VPORT_READY) {
|
if (vport->port_state < LPFC_VPORT_READY) {
|
||||||
|
@ -4238,7 +4238,7 @@ lpfc_enable_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
|
||||||
"0277 lpfc_enable_node: ndlp:x%p "
|
"0277 lpfc_enable_node: ndlp:x%p "
|
||||||
"usgmap:x%x refcnt:%d\n",
|
"usgmap:x%x refcnt:%d\n",
|
||||||
(void *)ndlp, ndlp->nlp_usg_map,
|
(void *)ndlp, ndlp->nlp_usg_map,
|
||||||
atomic_read(&ndlp->kref.refcount));
|
kref_read(&ndlp->kref));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
/* The ndlp should not already be in active mode */
|
/* The ndlp should not already be in active mode */
|
||||||
|
@ -4248,7 +4248,7 @@ lpfc_enable_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
|
||||||
"0278 lpfc_enable_node: ndlp:x%p "
|
"0278 lpfc_enable_node: ndlp:x%p "
|
||||||
"usgmap:x%x refcnt:%d\n",
|
"usgmap:x%x refcnt:%d\n",
|
||||||
(void *)ndlp, ndlp->nlp_usg_map,
|
(void *)ndlp, ndlp->nlp_usg_map,
|
||||||
atomic_read(&ndlp->kref.refcount));
|
kref_read(&ndlp->kref));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4272,7 +4272,7 @@ lpfc_enable_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
|
||||||
"0008 rpi:%x DID:%x flg:%x refcnt:%d "
|
"0008 rpi:%x DID:%x flg:%x refcnt:%d "
|
||||||
"map:%x %p\n", ndlp->nlp_rpi, ndlp->nlp_DID,
|
"map:%x %p\n", ndlp->nlp_rpi, ndlp->nlp_DID,
|
||||||
ndlp->nlp_flag,
|
ndlp->nlp_flag,
|
||||||
atomic_read(&ndlp->kref.refcount),
|
kref_read(&ndlp->kref),
|
||||||
ndlp->nlp_usg_map, ndlp);
|
ndlp->nlp_usg_map, ndlp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4546,7 +4546,7 @@ lpfc_unreg_rpi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
|
||||||
(bf_get(lpfc_sli_intf_if_type,
|
(bf_get(lpfc_sli_intf_if_type,
|
||||||
&phba->sli4_hba.sli_intf) ==
|
&phba->sli4_hba.sli_intf) ==
|
||||||
LPFC_SLI_INTF_IF_TYPE_2) &&
|
LPFC_SLI_INTF_IF_TYPE_2) &&
|
||||||
(atomic_read(&ndlp->kref.refcount) > 0)) {
|
(kref_read(&ndlp->kref) > 0)) {
|
||||||
mbox->context1 = lpfc_nlp_get(ndlp);
|
mbox->context1 = lpfc_nlp_get(ndlp);
|
||||||
mbox->mbox_cmpl =
|
mbox->mbox_cmpl =
|
||||||
lpfc_sli4_unreg_rpi_cmpl_clr;
|
lpfc_sli4_unreg_rpi_cmpl_clr;
|
||||||
|
@ -4695,14 +4695,14 @@ lpfc_cleanup_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
|
||||||
"0280 lpfc_cleanup_node: ndlp:x%p "
|
"0280 lpfc_cleanup_node: ndlp:x%p "
|
||||||
"usgmap:x%x refcnt:%d\n",
|
"usgmap:x%x refcnt:%d\n",
|
||||||
(void *)ndlp, ndlp->nlp_usg_map,
|
(void *)ndlp, ndlp->nlp_usg_map,
|
||||||
atomic_read(&ndlp->kref.refcount));
|
kref_read(&ndlp->kref));
|
||||||
lpfc_dequeue_node(vport, ndlp);
|
lpfc_dequeue_node(vport, ndlp);
|
||||||
} else {
|
} else {
|
||||||
lpfc_printf_vlog(vport, KERN_WARNING, LOG_NODE,
|
lpfc_printf_vlog(vport, KERN_WARNING, LOG_NODE,
|
||||||
"0281 lpfc_cleanup_node: ndlp:x%p "
|
"0281 lpfc_cleanup_node: ndlp:x%p "
|
||||||
"usgmap:x%x refcnt:%d\n",
|
"usgmap:x%x refcnt:%d\n",
|
||||||
(void *)ndlp, ndlp->nlp_usg_map,
|
(void *)ndlp, ndlp->nlp_usg_map,
|
||||||
atomic_read(&ndlp->kref.refcount));
|
kref_read(&ndlp->kref));
|
||||||
lpfc_disable_node(vport, ndlp);
|
lpfc_disable_node(vport, ndlp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4791,7 +4791,7 @@ lpfc_nlp_remove(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
|
||||||
lpfc_printf_vlog(vport, KERN_INFO, LOG_NODE,
|
lpfc_printf_vlog(vport, KERN_INFO, LOG_NODE,
|
||||||
"0005 rpi:%x DID:%x flg:%x %d map:%x %p\n",
|
"0005 rpi:%x DID:%x flg:%x %d map:%x %p\n",
|
||||||
ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag,
|
ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag,
|
||||||
atomic_read(&ndlp->kref.refcount),
|
kref_read(&ndlp->kref),
|
||||||
ndlp->nlp_usg_map, ndlp);
|
ndlp->nlp_usg_map, ndlp);
|
||||||
if ((mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL))
|
if ((mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL))
|
||||||
!= NULL) {
|
!= NULL) {
|
||||||
|
@ -5557,7 +5557,7 @@ lpfc_mbx_cmpl_fdmi_reg_login(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
|
||||||
lpfc_printf_vlog(vport, KERN_INFO, LOG_SLI,
|
lpfc_printf_vlog(vport, KERN_INFO, LOG_SLI,
|
||||||
"0004 rpi:%x DID:%x flg:%x %d map:%x %p\n",
|
"0004 rpi:%x DID:%x flg:%x %d map:%x %p\n",
|
||||||
ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag,
|
ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag,
|
||||||
atomic_read(&ndlp->kref.refcount),
|
kref_read(&ndlp->kref),
|
||||||
ndlp->nlp_usg_map, ndlp);
|
ndlp->nlp_usg_map, ndlp);
|
||||||
/*
|
/*
|
||||||
* Start issuing Fabric-Device Management Interface (FDMI) command to
|
* Start issuing Fabric-Device Management Interface (FDMI) command to
|
||||||
|
@ -5728,7 +5728,7 @@ lpfc_nlp_init(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
|
||||||
"0007 rpi:%x DID:%x flg:%x refcnt:%d "
|
"0007 rpi:%x DID:%x flg:%x refcnt:%d "
|
||||||
"map:%x %p\n", ndlp->nlp_rpi, ndlp->nlp_DID,
|
"map:%x %p\n", ndlp->nlp_rpi, ndlp->nlp_DID,
|
||||||
ndlp->nlp_flag,
|
ndlp->nlp_flag,
|
||||||
atomic_read(&ndlp->kref.refcount),
|
kref_read(&ndlp->kref),
|
||||||
ndlp->nlp_usg_map, ndlp);
|
ndlp->nlp_usg_map, ndlp);
|
||||||
|
|
||||||
ndlp->active_rrqs_xri_bitmap =
|
ndlp->active_rrqs_xri_bitmap =
|
||||||
|
@ -5767,7 +5767,7 @@ lpfc_nlp_release(struct kref *kref)
|
||||||
"0279 lpfc_nlp_release: ndlp:x%p did %x "
|
"0279 lpfc_nlp_release: ndlp:x%p did %x "
|
||||||
"usgmap:x%x refcnt:%d rpi:%x\n",
|
"usgmap:x%x refcnt:%d rpi:%x\n",
|
||||||
(void *)ndlp, ndlp->nlp_DID, ndlp->nlp_usg_map,
|
(void *)ndlp, ndlp->nlp_DID, ndlp->nlp_usg_map,
|
||||||
atomic_read(&ndlp->kref.refcount), ndlp->nlp_rpi);
|
kref_read(&ndlp->kref), ndlp->nlp_rpi);
|
||||||
|
|
||||||
/* remove ndlp from action. */
|
/* remove ndlp from action. */
|
||||||
lpfc_nlp_remove(ndlp->vport, ndlp);
|
lpfc_nlp_remove(ndlp->vport, ndlp);
|
||||||
|
@ -5804,7 +5804,7 @@ lpfc_nlp_get(struct lpfc_nodelist *ndlp)
|
||||||
lpfc_debugfs_disc_trc(ndlp->vport, LPFC_DISC_TRC_NODE,
|
lpfc_debugfs_disc_trc(ndlp->vport, LPFC_DISC_TRC_NODE,
|
||||||
"node get: did:x%x flg:x%x refcnt:x%x",
|
"node get: did:x%x flg:x%x refcnt:x%x",
|
||||||
ndlp->nlp_DID, ndlp->nlp_flag,
|
ndlp->nlp_DID, ndlp->nlp_flag,
|
||||||
atomic_read(&ndlp->kref.refcount));
|
kref_read(&ndlp->kref));
|
||||||
/* The check of ndlp usage to prevent incrementing the
|
/* The check of ndlp usage to prevent incrementing the
|
||||||
* ndlp reference count that is in the process of being
|
* ndlp reference count that is in the process of being
|
||||||
* released.
|
* released.
|
||||||
|
@ -5817,7 +5817,7 @@ lpfc_nlp_get(struct lpfc_nodelist *ndlp)
|
||||||
"0276 lpfc_nlp_get: ndlp:x%p "
|
"0276 lpfc_nlp_get: ndlp:x%p "
|
||||||
"usgmap:x%x refcnt:%d\n",
|
"usgmap:x%x refcnt:%d\n",
|
||||||
(void *)ndlp, ndlp->nlp_usg_map,
|
(void *)ndlp, ndlp->nlp_usg_map,
|
||||||
atomic_read(&ndlp->kref.refcount));
|
kref_read(&ndlp->kref));
|
||||||
return NULL;
|
return NULL;
|
||||||
} else
|
} else
|
||||||
kref_get(&ndlp->kref);
|
kref_get(&ndlp->kref);
|
||||||
|
@ -5844,7 +5844,7 @@ lpfc_nlp_put(struct lpfc_nodelist *ndlp)
|
||||||
lpfc_debugfs_disc_trc(ndlp->vport, LPFC_DISC_TRC_NODE,
|
lpfc_debugfs_disc_trc(ndlp->vport, LPFC_DISC_TRC_NODE,
|
||||||
"node put: did:x%x flg:x%x refcnt:x%x",
|
"node put: did:x%x flg:x%x refcnt:x%x",
|
||||||
ndlp->nlp_DID, ndlp->nlp_flag,
|
ndlp->nlp_DID, ndlp->nlp_flag,
|
||||||
atomic_read(&ndlp->kref.refcount));
|
kref_read(&ndlp->kref));
|
||||||
phba = ndlp->phba;
|
phba = ndlp->phba;
|
||||||
spin_lock_irqsave(&phba->ndlp_lock, flags);
|
spin_lock_irqsave(&phba->ndlp_lock, flags);
|
||||||
/* Check the ndlp memory free acknowledge flag to avoid the
|
/* Check the ndlp memory free acknowledge flag to avoid the
|
||||||
|
@ -5857,7 +5857,7 @@ lpfc_nlp_put(struct lpfc_nodelist *ndlp)
|
||||||
"0274 lpfc_nlp_put: ndlp:x%p "
|
"0274 lpfc_nlp_put: ndlp:x%p "
|
||||||
"usgmap:x%x refcnt:%d\n",
|
"usgmap:x%x refcnt:%d\n",
|
||||||
(void *)ndlp, ndlp->nlp_usg_map,
|
(void *)ndlp, ndlp->nlp_usg_map,
|
||||||
atomic_read(&ndlp->kref.refcount));
|
kref_read(&ndlp->kref));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
/* Check the ndlp inactivate log flag to avoid the possible
|
/* Check the ndlp inactivate log flag to avoid the possible
|
||||||
|
@ -5870,7 +5870,7 @@ lpfc_nlp_put(struct lpfc_nodelist *ndlp)
|
||||||
"0275 lpfc_nlp_put: ndlp:x%p "
|
"0275 lpfc_nlp_put: ndlp:x%p "
|
||||||
"usgmap:x%x refcnt:%d\n",
|
"usgmap:x%x refcnt:%d\n",
|
||||||
(void *)ndlp, ndlp->nlp_usg_map,
|
(void *)ndlp, ndlp->nlp_usg_map,
|
||||||
atomic_read(&ndlp->kref.refcount));
|
kref_read(&ndlp->kref));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
/* For last put, mark the ndlp usage flags to make sure no
|
/* For last put, mark the ndlp usage flags to make sure no
|
||||||
|
@ -5878,7 +5878,7 @@ lpfc_nlp_put(struct lpfc_nodelist *ndlp)
|
||||||
* in between the process when the final kref_put has been
|
* in between the process when the final kref_put has been
|
||||||
* invoked on this ndlp.
|
* invoked on this ndlp.
|
||||||
*/
|
*/
|
||||||
if (atomic_read(&ndlp->kref.refcount) == 1) {
|
if (kref_read(&ndlp->kref) == 1) {
|
||||||
/* Indicate ndlp is put to inactive state. */
|
/* Indicate ndlp is put to inactive state. */
|
||||||
NLP_SET_IACT_REQ(ndlp);
|
NLP_SET_IACT_REQ(ndlp);
|
||||||
/* Acknowledge ndlp memory free has been seen. */
|
/* Acknowledge ndlp memory free has been seen. */
|
||||||
|
@ -5906,8 +5906,8 @@ lpfc_nlp_not_used(struct lpfc_nodelist *ndlp)
|
||||||
lpfc_debugfs_disc_trc(ndlp->vport, LPFC_DISC_TRC_NODE,
|
lpfc_debugfs_disc_trc(ndlp->vport, LPFC_DISC_TRC_NODE,
|
||||||
"node not used: did:x%x flg:x%x refcnt:x%x",
|
"node not used: did:x%x flg:x%x refcnt:x%x",
|
||||||
ndlp->nlp_DID, ndlp->nlp_flag,
|
ndlp->nlp_DID, ndlp->nlp_flag,
|
||||||
atomic_read(&ndlp->kref.refcount));
|
kref_read(&ndlp->kref));
|
||||||
if (atomic_read(&ndlp->kref.refcount) == 1)
|
if (kref_read(&ndlp->kref) == 1)
|
||||||
if (lpfc_nlp_put(ndlp))
|
if (lpfc_nlp_put(ndlp))
|
||||||
return 1;
|
return 1;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -2660,8 +2660,7 @@ lpfc_cleanup(struct lpfc_vport *vport)
|
||||||
"usgmap:x%x refcnt:%d\n",
|
"usgmap:x%x refcnt:%d\n",
|
||||||
ndlp->nlp_DID, (void *)ndlp,
|
ndlp->nlp_DID, (void *)ndlp,
|
||||||
ndlp->nlp_usg_map,
|
ndlp->nlp_usg_map,
|
||||||
atomic_read(
|
kref_read(&ndlp->kref));
|
||||||
&ndlp->kref.refcount));
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -371,7 +371,7 @@ static int tcm_qla2xxx_write_pending(struct se_cmd *se_cmd)
|
||||||
*/
|
*/
|
||||||
pr_debug("write_pending aborted cmd[%p] refcount %d "
|
pr_debug("write_pending aborted cmd[%p] refcount %d "
|
||||||
"transport_state %x, t_state %x, se_cmd_flags %x\n",
|
"transport_state %x, t_state %x, se_cmd_flags %x\n",
|
||||||
cmd,cmd->se_cmd.cmd_kref.refcount.counter,
|
cmd, kref_read(&cmd->se_cmd.cmd_kref),
|
||||||
cmd->se_cmd.transport_state,
|
cmd->se_cmd.transport_state,
|
||||||
cmd->se_cmd.t_state,
|
cmd->se_cmd.t_state,
|
||||||
cmd->se_cmd.se_cmd_flags);
|
cmd->se_cmd.se_cmd_flags);
|
||||||
|
@ -584,7 +584,7 @@ static int tcm_qla2xxx_queue_data_in(struct se_cmd *se_cmd)
|
||||||
*/
|
*/
|
||||||
pr_debug("queue_data_in aborted cmd[%p] refcount %d "
|
pr_debug("queue_data_in aborted cmd[%p] refcount %d "
|
||||||
"transport_state %x, t_state %x, se_cmd_flags %x\n",
|
"transport_state %x, t_state %x, se_cmd_flags %x\n",
|
||||||
cmd,cmd->se_cmd.cmd_kref.refcount.counter,
|
cmd, kref_read(&cmd->se_cmd.cmd_kref),
|
||||||
cmd->se_cmd.transport_state,
|
cmd->se_cmd.transport_state,
|
||||||
cmd->se_cmd.t_state,
|
cmd->se_cmd.t_state,
|
||||||
cmd->se_cmd.se_cmd_flags);
|
cmd->se_cmd.se_cmd_flags);
|
||||||
|
|
|
@ -1300,7 +1300,7 @@ static int ion_debug_heap_show(struct seq_file *s, void *unused)
|
||||||
seq_printf(s, "%16s %16u %16zu %d %d\n",
|
seq_printf(s, "%16s %16u %16zu %d %d\n",
|
||||||
buffer->task_comm, buffer->pid,
|
buffer->task_comm, buffer->pid,
|
||||||
buffer->size, buffer->kmap_cnt,
|
buffer->size, buffer->kmap_cnt,
|
||||||
atomic_read(&buffer->ref.refcount));
|
kref_read(&buffer->ref));
|
||||||
total_orphaned_size += buffer->size;
|
total_orphaned_size += buffer->size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -188,7 +188,7 @@ bool comedi_buf_is_mmapped(struct comedi_subdevice *s)
|
||||||
{
|
{
|
||||||
struct comedi_buf_map *bm = s->async->buf_map;
|
struct comedi_buf_map *bm = s->async->buf_map;
|
||||||
|
|
||||||
return bm && (atomic_read(&bm->refcount.refcount) > 1);
|
return bm && (kref_read(&bm->refcount) > 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int comedi_buf_alloc(struct comedi_device *dev, struct comedi_subdevice *s,
|
int comedi_buf_alloc(struct comedi_device *dev, struct comedi_subdevice *s,
|
||||||
|
|
|
@ -788,7 +788,7 @@ static struct t10_pr_registration *__core_scsi3_alloc_registration(
|
||||||
* __core_scsi3_add_registration()
|
* __core_scsi3_add_registration()
|
||||||
*/
|
*/
|
||||||
dest_lun = rcu_dereference_check(deve_tmp->se_lun,
|
dest_lun = rcu_dereference_check(deve_tmp->se_lun,
|
||||||
atomic_read(&deve_tmp->pr_kref.refcount) != 0);
|
kref_read(&deve_tmp->pr_kref) != 0);
|
||||||
|
|
||||||
pr_reg_atp = __core_scsi3_do_alloc_registration(dev,
|
pr_reg_atp = __core_scsi3_do_alloc_registration(dev,
|
||||||
nacl_tmp, dest_lun, deve_tmp,
|
nacl_tmp, dest_lun, deve_tmp,
|
||||||
|
@ -1463,7 +1463,7 @@ static int core_scsi3_lunacl_depend_item(struct se_dev_entry *se_deve)
|
||||||
* For nacl->dynamic_node_acl=1
|
* For nacl->dynamic_node_acl=1
|
||||||
*/
|
*/
|
||||||
lun_acl = rcu_dereference_check(se_deve->se_lun_acl,
|
lun_acl = rcu_dereference_check(se_deve->se_lun_acl,
|
||||||
atomic_read(&se_deve->pr_kref.refcount) != 0);
|
kref_read(&se_deve->pr_kref) != 0);
|
||||||
if (!lun_acl)
|
if (!lun_acl)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -1478,7 +1478,7 @@ static void core_scsi3_lunacl_undepend_item(struct se_dev_entry *se_deve)
|
||||||
* For nacl->dynamic_node_acl=1
|
* For nacl->dynamic_node_acl=1
|
||||||
*/
|
*/
|
||||||
lun_acl = rcu_dereference_check(se_deve->se_lun_acl,
|
lun_acl = rcu_dereference_check(se_deve->se_lun_acl,
|
||||||
atomic_read(&se_deve->pr_kref.refcount) != 0);
|
kref_read(&se_deve->pr_kref) != 0);
|
||||||
if (!lun_acl) {
|
if (!lun_acl) {
|
||||||
kref_put(&se_deve->pr_kref, target_pr_kref_release);
|
kref_put(&se_deve->pr_kref, target_pr_kref_release);
|
||||||
return;
|
return;
|
||||||
|
@ -1759,7 +1759,7 @@ core_scsi3_decode_spec_i_port(
|
||||||
* 2nd loop which will never fail.
|
* 2nd loop which will never fail.
|
||||||
*/
|
*/
|
||||||
dest_lun = rcu_dereference_check(dest_se_deve->se_lun,
|
dest_lun = rcu_dereference_check(dest_se_deve->se_lun,
|
||||||
atomic_read(&dest_se_deve->pr_kref.refcount) != 0);
|
kref_read(&dest_se_deve->pr_kref) != 0);
|
||||||
|
|
||||||
dest_pr_reg = __core_scsi3_alloc_registration(cmd->se_dev,
|
dest_pr_reg = __core_scsi3_alloc_registration(cmd->se_dev,
|
||||||
dest_node_acl, dest_lun, dest_se_deve,
|
dest_node_acl, dest_lun, dest_se_deve,
|
||||||
|
@ -3466,7 +3466,7 @@ after_iport_check:
|
||||||
iport_ptr);
|
iport_ptr);
|
||||||
if (!dest_pr_reg) {
|
if (!dest_pr_reg) {
|
||||||
struct se_lun *dest_lun = rcu_dereference_check(dest_se_deve->se_lun,
|
struct se_lun *dest_lun = rcu_dereference_check(dest_se_deve->se_lun,
|
||||||
atomic_read(&dest_se_deve->pr_kref.refcount) != 0);
|
kref_read(&dest_se_deve->pr_kref) != 0);
|
||||||
|
|
||||||
spin_unlock(&dev->dev_reservation_lock);
|
spin_unlock(&dev->dev_reservation_lock);
|
||||||
if (core_scsi3_alloc_registration(cmd->se_dev, dest_node_acl,
|
if (core_scsi3_alloc_registration(cmd->se_dev, dest_node_acl,
|
||||||
|
|
|
@ -454,7 +454,7 @@ static void ft_sess_free(struct kref *kref)
|
||||||
|
|
||||||
void ft_sess_put(struct ft_sess *sess)
|
void ft_sess_put(struct ft_sess *sess)
|
||||||
{
|
{
|
||||||
int sess_held = atomic_read(&sess->kref.refcount);
|
int sess_held = kref_read(&sess->kref);
|
||||||
|
|
||||||
BUG_ON(!sess_held);
|
BUG_ON(!sess_held);
|
||||||
kref_put(&sess->kref, ft_sess_free);
|
kref_put(&sess->kref, ft_sess_free);
|
||||||
|
|
|
@ -3687,7 +3687,7 @@ static void ffs_closed(struct ffs_data *ffs)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
if (opts->no_configfs || !opts->func_inst.group.cg_item.ci_parent
|
if (opts->no_configfs || !opts->func_inst.group.cg_item.ci_parent
|
||||||
|| !atomic_read(&opts->func_inst.group.cg_item.ci_kref.refcount))
|
|| !kref_read(&opts->func_inst.group.cg_item.ci_kref))
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
ci = opts->func_inst.group.cg_item.ci_parent->ci_parent;
|
ci = opts->func_inst.group.cg_item.ci_parent->ci_parent;
|
||||||
|
|
|
@ -122,7 +122,7 @@ void exofs_sysfs_dbg_print(void)
|
||||||
list_for_each_entry_safe(k_name, k_tmp, &exofs_kset->list, entry) {
|
list_for_each_entry_safe(k_name, k_tmp, &exofs_kset->list, entry) {
|
||||||
printk(KERN_INFO "%s: name %s ref %d\n",
|
printk(KERN_INFO "%s: name %s ref %d\n",
|
||||||
__func__, kobject_name(k_name),
|
__func__, kobject_name(k_name),
|
||||||
(int)atomic_read(&k_name->kref.refcount));
|
(int)kref_read(&k_name->kref));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -349,7 +349,7 @@ static void sc_show_sock_container(struct seq_file *seq,
|
||||||
" func key: 0x%08x\n"
|
" func key: 0x%08x\n"
|
||||||
" func type: %u\n",
|
" func type: %u\n",
|
||||||
sc,
|
sc,
|
||||||
atomic_read(&sc->sc_kref.refcount),
|
kref_read(&sc->sc_kref),
|
||||||
&saddr, inet ? ntohs(sport) : 0,
|
&saddr, inet ? ntohs(sport) : 0,
|
||||||
&daddr, inet ? ntohs(dport) : 0,
|
&daddr, inet ? ntohs(dport) : 0,
|
||||||
sc->sc_node->nd_name,
|
sc->sc_node->nd_name,
|
||||||
|
|
|
@ -97,7 +97,7 @@
|
||||||
typeof(sc) __sc = (sc); \
|
typeof(sc) __sc = (sc); \
|
||||||
mlog(ML_SOCKET, "[sc %p refs %d sock %p node %u page %p " \
|
mlog(ML_SOCKET, "[sc %p refs %d sock %p node %u page %p " \
|
||||||
"pg_off %zu] " fmt, __sc, \
|
"pg_off %zu] " fmt, __sc, \
|
||||||
atomic_read(&__sc->sc_kref.refcount), __sc->sc_sock, \
|
kref_read(&__sc->sc_kref), __sc->sc_sock, \
|
||||||
__sc->sc_node->nd_num, __sc->sc_page, __sc->sc_page_off , \
|
__sc->sc_node->nd_num, __sc->sc_page, __sc->sc_page_off , \
|
||||||
##args); \
|
##args); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
|
@ -81,7 +81,7 @@ static void __dlm_print_lock(struct dlm_lock *lock)
|
||||||
lock->ml.type, lock->ml.convert_type, lock->ml.node,
|
lock->ml.type, lock->ml.convert_type, lock->ml.node,
|
||||||
dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)),
|
dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)),
|
||||||
dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)),
|
dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)),
|
||||||
atomic_read(&lock->lock_refs.refcount),
|
kref_read(&lock->lock_refs),
|
||||||
(list_empty(&lock->ast_list) ? 'y' : 'n'),
|
(list_empty(&lock->ast_list) ? 'y' : 'n'),
|
||||||
(lock->ast_pending ? 'y' : 'n'),
|
(lock->ast_pending ? 'y' : 'n'),
|
||||||
(list_empty(&lock->bast_list) ? 'y' : 'n'),
|
(list_empty(&lock->bast_list) ? 'y' : 'n'),
|
||||||
|
@ -106,7 +106,7 @@ void __dlm_print_one_lock_resource(struct dlm_lock_resource *res)
|
||||||
printk("lockres: %s, owner=%u, state=%u\n",
|
printk("lockres: %s, owner=%u, state=%u\n",
|
||||||
buf, res->owner, res->state);
|
buf, res->owner, res->state);
|
||||||
printk(" last used: %lu, refcnt: %u, on purge list: %s\n",
|
printk(" last used: %lu, refcnt: %u, on purge list: %s\n",
|
||||||
res->last_used, atomic_read(&res->refs.refcount),
|
res->last_used, kref_read(&res->refs),
|
||||||
list_empty(&res->purge) ? "no" : "yes");
|
list_empty(&res->purge) ? "no" : "yes");
|
||||||
printk(" on dirty list: %s, on reco list: %s, "
|
printk(" on dirty list: %s, on reco list: %s, "
|
||||||
"migrating pending: %s\n",
|
"migrating pending: %s\n",
|
||||||
|
@ -298,7 +298,7 @@ static int dump_mle(struct dlm_master_list_entry *mle, char *buf, int len)
|
||||||
mle_type, mle->master, mle->new_master,
|
mle_type, mle->master, mle->new_master,
|
||||||
!list_empty(&mle->hb_events),
|
!list_empty(&mle->hb_events),
|
||||||
!!mle->inuse,
|
!!mle->inuse,
|
||||||
atomic_read(&mle->mle_refs.refcount));
|
kref_read(&mle->mle_refs));
|
||||||
|
|
||||||
out += snprintf(buf + out, len - out, "Maybe=");
|
out += snprintf(buf + out, len - out, "Maybe=");
|
||||||
out += stringify_nodemap(mle->maybe_map, O2NM_MAX_NODES,
|
out += stringify_nodemap(mle->maybe_map, O2NM_MAX_NODES,
|
||||||
|
@ -494,7 +494,7 @@ static int dump_lock(struct dlm_lock *lock, int list_type, char *buf, int len)
|
||||||
lock->ast_pending, lock->bast_pending,
|
lock->ast_pending, lock->bast_pending,
|
||||||
lock->convert_pending, lock->lock_pending,
|
lock->convert_pending, lock->lock_pending,
|
||||||
lock->cancel_pending, lock->unlock_pending,
|
lock->cancel_pending, lock->unlock_pending,
|
||||||
atomic_read(&lock->lock_refs.refcount));
|
kref_read(&lock->lock_refs));
|
||||||
spin_unlock(&lock->spinlock);
|
spin_unlock(&lock->spinlock);
|
||||||
|
|
||||||
return out;
|
return out;
|
||||||
|
@ -521,7 +521,7 @@ static int dump_lockres(struct dlm_lock_resource *res, char *buf, int len)
|
||||||
!list_empty(&res->recovering),
|
!list_empty(&res->recovering),
|
||||||
res->inflight_locks, res->migration_pending,
|
res->inflight_locks, res->migration_pending,
|
||||||
atomic_read(&res->asts_reserved),
|
atomic_read(&res->asts_reserved),
|
||||||
atomic_read(&res->refs.refcount));
|
kref_read(&res->refs));
|
||||||
|
|
||||||
/* refmap */
|
/* refmap */
|
||||||
out += snprintf(buf + out, len - out, "RMAP:");
|
out += snprintf(buf + out, len - out, "RMAP:");
|
||||||
|
@ -777,7 +777,7 @@ static int debug_state_print(struct dlm_ctxt *dlm, char *buf, int len)
|
||||||
/* Purge Count: xxx Refs: xxx */
|
/* Purge Count: xxx Refs: xxx */
|
||||||
out += snprintf(buf + out, len - out,
|
out += snprintf(buf + out, len - out,
|
||||||
"Purge Count: %d Refs: %d\n", dlm->purge_count,
|
"Purge Count: %d Refs: %d\n", dlm->purge_count,
|
||||||
atomic_read(&dlm->dlm_refs.refcount));
|
kref_read(&dlm->dlm_refs));
|
||||||
|
|
||||||
/* Dead Node: xxx */
|
/* Dead Node: xxx */
|
||||||
out += snprintf(buf + out, len - out,
|
out += snprintf(buf + out, len - out,
|
||||||
|
|
|
@ -2072,7 +2072,7 @@ static struct dlm_ctxt *dlm_alloc_ctxt(const char *domain,
|
||||||
INIT_LIST_HEAD(&dlm->dlm_eviction_callbacks);
|
INIT_LIST_HEAD(&dlm->dlm_eviction_callbacks);
|
||||||
|
|
||||||
mlog(0, "context init: refcount %u\n",
|
mlog(0, "context init: refcount %u\n",
|
||||||
atomic_read(&dlm->dlm_refs.refcount));
|
kref_read(&dlm->dlm_refs));
|
||||||
|
|
||||||
leave:
|
leave:
|
||||||
if (ret < 0 && dlm) {
|
if (ret < 0 && dlm) {
|
||||||
|
|
|
@ -233,7 +233,7 @@ static void __dlm_put_mle(struct dlm_master_list_entry *mle)
|
||||||
|
|
||||||
assert_spin_locked(&dlm->spinlock);
|
assert_spin_locked(&dlm->spinlock);
|
||||||
assert_spin_locked(&dlm->master_lock);
|
assert_spin_locked(&dlm->master_lock);
|
||||||
if (!atomic_read(&mle->mle_refs.refcount)) {
|
if (!kref_read(&mle->mle_refs)) {
|
||||||
/* this may or may not crash, but who cares.
|
/* this may or may not crash, but who cares.
|
||||||
* it's a BUG. */
|
* it's a BUG. */
|
||||||
mlog(ML_ERROR, "bad mle: %p\n", mle);
|
mlog(ML_ERROR, "bad mle: %p\n", mle);
|
||||||
|
@ -1124,9 +1124,9 @@ recheck:
|
||||||
unsigned long timeo = msecs_to_jiffies(DLM_MASTERY_TIMEOUT_MS);
|
unsigned long timeo = msecs_to_jiffies(DLM_MASTERY_TIMEOUT_MS);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if (atomic_read(&mle->mle_refs.refcount) < 2)
|
if (kref_read(&mle->mle_refs) < 2)
|
||||||
mlog(ML_ERROR, "mle (%p) refs=%d, name=%.*s\n", mle,
|
mlog(ML_ERROR, "mle (%p) refs=%d, name=%.*s\n", mle,
|
||||||
atomic_read(&mle->mle_refs.refcount),
|
kref_read(&mle->mle_refs),
|
||||||
res->lockname.len, res->lockname.name);
|
res->lockname.len, res->lockname.name);
|
||||||
*/
|
*/
|
||||||
atomic_set(&mle->woken, 0);
|
atomic_set(&mle->woken, 0);
|
||||||
|
@ -1979,7 +1979,7 @@ ok:
|
||||||
* on this mle. */
|
* on this mle. */
|
||||||
spin_lock(&dlm->master_lock);
|
spin_lock(&dlm->master_lock);
|
||||||
|
|
||||||
rr = atomic_read(&mle->mle_refs.refcount);
|
rr = kref_read(&mle->mle_refs);
|
||||||
if (mle->inuse > 0) {
|
if (mle->inuse > 0) {
|
||||||
if (extra_ref && rr < 3)
|
if (extra_ref && rr < 3)
|
||||||
err = 1;
|
err = 1;
|
||||||
|
|
|
@ -251,7 +251,7 @@ leave:
|
||||||
mlog(0, "lock %u:%llu should be gone now! refs=%d\n",
|
mlog(0, "lock %u:%llu should be gone now! refs=%d\n",
|
||||||
dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)),
|
dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)),
|
||||||
dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)),
|
dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)),
|
||||||
atomic_read(&lock->lock_refs.refcount)-1);
|
kref_read(&lock->lock_refs)-1);
|
||||||
dlm_lock_put(lock);
|
dlm_lock_put(lock);
|
||||||
}
|
}
|
||||||
if (actions & DLM_UNLOCK_CALL_AST)
|
if (actions & DLM_UNLOCK_CALL_AST)
|
||||||
|
|
|
@ -247,7 +247,7 @@ static inline void drm_framebuffer_unreference(struct drm_framebuffer *fb)
|
||||||
*/
|
*/
|
||||||
static inline uint32_t drm_framebuffer_read_refcount(struct drm_framebuffer *fb)
|
static inline uint32_t drm_framebuffer_read_refcount(struct drm_framebuffer *fb)
|
||||||
{
|
{
|
||||||
return atomic_read(&fb->base.refcount.refcount);
|
return kref_read(&fb->base.refcount);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -878,7 +878,7 @@ static inline int ttm_bo_reserve(struct ttm_buffer_object *bo,
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
WARN_ON(!atomic_read(&bo->kref.refcount));
|
WARN_ON(!kref_read(&bo->kref));
|
||||||
|
|
||||||
ret = __ttm_bo_reserve(bo, interruptible, no_wait, ticket);
|
ret = __ttm_bo_reserve(bo, interruptible, no_wait, ticket);
|
||||||
if (likely(ret == 0))
|
if (likely(ret == 0))
|
||||||
|
@ -903,7 +903,7 @@ static inline int ttm_bo_reserve_slowpath(struct ttm_buffer_object *bo,
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
WARN_ON(!atomic_read(&bo->kref.refcount));
|
WARN_ON(!kref_read(&bo->kref));
|
||||||
|
|
||||||
if (interruptible)
|
if (interruptible)
|
||||||
ret = ww_mutex_lock_slow_interruptible(&bo->resv->lock,
|
ret = ww_mutex_lock_slow_interruptible(&bo->resv->lock,
|
||||||
|
|
|
@ -35,6 +35,11 @@ static inline void kref_init(struct kref *kref)
|
||||||
atomic_set(&kref->refcount, 1);
|
atomic_set(&kref->refcount, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int kref_read(const struct kref *kref)
|
||||||
|
{
|
||||||
|
return atomic_read(&kref->refcount);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* kref_get - increment refcount for object.
|
* kref_get - increment refcount for object.
|
||||||
* @kref: object.
|
* @kref: object.
|
||||||
|
|
|
@ -198,7 +198,7 @@ static inline struct cache_head *cache_get(struct cache_head *h)
|
||||||
|
|
||||||
static inline void cache_put(struct cache_head *h, struct cache_detail *cd)
|
static inline void cache_put(struct cache_head *h, struct cache_detail *cd)
|
||||||
{
|
{
|
||||||
if (atomic_read(&h->ref.refcount) <= 2 &&
|
if (kref_read(&h->ref) <= 2 &&
|
||||||
h->expiry_time < cd->nextcheck)
|
h->expiry_time < cd->nextcheck)
|
||||||
cd->nextcheck = h->expiry_time;
|
cd->nextcheck = h->expiry_time;
|
||||||
kref_put(&h->ref, cd->cache_put);
|
kref_put(&h->ref, cd->cache_put);
|
||||||
|
|
|
@ -987,7 +987,7 @@ static inline void hci_conn_drop(struct hci_conn *conn)
|
||||||
static inline void hci_dev_put(struct hci_dev *d)
|
static inline void hci_dev_put(struct hci_dev *d)
|
||||||
{
|
{
|
||||||
BT_DBG("%s orig refcnt %d", d->name,
|
BT_DBG("%s orig refcnt %d", d->name,
|
||||||
atomic_read(&d->dev.kobj.kref.refcount));
|
kref_read(&d->dev.kobj.kref));
|
||||||
|
|
||||||
put_device(&d->dev);
|
put_device(&d->dev);
|
||||||
}
|
}
|
||||||
|
@ -995,7 +995,7 @@ static inline void hci_dev_put(struct hci_dev *d)
|
||||||
static inline struct hci_dev *hci_dev_hold(struct hci_dev *d)
|
static inline struct hci_dev *hci_dev_hold(struct hci_dev *d)
|
||||||
{
|
{
|
||||||
BT_DBG("%s orig refcnt %d", d->name,
|
BT_DBG("%s orig refcnt %d", d->name,
|
||||||
atomic_read(&d->dev.kobj.kref.refcount));
|
kref_read(&d->dev.kobj.kref));
|
||||||
|
|
||||||
get_device(&d->dev);
|
get_device(&d->dev);
|
||||||
return d;
|
return d;
|
||||||
|
|
|
@ -920,7 +920,7 @@ static void chan_close_cb(struct l2cap_chan *chan)
|
||||||
BT_DBG("dev %p removing %speer %p", dev,
|
BT_DBG("dev %p removing %speer %p", dev,
|
||||||
last ? "last " : "1 ", peer);
|
last ? "last " : "1 ", peer);
|
||||||
BT_DBG("chan %p orig refcnt %d", chan,
|
BT_DBG("chan %p orig refcnt %d", chan,
|
||||||
atomic_read(&chan->kref.refcount));
|
kref_read(&chan->kref));
|
||||||
|
|
||||||
l2cap_chan_put(chan);
|
l2cap_chan_put(chan);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -810,7 +810,7 @@ static struct l2cap_chan *a2mp_chan_open(struct l2cap_conn *conn, bool locked)
|
||||||
/* AMP Manager functions */
|
/* AMP Manager functions */
|
||||||
struct amp_mgr *amp_mgr_get(struct amp_mgr *mgr)
|
struct amp_mgr *amp_mgr_get(struct amp_mgr *mgr)
|
||||||
{
|
{
|
||||||
BT_DBG("mgr %p orig refcnt %d", mgr, atomic_read(&mgr->kref.refcount));
|
BT_DBG("mgr %p orig refcnt %d", mgr, kref_read(&mgr->kref));
|
||||||
|
|
||||||
kref_get(&mgr->kref);
|
kref_get(&mgr->kref);
|
||||||
|
|
||||||
|
@ -833,7 +833,7 @@ static void amp_mgr_destroy(struct kref *kref)
|
||||||
|
|
||||||
int amp_mgr_put(struct amp_mgr *mgr)
|
int amp_mgr_put(struct amp_mgr *mgr)
|
||||||
{
|
{
|
||||||
BT_DBG("mgr %p orig refcnt %d", mgr, atomic_read(&mgr->kref.refcount));
|
BT_DBG("mgr %p orig refcnt %d", mgr, kref_read(&mgr->kref));
|
||||||
|
|
||||||
return kref_put(&mgr->kref, &_mgr_destroy);
|
return kref_put(&mgr->kref, &_mgr_destroy);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
void amp_ctrl_get(struct amp_ctrl *ctrl)
|
void amp_ctrl_get(struct amp_ctrl *ctrl)
|
||||||
{
|
{
|
||||||
BT_DBG("ctrl %p orig refcnt %d", ctrl,
|
BT_DBG("ctrl %p orig refcnt %d", ctrl,
|
||||||
atomic_read(&ctrl->kref.refcount));
|
kref_read(&ctrl->kref));
|
||||||
|
|
||||||
kref_get(&ctrl->kref);
|
kref_get(&ctrl->kref);
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ static void amp_ctrl_destroy(struct kref *kref)
|
||||||
int amp_ctrl_put(struct amp_ctrl *ctrl)
|
int amp_ctrl_put(struct amp_ctrl *ctrl)
|
||||||
{
|
{
|
||||||
BT_DBG("ctrl %p orig refcnt %d", ctrl,
|
BT_DBG("ctrl %p orig refcnt %d", ctrl,
|
||||||
atomic_read(&ctrl->kref.refcount));
|
kref_read(&ctrl->kref));
|
||||||
|
|
||||||
return kref_put(&ctrl->kref, &_ctrl_destroy);
|
return kref_put(&ctrl->kref, &_ctrl_destroy);
|
||||||
}
|
}
|
||||||
|
|
|
@ -481,14 +481,14 @@ static void l2cap_chan_destroy(struct kref *kref)
|
||||||
|
|
||||||
void l2cap_chan_hold(struct l2cap_chan *c)
|
void l2cap_chan_hold(struct l2cap_chan *c)
|
||||||
{
|
{
|
||||||
BT_DBG("chan %p orig refcnt %d", c, atomic_read(&c->kref.refcount));
|
BT_DBG("chan %p orig refcnt %d", c, kref_read(&c->kref));
|
||||||
|
|
||||||
kref_get(&c->kref);
|
kref_get(&c->kref);
|
||||||
}
|
}
|
||||||
|
|
||||||
void l2cap_chan_put(struct l2cap_chan *c)
|
void l2cap_chan_put(struct l2cap_chan *c)
|
||||||
{
|
{
|
||||||
BT_DBG("chan %p orig refcnt %d", c, atomic_read(&c->kref.refcount));
|
BT_DBG("chan %p orig refcnt %d", c, kref_read(&c->kref));
|
||||||
|
|
||||||
kref_put(&c->kref, l2cap_chan_destroy);
|
kref_put(&c->kref, l2cap_chan_destroy);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3425,7 +3425,7 @@ static void ceph_msg_release(struct kref *kref)
|
||||||
struct ceph_msg *ceph_msg_get(struct ceph_msg *msg)
|
struct ceph_msg *ceph_msg_get(struct ceph_msg *msg)
|
||||||
{
|
{
|
||||||
dout("%s %p (was %d)\n", __func__, msg,
|
dout("%s %p (was %d)\n", __func__, msg,
|
||||||
atomic_read(&msg->kref.refcount));
|
kref_read(&msg->kref));
|
||||||
kref_get(&msg->kref);
|
kref_get(&msg->kref);
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
@ -3434,7 +3434,7 @@ EXPORT_SYMBOL(ceph_msg_get);
|
||||||
void ceph_msg_put(struct ceph_msg *msg)
|
void ceph_msg_put(struct ceph_msg *msg)
|
||||||
{
|
{
|
||||||
dout("%s %p (was %d)\n", __func__, msg,
|
dout("%s %p (was %d)\n", __func__, msg,
|
||||||
atomic_read(&msg->kref.refcount));
|
kref_read(&msg->kref));
|
||||||
kref_put(&msg->kref, ceph_msg_release);
|
kref_put(&msg->kref, ceph_msg_release);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ceph_msg_put);
|
EXPORT_SYMBOL(ceph_msg_put);
|
||||||
|
|
|
@ -438,7 +438,7 @@ static void ceph_osdc_release_request(struct kref *kref)
|
||||||
void ceph_osdc_get_request(struct ceph_osd_request *req)
|
void ceph_osdc_get_request(struct ceph_osd_request *req)
|
||||||
{
|
{
|
||||||
dout("%s %p (was %d)\n", __func__, req,
|
dout("%s %p (was %d)\n", __func__, req,
|
||||||
atomic_read(&req->r_kref.refcount));
|
kref_read(&req->r_kref));
|
||||||
kref_get(&req->r_kref);
|
kref_get(&req->r_kref);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ceph_osdc_get_request);
|
EXPORT_SYMBOL(ceph_osdc_get_request);
|
||||||
|
@ -447,7 +447,7 @@ void ceph_osdc_put_request(struct ceph_osd_request *req)
|
||||||
{
|
{
|
||||||
if (req) {
|
if (req) {
|
||||||
dout("%s %p (was %d)\n", __func__, req,
|
dout("%s %p (was %d)\n", __func__, req,
|
||||||
atomic_read(&req->r_kref.refcount));
|
kref_read(&req->r_kref));
|
||||||
kref_put(&req->r_kref, ceph_osdc_release_request);
|
kref_put(&req->r_kref, ceph_osdc_release_request);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -487,11 +487,11 @@ static void request_reinit(struct ceph_osd_request *req)
|
||||||
struct ceph_msg *reply_msg = req->r_reply;
|
struct ceph_msg *reply_msg = req->r_reply;
|
||||||
|
|
||||||
dout("%s req %p\n", __func__, req);
|
dout("%s req %p\n", __func__, req);
|
||||||
WARN_ON(atomic_read(&req->r_kref.refcount) != 1);
|
WARN_ON(kref_read(&req->r_kref) != 1);
|
||||||
request_release_checks(req);
|
request_release_checks(req);
|
||||||
|
|
||||||
WARN_ON(atomic_read(&request_msg->kref.refcount) != 1);
|
WARN_ON(kref_read(&request_msg->kref) != 1);
|
||||||
WARN_ON(atomic_read(&reply_msg->kref.refcount) != 1);
|
WARN_ON(kref_read(&reply_msg->kref) != 1);
|
||||||
target_destroy(&req->r_t);
|
target_destroy(&req->r_t);
|
||||||
|
|
||||||
request_init(req);
|
request_init(req);
|
||||||
|
|
|
@ -1358,7 +1358,7 @@ static int c_show(struct seq_file *m, void *p)
|
||||||
ifdebug(CACHE)
|
ifdebug(CACHE)
|
||||||
seq_printf(m, "# expiry=%ld refcnt=%d flags=%lx\n",
|
seq_printf(m, "# expiry=%ld refcnt=%d flags=%lx\n",
|
||||||
convert_to_wallclock(cp->expiry_time),
|
convert_to_wallclock(cp->expiry_time),
|
||||||
atomic_read(&cp->ref.refcount), cp->flags);
|
kref_read(&cp->ref), cp->flags);
|
||||||
cache_get(cp);
|
cache_get(cp);
|
||||||
if (cache_check(cd, cp, NULL))
|
if (cache_check(cd, cp, NULL))
|
||||||
/* cache_check does a cache_put on failure */
|
/* cache_check does a cache_put on failure */
|
||||||
|
|
|
@ -490,7 +490,7 @@ static struct svc_xprt *svc_xprt_dequeue(struct svc_pool *pool)
|
||||||
svc_xprt_get(xprt);
|
svc_xprt_get(xprt);
|
||||||
|
|
||||||
dprintk("svc: transport %p dequeued, inuse=%d\n",
|
dprintk("svc: transport %p dequeued, inuse=%d\n",
|
||||||
xprt, atomic_read(&xprt->xpt_ref.refcount));
|
xprt, kref_read(&xprt->xpt_ref));
|
||||||
}
|
}
|
||||||
spin_unlock_bh(&pool->sp_lock);
|
spin_unlock_bh(&pool->sp_lock);
|
||||||
out:
|
out:
|
||||||
|
@ -820,7 +820,7 @@ static int svc_handle_xprt(struct svc_rqst *rqstp, struct svc_xprt *xprt)
|
||||||
/* XPT_DATA|XPT_DEFERRED case: */
|
/* XPT_DATA|XPT_DEFERRED case: */
|
||||||
dprintk("svc: server %p, pool %u, transport %p, inuse=%d\n",
|
dprintk("svc: server %p, pool %u, transport %p, inuse=%d\n",
|
||||||
rqstp, rqstp->rq_pool->sp_id, xprt,
|
rqstp, rqstp->rq_pool->sp_id, xprt,
|
||||||
atomic_read(&xprt->xpt_ref.refcount));
|
kref_read(&xprt->xpt_ref));
|
||||||
rqstp->rq_deferred = svc_deferred_dequeue(xprt);
|
rqstp->rq_deferred = svc_deferred_dequeue(xprt);
|
||||||
if (rqstp->rq_deferred)
|
if (rqstp->rq_deferred)
|
||||||
len = svc_deferred_recv(rqstp);
|
len = svc_deferred_recv(rqstp);
|
||||||
|
@ -978,7 +978,7 @@ static void svc_age_temp_xprts(unsigned long closure)
|
||||||
* through, close it. */
|
* through, close it. */
|
||||||
if (!test_and_set_bit(XPT_OLD, &xprt->xpt_flags))
|
if (!test_and_set_bit(XPT_OLD, &xprt->xpt_flags))
|
||||||
continue;
|
continue;
|
||||||
if (atomic_read(&xprt->xpt_ref.refcount) > 1 ||
|
if (kref_read(&xprt->xpt_ref) > 1 ||
|
||||||
test_bit(XPT_BUSY, &xprt->xpt_flags))
|
test_bit(XPT_BUSY, &xprt->xpt_flags))
|
||||||
continue;
|
continue;
|
||||||
list_del_init(le);
|
list_del_init(le);
|
||||||
|
|
|
@ -1201,9 +1201,9 @@ static void __svc_rdma_free(struct work_struct *work)
|
||||||
ib_drain_qp(rdma->sc_qp);
|
ib_drain_qp(rdma->sc_qp);
|
||||||
|
|
||||||
/* We should only be called from kref_put */
|
/* We should only be called from kref_put */
|
||||||
if (atomic_read(&xprt->xpt_ref.refcount) != 0)
|
if (kref_read(&xprt->xpt_ref) != 0)
|
||||||
pr_err("svcrdma: sc_xprt still in use? (%d)\n",
|
pr_err("svcrdma: sc_xprt still in use? (%d)\n",
|
||||||
atomic_read(&xprt->xpt_ref.refcount));
|
kref_read(&xprt->xpt_ref));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Destroy queued, but not processed read completions. Note
|
* Destroy queued, but not processed read completions. Note
|
||||||
|
|
Loading…
Add table
Reference in a new issue