Merge tag 'powerpc-4.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[linux-2.6-microblaze.git] / lib / stackdepot.c
index f87d138..e513459 100644 (file)
@@ -163,6 +163,21 @@ static inline u32 hash_stack(unsigned long *entries, unsigned int size)
                               STACK_HASH_SEED);
 }
 
+/* Use our own, non-instrumented version of memcmp().
+ *
+ * We actually don't care about the order, just the equality.
+ */
+static inline
+int stackdepot_memcmp(const unsigned long *u1, const unsigned long *u2,
+                       unsigned int n)
+{
+       for ( ; n-- ; u1++, u2++) {
+               if (*u1 != *u2)
+                       return 1;
+       }
+       return 0;
+}
+
 /* Find a stack that is equal to the one stored in entries in the hash */
 static inline struct stack_record *find_stack(struct stack_record *bucket,
                                             unsigned long *entries, int size,
@@ -173,10 +188,8 @@ static inline struct stack_record *find_stack(struct stack_record *bucket,
        for (found = bucket; found; found = found->next) {
                if (found->hash == hash &&
                    found->size == size &&
-                   !memcmp(entries, found->entries,
-                           size * sizeof(unsigned long))) {
+                   !stackdepot_memcmp(entries, found->entries, size))
                        return found;
-               }
        }
        return NULL;
 }