mirror of https://gitee.com/openkylin/linux.git
[MIPS] Fix AP/SP to work in the reality of modern kernels.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
de46c33745
commit
7f5a7716dc
|
@ -17,6 +17,7 @@
|
|||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/unistd.h>
|
||||
#include <linux/file.h>
|
||||
#include <linux/fs.h>
|
||||
|
@ -198,7 +199,6 @@ void sp_work_handle_request(void)
|
|||
int cmd;
|
||||
|
||||
char *vcwd;
|
||||
mm_segment_t old_fs;
|
||||
int size;
|
||||
|
||||
ret.retval = -1;
|
||||
|
@ -241,8 +241,6 @@ void sp_work_handle_request(void)
|
|||
if ((ret.retval = sp_syscall(__NR_gettimeofday, (int)&tv,
|
||||
(int)&tz, 0,0)) == 0)
|
||||
ret.retval = tv.tv_sec;
|
||||
|
||||
ret.errno = errno;
|
||||
break;
|
||||
|
||||
case MTSP_SYSCALL_EXIT:
|
||||
|
@ -279,7 +277,6 @@ void sp_work_handle_request(void)
|
|||
if (cmd >= 0) {
|
||||
ret.retval = sp_syscall(cmd, generic.arg0, generic.arg1,
|
||||
generic.arg2, generic.arg3);
|
||||
ret.errno = errno;
|
||||
} else
|
||||
printk(KERN_WARNING
|
||||
"KSPD: Unknown SP syscall number %d\n", sc.cmd);
|
||||
|
|
|
@ -289,7 +289,7 @@ unsigned int rtlx_write_poll(int index)
|
|||
return write_spacefree(chan->rt_read, chan->rt_write, chan->buffer_size);
|
||||
}
|
||||
|
||||
ssize_t rtlx_read(int index, void __user *buff, size_t count, int user)
|
||||
ssize_t rtlx_read(int index, void __user *buff, size_t count)
|
||||
{
|
||||
size_t lx_write, fl = 0L;
|
||||
struct rtlx_channel *lx;
|
||||
|
@ -331,9 +331,10 @@ ssize_t rtlx_read(int index, void __user *buff, size_t count, int user)
|
|||
return count;
|
||||
}
|
||||
|
||||
ssize_t rtlx_write(int index, const void __user *buffer, size_t count, int user)
|
||||
ssize_t rtlx_write(int index, const void __user *buffer, size_t count)
|
||||
{
|
||||
struct rtlx_channel *rt;
|
||||
unsigned long failed;
|
||||
size_t rt_read;
|
||||
size_t fl;
|
||||
|
||||
|
@ -363,7 +364,7 @@ ssize_t rtlx_write(int index, const void __user *buffer, size_t count, int user)
|
|||
}
|
||||
|
||||
out:
|
||||
count -= cailed;
|
||||
count -= failed;
|
||||
|
||||
smp_wmb();
|
||||
rt->rt_write = (rt->rt_write + count) % rt->buffer_size;
|
||||
|
|
Loading…
Reference in New Issue