Re: [PATCH 2.5.69.bk9] Fix reference counts for pages (take 1) [was RE: condvar wakeups]
Saurabh Desai <[email protected]>
| Newsgroups | gmane.comp.lib.phil |
|---|---|
| Message-ID | <[email protected]> |
"Perez-Gonzalez, Inaky" wrote:
> @@ -242,11 +248,13 @@
> if (this->page == page1 && this->offset == offset1) {
> list_del_init(i);
> __detach_vcache(&this->vcache);
> + unpin_page(this->page);
Inaky, In the futex_requeue(), the unpin_page(this->page) should go in
the "else" part. Because for the "if" part, where it wakes up the
waiter,
this->page==page1 and at the end it unpins page1 anyway. So, it will
unpin
twice the same page. This unpin is needed for the requeue part before it
pins page2.
- Saurabh