| .. | .. |
|---|
| 444 | 444 | flags = FIX_O_NONBLOCK(flags); |
|---|
| 445 | 445 | return sys_inotify_init1(flags); |
|---|
| 446 | 446 | } |
|---|
| 447 | + |
|---|
| 448 | +/* |
|---|
| 449 | + * madvise() wrapper |
|---|
| 450 | + * |
|---|
| 451 | + * Up to kernel v6.1 parisc has different values than all other |
|---|
| 452 | + * platforms for the MADV_xxx flags listed below. |
|---|
| 453 | + * To keep binary compatibility with existing userspace programs |
|---|
| 454 | + * translate the former values to the new values. |
|---|
| 455 | + * |
|---|
| 456 | + * XXX: Remove this wrapper in year 2025 (or later) |
|---|
| 457 | + */ |
|---|
| 458 | + |
|---|
| 459 | +asmlinkage notrace long parisc_madvise(unsigned long start, size_t len_in, int behavior) |
|---|
| 460 | +{ |
|---|
| 461 | + switch (behavior) { |
|---|
| 462 | + case 65: behavior = MADV_MERGEABLE; break; |
|---|
| 463 | + case 66: behavior = MADV_UNMERGEABLE; break; |
|---|
| 464 | + case 67: behavior = MADV_HUGEPAGE; break; |
|---|
| 465 | + case 68: behavior = MADV_NOHUGEPAGE; break; |
|---|
| 466 | + case 69: behavior = MADV_DONTDUMP; break; |
|---|
| 467 | + case 70: behavior = MADV_DODUMP; break; |
|---|
| 468 | + case 71: behavior = MADV_WIPEONFORK; break; |
|---|
| 469 | + case 72: behavior = MADV_KEEPONFORK; break; |
|---|
| 470 | + } |
|---|
| 471 | + |
|---|
| 472 | + return sys_madvise(start, len_in, behavior); |
|---|
| 473 | +} |
|---|