On Mon, 29 Oct 2012, Ming Lei wrote: > Deadlock might be caused by allocating memory with GFP_KERNEL in > runtime_resume callback of network devices in iSCSI situation, so > mark network devices and its ancestor as 'memalloc_noio_resume' > with the introduced pm_runtime_set_memalloc_noio(). > @@ -1411,6 +1414,8 @@ int netdev_register_kobject(struct net_device *net) > *groups++ = &netstat_group; > #endif /* CONFIG_SYSFS */ > > + pm_runtime_set_memalloc_noio(dev, true); > + > error = device_add(dev); > if (error) > return error; This is an example of what I described earlier. The pm_runtime_set_memalloc_noio() call should come after device_add(), not before. (Not to mention that this version of the code doesn't correctly handle the case where device_add() fails.) Alan Stern -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>