Commit 0bf84128 authored by Joerg Roedel's avatar Joerg Roedel

dma-debug: simplify logic in driver_filter()

This patch makes the driver_filter function more readable by
reorganizing the code. The removal of a code code block to an upper
indentation level makes hard-to-read line-wraps unnecessary.
Signed-off-by: default avatarJoerg Roedel <joerg.roedel@amd.com>
parent be81c6ea
...@@ -147,6 +147,10 @@ static inline void dump_entry_trace(struct dma_debug_entry *entry) ...@@ -147,6 +147,10 @@ static inline void dump_entry_trace(struct dma_debug_entry *entry)
static bool driver_filter(struct device *dev) static bool driver_filter(struct device *dev)
{ {
struct device_driver *drv;
unsigned long flags;
bool ret;
/* driver filter off */ /* driver filter off */
if (likely(!current_driver_name[0])) if (likely(!current_driver_name[0]))
return true; return true;
...@@ -155,32 +159,28 @@ static bool driver_filter(struct device *dev) ...@@ -155,32 +159,28 @@ static bool driver_filter(struct device *dev)
if (current_driver && dev->driver == current_driver) if (current_driver && dev->driver == current_driver)
return true; return true;
/* driver filter on but not yet initialized */ if (current_driver || !current_driver_name[0])
if (!current_driver && current_driver_name[0]) { return false;
struct device_driver *drv = get_driver(dev->driver);
unsigned long flags;
bool ret = false;
if (!drv)
return false;
/* lock to protect against change of current_driver_name */
read_lock_irqsave(&driver_name_lock, flags);
if (drv->name && /* driver filter on but not yet initialized */
strncmp(current_driver_name, drv->name, drv = get_driver(dev->driver);
NAME_MAX_LEN-1) == 0) { if (!drv)
current_driver = drv; return false;
ret = true;
}
read_unlock_irqrestore(&driver_name_lock, flags); /* lock to protect against change of current_driver_name */
put_driver(drv); read_lock_irqsave(&driver_name_lock, flags);
return ret; ret = false;
if (drv->name &&
strncmp(current_driver_name, drv->name, NAME_MAX_LEN - 1) == 0) {
current_driver = drv;
ret = true;
} }
return false; read_unlock_irqrestore(&driver_name_lock, flags);
put_driver(drv);
return ret;
} }
#define err_printk(dev, entry, format, arg...) do { \ #define err_printk(dev, entry, format, arg...) do { \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment