#include #include #include #include struct item { unsigned long index; unsigned int order; }; struct item *item_create(unsigned long index, unsigned int order); int __item_insert(struct radix_tree_root *root, struct item *item); int item_insert(struct radix_tree_root *root, unsigned long index); int item_insert_order(struct radix_tree_root *root, unsigned long index, unsigned order); int item_delete(struct radix_tree_root *root, unsigned long index); struct item *item_lookup(struct radix_tree_root *root, unsigned long index); void item_check_present(struct radix_tree_root *root, unsigned long index); void item_check_absent(struct radix_tree_root *root, unsigned long index); void item_gang_check_present(struct radix_tree_root *root, unsigned long start, unsigned long nr, int chunk, int hop); void item_full_scan(struct radix_tree_root *root, unsigned long start, unsigned long nr, int chunk); void item_kill_tree(struct radix_tree_root *root); int tag_tagged_items(struct radix_tree_root *, pthread_mutex_t *, unsigned long start, unsigned long end, unsigned batch, unsigned iftag, unsigned thentag); unsigned long find_item(struct radix_tree_root *, void *item); void tag_check(void); void multiorder_checks(void); void iteration_test(unsigned order, unsigned duration); void benchmark(void); struct item * item_tag_set(struct radix_tree_root *root, unsigned long index, int tag); struct item * item_tag_clear(struct radix_tree_root *root, unsigned long index, int tag); int item_tag_get(struct radix_tree_root *root, unsigned long index, int tag); void tree_verify_min_height(struct radix_tree_root *root, int maxindex); void verify_tag_consistency(struct radix_tree_root *root, unsigned int tag); extern int nr_allocated; /* Normally private parts of lib/radix-tree.c */ struct radix_tree_node *entry_to_node(void *ptr); void radix_tree_dump(struct radix_tree_root *root); int root_tag_get(struct radix_tree_root *root, unsigned int tag); unsigned long node_maxindex(struct radix_tree_node *); unsigned long shift_maxindex(unsigned int shift); int radix_tree_cpu_dead(unsigned int cpu); struct radix_tree_preload { unsigned nr; struct radix_tree_node *nodes; }; extern struct radix_tree_preload radix_tree_preloads; iff/sound/soc/generic/simple-card-utils.c?h=nds-private-remove&id=19ca2c8fecb1592d623fe5e82d6796f8d446268d'>diff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-01-24 12:21:51 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2017-01-24 12:21:51 -0800
commit19ca2c8fecb1592d623fe5e82d6796f8d446268d (patch)
tree0756e115d125846f46b302085307768f069434a1 /sound/soc/generic/simple-card-utils.c
parenta4685d2f58e2230d4e27fb2ee581d7ea35e5d046 (diff)
parent880a38547ff08715ce4f1daf9a4bb30c87676e68 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
Pull namespace fix from Eric Biederman: "This has a single brown bag fix. The possible deadlock with dec_pid_namespaces that I had thought was fixed earlier turned out only to have been moved. So instead of being cleaver this change takes ucounts_lock with irqs disabled. So dec_ucount can be used from any context without fear of deadlock. The items accounted for dec_ucount and inc_ucount are all comparatively heavy weight objects so I don't exepct this will have any measurable performance impact" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: userns: Make ucounts lock irq-safe
Diffstat (limited to 'sound/soc/generic/simple-card-utils.c')