__set_bit(hwgpio, mask);
 
                        if (array_info)
-                               find_next_zero_bit(array_info->get_mask,
-                                                  array_size, i);
+                               i = find_next_zero_bit(array_info->get_mask,
+                                                      array_size, i);
                        else
                                i++;
                } while ((i < array_size) &&
                        trace_gpio_value(desc_to_gpio(desc), 1, value);
 
                        if (array_info)
-                               find_next_zero_bit(array_info->get_mask, i, j);
+                               j = find_next_zero_bit(array_info->get_mask, i,
+                                                      j);
                        else
                                j++;
                }
                        }
 
                        if (array_info)
-                               find_next_zero_bit(array_info->set_mask,
-                                                  array_size, i);
+                               i = find_next_zero_bit(array_info->set_mask,
+                                                      array_size, i);
                        else
                                i++;
                } while ((i < array_size) &&