[FOSS_TLK]platform: tegra: fix usleep/nanosleep
Chris Johnson [Thu, 11 Dec 2014 23:20:34 +0000 (15:20 -0800)]
The TLK syscall was expecting a struct timespec pointer to
be passed in (like nanosleep), but TAs were passing a usec
value (like usleep) failing the pointer address check.

This renames the syscall (in TLK) and adds support in libc
to make the usleep still called from the TAs work as a
nanosleep syscall as the kernel expected.

Change-Id: Ic4887e3746d71f69d8ba2ec6412b8143595bc868
Reviewed-on: http://git-master/r/715767
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
Tested-by: Varun Wadekar <vwadekar@nvidia.com>

kernel/syscall.c

index c75b08f..949c026 100644 (file)
@@ -366,7 +366,7 @@ bool platform_syscall_handler(void *arg)
                r[0] = task->curr_brk;
                return true;
        }
-       if (r[12] == __NR_usleep) {     /* usleep */
+       if (r[12] == __NR_nanosleep) {  /* nanosleep */
                struct timespec *ts;
 
                /* check buffer is in task's address space */