On Sun, Jul 21, 2013 at 6:55 PM, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: [...] > > There were even patches sent to the systemd mailing list to fix it, > and Kay refused to apply them. They were not complicated patches. They > were literally one-liners saying "if it's a firmware load event, just > do it immediately without serializing against other things, because > the things you may be serializing against may be the thing that wants > to load firmware!". I missed the fact that patch for udev exists: http://lists.freedesktop.org/archives/systemd-devel/2012-August/006357.html Now I have 2 possibilites: either patch the kernel or udev but I'm not sure which path to follow. I would choose fixing the kernel since udev won't be fixed anyways but would be nice to have your opinion. Also v3.4 was out on 20/05/2012 whereas udev 182 was released on 18/03/2012. Therefore I don't think that it's unlikely to run an older kernel such as v3.4 with an affected udev. Actually I'm suprise that there have been no reports for it. I'm attaching a backport of your patch for 3.4. It was almost trivial, but I'm not sure about the modifications I did in firmware_free_data(), specially the condition to test if the firmware has been loaded by the kernel itself. I will test it tomorrow to check if I'm really affected by the udev bug, but whatever the result I think it's still an interesting issue to address. Thanks. -- Francis
Attachment:
0001-firmware-teach-the-kernel-to-load-firmware-files-dir.patch
Description: Binary data