Hi people, it seems my explanation was too short.
Firstly, let me clarify that the problem is with _reloading_ firmware due to resumption from power management. During resumption from power save, our ability to allocate memory is severly constrained. We may allocate memory only with GFP_NOIO or GFP_ATOMIC. This is because anything else might lead the kernel to paging out a page to a device which has not yet resumed operations or even the device whose firmware we want to reload. This is independent of where the actual firmware files are located. The memory consumption itself causes the deadlock. This affects storage devices and thanks to nfs all network devices. Therefore no user space task can be running during resumption, unless it is totally mlocked. Managing firmwarereload in user space when you can neither open() nor fork() nor read() doesn't look so attractive, does it ? To summarise, we can either have firmware handling in user space or power management, but not both. More philosophically speaking, IMHO we have a classical layering violation caused by wishful thinking. To quote Dave: "There are many good reasons to have device handling in kernel space." I might add: They are sometimes less than obvious. Regards Oliver _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel