This patch changes a couple of places like this: for (h = 0; h <= tbl->hash_mask; h++) { if (h < s_h) continue; to this: for (h = s_h; h <= tbl->hash_mask; h++) { The only difference is that we can now get past the loop with h > tbl->hash_mask if hash_mask was decreased between two callbacks and h was already past the new value. But it still behaves identical, nothing is dumped.