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 from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html