Skip to content
  • Konstantin Belousov's avatar
    Do not leak rv->psind in some specific situations. · c4be9169
    Konstantin Belousov authored
    Suppose that we have an object with a mapped superpage, and that all
    pages in the superpages are held (by some driver).  Additionally,
    suppose that the object is terminated, e.g. because the only process
    mapping it is exiting.  Then the reservation is broken, but the pages
    cannot be freed until later, when they are unheld.  In this situation,
    the reservation code cannot clean psind, since no pages are freed, and
    the page is freed and then reused with invalid psind.
    
    Clean psind on vm_reserv_break() to avoid the situation.
    
    Reported and tested by:	Slava Shwartsman
    Reviewed by:	markj
    Sponsored by:	Mellanox Technologies
    MFC after:	1 week
    Differential revision:	https://reviews.freebsd.org/D14335
    c4be9169