(Using imq on a 4.4.x kernel currently, but problem exists also for 3.16.x, and most likely everything since at least that)
When compiling the kernel with lockdep support, and using one IMQ device for incoming traffic and another for outgoing, lockdep thinks the IMQ transmit would be taken recursively, making it scream - but in reality only one transmit lock from each participating imq device is taken, not the same one multiple times.
Included patch works around this problem by marking them with lockdep_set_novalidate_class().
(Using imq on a 4.4.x kernel currently, but problem exists also for 3.16.x, and most likely everything since at least that)
When compiling the kernel with lockdep support, and using one IMQ device for incoming traffic and another for outgoing, lockdep thinks the IMQ transmit would be taken recursively, making it scream - but in reality only one transmit lock from each participating imq device is taken, not the same one multiple times.
Included patch works around this problem by marking them with lockdep_set_novalidate_class().
linux-imq-lockdep.diff.txt