| From foo@baz Tue Mar 24 10:57:46 CET 2015 |
| From: Rob Gardner <rob.gardner@oracle.com> |
| Date: Mon, 2 Mar 2015 23:16:55 -0700 |
| Subject: sparc: semtimedop() unreachable due to comparison error |
| |
| From: Rob Gardner <rob.gardner@oracle.com> |
| |
| [ Upstream commit 53eb2516972b8c4628651dfcb926cb9ef8b2864a ] |
| |
| A bug was reported that the semtimedop() system call was always |
| failing eith ENOSYS. |
| |
| Since SEMCTL is defined as 3, and SEMTIMEDOP is defined as 4, |
| the comparison "call <= SEMCTL" will always prevent SEMTIMEDOP |
| from getting through to the semaphore ops switch statement. |
| |
| This is corrected by changing the comparison to "call <= SEMTIMEDOP". |
| |
| Orabug: 20633375 |
| |
| Signed-off-by: Rob Gardner <rob.gardner@oracle.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/sparc/kernel/sys_sparc_64.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/arch/sparc/kernel/sys_sparc_64.c |
| +++ b/arch/sparc/kernel/sys_sparc_64.c |
| @@ -336,7 +336,7 @@ SYSCALL_DEFINE6(sparc_ipc, unsigned int, |
| long err; |
| |
| /* No need for backward compatibility. We can start fresh... */ |
| - if (call <= SEMCTL) { |
| + if (call <= SEMTIMEDOP) { |
| switch (call) { |
| case SEMOP: |
| err = sys_semtimedop(first, ptr, |