.. | .. |
---|
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 | +} |
---|