Module Name:    src
Committed By:   pooka
Date:           Sat Dec  5 22:34:43 UTC 2009

Modified Files:
        src/sys/arch/arm/xscale: pxa2x0_apm.c
        src/sys/arch/hp300/dev: mt.c
        src/sys/dev/gpib: mt.c
        src/sys/dev/scsipi: st.c
        src/sys/dev/sdmmc: sdmmc_io.c
        src/sys/kern: kern_synch.c
        src/sys/uvm: uvm_fault.c uvm_loan.c

Log Message:
Convert tsleep(&lbolt) to kpause().  Make ltsleep/mtsleep on lbolt
illegal.  I examined all places where lbolt is referenced to make
sure there were pointer aliases of it passed to tsleep, but put a
KASSERT in m/ltsleep() just to be sure.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/xscale/pxa2x0_apm.c
cvs rdiff -u -r1.49 -r1.50 src/sys/arch/hp300/dev/mt.c
cvs rdiff -u -r1.22 -r1.23 src/sys/dev/gpib/mt.c
cvs rdiff -u -r1.214 -r1.215 src/sys/dev/scsipi/st.c
cvs rdiff -u -r1.1 -r1.2 src/sys/dev/sdmmc/sdmmc_io.c
cvs rdiff -u -r1.271 -r1.272 src/sys/kern/kern_synch.c
cvs rdiff -u -r1.127 -r1.128 src/sys/uvm/uvm_fault.c
cvs rdiff -u -r1.73 -r1.74 src/sys/uvm/uvm_loan.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/xscale/pxa2x0_apm.c
diff -u src/sys/arch/arm/xscale/pxa2x0_apm.c:1.1 src/sys/arch/arm/xscale/pxa2x0_apm.c:1.2
--- src/sys/arch/arm/xscale/pxa2x0_apm.c:1.1	Sat Dec  6 22:10:41 2008
+++ src/sys/arch/arm/xscale/pxa2x0_apm.c	Sat Dec  5 22:34:43 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: pxa2x0_apm.c,v 1.1 2008/12/06 22:10:41 ober Exp $	*/
+/*	$NetBSD: pxa2x0_apm.c,v 1.2 2009/12/05 22:34:43 pooka Exp $	*/
 /*	$OpenBSD: pxa2x0_apm.c,v 1.28 2007/03/29 18:42:38 uwe Exp $	*/
 
 /*-
@@ -443,7 +443,7 @@
 		apm_battlow = apm_suspends = apm_userstandbys = 0;
 
 		APM_UNLOCK(sc);
-		tsleep(&lbolt, PWAIT, "apmev", 0);
+		kpause("apmev", false, hz, NULL);
 	}
 }
 

Index: src/sys/arch/hp300/dev/mt.c
diff -u src/sys/arch/hp300/dev/mt.c:1.49 src/sys/arch/hp300/dev/mt.c:1.50
--- src/sys/arch/hp300/dev/mt.c:1.49	Tue May 26 06:38:26 2009
+++ src/sys/arch/hp300/dev/mt.c	Sat Dec  5 22:34:43 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: mt.c,v 1.49 2009/05/26 06:38:26 he Exp $	*/
+/*	$NetBSD: mt.c,v 1.50 2009/12/05 22:34:43 pooka Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc.
@@ -60,7 +60,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mt.c,v 1.49 2009/05/26 06:38:26 he Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mt.c,v 1.50 2009/12/05 22:34:43 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -333,8 +333,8 @@
 			goto errout;
 		if (!(sc->sc_flags & MTF_REW))
 			break;
-		if (tsleep((void *) &lbolt, PCATCH | (PZERO + 1),
-		    "mt", 0) != 0) {
+		error = kpause("mt", true, hz, NULL);
+		if (error != 0 && error != EWOULDBLOCK) {
 			error = EINTR;
 			goto errout;
 		}

Index: src/sys/dev/gpib/mt.c
diff -u src/sys/dev/gpib/mt.c:1.22 src/sys/dev/gpib/mt.c:1.23
--- src/sys/dev/gpib/mt.c:1.22	Sat Sep 12 18:44:36 2009
+++ src/sys/dev/gpib/mt.c	Sat Dec  5 22:34:43 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: mt.c,v 1.22 2009/09/12 18:44:36 tsutsui Exp $ */
+/*	$NetBSD: mt.c,v 1.23 2009/12/05 22:34:43 pooka Exp $ */
 
 /*-
  * Copyright (c) 1996-2003 The NetBSD Foundation, Inc.
@@ -114,7 +114,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mt.c,v 1.22 2009/09/12 18:44:36 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mt.c,v 1.23 2009/12/05 22:34:43 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -387,8 +387,8 @@
 			goto errout;
 		if (!(sc->sc_flags & MTF_REW))
 			break;
-		if (tsleep((void *) &lbolt, PCATCH | (PZERO + 1),
-		    "mt", 0) != 0) {
+		error = kpause("mt", true, hz, NULL);
+		if (error != 0 && error != EWOULDBLOCK) {
 			error = EINTR;
 			goto errout;
 		}

Index: src/sys/dev/scsipi/st.c
diff -u src/sys/dev/scsipi/st.c:1.214 src/sys/dev/scsipi/st.c:1.215
--- src/sys/dev/scsipi/st.c:1.214	Mon Nov 23 02:13:47 2009
+++ src/sys/dev/scsipi/st.c	Sat Dec  5 22:34:43 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: st.c,v 1.214 2009/11/23 02:13:47 rmind Exp $ */
+/*	$NetBSD: st.c,v 1.215 2009/12/05 22:34:43 pooka Exp $ */
 
 /*-
  * Copyright (c) 1998, 2004 The NetBSD Foundation, Inc.
@@ -50,7 +50,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: st.c,v 1.214 2009/11/23 02:13:47 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: st.c,v 1.215 2009/12/05 22:34:43 pooka Exp $");
 
 #include "opt_scsi.h"
 
@@ -646,10 +646,10 @@
 		oflags = periph->periph_flags;
 		periph->periph_flags |= PERIPH_OPEN;
 
-		slpintr = tsleep(&lbolt, PUSER|PCATCH, "stload", 0);
+		slpintr = kpause("stload", true, hz, NULL);
 
 		periph->periph_flags = oflags;	/* restore flags */
-		if (slpintr) {
+		if (slpintr != 0 && slpintr != EWOULDBLOCK) {
 			goto bad;
 		}
 	}

Index: src/sys/dev/sdmmc/sdmmc_io.c
diff -u src/sys/dev/sdmmc/sdmmc_io.c:1.1 src/sys/dev/sdmmc/sdmmc_io.c:1.2
--- src/sys/dev/sdmmc/sdmmc_io.c:1.1	Tue Apr 21 03:00:30 2009
+++ src/sys/dev/sdmmc/sdmmc_io.c	Sat Dec  5 22:34:43 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: sdmmc_io.c,v 1.1 2009/04/21 03:00:30 nonaka Exp $	*/
+/*	$NetBSD: sdmmc_io.c,v 1.2 2009/12/05 22:34:43 pooka Exp $	*/
 /*	$OpenBSD: sdmmc_io.c,v 1.10 2007/09/17 01:33:33 krw Exp $	*/
 
 /*
@@ -20,7 +20,7 @@
 /* Routines for SD I/O cards. */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sdmmc_io.c,v 1.1 2009/04/21 03:00:30 nonaka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sdmmc_io.c,v 1.2 2009/12/05 22:34:43 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -250,7 +250,7 @@
 	
 	retry = 5;
 	while (!sdmmc_io_function_ready(sf) && retry-- > 0)
-		tsleep(&lbolt, PPAUSE, "pause", 0);
+		kpause("pause", false, hz, NULL);
 	return (retry >= 0) ? 0 : ETIMEDOUT;
 }
 

Index: src/sys/kern/kern_synch.c
diff -u src/sys/kern/kern_synch.c:1.271 src/sys/kern/kern_synch.c:1.272
--- src/sys/kern/kern_synch.c:1.271	Wed Oct 21 21:12:06 2009
+++ src/sys/kern/kern_synch.c	Sat Dec  5 22:34:43 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_synch.c,v 1.271 2009/10/21 21:12:06 rmind Exp $	*/
+/*	$NetBSD: kern_synch.c,v 1.272 2009/12/05 22:34:43 pooka Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2000, 2004, 2006, 2007, 2008, 2009
@@ -69,7 +69,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_synch.c,v 1.271 2009/10/21 21:12:06 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_synch.c,v 1.272 2009/12/05 22:34:43 pooka Exp $");
 
 #include "opt_kstack.h"
 #include "opt_perfctrs.h"
@@ -188,6 +188,7 @@
 	int error;
 
 	KASSERT((l->l_pflag & LP_INTR) == 0);
+	KASSERT(ident != &lbolt);
 
 	if (sleepq_dontsleep(l)) {
 		(void)sleepq_abort(NULL, 0);
@@ -224,6 +225,7 @@
 	int error;
 
 	KASSERT((l->l_pflag & LP_INTR) == 0);
+	KASSERT(ident != &lbolt);
 
 	if (sleepq_dontsleep(l)) {
 		(void)sleepq_abort(mtx, (priority & PNORELOCK) != 0);

Index: src/sys/uvm/uvm_fault.c
diff -u src/sys/uvm/uvm_fault.c:1.127 src/sys/uvm/uvm_fault.c:1.128
--- src/sys/uvm/uvm_fault.c:1.127	Sun Nov  1 11:16:32 2009
+++ src/sys/uvm/uvm_fault.c	Sat Dec  5 22:34:43 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_fault.c,v 1.127 2009/11/01 11:16:32 uebayasi Exp $	*/
+/*	$NetBSD: uvm_fault.c,v 1.128 2009/12/05 22:34:43 pooka Exp $	*/
 
 /*
  *
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_fault.c,v 1.127 2009/11/01 11:16:32 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_fault.c,v 1.128 2009/12/05 22:34:43 pooka Exp $");
 
 #include "opt_uvmhist.h"
 
@@ -1215,7 +1215,7 @@
 		goto ReFault;
 
 	case EAGAIN:
-		tsleep(&lbolt, PVM, "fltagain1", 0);
+		kpause("fltagain1", false, hz/2, NULL);
 		goto ReFault;
 
 	default:
@@ -1515,7 +1515,7 @@
 			if (error == EAGAIN) {
 				UVMHIST_LOG(maphist,
 				    "  pgo_get says TRY AGAIN!",0,0,0,0);
-				tsleep(&lbolt, PVM, "fltagain2", 0);
+				kpause("fltagain2", false, hz/2, NULL);
 				goto ReFault;
 			}
 

Index: src/sys/uvm/uvm_loan.c
diff -u src/sys/uvm/uvm_loan.c:1.73 src/sys/uvm/uvm_loan.c:1.74
--- src/sys/uvm/uvm_loan.c:1.73	Wed Dec  3 14:46:24 2008
+++ src/sys/uvm/uvm_loan.c	Sat Dec  5 22:34:43 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_loan.c,v 1.73 2008/12/03 14:46:24 pooka Exp $	*/
+/*	$NetBSD: uvm_loan.c,v 1.74 2009/12/05 22:34:43 pooka Exp $	*/
 
 /*
  *
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_loan.c,v 1.73 2008/12/03 14:46:24 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_loan.c,v 1.74 2009/12/05 22:34:43 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -403,7 +403,7 @@
 
 		/* "try again"?   sleep a bit and retry ... */
 		if (error == EAGAIN) {
-			tsleep(&lbolt, PVM, "loanagain", 0);
+			kpause("loanagain", false, hz/2, NULL);
 			return (0);
 		}
 
@@ -535,7 +535,7 @@
 		    pgoff + (ndone << PAGE_SHIFT), pgpp, &npages, 0,
 		    VM_PROT_READ, 0, PGO_SYNCIO);
 		if (error == EAGAIN) {
-			tsleep(&lbolt, PVM, "loanuopg", 0);
+			kpause("loanuopg", false, hz/2, NULL);
 			continue;
 		}
 		if (error)
@@ -675,7 +675,7 @@
 
 		if (error) {
 			if (error == EAGAIN) {
-				tsleep(&lbolt, PVM, "fltagain2", 0);
+				kpause("fltagain2", false, hz/2, NULL);
 				return (0);
 			}
 			return (-1);

Reply via email to