Merge tag 'linux-watchdog-5.10-rc1' of git://www.linux-watchdog.org/linux-watchdog
[linux-2.6-microblaze.git] / mm / dmapool.c
index f9fb9bb..a97c972 100644 (file)
@@ -266,6 +266,7 @@ static void pool_free_page(struct dma_pool *pool, struct dma_page *page)
  */
 void dma_pool_destroy(struct dma_pool *pool)
 {
+       struct dma_page *page, *tmp;
        bool empty = false;
 
        if (unlikely(!pool))
@@ -281,17 +282,13 @@ void dma_pool_destroy(struct dma_pool *pool)
                device_remove_file(pool->dev, &dev_attr_pools);
        mutex_unlock(&pools_reg_lock);
 
-       while (!list_empty(&pool->page_list)) {
-               struct dma_page *page;
-               page = list_entry(pool->page_list.next,
-                                 struct dma_page, page_list);
+       list_for_each_entry_safe(page, tmp, &pool->page_list, page_list) {
                if (is_page_busy(page)) {
                        if (pool->dev)
-                               dev_err(pool->dev,
-                                       "dma_pool_destroy %s, %p busy\n",
+                               dev_err(pool->dev, "%s %s, %p busy\n", __func__,
                                        pool->name, page->vaddr);
                        else
-                               pr_err("dma_pool_destroy %s, %p busy\n",
+                               pr_err("%s %s, %p busy\n", __func__,
                                       pool->name, page->vaddr);
                        /* leak the still-in-use consistent memory */
                        list_del(&page->page_list);
@@ -355,12 +352,11 @@ void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags,
                        if (data[i] == POOL_POISON_FREED)
                                continue;
                        if (pool->dev)
-                               dev_err(pool->dev,
-                                       "dma_pool_alloc %s, %p (corrupted)\n",
-                                       pool->name, retval);
+                               dev_err(pool->dev, "%s %s, %p (corrupted)\n",
+                                       __func__, pool->name, retval);
                        else
-                               pr_err("dma_pool_alloc %s, %p (corrupted)\n",
-                                       pool->name, retval);
+                               pr_err("%s %s, %p (corrupted)\n",
+                                       __func__, pool->name, retval);
 
                        /*
                         * Dump the first 4 bytes even if they are not
@@ -416,12 +412,11 @@ void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t dma)
        if (!page) {
                spin_unlock_irqrestore(&pool->lock, flags);
                if (pool->dev)
-                       dev_err(pool->dev,
-                               "dma_pool_free %s, %p/%lx (bad dma)\n",
-                               pool->name, vaddr, (unsigned long)dma);
+                       dev_err(pool->dev, "%s %s, %p/%pad (bad dma)\n",
+                               __func__, pool->name, vaddr, &dma);
                else
-                       pr_err("dma_pool_free %s, %p/%lx (bad dma)\n",
-                              pool->name, vaddr, (unsigned long)dma);
+                       pr_err("%s %s, %p/%pad (bad dma)\n",
+                              __func__, pool->name, vaddr, &dma);
                return;
        }
 
@@ -432,12 +427,11 @@ void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t dma)
        if ((dma - page->dma) != offset) {
                spin_unlock_irqrestore(&pool->lock, flags);
                if (pool->dev)
-                       dev_err(pool->dev,
-                               "dma_pool_free %s, %p (bad vaddr)/%pad\n",
-                               pool->name, vaddr, &dma);
+                       dev_err(pool->dev, "%s %s, %p (bad vaddr)/%pad\n",
+                               __func__, pool->name, vaddr, &dma);
                else
-                       pr_err("dma_pool_free %s, %p (bad vaddr)/%pad\n",
-                              pool->name, vaddr, &dma);
+                       pr_err("%s %s, %p (bad vaddr)/%pad\n",
+                              __func__, pool->name, vaddr, &dma);
                return;
        }
        {
@@ -449,11 +443,11 @@ void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t dma)
                        }
                        spin_unlock_irqrestore(&pool->lock, flags);
                        if (pool->dev)
-                               dev_err(pool->dev, "dma_pool_free %s, dma %pad already free\n",
-                                       pool->name, &dma);
+                               dev_err(pool->dev, "%s %s, dma %pad already free\n",
+                                       __func__, pool->name, &dma);
                        else
-                               pr_err("dma_pool_free %s, dma %pad already free\n",
-                                      pool->name, &dma);
+                               pr_err("%s %s, dma %pad already free\n",
+                                      __func__, pool->name, &dma);
                        return;
                }
        }