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);