Re: dma_debug_device_change() gives bogus errors

From: Joerg Roedel
Date: Fri Apr 24 2009 - 08:19:18 EST


On Fri, Apr 24, 2009 at 12:20:04PM +0100, David Vrabel wrote:
> 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.

Thanks for the report. This is being worked on already. I will disable
this check for 2.6.30 and try to get a solution upstream for 2.6.31.

Joerg

--
| Advanced Micro Devices GmbH
Operating | Karl-Hammerschmidt-Str. 34, 85609 Dornach bei München
System |
Research | Geschäftsführer: Jochen Polster, Thomas M. McCoy, Giuliano Meroni
Center | Sitz: Dornach, Gemeinde Aschheim, Landkreis München
| Registergericht München, HRB Nr. 43632

--
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/