If the mcast is removed while the lock was dropped, the for loop spins forever resulting in a hard lockup as was reported on RHEL 4. The original code for determining zone end was after "out:", which would have missed some fio who is zone end. In the unusual event that no packets have been send on TID 0, the queue will not have been allocated and this causes a crash. Note that the leaked socket remained being linked to a global list, so kmemleak also could not detect it. This patch validate 3 ipc response that has payload.
nest...