From cf7d3c8e579a643ff81ff95d51babdaf4c55f5f4 Mon Sep 17 00:00:00 2001 From: Philippe Skowronski Date: Fri, 1 Oct 2010 14:59:16 +0100 Subject: [PATCH] usb: langwell_udc: cancel pending requests when controller is suspended. It is safer to cancel pending requests before free dTD and dQH when controller enters suspend state. Signed-off-by: Philippe Skowronski Signed-off-by: Hao Wu [Switch to spin_lock_irq as suggested by Alan Stern] Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman --- drivers/usb/gadget/langwell_udc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/usb/gadget/langwell_udc.c b/drivers/usb/gadget/langwell_udc.c index 064306046702..b8ec954c0692 100644 --- a/drivers/usb/gadget/langwell_udc.c +++ b/drivers/usb/gadget/langwell_udc.c @@ -3391,6 +3391,11 @@ static int langwell_udc_suspend(struct pci_dev *pdev, pm_message_t state) /* save PCI state */ pci_save_state(pdev); + spin_lock_irq(&dev->lock); + /* stop all usb activities */ + stop_activity(dev, dev->driver); + spin_unlock_irq(&dev->lock); + /* free dTD dma_pool and dQH */ if (dev->dtd_pool) dma_pool_destroy(dev->dtd_pool);