]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - lib/flex_array.c
Merge branch 'master' into staging-next
[karo-tx-linux.git] / lib / flex_array.c
index 6948a6692fc4f6b70c2bfc0700afb7a971d7059e..2eed22fa507c7cb0756d7ef643f8a3454eb455ec 100644 (file)
@@ -90,8 +90,8 @@ struct flex_array *flex_array_alloc(int element_size, unsigned int total,
 {
        struct flex_array *ret;
        int elems_per_part = 0;
-       int reciprocal_elems = 0;
        int max_size = 0;
+       struct reciprocal_value reciprocal_elems = { 0 };
 
        if (element_size) {
                elems_per_part = FLEX_ARRAY_ELEMENTS_PER_PART(element_size);
@@ -119,6 +119,11 @@ EXPORT_SYMBOL(flex_array_alloc);
 static int fa_element_to_part_nr(struct flex_array *fa,
                                        unsigned int element_nr)
 {
+       /*
+        * if element_size == 0 we don't get here, so we never touch
+        * the zeroed fa->reciprocal_elems, which would yield invalid
+        * results
+        */
        return reciprocal_divide(element_nr, fa->reciprocal_elems);
 }