On 08/03/2015, 11:39 AM, Jiri Slaby wrote: > Hi, > > On 08/03/2015, 11:30 AM, Chen Bough wrote: >> I carefully review my patch, all the DMA memory mapped in sdhci_pre_req() is unmapped in sdhci_post_req. > > I suspect 'host_cookie' or 'next' handling is bad somewhere. But I don't > know... > >> Can you provide the method of your testing DMA leaks? > > boot kernel with CONFIG_DMA_API_DEBUG > insert the card > mount it > rsync from the card ~200 MB > umount it > unload the sdhci driver > the leak warning is reported > > I am not sure whether suspend-resume is needed after the first step. No, it's not. This is sufficient: boot kernel with CONFIG_DMA_API_DEBUG insert the card <no mounting, partition table read is enough> remove the card unload the sdhci driver the leak warning is reported >> You said over 4000 leaked mappings during one card transfer, if true, >> We can't map any dma memory after some sd transfer, do you meet this? > > Yes, I see: > sdhci-pci 0000:02:00.0: swiotlb buffer is full (sz: 65536 bytes) > after some time. The driver falls back to non-DMA transfers after that. > It also generates a warning about that: > WARNING: CPU: 0 PID: 0 at drivers/mmc/host/sdhci.c:857 > sdhci_prepare_data+0x8ec/0x900 [sdhci]() I am attaching a debug patch and a debug log. You can see where 0x00000000fffb0000 and 0x00000000fffe0000 is leaked. It is when 'invalid cookie' error happens. regards, -- js suse labs
[ 474.663337] sdhci_pre_dma_transfer: mapped ffff88030bfe7bc0 0x00000000fffff3f0 (wanted=1, got=1), next= (null), hcook=0, ncook=1 [ 474.663844] sdhci_finish_data: unmapping ffff88030bfe7bc0 phys=0x00000000fffff3f0 size=1 [ 474.664109] sdhci_pre_dma_transfer: mapped ffff88030bfe7bc0 0x00000000ffffe310 (wanted=1, got=1), next= (null), hcook=0, ncook=1 [ 474.665025] sdhci_finish_data: unmapping ffff88030bfe7bc0 phys=0x00000000ffffe310 size=1 [ 474.665136] sdhci_pre_dma_transfer: mapped ffff88030bfe7bd0 0x00000000ffffd310 (wanted=1, got=1), next= (null), hcook=0, ncook=1 [ 474.666746] sdhci_finish_data: unmapping ffff88030bfe7bd0 phys=0x00000000ffffd310 size=1 [ 474.666912] sdhci_pre_dma_transfer: mapped ffff88030bfe7be0 0x00000000ffffc310 (wanted=1, got=1), next= (null), hcook=0, ncook=1 [ 474.669979] sdhci_finish_data: unmapping ffff88030bfe7be0 phys=0x00000000ffffc310 size=1 [ 474.670405] mmc0: new high speed SDHC card at address e624 [ 474.671107] mmcblk0: mmc0:e624 SU16G 14.8 GiB [ 474.672309] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffb000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=1 [ 474.682178] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffb000 size=1 [ 474.682234] mmcblk0: p1 [ 474.684064] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffff000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=2 [ 474.684825] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffff000 size=1 [ 474.684954] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffe000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=3 [ 474.685494] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffe000 size=1 [ 474.685660] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffd000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=4 [ 474.686316] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffd000 size=1 [ 474.686449] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffc000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=5 [ 474.686878] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffc000 size=1 [ 474.687046] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffa000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=6 [ 474.687590] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffa000 size=1 [ 474.687720] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff9000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=7 [ 474.688203] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff9000 size=1 [ 474.688342] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff8000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=8 [ 474.688865] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff8000 size=1 [ 474.688988] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff7000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=9 [ 474.689618] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff7000 size=1 [ 474.689748] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff6000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=10 [ 474.690393] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff6000 size=1 [ 474.690549] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff5000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=11 [ 474.691165] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff5000 size=1 [ 474.691289] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff4000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=12 [ 474.691927] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff4000 size=1 [ 474.692066] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff3000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=13 [ 474.692690] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff3000 size=1 [ 474.692826] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff2000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=14 [ 474.693450] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff2000 size=1 [ 474.693548] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff1000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=15 [ 474.694151] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff1000 size=1 [ 474.694304] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffff000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=16 [ 474.694915] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffff000 size=1 [ 474.695047] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffe000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=17 [ 474.695692] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffe000 size=1 [ 474.695843] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffd000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=18 [ 474.696270] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffd000 size=1 [ 474.696406] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffc000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=19 [ 474.696836] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffc000 size=1 [ 474.696995] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffb000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=20 [ 474.697420] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffb000 size=1 [ 474.697543] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffa000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=21 [ 474.697967] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffa000 size=1 [ 474.698173] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff9000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=22 [ 474.698606] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff9000 size=1 [ 474.698851] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffe0000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=23 [ 474.698875] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffd0000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=24 [ 474.698879] sdhci[sdhci_pre_dma_transfer] invalid cookie: 24, next-cookie 25 [ 474.698891] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffc0000 (wanted=1, got=1), next= (null), hcook=0, ncook=25 [ 474.700577] sdhci_finish_data: unmapping ffff880306c52e10 phys=0x00000000fffc0000 size=1 [ 474.700694] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffb0000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=25 [ 474.702431] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffd0000 size=1 [ 474.702486] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffa8000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=26 [ 474.704192] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffb0000 size=1 [ 474.704247] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffa4000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=27 [ 474.705157] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffa8000 size=1 [ 474.705217] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffa3000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=28 [ 474.705756] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffa4000 size=1 [ 474.706161] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffa3000 size=1 [ 474.706339] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffff000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=29 [ 474.706869] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffff000 size=1 [ 474.707025] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffe000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=30 [ 474.707543] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffe000 size=1 [ 474.707676] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffd000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=31 [ 474.708196] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffd000 size=1 [ 474.708338] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffc000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=32 [ 474.708801] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffc000 size=1 [ 474.708916] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffb000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=33 [ 474.709359] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffb000 size=1 [ 474.709513] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffa000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=34 [ 474.710003] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffa000 size=1 [ 474.710378] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff9000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=35 [ 474.710879] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff9000 size=1 [ 474.710985] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff8000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=36 [ 474.711449] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff8000 size=1 [ 474.711572] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff7000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=37 [ 474.712051] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff7000 size=1 [ 474.712139] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff6000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=38 [ 474.712617] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff6000 size=1 [ 474.712704] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff5000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=39 [ 474.713151] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff5000 size=1 [ 474.713221] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff4000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=40 [ 474.713666] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff4000 size=1 [ 474.713732] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff3000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=41 [ 474.714177] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff3000 size=1 [ 474.714248] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff2000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=42 [ 474.714704] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff2000 size=1 [ 474.714832] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff1000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=43 [ 474.715296] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff1000 size=1 [ 474.715416] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff0000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=44 [ 474.715867] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff0000 size=1 [ 474.715991] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffdf000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=45 [ 474.716437] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffdf000 size=1 [ 474.716538] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffde000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=46 [ 474.716983] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffde000 size=1 [ 474.717093] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffdd000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=47 [ 474.717556] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffdd000 size=1 [ 474.717667] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffdc000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=48 [ 474.718121] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffdc000 size=1 [ 474.718278] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffff000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=49 [ 474.718722] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffff000 size=1 [ 474.718787] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffe000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=50 [ 474.719229] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffe000 size=1 [ 474.719293] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffd000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=51 [ 474.719734] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffd000 size=1 [ 474.719797] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffc000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=52 [ 474.720239] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffc000 size=1 [ 474.720301] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffb000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=53 [ 474.720741] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffb000 size=1 [ 474.720804] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffa000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=54 [ 474.721245] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffa000 size=1 [ 474.721311] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff9000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=55 [ 474.721754] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff9000 size=1 [ 474.721816] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff8000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=56 [ 474.722261] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff8000 size=1 [ 474.722465] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff7000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=57 [ 474.722925] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff7000 size=1 [ 474.723047] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff6000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=58 [ 474.723511] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff6000 size=1 [ 474.723621] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff5000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=59 [ 474.724067] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff5000 size=1 [ 474.724140] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff4000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=60 [ 474.724583] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff4000 size=1 [ 474.724696] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff3000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=61 [ 474.725144] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff3000 size=1 [ 474.725223] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff2000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=62 [ 474.725680] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff2000 size=1 [ 474.736023] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffff000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=63 [ 474.736711] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffff000 size=1 [ 474.736853] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffe000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=64 [ 474.737405] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffe000 size=1 [ 474.737502] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffd000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=65 [ 474.738523] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffd000 size=1 [ 474.738653] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffc000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=66 [ 474.739355] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffc000 size=1 [ 474.739498] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffb000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=67 [ 474.740055] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffb000 size=1 [ 474.740169] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffffa000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=68 [ 474.740679] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffffa000 size=1 [ 474.740817] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff9000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=69 [ 474.747111] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff9000 size=1 [ 474.747361] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff0000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=70 [ 474.761987] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff0000 size=1 [ 474.762816] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffd0000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=71 [ 474.767029] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffd0000 size=1 [ 474.767181] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffcf000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=72 [ 474.767645] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffcf000 size=1 [ 474.767777] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffce000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=73 [ 474.768244] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffce000 size=1 [ 474.768408] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffcd000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=74 [ 474.768857] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffcd000 size=1 [ 474.769387] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffb0000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=75 [ 474.769444] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffa0000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=76 [ 474.769449] sdhci[sdhci_pre_dma_transfer] invalid cookie: 76, next-cookie 77 [ 474.769464] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fff90000 (wanted=1, got=1), next= (null), hcook=0, ncook=77 [ 474.771224] sdhci_finish_data: unmapping ffff880306dda438 phys=0x00000000fff90000 size=1 [ 474.771421] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000ffff0000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=77 [ 474.773219] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffa0000 size=1 [ 474.773315] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffd8000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=78 [ 474.775004] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000ffff0000 size=1 [ 474.775094] sdhci_pre_dma_transfer: mapped ffff880306dda438 0x00000000fffd4000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=79 [ 474.775962] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffd8000 size=1 [ 474.776020] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffd3000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=80 [ 474.776568] sdhci_post_req: unmapping ffff880306dda438 phys=0x00000000fffd4000 size=1 [ 474.776976] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffd3000 size=1 [ 474.777183] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffd2000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=81 [ 474.777759] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffd2000 size=1 [ 474.777883] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffd1000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=82 [ 474.778469] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffd1000 size=1 [ 474.778637] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffd0000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=83 [ 474.779233] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffd0000 size=1 [ 474.779402] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffcf000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=84 [ 474.780032] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffcf000 size=1 [ 474.780217] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffce000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=85 [ 474.780802] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffce000 size=1 [ 474.780944] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffcd000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=86 [ 474.781493] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffcd000 size=1 [ 474.781632] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffcc000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=87 [ 474.782201] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffcc000 size=1 [ 474.782356] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffff000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=88 [ 474.782963] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffff000 size=1 [ 474.783094] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffe000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=89 [ 474.783695] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffe000 size=1 [ 474.783800] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffd000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=90 [ 474.784402] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffd000 size=1 [ 474.784518] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffc000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=91 [ 474.785057] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffc000 size=1 [ 474.785160] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffb000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=92 [ 474.785716] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffb000 size=1 [ 474.785840] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffa000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=93 [ 474.786418] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffa000 size=1 [ 474.786551] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff9000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=94 [ 474.787125] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff9000 size=1 [ 474.787249] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff8000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=95 [ 474.787805] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff8000 size=1 [ 474.787907] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff7000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=96 [ 474.788452] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff7000 size=1 [ 474.788564] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff6000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=97 [ 474.789333] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff6000 size=1 [ 474.789426] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff5000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=98 [ 474.789947] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff5000 size=1 [ 474.790061] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff4000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=99 [ 474.790604] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff4000 size=1 [ 474.790727] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff3000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=100 [ 474.791263] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff3000 size=1 [ 474.791389] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff2000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=101 [ 474.791922] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff2000 size=1 [ 474.792040] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff1000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=102 [ 474.792556] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff1000 size=1 [ 474.792711] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff0000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=103 [ 474.793231] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff0000 size=1 [ 474.793326] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffdf000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=104 [ 474.793848] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffdf000 size=1 [ 474.793964] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffde000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=105 [ 474.794502] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffde000 size=1 [ 474.794626] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000fffff000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=106 [ 474.795162] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000fffff000 size=1 [ 474.795285] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffe000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=107 [ 474.795824] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffe000 size=1 [ 474.795941] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffd000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=108 [ 474.796456] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffd000 size=1 [ 474.796559] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffc000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=109 [ 474.797076] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffc000 size=1 [ 474.797180] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffb000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=110 [ 474.797962] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffb000 size=1 [ 474.798080] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffffa000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=111 [ 474.798671] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffffa000 size=1 [ 474.798796] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff9000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=112 [ 474.799354] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff9000 size=1 [ 474.799482] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff8000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=113 [ 474.799943] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff8000 size=1 [ 474.800063] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff7000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=114 [ 474.800527] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff7000 size=1 [ 474.800856] sdhci_pre_dma_transfer: mapped ffff880306c52e10 0x00000000ffff6000 (wanted=1, got=1), next=ffff88030bf21aa4, hcook=0, ncook=115 [ 474.801523] sdhci_post_req: unmapping ffff880306c52e10 phys=0x00000000ffff6000 size=1 [ 537.183193] mmc0: card e624 removed [ 539.324181] ------------[ cut here ]------------ [ 539.324189] WARNING: CPU: 2 PID: 1193 at lib/dma-debug.c:974 dma_debug_device_change+0x158/0x1c0() [ 539.324192] pci 0000:02:00.0: DMA-API: device driver has pending DMA allocations while released from device [count=2] One of leaked entries details: [device address=0x00000000fffe0000] [size=65536 bytes] [mapped with DMA_FROM_DEVICE] [mapped as scather-gather] [ 539.324194] Modules linked in: [ 539.324198] CPU: 2 PID: 1193 Comm: bash Not tainted 4.2.0-rc4+ #20 [ 539.324199] Hardware name: LENOVO 23252SG/23252SG, BIOS G2ET33WW (1.13 ) 07/24/2012 [ 539.324201] ffffffff81cc5faa ffff8800d6bfbb68 ffffffff81820998 0000000000000000 [ 539.324204] ffff8800d6bfbbb8 ffff8800d6bfbba8 ffffffff810b827a 0000000100260024 [ 539.324206] ffff88030e500000 0000000000000002 ffff88030df3f0c0 ffff88030e4ddd68 [ 539.324209] Call Trace: [ 539.324213] [<ffffffff81820998>] dump_stack+0x4c/0x6e [ 539.324217] [<ffffffff810b827a>] warn_slowpath_common+0x8a/0xc0 [ 539.324219] [<ffffffff810b82f6>] warn_slowpath_fmt+0x46/0x50 [ 539.324222] [<ffffffff813248c8>] dma_debug_device_change+0x158/0x1c0 [ 539.324226] [<ffffffff810d4e9d>] notifier_call_chain+0x4d/0x80 [ 539.324250] [<ffffffff810d51fd>] __blocking_notifier_call_chain+0x4d/0x70 [ 539.324253] [<ffffffff810d5236>] blocking_notifier_call_chain+0x16/0x20 [ 539.324256] [<ffffffff814db395>] __device_release_driver+0x105/0x130 [ 539.324258] [<ffffffff814db3e3>] device_release_driver+0x23/0x30 [ 539.324262] [<ffffffff814d95ca>] unbind_store+0xba/0xe0 [ 539.324266] [<ffffffff8123c638>] ? kernfs_fop_write+0xe8/0x170 [ 539.324269] [<ffffffff814d8ac4>] drv_attr_store+0x24/0x30 [ 539.324276] [<ffffffff8123ce4a>] sysfs_kf_write+0x3a/0x50 [ 539.324284] [<ffffffff8123c670>] kernfs_fop_write+0x120/0x170 [ 539.324290] [<ffffffff811ce9e8>] __vfs_write+0x28/0xe0 [ 539.324296] [<ffffffff811d1209>] ? __sb_start_write+0x49/0xe0 [ 539.324302] [<ffffffff810e3ba5>] ? local_clock+0x25/0x30 [ 539.324306] [<ffffffff810e3d76>] ? get_vtime_delta+0x16/0x80 [ 539.324311] [<ffffffff811cf041>] vfs_write+0xa1/0x170 [ 539.324316] [<ffffffff810e43c4>] ? vtime_account_user+0x54/0x60 [ 539.324319] [<ffffffff811cfce6>] SyS_write+0x46/0xa0 [ 539.324322] [<ffffffff81180f83>] ? context_tracking_user_exit+0x13/0x20 [ 539.324326] [<ffffffff8182a117>] entry_SYSCALL_64_fastpath+0x12/0x6a [ 539.324329] ---[ end trace 08b1aea46b9d093b ]--- [ 539.324330] Mapped at: [ 539.324332] [<ffffffff81324492>] debug_dma_map_sg+0x122/0x140 [ 539.324335] [<ffffffff81616f60>] sdhci_pre_dma_transfer+0xe0/0x1f0 [ 539.324338] [<ffffffff816170b2>] sdhci_pre_req+0x42/0x70 [ 539.324340] [<ffffffff81601572>] mmc_pre_req+0x42/0x60 [ 539.324345] [<ffffffff816029ee>] mmc_start_req+0x3e/0x400
Attachment:
debug.patch
Description: application/mbox