diff --git a/kernel/padata.c b/kernel/padata.c index 915945c932db21c0261a6f48c4a2695ae1c4f529..09e6207048aa45cfd22b27e32bac95e13f1144df 100644 --- a/kernel/padata.c +++ b/kernel/padata.c @@ -404,9 +404,11 @@ void padata_do_serial(struct padata_priv *padata) spin_lock(&reorder->lock); /* Sort in ascending order of sequence number. */ - list_for_each_entry_reverse(cur, &reorder->list, list) - if (cur->seq_nr < padata->seq_nr) + list_for_each_entry_reverse(cur, &reorder->list, list) { + /* Compare by difference to consider integer wrap around */ + if ((signed int)(cur->seq_nr - padata->seq_nr) < 0) break; + } list_add(&padata->list, &cur->list); spin_unlock(&reorder->lock);