usbnet_terminate_urbs() defines waitqueue head as local variable. There is a possibility that wake_up is called on this queue head in workqueue context and usbnet_terminate_urbs() already returned or dev->wait pointer becomes NULL while calling wake_up() from workqueue context. Hence call wake_up() using waitqueue head defined as static global variable. Change-Id: I672460533d25589912a847acad2df01f193a120d CRs-Fixed: 388724 Signed-off-by: Hemant Kumar <hemantk@codeaurora.org> Signed-off-by: Neha Pandey <nehap@codeaurora.org>