device-dax: Fix range release
[linux-2.6-microblaze.git] / lib / bsearch.c
index 8b3aae5..bf86aa6 100644 (file)
  * the key and elements in the array are of the same type, you can use
  * the same comparison function for both sort() and bsearch().
  */
-void *bsearch(const void *key, const void *base, size_t num, size_t size,
-             cmp_func_t cmp)
+void *bsearch(const void *key, const void *base, size_t num, size_t size, cmp_func_t cmp)
 {
-       const char *pivot;
-       int result;
-
-       while (num > 0) {
-               pivot = base + (num >> 1) * size;
-               result = cmp(key, pivot);
-
-               if (result == 0)
-                       return (void *)pivot;
-
-               if (result > 0) {
-                       base = pivot + size;
-                       num--;
-               }
-               num >>= 1;
-       }
-
-       return NULL;
+       return __inline_bsearch(key, base, num, size, cmp);
 }
 EXPORT_SYMBOL(bsearch);
 NOKPROBE_SYMBOL(bsearch);