diff options
Diffstat (limited to 'lib/dma-debug.c')
| -rw-r--r-- | lib/dma-debug.c | 28 | 
1 files changed, 16 insertions, 12 deletions
| diff --git a/lib/dma-debug.c b/lib/dma-debug.c index 65b0d99b6d0..58a9f9fc609 100644 --- a/lib/dma-debug.c +++ b/lib/dma-debug.c @@ -156,9 +156,13 @@ static bool driver_filter(struct device *dev)  		return true;  	/* driver filter on and initialized */ -	if (current_driver && dev->driver == current_driver) +	if (current_driver && dev && dev->driver == current_driver)  		return true; +	/* driver filter on, but we can't filter on a NULL device... */ +	if (!dev) +		return false; +  	if (current_driver || !current_driver_name[0])  		return false; @@ -183,17 +187,17 @@ static bool driver_filter(struct device *dev)  	return ret;  } -#define err_printk(dev, entry, format, arg...) do {		\ -		error_count += 1;				\ -		if (driver_filter(dev) &&			\ -		    (show_all_errors || show_num_errors > 0)) {	\ -			WARN(1, "%s %s: " format,		\ -			     dev_driver_string(dev),		\ -			     dev_name(dev) , ## arg);		\ -			dump_entry_trace(entry);		\ -		}						\ -		if (!show_all_errors && show_num_errors > 0)	\ -			show_num_errors -= 1;			\ +#define err_printk(dev, entry, format, arg...) do {			\ +		error_count += 1;					\ +		if (driver_filter(dev) &&				\ +		    (show_all_errors || show_num_errors > 0)) {		\ +			WARN(1, "%s %s: " format,			\ +			     dev ? dev_driver_string(dev) : "NULL",	\ +			     dev ? dev_name(dev) : "NULL", ## arg);	\ +			dump_entry_trace(entry);			\ +		}							\ +		if (!show_all_errors && show_num_errors > 0)		\ +			show_num_errors -= 1;				\  	} while (0);  /* | 
