diff options
Diffstat (limited to 'drivers/base/devres.c')
| -rw-r--r-- | drivers/base/devres.c | 4 | 
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/base/devres.c b/drivers/base/devres.c index 864d0b3f566e..4ab2b50ee38f 100644 --- a/drivers/base/devres.c +++ b/drivers/base/devres.c @@ -117,7 +117,9 @@ static __always_inline struct devres * alloc_dr(dr_release_t release,  	if (unlikely(!dr))  		return NULL; -	memset(dr, 0, offsetof(struct devres, data)); +	/* No need to clear memory twice */ +	if (!(gfp & __GFP_ZERO)) +		memset(dr, 0, offsetof(struct devres, data));  	INIT_LIST_HEAD(&dr->node.entry);  	dr->node.release = release;  |