Merge branch 'parisc-4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller...
[cascardo/linux.git] / lib / flex_array.c
index 6948a66..2eed22f 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);
 }