correct the syscall return type
Long size syscall return values such as shmat()'s and lseek()'s are broken, because lower 32 bits are only returned.
This commit is contained in:
@ -825,7 +825,7 @@ int main(int argc, char **argv)
|
||||
|
||||
|
||||
void do_syscall_return(int fd, int cpu,
|
||||
int ret, int n, unsigned long src, unsigned long dest,
|
||||
long ret, int n, unsigned long src, unsigned long dest,
|
||||
unsigned long sz)
|
||||
{
|
||||
struct syscall_ret_desc desc;
|
||||
|
||||
@ -207,7 +207,7 @@ struct syscall_params {
|
||||
|
||||
#define SYSCALL_FOOTER return do_syscall(&request, ctx, ihk_mc_get_processor_id())
|
||||
|
||||
extern int do_syscall(struct syscall_request *req, ihk_mc_user_context_t *ctx, int cpu);
|
||||
extern long do_syscall(struct syscall_request *req, ihk_mc_user_context_t *ctx, int cpu);
|
||||
extern int obtain_clone_cpuid();
|
||||
extern long syscall_generic_forwarding(int n, ihk_mc_user_context_t *ctx);
|
||||
|
||||
|
||||
@ -151,7 +151,7 @@ static void send_syscall(struct syscall_request *req, int cpu)
|
||||
}
|
||||
|
||||
|
||||
int do_syscall(struct syscall_request *req, ihk_mc_user_context_t *ctx, int cpu)
|
||||
long do_syscall(struct syscall_request *req, ihk_mc_user_context_t *ctx, int cpu)
|
||||
{
|
||||
struct syscall_response *res;
|
||||
struct syscall_request req2 IHK_DMA_ALIGN;
|
||||
|
||||
Reference in New Issue
Block a user