diff options
Diffstat (limited to 'sound/sound_firmware.c')
| -rw-r--r-- | sound/sound_firmware.c | 9 | 
1 files changed, 5 insertions, 4 deletions
| diff --git a/sound/sound_firmware.c b/sound/sound_firmware.c index e1490346805..b155137ee31 100644 --- a/sound/sound_firmware.c +++ b/sound/sound_firmware.c @@ -1,6 +1,7 @@  #include <linux/vmalloc.h>  #include <linux/module.h>  #include <linux/fs.h> +#include <linux/file.h>  #include <linux/mm.h>  #include <linux/sched.h>  #include <asm/uaccess.h> @@ -23,14 +24,14 @@ static int do_mod_firmware_load(const char *fn, char **fp)  	if (l <= 0 || l > 131072)  	{  		printk(KERN_INFO "Invalid firmware '%s'\n", fn); -		filp_close(filp, NULL); +		fput(filp);  		return 0;  	}  	dp = vmalloc(l);  	if (dp == NULL)  	{  		printk(KERN_INFO "Out of memory loading '%s'.\n", fn); -		filp_close(filp, NULL); +		fput(filp);  		return 0;  	}  	pos = 0; @@ -38,10 +39,10 @@ static int do_mod_firmware_load(const char *fn, char **fp)  	{  		printk(KERN_INFO "Failed to read '%s'.\n", fn);  		vfree(dp); -		filp_close(filp, NULL); +		fput(filp);  		return 0;  	} -	filp_close(filp, NULL); +	fput(filp);  	*fp = dp;  	return (int) l;  } |