Re: 3.12: kernel panic when resuming from suspend to RAM (x86_64)

Thomas Gleixner
2013-11-29T09:03:15Z

On Fri, 29 Nov 2013, Francis Moreau wrote:
> Since it seems to be related to rtsx driver or its upper layer, could
> the folks involved in this area have a look to this issue please ?

I'm not involved, but looking at the debug objects backtrace it's
related to the delayed work in rtsx.

Does the untested patch below cure the issue?

Thanks,

tglx

Index: linux-2.6/drivers/mfd/rtsx_pcr.c
===================================================================
--- linux-2.6.orig/drivers/mfd/rtsx_pcr.c
+++ linux-2.6/drivers/mfd/rtsx_pcr.c
@@ -1227,15 +1227,15 @@ static void rtsx_pci_remove(struct pci_d
struct rtsx_pcr *pcr = handle->pcr;

pcr->remove_pci = true;
+ free_irq(pcr->irq, (void *)pcr);

- cancel_delayed_work(&pcr->carddet_work);
- cancel_delayed_work(&pcr->idle_work);
+ cancel_delayed_work_sync(&pcr->carddet_work);
+ cancel_delayed_work_sync(&pcr->idle_work);

mfd_remove_devices(&pcidev->dev);

dma_free_coherent(&(pcr->pci->dev), RTSX_RESV_BUF_LEN,
pcr->rtsx_resv_buf, pcr->rtsx_resv_buf_addr);
- free_irq(pcr->irq, (void *)pcr);
if (pcr->msi_en)
pci_disable_msi(pcr->pci);
iounmap(pcr->remap_addr);