On Thu, Dec 27, 2012 at 02:28:06PM -0200, Thadeu Lima de Souza Cascardo wrote:
>When a device DMA window includes the address 0, it's reserved in the
>TCE bitmap to avoid returning that address to drivers.
>
>When the device is removed, the bitmap is checked for any mappings not
>removed by the driver, indicating a possible DMA mapping leak. Since the
>reserved address is not cleared, a message is printed, warning of such a
>leak.
>
>Check for the reservation, and clear it before checking for any other
>standing mappings.
>
>Signed-off-by: Thadeu Lima de Souza Cascardo <casca...@linux.vnet.ibm.com>
>---
> arch/powerpc/kernel/iommu.c |    5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
>diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c
>index 8226c6c..226e9e5 100644
>--- a/arch/powerpc/kernel/iommu.c
>+++ b/arch/powerpc/kernel/iommu.c
>@@ -717,6 +717,11 @@ void iommu_free_table(struct iommu_table *tbl, const char 
>*node_name)
>               return;
>       }
>
>+      /* In case we have reserved the first bit, we should not emit
>+       * the warning below. */

At least, the comment would look like:

        /*
         * xxxxxxx
         */

>+      if (tbl->it_offset == 0)
>+              clear_bit(0, tbl->it_map);
>+
>       /* verify that table contains no entries */
>       /* it_size is in entries, and we're examining 64 at a time */

The comment would be merged as well? :-)

>       for (i = 0; i < (tbl->it_size/64); i++) {

Thanks,
Gavin

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to