On Sat, Feb 23, 2013 at 7:01 AM, Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> wrote: >> ------------[ cut here ]------------ >> WARNING: at lib/dma-debug.c:933 check_unmap+0x407/0x8a0() >> Hardware name: M720-US3 >> skge 0000:01:09.0: DMA-API: device driver failed to check map >> error[device address=0x0000000105d52522] [size=90 bytes] [mapped as single] >> Modules linked in: >> …uetooth rfkill ip6t_REJECT nf_conntrack_ipv6 nf_conntrack_ipv4 >> nf_defrag_ipv6 nf_defrag_ipv4 xt_conntrack ip6table_filter nf_conntrack >> ip6_tables… vhost_net tun macvtap… macvlan… nfsd auth_rpcgss nfs_acl >> lockd… r8169… mii skge… sunrpc > > Funny enough, it is also a DMA error... > > I'm starting to suspect that maybe some change at the dma stack made > it a little more pedantic ;) Yes. In 3.8. > Two similar errors on different drivers is enough for me to take a deeper > look into it to solve the mystery ;) > > Basically, those got generated by lib/dma-debug.c. > > On the af9015 case, this is a simple test, done at debug_dma_map_page(). > It checks if the area is in stack and print an error. I suspect that, on > x86, the driver will still run, on most cases. > > In the case of the network driver, it detected that > debug_dma_mapping_error() was never called. Also, I believe that the > network driver will still work, and this is more a warning that bad > things might happen with the driver, if the check is not done. No, you don't call debug_dma_mapping_error directly. That's used by the DMA-API debugging functions itself. It's not something drivers call. > I _suspect_ that the network driver is calling dma_map_single() or > dma_map_page() but not calling dma_map_error(). Close. It's calling pci_map_single and not calling pci_dma_mapping_error. Those are PCI wrappers around the same functions, but that's what they should be using. > The only network driver there on the list of drivers on your error is r8169. > Weird enough, at least on linux-next, r8169 seems ok: Er... his error was triggered by skge, which is a network driver. > $ git grep -L dma_mapping_error $(git grep -l -e dma_map_single -e dma_map_page drivers/net/) That's the wrong function to grep for in most cases. I don't think the prbolem is as wide-spread as you fear. Poma, you should probably just start filing bugs for things you hit. In this case, the skge backtrace is just a warning but it can be fixed up relatively easily. josh _______________________________________________ kernel mailing list kernel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/kernel