> And then what will happen? The host controller will have to use it's > private mempool? Why not just have the host controller use it's private > mempool _all_ the time, which would not cause any driver changes.
Something more on this. Currently we fail if an urb that needs memory meets an OOM condition. For the vast majority of devices this is OK. After all other errors occur, too. It is not acceptable for devices in the paging out path. These can loosely grouped in into block devices and devices that are involved with networked filesystems. Block devices in practive means usb storage. They must not reenter (hence GFP_NOIO) and they must not fail due to OOM. Thus every urb must be secured by a mempool or there can be a common mempool and the driver has to deal with partially completed urbs, which is very ugly. Then there are network devices and serial devices (ppp). With them failing sometimes is OK, as packets can be lost on the net. Only always failing a request because it is needed to free memory is not aceptable. These devices should use a flag, that tells the HCD to repeat the memory allocation with GFP_ATOMIC to use the pool of atomic pages. For the same reason in the write path of serial devices only GFP_NOIO or GFP_ATOMIC can be used. And we might think about keyboards. I want my keyboard to work under all circumstances. Regards Oliver _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel