aboutsummaryrefslogtreecommitdiff
path: root/sound/sound_firmware.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/sound_firmware.c')
-rw-r--r--sound/sound_firmware.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sound/sound_firmware.c b/sound/sound_firmware.c
index 37711a5d0d6..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>
@@ -19,18 +20,18 @@ static int do_mod_firmware_load(const char *fn, char **fp)
printk(KERN_INFO "Unable to load '%s'.\n", fn);
return 0;
}
- l = i_size_read(filp->f_path.dentry->d_inode);
+ l = i_size_read(file_inode(filp));
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;
}