| From 80ccbc8e00f7001d79dd503c2781487906b98611 Mon Sep 17 00:00:00 2001 |
| From: Joern Engel <joern@logfs.org> |
| Date: Tue, 25 Oct 2011 22:08:43 -0700 |
| Subject: target: Fix incorrect se_cmd assignment in core_tmr_drain_tmr_list |
| |
| From: Joern Engel <joern@logfs.org> |
| |
| commit 80ccbc8e00f7001d79dd503c2781487906b98611 upstream. |
| |
| This patch fixes a bug in core_tmr_drain_tmr_list() where drain_tmr_list |
| was using the wrong se_tmr_req for cmd assignment due to a typo during the |
| LUN_RESET re-org. This was resulting in general protection faults while |
| using the leftover bogus *tmr_p pointer from list_for_each_entry_safe(). |
| |
| Signed-off-by: Joern Engel <joern@logfs.org> |
| Cc: Joern Engel <joern@logfs.org> |
| Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/target/target_core_tmr.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/target/target_core_tmr.c |
| +++ b/drivers/target/target_core_tmr.c |
| @@ -155,7 +155,7 @@ static void core_tmr_drain_tmr_list( |
| while (!list_empty(&drain_tmr_list)) { |
| tmr = list_entry(drain_tmr_list.next, struct se_tmr_req, tmr_list); |
| list_del(&tmr->tmr_list); |
| - cmd = tmr_p->task_cmd; |
| + cmd = tmr->task_cmd; |
| |
| pr_debug("LUN_RESET: %s releasing TMR %p Function: 0x%02x," |
| " Response: 0x%02x, t_state: %d\n", |