summaryrefslogtreecommitdiffstats
path: root/include/linux/kref.h
diff options
context:
space:
mode:
authorThomas Hellstrom2010-11-16 15:21:07 +0100
committerDave Airlie2010-11-22 04:25:13 +0100
commitecf7ace9a8450303a987aa8364e53860cd50e554 (patch)
treebbad2c5982c3b76462cbee9e15458072bc80055d /include/linux/kref.h
parentdrm/ttm: Add a bo list reserve fastpath (v2) (diff)
downloadkernel-qcow2-linux-ecf7ace9a8450303a987aa8364e53860cd50e554.tar.gz
kernel-qcow2-linux-ecf7ace9a8450303a987aa8364e53860cd50e554.tar.xz
kernel-qcow2-linux-ecf7ace9a8450303a987aa8364e53860cd50e554.zip
kref: Add a kref_sub function
Makes it possible to optimize batched multiple unrefs. Initial user will be drivers/gpu/ttm which accumulates unrefs to be processed outside of atomic code. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'include/linux/kref.h')
-rw-r--r--include/linux/kref.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/kref.h b/include/linux/kref.h
index 6cc38fc07ab7..d4a62ab2ee5e 100644
--- a/include/linux/kref.h
+++ b/include/linux/kref.h
@@ -24,5 +24,7 @@ struct kref {
void kref_init(struct kref *kref);
void kref_get(struct kref *kref);
int kref_put(struct kref *kref, void (*release) (struct kref *kref));
+int kref_sub(struct kref *kref, unsigned int count,
+ void (*release) (struct kref *kref));
#endif /* _KREF_H_ */