Function report |
Source Code:kernel\futex.c |
Create Date:2022-07-28 10:54:25 |
Last Modify:2020-03-17 15:28:32 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:fixup_pi_state_owner
Proto:static int fixup_pi_state_owner(unsigned int __user *uaddr, struct futex_q *q, struct task_struct *argowner)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
unsigned int __user * | uaddr | |
struct futex_q * | q | |
struct task_struct * | argowner |
2447 | err = 0 |
2449 | lockdep_assert_held(lock_ptr) |
2451 | raw_spin_lock_irq( & wait_lock) |
2478 | retry : |
2479 | If Not argowner Then |
2480 | If oldowner != current process Then |
2485 | ret = 0 |
2486 | Go to out_unlock |
2489 | If __rt_mutex_futex_trylock( & The PI object:) Then |
2491 | ret = 0 |
2492 | Go to out_unlock |
2498 | newowner = rt_mutex_owner( & The PI object:) |
2500 | Else |
2501 | WARN_ON_ONCE(argowner != current process) |
2502 | If oldowner == current process Then |
2507 | ret = 0 |
2508 | Go to out_unlock |
2518 | err = get_futex_value_locked( & uval, uaddr) |
2519 | If err Then Go to handle_err |
2522 | cycle |
2526 | If err Then Go to handle_err |
2538 | If (owner != NULL) Then |
2551 | raw_spin_unlock_irq( & wait_lock) |
2553 | Return 0 |
2568 | handle_err : |
2569 | raw_spin_unlock_irq( & wait_lock) |
2570 | spin_unlock(lock_ptr) |
2575 | Break |
2582 | Default |
2589 | raw_spin_lock_irq( & wait_lock) |
2595 | ret = 0 |
2596 | Go to out_unlock |
2599 | If ret Then Go to out_unlock |
2602 | Go to retry |
2604 | out_unlock : |
2605 | raw_spin_unlock_irq( & wait_lock) |
2606 | Return ret |
Name | Describe |
---|---|
fixup_owner | xup_owner() - Post lock pi_state and corner case management*@uaddr: user address of the futex*@q: futex_q (contains pi_state and access to the rt_mutex)*@locked: if the attempt to take the rt_mutex succeeded (1) or not (0)* After attempting to lock an |
futex_wait_requeue_pi | ex_wait_requeue_pi() - Wait on uaddr and take uaddr2*@uaddr: the futex we initially wait on (non-pi)*@flags: futex flags (FLAGS_SHARED, FLAGS_CLOCKRT, etc |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |