aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
index 156072239374..e6c9cd2e3b94 100644
--- a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
+++ b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
@@ -12,6 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/slab.h> 13#include <linux/slab.h>
14#include <linux/wait.h> 14#include <linux/wait.h>
15#include <linux/fs.h>
15#include <linux/module.h> 16#include <linux/module.h>
16#include <linux/usb.h> 17#include <linux/usb.h>
17#include <linux/delay.h> 18#include <linux/delay.h>
@@ -990,22 +991,9 @@ static int stc_open(struct inode *inode, struct file *file)
990} 991}
991 992
992static ssize_t stc_read(struct file *file, char *buf, size_t count, 993static ssize_t stc_read(struct file *file, char *buf, size_t count,
993 loff_t * offset) 994 loff_t *offset)
994{ 995{
995 int tc = count; 996 return simple_read_from_buffer(buf, count, offset, stc_firmware, 8192);
996
997 if ((tc + *offset) > 8192)
998 tc = 8192 - *offset;
999
1000 if (tc < 0)
1001 return 0;
1002
1003 if (copy_to_user(buf, stc_firmware + *offset, tc))
1004 return -EFAULT;
1005
1006 *offset += tc;
1007
1008 return tc;
1009} 997}
1010 998
1011static int stc_release(struct inode *inode, struct file *file) 999static int stc_release(struct inode *inode, struct file *file)