COUNT_CONTINUED
if ((count & ~COUNT_CONTINUED) <= SWAP_MAP_MAX) {
if (count == COUNT_CONTINUED) {
count = SWAP_MAP_MAX | COUNT_CONTINUED;
if (!(count & COUNT_CONTINUED))
count &= ~COUNT_CONTINUED;
count += (tmp_count & ~COUNT_CONTINUED) * n;
} while (tmp_count & COUNT_CONTINUED);
if (WARN_ON((count & ~COUNT_CONTINUED) > SWAP_MAP_MAX))
if ((count & ~COUNT_CONTINUED) < SWAP_MAP_MAX)
count = COUNT_CONTINUED;
if ((count & ~COUNT_CONTINUED) != SWAP_MAP_MAX) {
BUG_ON(count & COUNT_CONTINUED);
if (!(count & COUNT_CONTINUED))
if ((count & ~COUNT_CONTINUED) != SWAP_CONT_MAX)
BUG_ON(count & COUNT_CONTINUED);
if (count == (SWAP_MAP_MAX | COUNT_CONTINUED)) { /* incrementing */
while (*map == (SWAP_CONT_MAX | COUNT_CONTINUED)) {
*map = COUNT_CONTINUED;
BUG_ON(count != COUNT_CONTINUED);
while (*map == COUNT_CONTINUED) {
count = COUNT_CONTINUED;
ret = count == COUNT_CONTINUED;