dma-debug: Use pr_fmt()
authorRobin Murphy <robin.murphy@arm.com>
Mon, 10 Dec 2018 14:00:27 +0000 (14:00 +0000)
committerChristoph Hellwig <hch@lst.de>
Tue, 11 Dec 2018 13:31:17 +0000 (14:31 +0100)
Use pr_fmt() to generate the "DMA-API: " prefix consistently. This
results in it being added to a couple of pr_*() messages which were
missing it before, and for the err_printk() calls moves it to the actual
start of the message instead of somewhere in the middle.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Tested-by: Qian Cai <cai@lca.pw>
Signed-off-by: Christoph Hellwig <hch@lst.de>
kernel/dma/debug.c

index f6a141eb9438848405816183347d90e86ba9913e..29486eb9d1dcb3e7859bd7f057b84f49a7cc33c3 100644 (file)
@@ -17,6 +17,8 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  */
 
+#define pr_fmt(fmt)    "DMA-API: " fmt
+
 #include <linux/sched/task_stack.h>
 #include <linux/scatterlist.h>
 #include <linux/dma-mapping.h>
@@ -235,7 +237,7 @@ static bool driver_filter(struct device *dev)
                error_count += 1;                                       \
                if (driver_filter(dev) &&                               \
                    (show_all_errors || show_num_errors > 0)) {         \
-                       WARN(1, "%s %s: " format,                       \
+                       WARN(1, pr_fmt("%s %s: ") format,               \
                             dev ? dev_driver_string(dev) : "NULL",     \
                             dev ? dev_name(dev) : "NULL", ## arg);     \
                        dump_entry_trace(entry);                        \
@@ -520,7 +522,7 @@ static void active_cacheline_inc_overlap(phys_addr_t cln)
         * prematurely.
         */
        WARN_ONCE(overlap > ACTIVE_CACHELINE_MAX_OVERLAP,
-                 "DMA-API: exceeded %d overlapping mappings of cacheline %pa\n",
+                 pr_fmt("exceeded %d overlapping mappings of cacheline %pa\n"),
                  ACTIVE_CACHELINE_MAX_OVERLAP, &cln);
 }
 
@@ -615,7 +617,7 @@ void debug_dma_assert_idle(struct page *page)
 
        cln = to_cacheline_number(entry);
        err_printk(entry->dev, entry,
-                  "DMA-API: cpu touching an active dma mapped cacheline [cln=%pa]\n",
+                  "cpu touching an active dma mapped cacheline [cln=%pa]\n",
                   &cln);
 }
 
@@ -635,7 +637,7 @@ static void add_dma_entry(struct dma_debug_entry *entry)
 
        rc = active_cacheline_insert(entry);
        if (rc == -ENOMEM) {
-               pr_err("DMA-API: cacheline tracking ENOMEM, dma-debug disabled\n");
+               pr_err("cacheline tracking ENOMEM, dma-debug disabled\n");
                global_disable = true;
        }
 
@@ -674,7 +676,7 @@ static struct dma_debug_entry *dma_entry_alloc(void)
        if (list_empty(&free_entries)) {
                global_disable = true;
                spin_unlock_irqrestore(&free_entries_lock, flags);
-               pr_err("DMA-API: debugging out of memory - disabling\n");
+               pr_err("debugging out of memory - disabling\n");
                return NULL;
        }
 
@@ -778,7 +780,7 @@ static int prealloc_memory(u32 num_entries)
        num_free_entries = num_entries;
        min_free_entries = num_entries;
 
-       pr_info("DMA-API: preallocated %d debug entries\n", num_entries);
+       pr_info("preallocated %d debug entries\n", num_entries);
 
        return 0;
 
@@ -851,7 +853,7 @@ static ssize_t filter_write(struct file *file, const char __user *userbuf,
                 * switched off.
                 */
                if (current_driver_name[0])
-                       pr_info("DMA-API: switching off dma-debug driver filter\n");
+                       pr_info("switching off dma-debug driver filter\n");
                current_driver_name[0] = 0;
                current_driver = NULL;
                goto out_unlock;
@@ -869,7 +871,7 @@ static ssize_t filter_write(struct file *file, const char __user *userbuf,
        current_driver_name[i] = 0;
        current_driver = NULL;
 
-       pr_info("DMA-API: enable driver filter for driver [%s]\n",
+       pr_info("enable driver filter for driver [%s]\n",
                current_driver_name);
 
 out_unlock:
@@ -888,7 +890,7 @@ static int dma_debug_fs_init(void)
 {
        dma_debug_dent = debugfs_create_dir("dma-api", NULL);
        if (!dma_debug_dent) {
-               pr_err("DMA-API: can not create debugfs directory\n");
+               pr_err("can not create debugfs directory\n");
                return -ENOMEM;
        }
 
@@ -980,7 +982,7 @@ static int dma_debug_device_change(struct notifier_block *nb, unsigned long acti
                count = device_dma_allocations(dev, &entry);
                if (count == 0)
                        break;
-               err_printk(dev, entry, "DMA-API: device driver has pending "
+               err_printk(dev, entry, "device driver has pending "
                                "DMA allocations while released from device "
                                "[count=%d]\n"
                                "One of leaked entries details: "
@@ -1030,14 +1032,14 @@ static int dma_debug_init(void)
        }
 
        if (dma_debug_fs_init() != 0) {
-               pr_err("DMA-API: error creating debugfs entries - disabling\n");
+               pr_err("error creating debugfs entries - disabling\n");
                global_disable = true;
 
                return 0;
        }
 
        if (prealloc_memory(nr_prealloc_entries) != 0) {
-               pr_err("DMA-API: debugging out of memory error - disabled\n");
+               pr_err("debugging out of memory error - disabled\n");
                global_disable = true;
 
                return 0;
@@ -1047,7 +1049,7 @@ static int dma_debug_init(void)
 
        dma_debug_initialized = true;
 
-       pr_info("DMA-API: debugging enabled by kernel config\n");
+       pr_info("debugging enabled by kernel config\n");
        return 0;
 }
 core_initcall(dma_debug_init);
@@ -1058,7 +1060,7 @@ static __init int dma_debug_cmdline(char *str)
                return -EINVAL;
 
        if (strncmp(str, "off", 3) == 0) {
-               pr_info("DMA-API: debugging disabled on kernel command line\n");
+               pr_info("debugging disabled on kernel command line\n");
                global_disable = true;
        }
 
@@ -1092,11 +1094,11 @@ static void check_unmap(struct dma_debug_entry *ref)
 
                if (dma_mapping_error(ref->dev, ref->dev_addr)) {
                        err_printk(ref->dev, NULL,
-                                  "DMA-API: device driver tries to free an "
+                                  "device driver tries to free an "
                                   "invalid DMA memory address\n");
                } else {
                        err_printk(ref->dev, NULL,
-                                  "DMA-API: device driver tries to free DMA "
+                                  "device driver tries to free DMA "
                                   "memory it has not allocated [device "
                                   "address=0x%016llx] [size=%llu bytes]\n",
                                   ref->dev_addr, ref->size);
@@ -1105,7 +1107,7 @@ static void check_unmap(struct dma_debug_entry *ref)
        }
 
        if (ref->size != entry->size) {
-               err_printk(ref->dev, entry, "DMA-API: device driver frees "
+               err_printk(ref->dev, entry, "device driver frees "
                           "DMA memory with different size "
                           "[device address=0x%016llx] [map size=%llu bytes] "
                           "[unmap size=%llu bytes]\n",
@@ -1113,7 +1115,7 @@ static void check_unmap(struct dma_debug_entry *ref)
        }
 
        if (ref->type != entry->type) {
-               err_printk(ref->dev, entry, "DMA-API: device driver frees "
+               err_printk(ref->dev, entry, "device driver frees "
                           "DMA memory with wrong function "
                           "[device address=0x%016llx] [size=%llu bytes] "
                           "[mapped as %s] [unmapped as %s]\n",
@@ -1121,7 +1123,7 @@ static void check_unmap(struct dma_debug_entry *ref)
                           type2name[entry->type], type2name[ref->type]);
        } else if ((entry->type == dma_debug_coherent) &&
                   (phys_addr(ref) != phys_addr(entry))) {
-               err_printk(ref->dev, entry, "DMA-API: device driver frees "
+               err_printk(ref->dev, entry, "device driver frees "
                           "DMA memory with different CPU address "
                           "[device address=0x%016llx] [size=%llu bytes] "
                           "[cpu alloc address=0x%016llx] "
@@ -1133,7 +1135,7 @@ static void check_unmap(struct dma_debug_entry *ref)
 
        if (ref->sg_call_ents && ref->type == dma_debug_sg &&
            ref->sg_call_ents != entry->sg_call_ents) {
-               err_printk(ref->dev, entry, "DMA-API: device driver frees "
+               err_printk(ref->dev, entry, "device driver frees "
                           "DMA sg list with different entry count "
                           "[map count=%d] [unmap count=%d]\n",
                           entry->sg_call_ents, ref->sg_call_ents);
@@ -1144,7 +1146,7 @@ static void check_unmap(struct dma_debug_entry *ref)
         * DMA API don't handle this properly, so check for it here
         */
        if (ref->direction != entry->direction) {
-               err_printk(ref->dev, entry, "DMA-API: device driver frees "
+               err_printk(ref->dev, entry, "device driver frees "
                           "DMA memory with different direction "
                           "[device address=0x%016llx] [size=%llu bytes] "
                           "[mapped with %s] [unmapped with %s]\n",
@@ -1160,7 +1162,7 @@ static void check_unmap(struct dma_debug_entry *ref)
         */
        if (entry->map_err_type == MAP_ERR_NOT_CHECKED) {
                err_printk(ref->dev, entry,
-                          "DMA-API: device driver failed to check map error"
+                          "device driver failed to check map error"
                           "[device address=0x%016llx] [size=%llu bytes] "
                           "[mapped as %s]",
                           ref->dev_addr, ref->size,
@@ -1185,7 +1187,7 @@ static void check_for_stack(struct device *dev,
                        return;
                addr = page_address(page) + offset;
                if (object_is_on_stack(addr))
-                       err_printk(dev, NULL, "DMA-API: device driver maps memory from stack [addr=%p]\n", addr);
+                       err_printk(dev, NULL, "device driver maps memory from stack [addr=%p]\n", addr);
        } else {
                /* Stack is vmalloced. */
                int i;
@@ -1195,7 +1197,7 @@ static void check_for_stack(struct device *dev,
                                continue;
 
                        addr = (u8 *)current->stack + i * PAGE_SIZE + offset;
-                       err_printk(dev, NULL, "DMA-API: device driver maps memory from stack [probable addr=%p]\n", addr);
+                       err_printk(dev, NULL, "device driver maps memory from stack [probable addr=%p]\n", addr);
                        break;
                }
        }
@@ -1215,7 +1217,7 @@ static void check_for_illegal_area(struct device *dev, void *addr, unsigned long
 {
        if (overlap(addr, len, _stext, _etext) ||
            overlap(addr, len, __start_rodata, __end_rodata))
-               err_printk(dev, NULL, "DMA-API: device driver maps memory from kernel text or rodata [addr=%p] [len=%lu]\n", addr, len);
+               err_printk(dev, NULL, "device driver maps memory from kernel text or rodata [addr=%p] [len=%lu]\n", addr, len);
 }
 
 static void check_sync(struct device *dev,
@@ -1231,7 +1233,7 @@ static void check_sync(struct device *dev,
        entry = bucket_find_contain(&bucket, ref, &flags);
 
        if (!entry) {
-               err_printk(dev, NULL, "DMA-API: device driver tries "
+               err_printk(dev, NULL, "device driver tries "
                                "to sync DMA memory it has not allocated "
                                "[device address=0x%016llx] [size=%llu bytes]\n",
                                (unsigned long long)ref->dev_addr, ref->size);
@@ -1239,7 +1241,7 @@ static void check_sync(struct device *dev,
        }
 
        if (ref->size > entry->size) {
-               err_printk(dev, entry, "DMA-API: device driver syncs"
+               err_printk(dev, entry, "device driver syncs"
                                " DMA memory outside allocated range "
                                "[device address=0x%016llx] "
                                "[allocation size=%llu bytes] "
@@ -1252,7 +1254,7 @@ static void check_sync(struct device *dev,
                goto out;
 
        if (ref->direction != entry->direction) {
-               err_printk(dev, entry, "DMA-API: device driver syncs "
+               err_printk(dev, entry, "device driver syncs "
                                "DMA memory with different direction "
                                "[device address=0x%016llx] [size=%llu bytes] "
                                "[mapped with %s] [synced with %s]\n",
@@ -1263,7 +1265,7 @@ static void check_sync(struct device *dev,
 
        if (to_cpu && !(entry->direction == DMA_FROM_DEVICE) &&
                      !(ref->direction == DMA_TO_DEVICE))
-               err_printk(dev, entry, "DMA-API: device driver syncs "
+               err_printk(dev, entry, "device driver syncs "
                                "device read-only DMA memory for cpu "
                                "[device address=0x%016llx] [size=%llu bytes] "
                                "[mapped with %s] [synced with %s]\n",
@@ -1273,7 +1275,7 @@ static void check_sync(struct device *dev,
 
        if (!to_cpu && !(entry->direction == DMA_TO_DEVICE) &&
                       !(ref->direction == DMA_FROM_DEVICE))
-               err_printk(dev, entry, "DMA-API: device driver syncs "
+               err_printk(dev, entry, "device driver syncs "
                                "device write-only DMA memory to device "
                                "[device address=0x%016llx] [size=%llu bytes] "
                                "[mapped with %s] [synced with %s]\n",
@@ -1283,7 +1285,7 @@ static void check_sync(struct device *dev,
 
        if (ref->sg_call_ents && ref->type == dma_debug_sg &&
            ref->sg_call_ents != entry->sg_call_ents) {
-               err_printk(ref->dev, entry, "DMA-API: device driver syncs "
+               err_printk(ref->dev, entry, "device driver syncs "
                           "DMA sg list with different entry count "
                           "[map count=%d] [sync count=%d]\n",
                           entry->sg_call_ents, ref->sg_call_ents);
@@ -1304,7 +1306,7 @@ static void check_sg_segment(struct device *dev, struct scatterlist *sg)
         * whoever generated the list forgot to check them.
         */
        if (sg->length > max_seg)
-               err_printk(dev, NULL, "DMA-API: mapping sg segment longer than device claims to support [len=%u] [max=%u]\n",
+               err_printk(dev, NULL, "mapping sg segment longer than device claims to support [len=%u] [max=%u]\n",
                           sg->length, max_seg);
        /*
         * In some cases this could potentially be the DMA API
@@ -1314,7 +1316,7 @@ static void check_sg_segment(struct device *dev, struct scatterlist *sg)
        start = sg_dma_address(sg);
        end = start + sg_dma_len(sg) - 1;
        if ((start ^ end) & ~boundary)
-               err_printk(dev, NULL, "DMA-API: mapping sg segment across boundary [start=0x%016llx] [end=0x%016llx] [boundary=0x%016llx]\n",
+               err_printk(dev, NULL, "mapping sg segment across boundary [start=0x%016llx] [end=0x%016llx] [boundary=0x%016llx]\n",
                           start, end, boundary);
 #endif
 }
@@ -1326,11 +1328,11 @@ void debug_dma_map_single(struct device *dev, const void *addr,
                return;
 
        if (!virt_addr_valid(addr))
-               err_printk(dev, NULL, "DMA-API: device driver maps memory from invalid area [addr=%p] [len=%lu]\n",
+               err_printk(dev, NULL, "device driver maps memory from invalid area [addr=%p] [len=%lu]\n",
                           addr, len);
 
        if (is_vmalloc_addr(addr))
-               err_printk(dev, NULL, "DMA-API: device driver maps memory from vmalloc area [addr=%p] [len=%lu]\n",
+               err_printk(dev, NULL, "device driver maps memory from vmalloc area [addr=%p] [len=%lu]\n",
                           addr, len);
 }
 EXPORT_SYMBOL(debug_dma_map_single);
@@ -1787,7 +1789,7 @@ static int __init dma_debug_driver_setup(char *str)
        }
 
        if (current_driver_name[0])
-               pr_info("DMA-API: enable driver filter for driver [%s]\n",
+               pr_info("enable driver filter for driver [%s]\n",
                        current_driver_name);