On Sun, Apr 23, 2023 at 10:30:56AM +0800, qianfanguijin@xxxxxxx wrote: > > The kernel error messages is as follows: > > [ 1.362449] sun6i-spi 1c06000.spi: Failed to request RX DMA channel > [ 1.369654] 8<--- cut here --- > [ 1.372716] Unable to handle kernel paging request at virtual address fffffffc > [ 1.379928] pgd = (ptrval) > [ 1.382632] [fffffffc] *pgd=6bef6861, *pte=00000000, *ppte=00000000 > [ 1.388907] Internal error: Oops: 37 [#1] SMP ARM > ... > [ 1.784024] [<c0159c54>] (swake_up_locked.part.0) from [<c0159d9c>] (complete+0x30/0x40) Please think hard before including complete backtraces in upstream reports, they are very large and contain almost no useful information relative to their size so often obscure the relevant content in your message. If part of the backtrace is usefully illustrative (it often is for search engines if nothing else) then it's usually better to pull out the relevant sections. > ret = devm_request_irq(&pdev->dev, irq, sun4i_spi_handler, > - 0, "sun4i-spi", sspi); > + IRQF_NO_AUTOEN, "sun4i-spi", sspi); > if (ret) { > dev_err(&pdev->dev, "Cannot request IRQ\n"); > goto err_free_master; > @@ -506,6 +506,8 @@ static int sun4i_spi_probe(struct platform_device *pdev) > goto err_pm_disable; > } > > + enable_irq(irq); > + The usual approach would be to move the requesting of the interrupt later. Why do this instead?
Attachment:
signature.asc
Description: PGP signature