Julian Margetson <runaway@xxxxxxxx> writes: > On 12/19/2015 1:19 PM, Måns Rullgård wrote: >> Julian Margetson <runaway@xxxxxxxx> writes: >> >>> On 12/19/2015 1:05 PM, Måns Rullgård wrote: >>>> Andy Shevchenko <andy.shevchenko@xxxxxxxxx> writes: >>>> >>>>> On Sat, Dec 19, 2015 at 5:40 PM, Måns Rullgård <mans@xxxxxxxxx> wrote: >>>>> >>>>>> OK, I've found something. The dma setup errors are benign, caused by >>>>>> the driver calling dmaengine_prep_slave_sg() even for non-dma >>>>>> operations. >>>>> I suppose the following is a quick fix to avoid preparing descriptor >>>>> for non-DMA operations (not tested anyhow) >>>>> >>>>> a/drivers/ata/sata_dwc_460ex.c >>>>> +++ b/drivers/ata/sata_dwc_460ex.c >>>>> @@ -1041,6 +1041,9 @@ static void sata_dwc_qc_prep_by_tag(struct >>>>> ata_queued_cmd *qc, u8 tag) >>>>> __func__, ap->port_no, get_dma_dir_descript(qc->dma_dir), >>>>> qc->n_elem); >>>>> >>>>> + if (!is_slave_direction(qc->dma_dir)) >>>>> + return; >>>>> + >>>>> desc = dma_dwc_xfer_setup(qc); >>>>> if (!desc) { >>>>> dev_err(ap->dev, "%s: dma_dwc_xfer_setup returns NULL\n", >>>> I already have a better patch sitting here. >>>> >>>>>> The real error is the lock recursion that's reported >>>>>> later. I wasn't seeing it since I was running a UP non-preempt kernel. >>>>>> With lock debugging enabled, I get the same error. This patch should >>>>>> fix it. >>>>>> - spin_lock_irqsave(&ap->host->lock, flags); >>>>>> hsdevp->cmd_issued[tag] = cmd_issued; >>>>>> - spin_unlock_irqrestore(&ap->host->lock, flags); >>>>>> + >>>>> This will create a second empty line, though I don't care it is so minor. >>>> The patch leaves one blank line before the following block comment. I >>>> think it looks better that way. >>>> >>> Still can't get the patch applied . >> Sorry, didn't realise it conflicted with an intervening patch I had in >> my tree. Try this one. >> > > > =~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2015.12.19 14:44:52 =~=~=~=~=~=~=~=~=~=~=~= > > U-Boot 2015.a (May 16 2015 - 14:20:11) > > CPU: AMCC PowerPC 460EX Rev. B at 1155 MHz (PLB=231 OPB=115 EBC=115) > No Security/Kasumi support > Bootstrap Option H - Boot ROM Location I2C (Addr 0x52) > Internal PCI arbiter enabled > 32 kB I-Cache 32 kB D-Cache > Board: Sam460ex/cr, PCIe 4x + SATA-2 > I2C: ready > DRAM: 2 GiB (ECC not enabled, 462 MHz, CL4) > PCI: Bus Dev VenId DevId Class Int > 00 04 1095 3512 0104 00 > 00 06 126f 0501 0380 00 > PCIE1: successfully set as root-complex > 02 00 1002 683f 0300 ff > Net: ppc_4xx_eth0 > FPGA: Revision 03 (2010-10-07) > SM502: found > PERMD2:not found > VGA: 1 > VESA: OK > [ 0.000000] Using Canyonlands machine description > [ 0.000000] Initializing cgroup subsys cpu > [ 0.000000] Linux version 4.4.0-rc5-Sam460ex (root@julian-VirtualBox) (gcc version 4.8.2 (Ubuntu 4.8.2-16ubuntu3) ) #1 PREEMPT Sat Dec 19 14:25:55 AST 2015 > [ 0.000000] Zone ranges: > [ 0.000000] DMA [mem 0x0000000000000000-0x000000002fffffff] > [ 0.000000] Normal empty > [ 0.000000] HighMem [mem 0x0000000030000000-0x000000007fffffff] > [ 0.000000] Movable zone start for each node > [ 0.000000] Early memory node ranges > [ 0.000000] node 0: [mem 0x0000000000000000-0x000000007fffffff] > [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000007fffffff] > [ 0.000000] MMU: Allocated 1088 bytes of context maps for 255 contexts > [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 522752 > [ 0.000000] Kernel command line: root=/dev/sda8 console=ttyS0,115200 console=tty1 dw_dmac_core.dyndbg dw_dmac.dyndbg Please add ignore_log_level. -- Måns Rullgård -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html