diff options
Diffstat (limited to 'lib/flex_array.c')
| -rw-r--r-- | lib/flex_array.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/flex_array.c b/lib/flex_array.c index 6948a6692fc4..2eed22fa507c 100644 --- a/lib/flex_array.c +++ b/lib/flex_array.c | |||
| @@ -90,8 +90,8 @@ struct flex_array *flex_array_alloc(int element_size, unsigned int total, | |||
| 90 | { | 90 | { |
| 91 | struct flex_array *ret; | 91 | struct flex_array *ret; |
| 92 | int elems_per_part = 0; | 92 | int elems_per_part = 0; |
| 93 | int reciprocal_elems = 0; | ||
| 94 | int max_size = 0; | 93 | int max_size = 0; |
| 94 | struct reciprocal_value reciprocal_elems = { 0 }; | ||
| 95 | 95 | ||
| 96 | if (element_size) { | 96 | if (element_size) { |
| 97 | elems_per_part = FLEX_ARRAY_ELEMENTS_PER_PART(element_size); | 97 | elems_per_part = FLEX_ARRAY_ELEMENTS_PER_PART(element_size); |
| @@ -119,6 +119,11 @@ EXPORT_SYMBOL(flex_array_alloc); | |||
| 119 | static int fa_element_to_part_nr(struct flex_array *fa, | 119 | static int fa_element_to_part_nr(struct flex_array *fa, |
| 120 | unsigned int element_nr) | 120 | unsigned int element_nr) |
| 121 | { | 121 | { |
| 122 | /* | ||
| 123 | * if element_size == 0 we don't get here, so we never touch | ||
| 124 | * the zeroed fa->reciprocal_elems, which would yield invalid | ||
| 125 | * results | ||
| 126 | */ | ||
| 122 | return reciprocal_divide(element_nr, fa->reciprocal_elems); | 127 | return reciprocal_divide(element_nr, fa->reciprocal_elems); |
| 123 | } | 128 | } |
| 124 | 129 | ||
