changeset 9977:17b7501a895e

6770105 race condition between scsi_watch_thread and scsi_watch_request_terminate can cause panic.
author Sriram Popuri <Sriram.Popuri@sun.com>
date Fri, 26 Jun 2009 02:36:13 -0700
parents a945dec9643d
children ce23a6a98c42
files usr/src/uts/common/io/scsi/impl/scsi_watch.c
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/io/scsi/impl/scsi_watch.c	Fri Jun 26 01:50:02 2009 -0700
+++ b/usr/src/uts/common/io/scsi/impl/scsi_watch.c	Fri Jun 26 02:36:13 2009 -0700
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -719,6 +719,7 @@
 			default:
 				if (swr->swr_timeout <= 0 && !swr->swr_busy) {
 					swr->swr_busy = 1;
+					swr->swr_timeout = swr->swr_interval;
 
 					/*
 					 * submit the cmd and let the completion
@@ -751,7 +752,6 @@
 						mutex_exit(&cpr_mutex);
 					}
 					mutex_enter(&sw.sw_mutex);
-					swr->swr_timeout = swr->swr_interval;
 				}
 				break;
 			}