diff options
Diffstat (limited to 'arch/sparc/kernel/sys_sparc_64.c')
-rw-r--r-- | arch/sparc/kernel/sys_sparc_64.c | 33 |
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; |