imq / linuximq

Pseudo-driver for the intermediate queue device.
https://imq.github.io/
GNU General Public License v2.0
99 stars 51 forks source link

Lockdep workaround for recursive transmit lock usage #52

Closed haegar closed 7 years ago

haegar commented 7 years ago

(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