Re: pte_chain leak in rmap code (2.5.31)

From: Rik van Riel (riel@conectiva.com.br)
Date: Mon Aug 12 2002 - 09:21:16 EST


On Mon, 12 Aug 2002, Christian Ehrhardt wrote:

> Note the strange use of continue and break which both achieve the same!
> What was meant to happen (judging from rmap-13c) is that we break
> out of the for-Loop once SWAP_FAIL or SWAP_ERROR is returned from
> try_to_unmap_one. However, this doesn't happen and a subsequent call
> to pte_chain_free will use the wrong value for prev_pc.

Excellent hunting! Thank you!

Your fix should work too, although in my opinion it's a
little bit too subtle, so I've changed it into:

                                        case SWAP_FAIL:
                                        ret = SWAP_FAIL;
                                        goto give_up;
                                case SWAP_ERROR:
                                        ret = SWAP_ERROR;
                                        goto give_up;
                        }
                }
give_up:

This is going into 2.4-rmap and 2.5 right now.

thanks,

Rik

-- 
Bravely reimplemented by the knights who say "NIH".

http://www.surriel.com/ http://distro.conectiva.com/

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Aug 15 2002 - 22:00:28 EST