aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/kernel/sys_sparc_64.c33
1 files changed, 18 insertions, 15 deletions
diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
index ccc88926bc00..9f41a6f5a032 100644
--- a/arch/sparc/kernel/sys_sparc_64.c
+++ b/arch/sparc/kernel/sys_sparc_64.c
@@ -336,25 +336,28 @@ SYSCALL_DEFINE6(sparc_ipc, unsigned int, call, int, first, unsigned long, second
336{ 336{
337 long err; 337 long err;
338 338
339 if (!IS_ENABLED(CONFIG_SYSVIPC))
340 return -ENOSYS;
341
339 /* No need for backward compatibility. We can start fresh... */ 342 /* No need for backward compatibility. We can start fresh... */
340 if (call <= SEMTIMEDOP) { 343 if (call <= SEMTIMEDOP) {
341 switch (call) { 344 switch (call) {
342 case SEMOP: 345 case SEMOP:
343 err = sys_semtimedop(first, ptr, 346 err = ksys_semtimedop(first, ptr,
344 (unsigned int)second, NULL); 347 (unsigned int)second, NULL);
345 goto out; 348 goto out;
346 case SEMTIMEDOP: 349 case SEMTIMEDOP:
347 err = sys_semtimedop(first, ptr, (unsigned int)second, 350 err = ksys_semtimedop(first, ptr, (unsigned int)second,
348 (const struct __kernel_timespec __user *) 351 (const struct __kernel_timespec __user *)
349 (unsigned long) fifth); 352 (unsigned long) fifth);
350 goto out; 353 goto out;
351 case SEMGET: 354 case SEMGET:
352 err = sys_semget(first, (int)second, (int)third); 355 err = ksys_semget(first, (int)second, (int)third);
353 goto out; 356 goto out;
354 case SEMCTL: { 357 case SEMCTL: {
355 err = sys_semctl(first, second, 358 err = ksys_old_semctl(first, second,
356 (int)third | IPC_64, 359 (int)third | IPC_64,
357 (unsigned long) ptr); 360 (unsigned long) ptr);
358 goto out; 361 goto out;
359 } 362 }
360 default: 363 default:
@@ -365,18 +368,18 @@ SYSCALL_DEFINE6(sparc_ipc, unsigned int, call, int, first, unsigned long, second
365 if (call <= MSGCTL) { 368 if (call <= MSGCTL) {
366 switch (call) { 369 switch (call) {
367 case MSGSND: 370 case MSGSND:
368 err = sys_msgsnd(first, ptr, (size_t)second, 371 err = ksys_msgsnd(first, ptr, (size_t)second,
369 (int)third); 372 (int)third);
370 goto out; 373 goto out;
371 case MSGRCV: 374 case MSGRCV:
372 err = sys_msgrcv(first, ptr, (size_t)second, fifth, 375 err = ksys_msgrcv(first, ptr, (size_t)second, fifth,
373 (int)third); 376 (int)third);
374 goto out; 377 goto out;
375 case MSGGET: 378 case MSGGET:
376 err = sys_msgget((key_t)first, (int)second); 379 err = ksys_msgget((key_t)first, (int)second);
377 goto out; 380 goto out;
378 case MSGCTL: 381 case MSGCTL:
379 err = sys_msgctl(first, (int)second | IPC_64, ptr); 382 err = ksys_old_msgctl(first, (int)second | IPC_64, ptr);
380 goto out; 383 goto out;
381 default: 384 default:
382 err = -ENOSYS; 385 err = -ENOSYS;
@@ -396,13 +399,13 @@ SYSCALL_DEFINE6(sparc_ipc, unsigned int, call, int, first, unsigned long, second
396 goto out; 399 goto out;
397 } 400 }
398 case SHMDT: 401 case SHMDT:
399 err = sys_shmdt(ptr); 402 err = ksys_shmdt(ptr);
400 goto out; 403 goto out;
401 case SHMGET: 404 case SHMGET:
402 err = sys_shmget(first, (size_t)second, (int)third); 405 err = ksys_shmget(first, (size_t)second, (int)third);
403 goto out; 406 goto out;
404 case SHMCTL: 407 case SHMCTL:
405 err = sys_shmctl(first, (int)second | IPC_64, ptr); 408 err = ksys_old_shmctl(first, (int)second | IPC_64, ptr);
406 goto out; 409 goto out;
407 default: 410 default:
408 err = -ENOSYS; 411 err = -ENOSYS;