s390/pci: fix use after free in dma_init
authorSebastian Ott <sebott@linux.vnet.ibm.com>
Fri, 15 Apr 2016 07:41:35 +0000 (09:41 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 21 Apr 2016 07:50:09 +0000 (09:50 +0200)
commitdba599091c191d209b1499511a524ad9657c0e5a
tree835e2a40008fcd17f7c3a18066c9c1de1d1a63c5
parent55f058e7574c3615dea4615573a19bdb258696c6
s390/pci: fix use after free in dma_init

After a failure during registration of the dma_table (because of the
function being in error state) we free its memory but don't reset the
associated pointer to zero.

When we then receive a notification from firmware (about the function
being in error state) we'll try to walk and free the dma_table again.

Fix this by resetting the dma_table pointer. In addition to that make
sure that we free the iommu_bitmap when appropriate.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Reviewed-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/pci/pci_dma.c