Messages in this thread | | | Date | Mon, 09 Mar 2009 11:04:36 -0700 | From | Darren Hart <> | Subject | Re: [TIP][RFC 2/7] futex: futex_top_waiter() |
| |
Thomas Gleixner wrote: > On Mon, 2 Mar 2009, Darren Hart wrote: > >> From: Darren Hart <dvhltc@us.ibm.com> >> >> Improve legibility by wrapping finding the top waiter in a function. This >> will be used by the follow-on patches for enabling requeue pi. >> +static struct futex_q *futex_top_waiter(struct futex_hash_bucket *hb, >> + union futex_key *key) > > Can we just have *head as argument instead of *hb ? > >> +{ >> + struct plist_head *head; >> + struct futex_q *this; >> + struct futex_q *top_waiter = NULL; > > struct futex_q *this; > >> + head = &hb->chain; >> + plist_for_each_entry(this, head, list) { >> + if (match_futex(&this->key, key)) { > return this; > >> + top_waiter = this; >> + break; >> + } >> + } >> + return top_waiter; > > return NULL; > > Makes the function half the size.
I'd prefer to keep a futex_hash_bucket in the signature as a plist_head doesn't help describe what the function does. However, I believe I have addressed your concerns as to length with the following. Does this look acceptable? I'll be resending the entire V6 patch series soon.
/** * futex_top_waiter - return the highest priority waiter on a futex * @hb: the hash bucket the futex_q's reside in * @key: the futex key (to distinguish it from other futex futex_q's) * * Must be called with the hb lock held. **/ static struct futex_q *futex_top_waiter(struct futex_hash_bucket *hb, union futex_key *key) { struct futex_q *this;
plist_for_each_entry(this, &hb->chain, list) { if (match_futex(&this->key, key)) return this; } return NULL; }
-- Darren Hart IBM Linux Technology Center Real-Time Linux Team
| |