summaryrefslogtreecommitdiff
path: root/kernel/dma.c
diff options
context:
space:
mode:
authorRoger Pau Monne <roger.pau@citrix.com>2014-02-04 10:26:13 (GMT)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2014-02-07 17:58:46 (GMT)
commitef753411339eae46b9a3151906901f8bfd12b0f1 (patch)
treedbc12f7ba93c1d7b1be02202ecb100e2509257e8 /kernel/dma.c
parent2ed22e3c3bec5b92b9aba4afdef0cc5e6d859a11 (diff)
downloadlinux-ef753411339eae46b9a3151906901f8bfd12b0f1.tar.xz
xen-blkback: fix memory leaks
I've at least identified two possible memory leaks in blkback, both related to the shutdown path of a VBD: - blkback doesn't wait for any pending purge work to finish before cleaning the list of free_pages. The purge work will call put_free_pages and thus we might end up with pages being added to the free_pages list after we have emptied it. Fix this by making sure there's no pending purge work before exiting xen_blkif_schedule, and moving the free_page cleanup code to xen_blkif_free. - blkback doesn't wait for pending requests to end before cleaning persistent grants and the list of free_pages. Again this can add pages to the free_pages list or persistent grants to the persistent_gnts red-black tree. Fixed by moving the persistent grants and free_pages cleanup code to xen_blkif_free. Also, add some checks in xen_blkif_free to make sure we are cleaning everything. Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Reviewed-by: David Vrabel <david.vrabel@citrix.com> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> Tested-by: Matt Rushton <mrushton@amazon.com> Reviewed-by: Matt Rushton <mrushton@amazon.com> Cc: Matt Wilson <msw@amazon.com> Cc: Ian Campbell <Ian.Campbell@citrix.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'kernel/dma.c')
0 files changed, 0 insertions, 0 deletions