Subject: ipr: dlpar failed when adding an adapter back
From: Wen Xiong <wenxiong@linux.vnet.ibm.com>
Patch-mainline: 3.9-rc7
Git-commit: 9077a944bc3c8bea45a91dc2caa65e96ac4c5f87
References: bnc#809550

Reinitialize resource queue prior to freeing resource entries to ensure they
are not referenced. This fixes an issue with target_destoy accessing memory
after it was freed.

Signed-off-by: Wen Xiong <wenxiong@linux.vnet.ibm.com>
Acked-by: Brian King <brking@linux.vnet.ibm.com>
Acked-by: Torsten Duwe <duwe@suse.de>

---
 drivers/scsi/ipr.c |    1 +
 1 file changed, 1 insertion(+)

Index: b/drivers/scsi/ipr.c
===================================================================
--- a/drivers/scsi/ipr.c	2013-03-14 16:15:42.000000000 -0500
+++ b/drivers/scsi/ipr.c	2013-03-14 16:17:29.588023065 -0500
@@ -9706,6 +9706,7 @@ static void __ipr_remove(struct pci_dev 
 	spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags);
 	wait_event(ioa_cfg->reset_wait_q, !ioa_cfg->in_reset_reload);
 	flush_work_sync(&ioa_cfg->work_q);
+	INIT_LIST_HEAD(&ioa_cfg->used_res_q);
 	spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags);
 
 	spin_lock(&ipr_driver_lock);
