dma_debug_device_change() gives bogus errors

From: David Vrabel
Date: Fri Apr 24 2009 - 07:21:18 EST


dma_debug_device_change() gives bogus errors if a driver unmaps dma
buffers within its driver->remove() method. This is because the
BUS_NOTIFY_UNBIND_DRIVER notification is raised before calling
driver->remove() (see __device_release_driver() in drivers/base/dd.c).

By the time my driver->remove() completes, there are no DMA mappings
(debug_dma_dump_mappings() produces no output).

Also, somewhat surprisingly, it only prints the error the first time the
driver is unbound.

David
--
David Vrabel, Senior Software Engineer, Drivers
CSR, Churchill House, Cambridge Business Park, Tel: +44 (0)1223 692562
Cowley Road, Cambridge, CB4 0WZ http://www.csr.com/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/