diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2009-02-16 21:19:08 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2009-02-16 21:19:08 +0000 |
commit | 2da99529039b177155c4f8b121a56af665bbc013 (patch) | |
tree | 164ac14d81166b8b640ca50ae2bfbd661def8e85 /sys | |
parent | 02ba6ef4276aced0ecad6ed5dc9b0a7e1cd1d4ad (diff) |
Extend the scsi_adapter minphys() callback to take a struct scsi_link *
as additional argument. This will allow intermediate layers between
scsi devices such as sd and scsi host adapters to take appropriate
action if necessary.
Diffstat (limited to 'sys')
82 files changed, 250 insertions, 279 deletions
diff --git a/sys/arch/hp300/dev/mb89352.c b/sys/arch/hp300/dev/mb89352.c index 53105a62fd0..298e55264d9 100644 --- a/sys/arch/hp300/dev/mb89352.c +++ b/sys/arch/hp300/dev/mb89352.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mb89352.c,v 1.16 2008/11/25 17:52:02 krw Exp $ */ +/* $OpenBSD: mb89352.c,v 1.17 2009/02/16 21:19:04 miod Exp $ */ /* $NetBSD: mb89352.c,v 1.5 2000/03/23 07:01:31 thorpej Exp $ */ /* NecBSD: mb89352.c,v 1.4 1998/03/14 07:31:20 kmatsuda Exp */ @@ -173,7 +173,7 @@ struct scsi_device spc_dev = { struct scsi_adapter spc_switch = { spc_scsi_cmd, - minphys, + scsi_minphys, NULL, NULL }; diff --git a/sys/arch/luna88k/dev/spc.c b/sys/arch/luna88k/dev/spc.c index 52b7cf5b752..c1c1350870f 100644 --- a/sys/arch/luna88k/dev/spc.c +++ b/sys/arch/luna88k/dev/spc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: spc.c,v 1.5 2008/06/26 05:42:11 ray Exp $ */ +/* $OpenBSD: spc.c,v 1.6 2009/02/16 21:19:05 miod Exp $ */ /* $NetBSD: spc.c,v 1.4 2003/07/05 19:00:17 tsutsui Exp $ */ /*- @@ -61,7 +61,7 @@ struct cfdriver spc_cd = { struct scsi_adapter spc_switch = { spc_scsi_cmd, - minphys, /* no max at this level; handled by DMA code */ + scsi_minphys, /* no max at this level; handled by DMA code */ NULL, NULL, }; diff --git a/sys/arch/mac68k/dev/esp.c b/sys/arch/mac68k/dev/esp.c index 9c3c934ba05..d61ddcc6cea 100644 --- a/sys/arch/mac68k/dev/esp.c +++ b/sys/arch/mac68k/dev/esp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: esp.c,v 1.27 2007/07/29 21:24:02 miod Exp $ */ +/* $OpenBSD: esp.c,v 1.28 2009/02/16 21:19:05 miod Exp $ */ /* $NetBSD: esp.c,v 1.17 1998/09/05 15:15:35 pk Exp $ */ /* @@ -110,7 +110,7 @@ struct cfattach esp_ca = { struct scsi_adapter esp_switch = { ncr53c9x_scsi_cmd, - minphys, /* no max at this level; handled by DMA code */ + scsi_minphys, /* no max at this level; handled by DMA code */ NULL, NULL, }; diff --git a/sys/arch/mac68k/dev/ncr5380.c b/sys/arch/mac68k/dev/ncr5380.c index 002cee9eefa..318b497a19e 100644 --- a/sys/arch/mac68k/dev/ncr5380.c +++ b/sys/arch/mac68k/dev/ncr5380.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ncr5380.c,v 1.34 2008/11/25 17:52:02 krw Exp $ */ +/* $OpenBSD: ncr5380.c,v 1.35 2009/02/16 21:19:05 miod Exp $ */ /* $NetBSD: ncr5380.c,v 1.38 1996/12/19 21:48:18 scottr Exp $ */ /* @@ -73,7 +73,7 @@ static volatile int main_running = 0; */ static u_char busy; -static void ncr5380_minphys(struct buf *bp); +static void ncr5380_minphys(struct buf *bp, struct scsi_link *sl); static int mac68k_ncr5380_scsi_cmd(struct scsi_xfer *xs); static void ncr5380_show_scsi_cmd(struct scsi_xfer *xs); @@ -397,11 +397,11 @@ mac68k_ncr5380_scsi_cmd(struct scsi_xfer *xs) } static void -ncr5380_minphys(struct buf *bp) +ncr5380_minphys(struct buf *bp, struct scsi_link *sl) { - if (bp->b_bcount > MIN_PHYS) - bp->b_bcount = MIN_PHYS; - minphys(bp); + if (bp->b_bcount > MIN_PHYS) + bp->b_bcount = MIN_PHYS; + minphys(bp); } #undef MIN_PHYS diff --git a/sys/arch/mac68k/dev/sbc.c b/sys/arch/mac68k/dev/sbc.c index 2aa2df17931..097843034b1 100644 --- a/sys/arch/mac68k/dev/sbc.c +++ b/sys/arch/mac68k/dev/sbc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sbc.c,v 1.17 2007/12/29 03:04:18 dlg Exp $ */ +/* $OpenBSD: sbc.c,v 1.18 2009/02/16 21:19:05 miod Exp $ */ /* $NetBSD: sbc.c,v 1.24 1997/04/18 17:38:08 scottr Exp $ */ /* @@ -76,7 +76,7 @@ int sbc_debug = 0 /* | SBC_DB_INTR | SBC_DB_DMA */; int sbc_link_flags = 0 /* | SDEV_DB2 */; int sbc_options = 0 /* | SBC_PDMA */; -static void sbc_minphys(struct buf *bp); +static void sbc_minphys(struct buf *bp, struct scsi_link *sl); struct scsi_adapter sbc_ops = { ncr5380_scsi_cmd, /* scsi_cmd() */ @@ -102,11 +102,11 @@ static int sbc_ready(struct ncr5380_softc *); static void sbc_wait_not_req(struct ncr5380_softc *); static void -sbc_minphys(struct buf *bp) +sbc_minphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > MAX_DMA_LEN) bp->b_bcount = MAX_DMA_LEN; - return (minphys(bp)); + minphys(bp); } diff --git a/sys/arch/macppc/dev/esp.c b/sys/arch/macppc/dev/esp.c index 965e453f2ce..f236f7d2790 100644 --- a/sys/arch/macppc/dev/esp.c +++ b/sys/arch/macppc/dev/esp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: esp.c,v 1.4 2008/06/26 05:42:12 ray Exp $ */ +/* $OpenBSD: esp.c,v 1.5 2009/02/16 21:19:06 miod Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -137,7 +137,7 @@ struct cfattach esp_ca = { struct scsi_adapter esp_switch = { /* no max at this level; handled by DMA code */ - ncr53c9x_scsi_cmd, minphys, NULL, NULL, + ncr53c9x_scsi_cmd, scsi_minphys, NULL, NULL, }; struct scsi_device esp_dev = { diff --git a/sys/arch/macppc/dev/mesh.c b/sys/arch/macppc/dev/mesh.c index 02b8a649909..7e6a1a76b5d 100644 --- a/sys/arch/macppc/dev/mesh.c +++ b/sys/arch/macppc/dev/mesh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mesh.c,v 1.21 2008/11/25 17:52:02 krw Exp $ */ +/* $OpenBSD: mesh.c,v 1.22 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: mesh.c,v 1.1 1999/02/19 13:06:03 tsubai Exp $ */ /*- @@ -241,7 +241,7 @@ void mesh_sched(struct mesh_softc *); int mesh_poll(struct scsi_xfer *); void mesh_done(struct mesh_softc *, struct mesh_scb *); void mesh_timeout(void *); -void mesh_minphys(struct buf *); +void mesh_minphys(struct buf *, struct scsi_link *); struct cfattach mesh_ca = { sizeof(struct mesh_softc), mesh_match, mesh_attach @@ -1185,7 +1185,7 @@ mesh_timeout(void *arg) } void -mesh_minphys(struct buf *bp) +mesh_minphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > 64*1024) bp->b_bcount = 64*1024; diff --git a/sys/arch/mvme68k/dev/sbic.c b/sys/arch/mvme68k/dev/sbic.c index 624f48722ce..b6a5dc9c3da 100644 --- a/sys/arch/mvme68k/dev/sbic.c +++ b/sys/arch/mvme68k/dev/sbic.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sbic.c,v 1.21 2008/11/25 17:52:02 krw Exp $ */ +/* $OpenBSD: sbic.c,v 1.22 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: sbic.c,v 1.2 1996/04/23 16:32:54 chuck Exp $ */ /* @@ -151,21 +151,6 @@ void sbictimeout(struct sbic_softc *dev); #define QPRINTF(a) /* */ #endif - -/* - * default minphys routine for sbic based controllers - */ -void -sbic_minphys(bp) - struct buf *bp; -{ - /* - * No max transfer at this level. - */ - minphys(bp); -} - - /* * Save DMA pointers. Take into account partial transfer. Shut down DMA. */ diff --git a/sys/arch/mvme68k/dev/sbicvar.h b/sys/arch/mvme68k/dev/sbicvar.h index 44875db2c43..3c6ae68de1a 100644 --- a/sys/arch/mvme68k/dev/sbicvar.h +++ b/sys/arch/mvme68k/dev/sbicvar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sbicvar.h,v 1.7 2004/07/02 17:57:29 miod Exp $ */ +/* $OpenBSD: sbicvar.h,v 1.8 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 1990 The Regents of the University of California. @@ -196,7 +196,6 @@ struct sbic_softc { struct buf; struct scsi_xfer; -void sbic_minphys(struct buf *bp); int sbic_scsicmd(struct scsi_xfer *); #endif /* _SBICVAR_H_ */ diff --git a/sys/arch/mvme68k/dev/ssh.c b/sys/arch/mvme68k/dev/ssh.c index 55161447cb1..2ee25ce6200 100644 --- a/sys/arch/mvme68k/dev/ssh.c +++ b/sys/arch/mvme68k/dev/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.20 2008/11/25 17:52:02 krw Exp $ */ +/* $OpenBSD: ssh.c,v 1.21 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 1994 Michael L. Hitch @@ -126,21 +126,6 @@ int ssh_trix; #define SSH_TRACE(a,b,c,d) #endif - -/* - * default minphys routine for ssh based controllers - */ -void -ssh_minphys(bp) -struct buf *bp; -{ - - /* - * No max transfer at this level. - */ - minphys(bp); -} - /* * used by specific ssh controller * diff --git a/sys/arch/mvme68k/dev/sshdma.c b/sys/arch/mvme68k/dev/sshdma.c index e1dc51c78d1..487aa1ee74e 100644 --- a/sys/arch/mvme68k/dev/sshdma.c +++ b/sys/arch/mvme68k/dev/sshdma.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshdma.c,v 1.14 2006/11/28 23:59:45 dlg Exp $ */ +/* $OpenBSD: sshdma.c,v 1.15 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 1995 Theo de Raadt @@ -65,7 +65,7 @@ extern void sshinitialize(struct ssh_softc *); struct scsi_adapter afsc_scsiswitch = { ssh_scsicmd, - ssh_minphys, + scsi_minphys, 0, /* no lun support */ 0, /* no lun support */ }; diff --git a/sys/arch/mvme68k/dev/sshvar.h b/sys/arch/mvme68k/dev/sshvar.h index 9160fc30d55..dc6696c741f 100644 --- a/sys/arch/mvme68k/dev/sshvar.h +++ b/sys/arch/mvme68k/dev/sshvar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sshvar.h,v 1.5 2004/07/30 22:29:45 miod Exp $ */ +/* $OpenBSD: sshvar.h,v 1.6 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 1995 Theo de Raadt @@ -192,7 +192,6 @@ struct ssh_softc { #define STS_INTERMED 0x10 /* Intermediate status sent */ #define STS_EXT 0x80 /* Extended status valid */ -void ssh_minphys(struct buf *bp); int ssh_scsicmd(struct scsi_xfer *); #endif /* _SSHVAR_H */ diff --git a/sys/arch/mvme68k/dev/vs.c b/sys/arch/mvme68k/dev/vs.c index f97f42753dc..042d96f4819 100644 --- a/sys/arch/mvme68k/dev/vs.c +++ b/sys/arch/mvme68k/dev/vs.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vs.c,v 1.26 2008/11/25 17:52:02 krw Exp $ */ +/* $OpenBSD: vs.c,v 1.27 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 1999 Steve Murphree, Jr. @@ -125,19 +125,6 @@ szero(src, cnt) } } -/* - * default minphys routine for MVME328 based controllers - */ -void -vs_minphys(bp) - struct buf *bp; -{ - /* - * No max transfer at this level. - */ - minphys(bp); -} - int do_vspoll(sc, to, canreset) struct vs_softc *sc; diff --git a/sys/arch/mvme68k/dev/vsdma.c b/sys/arch/mvme68k/dev/vsdma.c index 808d09f92a7..bafcef817a2 100644 --- a/sys/arch/mvme68k/dev/vsdma.c +++ b/sys/arch/mvme68k/dev/vsdma.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vsdma.c,v 1.12 2006/11/28 23:59:45 dlg Exp $ */ +/* $OpenBSD: vsdma.c,v 1.13 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 1999 Steve Murphree, Jr. * All rights reserved. @@ -62,7 +62,7 @@ int vs_eintr(void *); struct scsi_adapter vs_scsiswitch = { vs_scsicmd, - vs_minphys, + scsi_minphys, 0, /* no lun support */ 0, /* no lun support */ }; diff --git a/sys/arch/mvme68k/dev/vsvar.h b/sys/arch/mvme68k/dev/vsvar.h index a0f8b44c1c3..6b0f3afcb7b 100644 --- a/sys/arch/mvme68k/dev/vsvar.h +++ b/sys/arch/mvme68k/dev/vsvar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: vsvar.h,v 1.6 2004/07/30 22:29:45 miod Exp $ */ +/* $OpenBSD: vsvar.h,v 1.7 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 1999 Steve Murphree, Jr. * Copyright (c) 1990 The Regents of the University of California. @@ -120,7 +120,6 @@ struct vs_softc { #define WQO_RFWQ 0x0020 /* report frozen work queue bit */ #define WQO_INIT 0x8000 /* work queue init bit */ -void vs_minphys(struct buf *bp); int vs_scsicmd(struct scsi_xfer *); #endif /* _M328VAR_H */ diff --git a/sys/arch/mvme68k/dev/wdsc.c b/sys/arch/mvme68k/dev/wdsc.c index 3771f529d64..296447b434f 100644 --- a/sys/arch/mvme68k/dev/wdsc.c +++ b/sys/arch/mvme68k/dev/wdsc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wdsc.c,v 1.15 2008/07/30 18:08:03 miod Exp $ */ +/* $OpenBSD: wdsc.c,v 1.16 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 1996 Steve Woodford @@ -59,7 +59,7 @@ extern int sbicintr(struct sbic_softc *); struct scsi_adapter wdsc_scsiswitch = { sbic_scsicmd, - sbic_minphys, + scsi_minphys, 0, /* no lun support */ 0, /* no lun support */ }; diff --git a/sys/arch/mvme88k/dev/vs.c b/sys/arch/mvme88k/dev/vs.c index 1019c17ae51..27e1484e46f 100644 --- a/sys/arch/mvme88k/dev/vs.c +++ b/sys/arch/mvme88k/dev/vs.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vs.c,v 1.75 2009/02/08 13:28:01 miod Exp $ */ +/* $OpenBSD: vs.c,v 1.76 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 2004, 2009, Miodrag Vallat. @@ -64,7 +64,7 @@ int vsmatch(struct device *, void *, void *); void vsattach(struct device *, struct device *, void *); -void vs_minphys(struct buf *); +void vs_minphys(struct buf *, struct scsi_link *); int vs_scsicmd(struct scsi_xfer *); struct scsi_adapter vs_scsiswitch = { @@ -254,7 +254,7 @@ vsattach(struct device *parent, struct device *self, void *args) } void -vs_minphys(struct buf *bp) +vs_minphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > ptoa(MAX_SG_ELEMENTS)) bp->b_bcount = ptoa(MAX_SG_ELEMENTS); diff --git a/sys/arch/mvme88k/dev/vsbic.c b/sys/arch/mvme88k/dev/vsbic.c index 898af91bf33..afd2447275d 100644 --- a/sys/arch/mvme88k/dev/vsbic.c +++ b/sys/arch/mvme88k/dev/vsbic.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vsbic.c,v 1.2 2009/02/15 15:44:32 miod Exp $ */ +/* $OpenBSD: vsbic.c,v 1.3 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 2008, 2009 Miodrag Vallat. @@ -30,7 +30,7 @@ #include <sys/param.h> #include <sys/systm.h> #include <sys/device.h> -#include <sys/buf.h> /* minphys */ +#include <sys/buf.h> #include <sys/malloc.h> #include <uvm/uvm_extern.h> @@ -426,7 +426,7 @@ struct cfdriver vsbic_cd = { struct scsi_adapter vsbic_swtch = { vsbic_scsicmd, - minphys + scsi_minphys }; struct scsi_device vsbic_scsidev = { diff --git a/sys/arch/sparc/dev/esp.c b/sys/arch/sparc/dev/esp.c index bb46760890a..9d15d968b3b 100644 --- a/sys/arch/sparc/dev/esp.c +++ b/sys/arch/sparc/dev/esp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: esp.c,v 1.25 2007/10/01 16:11:19 krw Exp $ */ +/* $OpenBSD: esp.c,v 1.26 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: esp.c,v 1.69 1997/08/27 11:24:18 bouyer Exp $ */ /* @@ -134,7 +134,7 @@ struct cfattach esp_ca = { struct scsi_adapter esp_switch = { ncr53c9x_scsi_cmd, - minphys, /* no max at this level; handled by DMA code */ + scsi_minphys, /* no max at this level; handled by DMA code */ NULL, NULL, }; diff --git a/sys/arch/sparc/dev/si.c b/sys/arch/sparc/dev/si.c index 9aaebcc6607..60f5073766b 100644 --- a/sys/arch/sparc/dev/si.c +++ b/sys/arch/sparc/dev/si.c @@ -1,4 +1,4 @@ -/* $OpenBSD: si.c,v 1.31 2009/01/04 16:51:44 miod Exp $ */ +/* $OpenBSD: si.c,v 1.32 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: si.c,v 1.38 1997/08/27 11:24:20 bouyer Exp $ */ /*- @@ -183,7 +183,7 @@ static int si_match(struct device *, void *, void *); static void si_attach(struct device *, struct device *, void *); static int si_intr(void *); static void si_reset_adapter(struct ncr5380_softc *); -static void si_minphys(struct buf *); +static void si_minphys(struct buf *, struct scsi_link *); void si_dma_alloc(struct ncr5380_softc *); void si_dma_free(struct ncr5380_softc *); @@ -484,7 +484,7 @@ si_attach(parent, self, args) } static void -si_minphys(struct buf *bp) +si_minphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > MAX_DMA_LEN) { #ifdef DEBUG @@ -497,7 +497,7 @@ si_minphys(struct buf *bp) #endif bp->b_bcount = MAX_DMA_LEN; } - return (minphys(bp)); + minphys(bp); } #define CSR_WANT (SI_CSR_SBC_IP | SI_CSR_DMA_IP | \ diff --git a/sys/arch/sparc64/dev/vdsk.c b/sys/arch/sparc64/dev/vdsk.c index bc27e9e9f4a..a3d9ec890c7 100644 --- a/sys/arch/sparc64/dev/vdsk.c +++ b/sys/arch/sparc64/dev/vdsk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vdsk.c,v 1.8 2009/01/17 22:18:14 kettenis Exp $ */ +/* $OpenBSD: vdsk.c,v 1.9 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 2009 Mark Kettenis * @@ -337,7 +337,7 @@ vdsk_attach(struct device *parent, struct device *self, void *aux) return; sc->sc_switch.scsi_cmd = vdsk_scsi_cmd; - sc->sc_switch.scsi_minphys = minphys; + sc->sc_switch.scsi_minphys = scsi_minphys; sc->sc_switch.dev_probe = vdsk_dev_probe; sc->sc_switch.dev_free = vdsk_dev_free; sc->sc_switch.ioctl = vdsk_ioctl; diff --git a/sys/arch/vax/dec/sii.c b/sys/arch/vax/dec/sii.c index 1883e634827..bbf7282712f 100644 --- a/sys/arch/vax/dec/sii.c +++ b/sys/arch/vax/dec/sii.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sii.c,v 1.4 2008/11/25 17:52:02 krw Exp $ */ +/* $OpenBSD: sii.c,v 1.5 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: sii.c,v 1.42 2000/06/02 20:20:29 mhitch Exp $ */ /* * Copyright (c) 2008 Miodrag Vallat. @@ -164,7 +164,7 @@ void sii_DumpLog(void); struct scsi_adapter sii_scsiswitch = { sii_scsi_cmd, - minphys, + scsi_minphys, NULL, NULL, NULL diff --git a/sys/arch/vax/vsa/asc_vsbus.c b/sys/arch/vax/vsa/asc_vsbus.c index fd7f92341f2..f331df902a6 100644 --- a/sys/arch/vax/vsa/asc_vsbus.c +++ b/sys/arch/vax/vsa/asc_vsbus.c @@ -1,4 +1,4 @@ -/* $OpenBSD: asc_vsbus.c,v 1.9 2008/06/26 05:42:14 ray Exp $ */ +/* $OpenBSD: asc_vsbus.c,v 1.10 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: asc_vsbus.c,v 1.22 2001/02/04 20:36:32 ragge Exp $ */ /*- @@ -107,7 +107,7 @@ struct cfdriver asc_cd = { struct scsi_adapter asc_vsbus_ops = { ncr53c9x_scsi_cmd, - minphys, + scsi_minphys, NULL, NULL }; diff --git a/sys/arch/vax/vsa/ncr.c b/sys/arch/vax/vsa/ncr.c index b7011f6cb20..ebdabaaad3c 100644 --- a/sys/arch/vax/vsa/ncr.c +++ b/sys/arch/vax/vsa/ncr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ncr.c,v 1.24 2008/07/30 18:08:04 miod Exp $ */ +/* $OpenBSD: ncr.c,v 1.25 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: ncr.c,v 1.32 2000/06/25 16:00:43 ragge Exp $ */ /*- @@ -104,7 +104,7 @@ static int ncr_dmasize; static int si_match(struct device *, void *, void *); static void si_attach(struct device *, struct device *, void *); -static void si_minphys(struct buf *); +static void si_minphys(struct buf *, struct scsi_link *); static void si_dma_alloc(struct ncr5380_softc *); static void si_dma_free(struct ncr5380_softc *); @@ -271,11 +271,11 @@ si_attach(parent, self, aux) * Adjust the max transfer size. The DMA buffer is only 16k on VS2000. */ static void -si_minphys(bp) - struct buf *bp; +si_minphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > ncr_dmasize) bp->b_bcount = ncr_dmasize; + minphys(bp); } void diff --git a/sys/dev/ata/atascsi.c b/sys/dev/ata/atascsi.c index ffa5ea551f5..b82242f0d53 100644 --- a/sys/dev/ata/atascsi.c +++ b/sys/dev/ata/atascsi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: atascsi.c,v 1.63 2008/09/25 11:00:48 krw Exp $ */ +/* $OpenBSD: atascsi.c,v 1.64 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 2007 David Gwynne <dlg@openbsd.org> @@ -56,7 +56,7 @@ void atascsi_free(struct scsi_link *); /* template */ struct scsi_adapter atascsi_switch = { atascsi_cmd, /* scsi_cmd */ - minphys, /* scsi_minphys */ + scsi_minphys, /* scsi_minphys */ atascsi_probe, /* dev_probe */ atascsi_free, /* dev_free */ atascsi_ioctl /* ioctl */ @@ -107,7 +107,8 @@ atascsi_attach(struct device *self, struct atascsi_attach_args *aaa) /* copy from template and modify for ourselves */ as->as_switch = atascsi_switch; - as->as_switch.scsi_minphys = aaa->aaa_minphys; + if (aaa->aaa_minphys != NULL) + as->as_switch.scsi_minphys = aaa->aaa_minphys; /* fill in our scsi_link */ as->as_link.device = &atascsi_device; diff --git a/sys/dev/ata/atascsi.h b/sys/dev/ata/atascsi.h index 551e8c29060..c53d4c22c4e 100644 --- a/sys/dev/ata/atascsi.h +++ b/sys/dev/ata/atascsi.h @@ -1,4 +1,4 @@ -/* $OpenBSD: atascsi.h,v 1.32 2008/01/01 03:09:15 dlg Exp $ */ +/* $OpenBSD: atascsi.h,v 1.33 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 2007 David Gwynne <dlg@openbsd.org> @@ -17,6 +17,7 @@ */ struct atascsi; +struct scsi_link; /* * ATA commands @@ -319,7 +320,8 @@ struct atascsi_attach_args { void *aaa_cookie; struct atascsi_methods *aaa_methods; - void (*aaa_minphys)(struct buf *); + void (*aaa_minphys)(struct buf *, + struct scsi_link *); int aaa_nports; int aaa_ncmds; int aaa_capability; diff --git a/sys/dev/atapiscsi/atapiscsi.c b/sys/dev/atapiscsi/atapiscsi.c index 23f8d940a09..435feee5a67 100644 --- a/sys/dev/atapiscsi/atapiscsi.c +++ b/sys/dev/atapiscsi/atapiscsi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: atapiscsi.c,v 1.81 2008/11/25 17:52:02 krw Exp $ */ +/* $OpenBSD: atapiscsi.c,v 1.82 2009/02/16 21:19:06 miod Exp $ */ /* * This code is derived from code with the copyright below. @@ -164,7 +164,7 @@ struct atapiscsi_softc { int drive; }; -void wdc_atapi_minphys(struct buf *bp); +void wdc_atapi_minphys(struct buf *bp, struct scsi_link *sl); int wdc_atapi_ioctl(struct scsi_link *, u_long, caddr_t, int, struct proc *); int wdc_atapi_send_cmd(struct scsi_xfer *sc_xfer); @@ -433,9 +433,9 @@ wdc_atapi_send_cmd(sc_xfer) } void -wdc_atapi_minphys (struct buf *bp) +wdc_atapi_minphys (struct buf *bp, struct scsi_link *sl) { - if(bp->b_bcount > MAX_SIZE) + if (bp->b_bcount > MAX_SIZE) bp->b_bcount = MAX_SIZE; minphys(bp); } diff --git a/sys/dev/eisa/aha1742.c b/sys/dev/eisa/aha1742.c index 588d97b12d7..5a6ca5bf687 100644 --- a/sys/dev/eisa/aha1742.c +++ b/sys/dev/eisa/aha1742.c @@ -1,4 +1,4 @@ -/* $OpenBSD: aha1742.c,v 1.30 2009/01/21 21:53:59 grange Exp $ */ +/* $OpenBSD: aha1742.c,v 1.31 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: aha1742.c,v 1.61 1996/05/12 23:40:01 mycroft Exp $ */ /* @@ -289,7 +289,7 @@ struct ahb_ecb *ahb_get_ecb(struct ahb_softc *, int); struct ahb_ecb *ahb_ecb_phys_kv(struct ahb_softc *, physaddr); int ahb_find(bus_space_tag_t, bus_space_handle_t, struct ahb_softc *); void ahb_init(struct ahb_softc *); -void ahbminphys(struct buf *); +void ahbminphys(struct buf *, struct scsi_link *); int ahb_scsi_cmd(struct scsi_xfer *); void ahb_timeout(void *); void ahb_print_ecb(struct ahb_ecb *); @@ -929,10 +929,8 @@ ahb_init(sc) } void -ahbminphys(bp) - struct buf *bp; +ahbminphys(struct buf *bp, struct scsi_link *sl) { - if (bp->b_bcount > ((AHB_NSEG - 1) << PGSHIFT)) bp->b_bcount = ((AHB_NSEG - 1) << PGSHIFT); minphys(bp); diff --git a/sys/dev/i2o/ioprbs.c b/sys/dev/i2o/ioprbs.c index 6f539f79246..f82503668bb 100644 --- a/sys/dev/i2o/ioprbs.c +++ b/sys/dev/i2o/ioprbs.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ioprbs.c,v 1.15 2009/01/21 21:53:59 grange Exp $ */ +/* $OpenBSD: ioprbs.c,v 1.16 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 2001 Niklas Hallqvist @@ -91,7 +91,6 @@ #define DPRINTF(x) #endif -void ioprbsminphys(struct buf *); void ioprbs_adjqparam(struct device *, int); void ioprbs_attach(struct device *, struct device *, void *); void ioprbs_copy_internal_data(struct scsi_xfer *, u_int8_t *, @@ -122,7 +121,7 @@ struct cfattach ioprbs_ca = { }; struct scsi_adapter ioprbs_switch = { - ioprbs_scsi_cmd, ioprbsminphys, 0, 0, + ioprbs_scsi_cmd, scsi_minphys, 0, 0, }; struct scsi_device ioprbs_dev = { @@ -545,13 +544,6 @@ ioprbs_scsi_cmd(xs) } void -ioprbsminphys(bp) - struct buf *bp; -{ - minphys(bp); -} - -void ioprbs_intr(struct device *dv, struct iop_msg *im, void *reply) { struct i2o_rbs_reply *rb = reply; diff --git a/sys/dev/i2o/iopsp.c b/sys/dev/i2o/iopsp.c index 7a04159c933..3db66922fb6 100644 --- a/sys/dev/i2o/iopsp.c +++ b/sys/dev/i2o/iopsp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: iopsp.c,v 1.13 2008/06/26 05:42:15 ray Exp $ */ +/* $OpenBSD: iopsp.c,v 1.14 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD$ */ /*- @@ -72,7 +72,7 @@ struct cfattach iopsp_ca = { }; int iopsp_scsi_cmd(struct scsi_xfer *); -void iopspminphys(struct buf *bp); +void iopspminphys(struct buf *bp, struct scsi_link *sl); struct scsi_adapter iopsp_switch = { iopsp_scsi_cmd, iopspminphys, 0, 0, @@ -400,8 +400,7 @@ iopsp_rescan(struct iopsp_softc *sc) } void -iopspminphys(bp) - struct buf *bp; +iopspminphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > IOP_MAX_XFER) bp->b_bcount = IOP_MAX_XFER; diff --git a/sys/dev/ic/aac.c b/sys/dev/ic/aac.c index 5817365a3a5..1c55359cd63 100644 --- a/sys/dev/ic/aac.c +++ b/sys/dev/ic/aac.c @@ -1,4 +1,4 @@ -/* $OpenBSD: aac.c,v 1.38 2008/11/24 00:31:35 krw Exp $ */ +/* $OpenBSD: aac.c,v 1.39 2009/02/16 21:19:06 miod Exp $ */ /*- * Copyright (c) 2000 Michael Smith @@ -2479,7 +2479,7 @@ aac_internal_cache_cmd(struct scsi_xfer *xs) } void -aacminphys(struct buf *bp) +aacminphys(struct buf *bp, struct scsi_link *sl) { #if 0 u_int8_t *buf = bp->b_data; diff --git a/sys/dev/ic/aacvar.h b/sys/dev/ic/aacvar.h index 792df3e80ae..9a2c1986f08 100644 --- a/sys/dev/ic/aacvar.h +++ b/sys/dev/ic/aacvar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: aacvar.h,v 1.7 2006/05/07 20:12:41 tedu Exp $ */ +/* $OpenBSD: aacvar.h,v 1.8 2009/02/16 21:19:06 miod Exp $ */ /*- * Copyright (c) 2000 Michael Smith @@ -437,7 +437,7 @@ extern void aac_release_sync_fib(struct aac_softc *); extern int aac_sync_fib(struct aac_softc *, u_int32_t, u_int32_t, struct aac_fib *, u_int16_t); -void aacminphys(struct buf *); +void aacminphys(struct buf *, struct scsi_link *); int aac_attach(struct aac_softc *); int aac_intr(void *); diff --git a/sys/dev/ic/adv.c b/sys/dev/ic/adv.c index 69dfd70cdaf..c8659877da8 100644 --- a/sys/dev/ic/adv.c +++ b/sys/dev/ic/adv.c @@ -1,4 +1,4 @@ -/* $OpenBSD: adv.c,v 1.23 2009/01/21 21:53:59 grange Exp $ */ +/* $OpenBSD: adv.c,v 1.24 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: adv.c,v 1.6 1998/10/28 20:39:45 dante Exp $ */ /* @@ -74,7 +74,7 @@ static void adv_start_ccbs(ASC_SOFTC *); static u_int8_t *adv_alloc_overrunbuf(char *dvname, bus_dma_tag_t); static int adv_scsi_cmd(struct scsi_xfer *); -static void advminphys(struct buf *); +static void advminphys(struct buf *, struct scsi_link *); static void adv_narrow_isr_callback(ASC_SOFTC *, ASC_QDONE_INFO *); static int adv_poll(ASC_SOFTC *, struct scsi_xfer *, int); @@ -564,10 +564,8 @@ adv_attach(sc) static void -advminphys(bp) - struct buf *bp; +advminphys(struct buf *bp, struct scsi_link *sl) { - if (bp->b_bcount > ((ASC_MAX_SG_LIST - 1) * PAGE_SIZE)) bp->b_bcount = ((ASC_MAX_SG_LIST - 1) * PAGE_SIZE); minphys(bp); diff --git a/sys/dev/ic/adw.c b/sys/dev/ic/adw.c index eb5fa0742c9..14a429db7b8 100644 --- a/sys/dev/ic/adw.c +++ b/sys/dev/ic/adw.c @@ -1,4 +1,4 @@ -/* $OpenBSD: adw.c,v 1.37 2009/01/21 21:53:59 grange Exp $ */ +/* $OpenBSD: adw.c,v 1.38 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: adw.c,v 1.23 2000/05/27 18:24:50 dante Exp $ */ /* @@ -73,7 +73,7 @@ int adw_queue_ccb(ADW_SOFTC *, ADW_CCB *, int); int adw_scsi_cmd(struct scsi_xfer *); int adw_build_req(struct scsi_xfer *, ADW_CCB *, int); void adw_build_sglist(ADW_CCB *, ADW_SCSI_REQ_Q *, ADW_SG_BLOCK *); -void adw_minphys(struct buf *); +void adw_minphys(struct buf *, struct scsi_link *); void adw_isr_callback(ADW_SOFTC *, ADW_SCSI_REQ_Q *); void adw_async_callback(ADW_SOFTC *, u_int8_t); @@ -581,8 +581,7 @@ adw_attach(sc) void -adw_minphys(bp) - struct buf *bp; +adw_minphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > ((ADW_MAX_SG_LIST - 1) * PAGE_SIZE)) diff --git a/sys/dev/ic/aic6360.c b/sys/dev/ic/aic6360.c index 0875c30220d..03103b11e23 100644 --- a/sys/dev/ic/aic6360.c +++ b/sys/dev/ic/aic6360.c @@ -1,4 +1,4 @@ -/* $OpenBSD: aic6360.c,v 1.18 2009/01/21 21:53:59 grange Exp $ */ +/* $OpenBSD: aic6360.c,v 1.19 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: aic6360.c,v 1.52 1996/12/10 21:27:51 thorpej Exp $ */ #ifdef DDB @@ -154,7 +154,7 @@ int aic_debug = 0x00; /* AIC_SHOWSTART|AIC_SHOWMISC|AIC_SHOWTRACE; */ #endif -void aic_minphys(struct buf *); +void aic_minphys(struct buf *, struct scsi_link *); void aic_init(struct aic_softc *); void aic_done(struct aic_softc *, struct aic_acb *); void aic_dequeue(struct aic_softc *, struct aic_acb *); @@ -193,7 +193,7 @@ struct scsi_adapter aic_switch = { #ifdef notyet aic_minphys, #else - minphys, + scsi_minphys, #endif 0, 0, @@ -563,7 +563,7 @@ aic_scsi_cmd(struct scsi_xfer *xs) * Adjust transfer size in buffer structure */ void -aic_minphys(struct buf *bp) +aic_minphys(struct buf *bp, struct scsi_link *sl) { AIC_TRACE(("aic_minphys ")); diff --git a/sys/dev/ic/aic79xx_openbsd.c b/sys/dev/ic/aic79xx_openbsd.c index aa6a80a5db8..0ec3a78ac6c 100644 --- a/sys/dev/ic/aic79xx_openbsd.c +++ b/sys/dev/ic/aic79xx_openbsd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: aic79xx_openbsd.c,v 1.31 2009/01/21 21:53:59 grange Exp $ */ +/* $OpenBSD: aic79xx_openbsd.c,v 1.32 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 2004 Milos Urbanek, Kenneth R. Westerback & Marco Peereboom @@ -81,7 +81,7 @@ int ahd_setup_data(struct ahd_softc *, struct scsi_xfer *, struct scb *); void ahd_adapter_req_set_xfer_mode(struct ahd_softc *, struct scb *); -void ahd_minphys(struct buf *); +void ahd_minphys(struct buf *, struct scsi_link *); struct cfdriver ahd_cd = { NULL, "ahd", DV_DULL @@ -284,7 +284,7 @@ ahd_done(struct ahd_softc *ahd, struct scb *scb) } void -ahd_minphys(struct buf *bp) +ahd_minphys(struct buf *bp, struct scsi_link *sl) { /* * Even though the card can transfer up to 16megs per command diff --git a/sys/dev/ic/aic7xxx_openbsd.c b/sys/dev/ic/aic7xxx_openbsd.c index fadb1c8afdc..903143f7673 100644 --- a/sys/dev/ic/aic7xxx_openbsd.c +++ b/sys/dev/ic/aic7xxx_openbsd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: aic7xxx_openbsd.c,v 1.41 2009/01/21 21:53:59 grange Exp $ */ +/* $OpenBSD: aic7xxx_openbsd.c,v 1.42 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: aic7xxx_osm.c,v 1.14 2003/11/02 11:07:44 wiz Exp $ */ /* @@ -53,7 +53,7 @@ int ahc_execute_scb(void *, bus_dma_segment_t *, int); int ahc_poll(struct ahc_softc *, int); int ahc_setup_data(struct ahc_softc *, struct scsi_xfer *, struct scb *); -void ahc_minphys(struct buf *); +void ahc_minphys(struct buf *, struct scsi_link *); void ahc_adapter_req_set_xfer_mode(struct ahc_softc *, struct scb *); @@ -284,8 +284,7 @@ ahc_done(struct ahc_softc *ahc, struct scb *scb) } void -ahc_minphys(bp) - struct buf *bp; +ahc_minphys(struct buf *bp, struct scsi_link *sl) { /* * Even though the card can transfer up to 16megs per command diff --git a/sys/dev/ic/ami.c b/sys/dev/ic/ami.c index 4542d286d96..c9b8fe5448f 100644 --- a/sys/dev/ic/ami.c +++ b/sys/dev/ic/ami.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ami.c,v 1.191 2009/01/11 16:54:59 blambert Exp $ */ +/* $OpenBSD: ami.c,v 1.192 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 2001 Michael Shalayeff @@ -94,7 +94,7 @@ struct cfdriver ami_cd = { int ami_scsi_cmd(struct scsi_xfer *); int ami_scsi_ioctl(struct scsi_link *, u_long, caddr_t, int, struct proc *); -void amiminphys(struct buf *bp); +void amiminphys(struct buf *bp, struct scsi_link *sl); struct scsi_adapter ami_switch = { ami_scsi_cmd, amiminphys, 0, 0, ami_scsi_ioctl @@ -1300,7 +1300,7 @@ ami_done_init(struct ami_softc *sc, struct ami_ccb *ccb) } void -amiminphys(struct buf *bp) +amiminphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > AMI_MAXFER) bp->b_bcount = AMI_MAXFER; diff --git a/sys/dev/ic/bha.c b/sys/dev/ic/bha.c index c6b0ddd6bf4..64f2428ca18 100644 --- a/sys/dev/ic/bha.c +++ b/sys/dev/ic/bha.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bha.c,v 1.16 2009/01/21 21:53:59 grange Exp $ */ +/* $OpenBSD: bha.c,v 1.17 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: bha.c,v 1.27 1998/11/19 21:53:00 thorpej Exp $ */ #undef BHADEBUG @@ -96,7 +96,7 @@ void bha_collect_mbo(struct bha_softc *); void bha_start_ccbs(struct bha_softc *); void bha_done(struct bha_softc *, struct bha_ccb *); int bha_init(struct bha_softc *); -void bhaminphys(struct buf *); +void bhaminphys(struct buf *, struct scsi_link *); int bha_scsi_cmd(struct scsi_xfer *); int bha_poll(struct bha_softc *, struct scsi_xfer *, int); void bha_timeout(void *arg); @@ -1265,10 +1265,8 @@ bha_inquire_setup_information(sc) } void -bhaminphys(bp) - struct buf *bp; +bhaminphys(struct buf *bp, struct scsi_link *sl) { - if (bp->b_bcount > BHA_MAXXFER) bp->b_bcount = BHA_MAXXFER; minphys(bp); diff --git a/sys/dev/ic/cac.c b/sys/dev/ic/cac.c index a19ccb3f2be..92cad44fb30 100644 --- a/sys/dev/ic/cac.c +++ b/sys/dev/ic/cac.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cac.c,v 1.27 2008/10/29 21:17:15 brad Exp $ */ +/* $OpenBSD: cac.c,v 1.28 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: cac.c,v 1.15 2000/11/08 19:20:35 ad Exp $ */ /* @@ -97,7 +97,7 @@ struct cfdriver cac_cd = { }; int cac_scsi_cmd(struct scsi_xfer *); -void cacminphys(struct buf *bp); +void cacminphys(struct buf *bp, struct scsi_link *sl); struct scsi_adapter cac_switch = { cac_scsi_cmd, cacminphys, 0, 0, @@ -555,8 +555,7 @@ cac_get_dinfo(sc, target) } void -cacminphys(bp) - struct buf *bp; +cacminphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > CAC_MAX_XFER) bp->b_bcount = CAC_MAX_XFER; diff --git a/sys/dev/ic/ciss.c b/sys/dev/ic/ciss.c index 175855f0ec0..6fb9f8fd970 100644 --- a/sys/dev/ic/ciss.c +++ b/sys/dev/ic/ciss.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ciss.c,v 1.32 2008/11/10 15:55:06 cnst Exp $ */ +/* $OpenBSD: ciss.c,v 1.33 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 2005,2006 Michael Shalayeff @@ -72,7 +72,7 @@ struct cfdriver ciss_cd = { int ciss_scsi_cmd(struct scsi_xfer *xs); int ciss_scsi_ioctl(struct scsi_link *link, u_long cmd, caddr_t addr, int flag, struct proc *p); -void cissminphys(struct buf *bp); +void cissminphys(struct buf *bp, struct scsi_link *sl); struct scsi_adapter ciss_switch = { ciss_scsi_cmd, cissminphys, NULL, NULL, ciss_scsi_ioctl @@ -458,7 +458,7 @@ ciss_shutdown(void *v) } void -cissminphys(struct buf *bp) +cissminphys(struct buf *bp, struct scsi_link *sl) { #if 0 /* TODO */ #define CISS_MAXFER (PAGE_SIZE * (sc->maxsg + 1)) diff --git a/sys/dev/ic/dpt.c b/sys/dev/ic/dpt.c index f9f2ad7f827..d322ccb4902 100644 --- a/sys/dev/ic/dpt.c +++ b/sys/dev/ic/dpt.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dpt.c,v 1.19 2008/11/26 22:03:11 krw Exp $ */ +/* $OpenBSD: dpt.c,v 1.20 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: dpt.c,v 1.12 1999/10/23 16:26:33 ad Exp $ */ /*- @@ -639,10 +639,8 @@ dpt_readcfg(sc) * Adjust the size of each I/O before it passes to the SCSI layer. */ void -dpt_minphys(bp) - struct buf *bp; +dpt_minphys(struct buf *bp, struct scsi_link *sl) { - if (bp->b_bcount > DPT_MAX_XFER) bp->b_bcount = DPT_MAX_XFER; minphys(bp); diff --git a/sys/dev/ic/dptvar.h b/sys/dev/ic/dptvar.h index 736c90e1632..a9c1d4a76ef 100644 --- a/sys/dev/ic/dptvar.h +++ b/sys/dev/ic/dptvar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: dptvar.h,v 1.3 2008/11/26 22:03:11 krw Exp $ */ +/* $OpenBSD: dptvar.h,v 1.4 2009/02/16 21:19:06 miod Exp $ */ /* $NetBSD: dptvar.h,v 1.5 1999/10/23 16:26:32 ad Exp $ */ /* @@ -96,7 +96,7 @@ int dpt_readcfg(struct dpt_softc *); void dpt_init(struct dpt_softc *, const char *); void dpt_shutdown(void *); void dpt_timeout(void *); -void dpt_minphys(struct buf *); +void dpt_minphys(struct buf *, struct scsi_link *); #ifdef __NetBSD__ int dpt_scsi_cmd(struct scsipi_xfer *); #endif /* __NetBSD__ */ diff --git a/sys/dev/ic/gdt_common.c b/sys/dev/ic/gdt_common.c index d88f5803868..b4d8af19864 100644 --- a/sys/dev/ic/gdt_common.c +++ b/sys/dev/ic/gdt_common.c @@ -1,4 +1,4 @@ -/* $OpenBSD: gdt_common.c,v 1.44 2009/01/21 21:53:59 grange Exp $ */ +/* $OpenBSD: gdt_common.c,v 1.45 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 1999, 2000, 2003 Niklas Hallqvist. All rights reserved. @@ -1189,7 +1189,7 @@ gdt_intr(void *arg) } void -gdtminphys(struct buf *bp) +gdtminphys(struct buf *bp, struct scsi_link *sl) { GDT_DPRINTF(GDT_D_MISC, ("gdtminphys(0x%x) ", bp)); diff --git a/sys/dev/ic/gdtvar.h b/sys/dev/ic/gdtvar.h index 2b4fa865bf2..46aac558c31 100644 --- a/sys/dev/ic/gdtvar.h +++ b/sys/dev/ic/gdtvar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: gdtvar.h,v 1.15 2008/09/01 17:30:56 deraadt Exp $ */ +/* $OpenBSD: gdtvar.h,v 1.16 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 1999, 2000 Niklas Hallqvist. All rights reserved. @@ -398,7 +398,7 @@ struct gdt_softc { int (*sc_test_busy)(struct gdt_softc *); }; -void gdtminphys(struct buf *); +void gdtminphys(struct buf *, struct scsi_link *); int gdt_attach(struct gdt_softc *); int gdt_intr(void *); diff --git a/sys/dev/ic/iha.c b/sys/dev/ic/iha.c index 2ea843238e6..aa85a2e5023 100644 --- a/sys/dev/ic/iha.c +++ b/sys/dev/ic/iha.c @@ -1,4 +1,4 @@ -/* $OpenBSD: iha.c,v 1.32 2009/01/21 21:54:00 grange Exp $ */ +/* $OpenBSD: iha.c,v 1.33 2009/02/16 21:19:06 miod Exp $ */ /*------------------------------------------------------------------------- * * Device driver for the INI-9XXXU/UW or INIC-940/950 PCI SCSI Controller. @@ -473,8 +473,7 @@ iha_init_tulip(sc) * via sc->sc_adapter.scsi_minphys. */ void -iha_minphys(bp) - struct buf *bp; +iha_minphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > ((IHA_MAX_SG_ENTRIES - 1) * PAGE_SIZE)) bp->b_bcount = ((IHA_MAX_SG_ENTRIES - 1) * PAGE_SIZE); diff --git a/sys/dev/ic/iha.h b/sys/dev/ic/iha.h index 455471d7759..80a2034815d 100644 --- a/sys/dev/ic/iha.h +++ b/sys/dev/ic/iha.h @@ -1,4 +1,4 @@ -/* $OpenBSD: iha.h,v 1.15 2004/01/19 00:44:33 krw Exp $ */ +/* $OpenBSD: iha.h,v 1.16 2009/02/16 21:19:06 miod Exp $ */ /*------------------------------------------------------------------------- * * Device driver for the INI-9XXXU/UW or INIC-940/950 PCI SCSI Controller. @@ -424,7 +424,7 @@ struct iha_nvram { int iha_scsi_cmd(struct scsi_xfer *); int iha_intr(void *); -void iha_minphys(struct buf *); +void iha_minphys(struct buf *, struct scsi_link *); int iha_init_tulip(struct iha_softc *); diff --git a/sys/dev/ic/isp_openbsd.c b/sys/dev/ic/isp_openbsd.c index c744900b145..ef65d585b58 100644 --- a/sys/dev/ic/isp_openbsd.c +++ b/sys/dev/ic/isp_openbsd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: isp_openbsd.c,v 1.34 2009/01/11 16:54:59 blambert Exp $ */ +/* $OpenBSD: isp_openbsd.c,v 1.35 2009/02/16 21:19:06 miod Exp $ */ /* * Platform (OpenBSD) dependent common attachment code for QLogic adapters. * @@ -62,7 +62,7 @@ */ #define _XT(xs) ((((xs)->timeout/1000) * hz) + (3 * hz)) -static void ispminphys(struct buf *); +static void ispminphys(struct buf *, struct scsi_link *); static int32_t ispcmd_slow(XS_T *); static int32_t ispcmd(XS_T *); @@ -184,7 +184,7 @@ isp_attach(struct ispsoftc *isp) */ static void -ispminphys(struct buf *bp) +ispminphys(struct buf *bp, struct scsi_link *sl) { /* * XX: Only the 1020 has a 24 bit limit. diff --git a/sys/dev/ic/mfi.c b/sys/dev/ic/mfi.c index 8166d17a33f..6afdd503868 100644 --- a/sys/dev/ic/mfi.c +++ b/sys/dev/ic/mfi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mfi.c,v 1.88 2009/01/28 23:45:12 marco Exp $ */ +/* $OpenBSD: mfi.c,v 1.89 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 2006 Marco Peereboom <marco@peereboom.us> * @@ -57,7 +57,7 @@ struct cfdriver mfi_cd = { int mfi_scsi_cmd(struct scsi_xfer *); int mfi_scsi_ioctl(struct scsi_link *, u_long, caddr_t, int, struct proc *); -void mfiminphys(struct buf *bp); +void mfiminphys(struct buf *bp, struct scsi_link *sl); struct scsi_adapter mfi_switch = { mfi_scsi_cmd, mfiminphys, 0, 0, mfi_scsi_ioctl @@ -600,7 +600,7 @@ mfi_get_info(struct mfi_softc *sc) } void -mfiminphys(struct buf *bp) +mfiminphys(struct buf *bp, struct scsi_link *sl) { DNPRINTF(MFI_D_MISC, "mfiminphys: %d\n", bp->b_bcount); diff --git a/sys/dev/ic/mpi.c b/sys/dev/ic/mpi.c index 5d9febf439c..b79dc020c23 100644 --- a/sys/dev/ic/mpi.c +++ b/sys/dev/ic/mpi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mpi.c,v 1.108 2009/02/13 23:16:22 sthen Exp $ */ +/* $OpenBSD: mpi.c,v 1.109 2009/02/16 21:19:07 miod Exp $ */ /* * Copyright (c) 2005, 2006 David Gwynne <dlg@openbsd.org> @@ -63,7 +63,7 @@ struct cfdriver mpi_cd = { int mpi_scsi_cmd(struct scsi_xfer *); void mpi_scsi_cmd_done(struct mpi_ccb *); -void mpi_minphys(struct buf *bp); +void mpi_minphys(struct buf *bp, struct scsi_link *sl); int mpi_scsi_probe(struct scsi_link *); int mpi_scsi_ioctl(struct scsi_link *, u_long, caddr_t, int, struct proc *); @@ -1431,7 +1431,7 @@ mpi_load_xs(struct mpi_ccb *ccb) } void -mpi_minphys(struct buf *bp) +mpi_minphys(struct buf *bp, struct scsi_link *sl) { /* XXX */ if (bp->b_bcount > MAXPHYS) diff --git a/sys/dev/ic/oosiop.c b/sys/dev/ic/oosiop.c index ac6fe33be30..d7206b19d02 100644 --- a/sys/dev/ic/oosiop.c +++ b/sys/dev/ic/oosiop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: oosiop.c,v 1.10 2009/01/21 21:54:00 grange Exp $ */ +/* $OpenBSD: oosiop.c,v 1.11 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: oosiop.c,v 1.4 2003/10/29 17:45:55 tsutsui Exp $ */ /* @@ -78,7 +78,7 @@ void oosiop_clear_fifo(struct oosiop_softc *); void oosiop_phasemismatch(struct oosiop_softc *); void oosiop_setup_syncxfer(struct oosiop_softc *); void oosiop_set_syncparam(struct oosiop_softc *, int, int, int); -void oosiop_minphys(struct buf *); +void oosiop_minphys(struct buf *, struct scsi_link *); int oosiop_scsicmd(struct scsi_xfer *); void oosiop_done(struct oosiop_softc *, struct oosiop_cb *); void oosiop_timeout(void *); @@ -704,7 +704,7 @@ oosiop_set_syncparam(struct oosiop_softc *sc, int id, int period, int offset) } void -oosiop_minphys(struct buf *bp) +oosiop_minphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > OOSIOP_MAX_XFER) diff --git a/sys/dev/ic/osiop.c b/sys/dev/ic/osiop.c index f0d0b8f39bb..0c3abb81974 100644 --- a/sys/dev/ic/osiop.c +++ b/sys/dev/ic/osiop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: osiop.c,v 1.36 2009/01/21 21:54:00 grange Exp $ */ +/* $OpenBSD: osiop.c,v 1.37 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: osiop.c,v 1.9 2002/04/05 18:27:54 bouyer Exp $ */ /* @@ -90,7 +90,7 @@ #include <dev/microcode/siop/osiop.out> void osiop_attach(struct osiop_softc *); -void osiop_minphys(struct buf *); +void osiop_minphys(struct buf *, struct scsi_link *); int osiop_scsicmd(struct scsi_xfer *xs); void osiop_poll(struct osiop_softc *, struct osiop_acb *); void osiop_sched(struct osiop_softc *); @@ -355,10 +355,8 @@ osiop_attach(sc) * default minphys routine for osiop based controllers */ void -osiop_minphys(bp) - struct buf *bp; +osiop_minphys(struct buf *bp, struct scsi_link *sl) { - if (bp->b_bcount > OSIOP_MAX_XFER) bp->b_bcount = OSIOP_MAX_XFER; minphys(bp); diff --git a/sys/dev/ic/sili.c b/sys/dev/ic/sili.c index cb852822424..0a85f7cb937 100644 --- a/sys/dev/ic/sili.c +++ b/sys/dev/ic/sili.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sili.c,v 1.41 2009/01/21 21:54:00 grange Exp $ */ +/* $OpenBSD: sili.c,v 1.42 2009/02/16 21:19:07 miod Exp $ */ /* * Copyright (c) 2007 David Gwynne <dlg@openbsd.org> @@ -196,7 +196,7 @@ sili_attach(struct sili_softc *sc) bzero(&aaa, sizeof(aaa)); aaa.aaa_cookie = sc; aaa.aaa_methods = &sili_atascsi_methods; - aaa.aaa_minphys = minphys; + aaa.aaa_minphys = NULL; aaa.aaa_nports = sc->sc_nports; aaa.aaa_ncmds = SILI_MAX_CMDS; aaa.aaa_capability = ASAA_CAP_NCQ; diff --git a/sys/dev/ic/siop_common.c b/sys/dev/ic/siop_common.c index aa7e40fa47d..ffcb3e084b3 100644 --- a/sys/dev/ic/siop_common.c +++ b/sys/dev/ic/siop_common.c @@ -1,4 +1,4 @@ -/* $OpenBSD: siop_common.c,v 1.32 2009/01/29 22:50:23 miod Exp $ */ +/* $OpenBSD: siop_common.c,v 1.33 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: siop_common.c,v 1.37 2005/02/27 00:27:02 perry Exp $ */ /* @@ -707,8 +707,7 @@ siop_ppr_msg(siop_cmd, offset, ssync, soff) } void -siop_minphys(bp) - struct buf *bp; +siop_minphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > SIOP_MAXFER) bp->b_bcount = SIOP_MAXFER; diff --git a/sys/dev/ic/siopvar_common.h b/sys/dev/ic/siopvar_common.h index d395689e2f3..b4fd7ed271f 100644 --- a/sys/dev/ic/siopvar_common.h +++ b/sys/dev/ic/siopvar_common.h @@ -1,4 +1,4 @@ -/* $OpenBSD: siopvar_common.h,v 1.25 2007/08/05 19:05:09 kettenis Exp $ */ +/* $OpenBSD: siopvar_common.h,v 1.26 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: siopvar_common.h,v 1.33 2005/11/18 23:10:32 bouyer Exp $ */ /* @@ -204,7 +204,7 @@ int siop_iwr(struct siop_common_cmd *); #define SIOP_NEG_MSGOUT 0x1 #define SIOP_NEG_ACK 0x2 -void siop_minphys(struct buf *); +void siop_minphys(struct buf *, struct scsi_link *); void siop_ma(struct siop_common_cmd *); void siop_sdp(struct siop_common_cmd *, int); void siop_update_resid(struct siop_common_cmd *, int); diff --git a/sys/dev/ic/trm.c b/sys/dev/ic/trm.c index 60e19b88c77..f0bdea5c58a 100644 --- a/sys/dev/ic/trm.c +++ b/sys/dev/ic/trm.c @@ -1,4 +1,4 @@ -/* $OpenBSD: trm.c,v 1.11 2009/01/21 21:54:00 grange Exp $ +/* $OpenBSD: trm.c,v 1.12 2009/02/16 21:19:07 miod Exp $ * ------------------------------------------------------------ * O.S : OpenBSD * File Name : trm.c @@ -61,7 +61,7 @@ /* #define TRM_DEBUG0 */ -void trm_minphys(struct buf *); +void trm_minphys(struct buf *, struct scsi_link *); void trm_initSRB(struct trm_scsi_req_q *); @@ -2367,7 +2367,7 @@ trm_linkSRB(struct trm_softc *sc) * ------------------------------------------------------------ */ void -trm_minphys(struct buf *bp) +trm_minphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > (TRM_MAX_SG_LISTENTRY-1) * (long) NBPG) { bp->b_bcount = (TRM_MAX_SG_LISTENTRY-1) * (long) NBPG; diff --git a/sys/dev/ic/twe.c b/sys/dev/ic/twe.c index 5b00863c69f..f3f9700364f 100644 --- a/sys/dev/ic/twe.c +++ b/sys/dev/ic/twe.c @@ -1,4 +1,4 @@ -/* $OpenBSD: twe.c,v 1.29 2008/07/24 19:03:08 thib Exp $ */ +/* $OpenBSD: twe.c,v 1.30 2009/02/16 21:19:07 miod Exp $ */ /* * Copyright (c) 2000-2002 Michael Shalayeff. All rights reserved. @@ -746,8 +746,7 @@ twe_done(sc, ccb) } void -tweminphys(bp) - struct buf *bp; +tweminphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > TWE_MAXFER) bp->b_bcount = TWE_MAXFER; diff --git a/sys/dev/ic/twevar.h b/sys/dev/ic/twevar.h index b0e0f48036c..bc15196ac5a 100644 --- a/sys/dev/ic/twevar.h +++ b/sys/dev/ic/twevar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: twevar.h,v 1.8 2008/07/24 19:03:08 thib Exp $ */ +/* $OpenBSD: twevar.h,v 1.9 2009/02/16 21:19:07 miod Exp $ */ /* * Copyright (c) 2000 Michael Shalayeff @@ -83,6 +83,6 @@ struct twe_softc { #define TWE_UNLOCK(sc, lock) splx(lock) typedef int twe_lock_t; -void tweminphys(struct buf *bp); +void tweminphys(struct buf *bp, struct scsi_link *sl); int twe_attach(struct twe_softc *); int twe_intr(void *); diff --git a/sys/dev/ic/uha.c b/sys/dev/ic/uha.c index 68d2a976cc5..1cbad497019 100644 --- a/sys/dev/ic/uha.c +++ b/sys/dev/ic/uha.c @@ -1,4 +1,4 @@ -/* $OpenBSD: uha.c,v 1.11 2008/11/24 00:31:35 krw Exp $ */ +/* $OpenBSD: uha.c,v 1.12 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: uha.c,v 1.3 1996/10/13 01:37:29 christos Exp $ */ #undef UHADEBUG @@ -90,7 +90,7 @@ integrate void uha_reset_mscp(struct uha_softc *, struct uha_mscp *); void uha_free_mscp(struct uha_softc *, struct uha_mscp *); integrate void uha_init_mscp(struct uha_softc *, struct uha_mscp *); struct uha_mscp *uha_get_mscp(struct uha_softc *, int); -void uhaminphys(struct buf *); +void uhaminphys(struct buf *, struct scsi_link *); int uha_scsi_cmd(struct scsi_xfer *); struct scsi_adapter uha_switch = { @@ -339,10 +339,8 @@ uha_done(sc, mscp) } void -uhaminphys(bp) - struct buf *bp; +uhaminphys(struct buf *bp, struct scsi_link *sl) { - if (bp->b_bcount > ((UHA_NSEG - 1) << PGSHIFT)) bp->b_bcount = ((UHA_NSEG - 1) << PGSHIFT); minphys(bp); diff --git a/sys/dev/isa/aha.c b/sys/dev/isa/aha.c index 00ce661c903..e96d7204819 100644 --- a/sys/dev/isa/aha.c +++ b/sys/dev/isa/aha.c @@ -1,4 +1,4 @@ -/* $OpenBSD: aha.c,v 1.61 2009/01/21 21:54:00 grange Exp $ */ +/* $OpenBSD: aha.c,v 1.62 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: aha.c,v 1.11 1996/05/12 23:51:23 mycroft Exp $ */ #undef AHADIAG @@ -154,7 +154,7 @@ void aha_done(struct aha_softc *, struct aha_ccb *); int aha_find(struct isa_attach_args *, struct aha_softc *, int); void aha_init(struct aha_softc *); void aha_inquire_setup_information(struct aha_softc *); -void ahaminphys(struct buf *); +void ahaminphys(struct buf *, struct scsi_link *); int aha_scsi_cmd(struct scsi_xfer *); int aha_poll(struct aha_softc *, struct scsi_xfer *, int); void aha_timeout(void *arg); @@ -1239,10 +1239,8 @@ noinquire: } void -ahaminphys(bp) - struct buf *bp; +ahaminphys(struct buf *bp, struct scsi_link *sl) { - if (bp->b_bcount > ((AHA_NSEG - 1) << PGSHIFT)) bp->b_bcount = ((AHA_NSEG - 1) << PGSHIFT); minphys(bp); diff --git a/sys/dev/isa/seagate.c b/sys/dev/isa/seagate.c index 28cfba3100e..51ba1920353 100644 --- a/sys/dev/isa/seagate.c +++ b/sys/dev/isa/seagate.c @@ -1,4 +1,4 @@ -/* $OpenBSD: seagate.c,v 1.26 2009/01/21 21:54:00 grange Exp $ */ +/* $OpenBSD: seagate.c,v 1.27 2009/02/16 21:19:07 miod Exp $ */ /* * ST01/02, Future Domain TMC-885, TMC-950 SCSI driver @@ -291,7 +291,7 @@ void sea_reselect(struct sea_softc *sea); struct scsi_adapter sea_switch = { sea_scsi_cmd, - minphys, /* no special minphys(), since driver uses PIO */ + scsi_minphys, /* no special minphys(), since driver uses PIO */ 0, 0, }; diff --git a/sys/dev/isa/wds.c b/sys/dev/isa/wds.c index 6522735ff61..ca7468f8d25 100644 --- a/sys/dev/isa/wds.c +++ b/sys/dev/isa/wds.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wds.c,v 1.27 2009/01/21 21:54:00 grange Exp $ */ +/* $OpenBSD: wds.c,v 1.28 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: wds.c,v 1.13 1996/11/03 16:20:31 mycroft Exp $ */ #undef WDSDIAG @@ -163,7 +163,7 @@ void wds_done(struct wds_softc *, struct wds_scb *, u_char); int wds_find(struct isa_attach_args *, struct wds_softc *); void wds_init(struct wds_softc *); void wds_inquire_setup_information(struct wds_softc *); -void wdsminphys(struct buf *); +void wdsminphys(struct buf *, struct scsi_link *); int wds_scsi_cmd(struct scsi_xfer *); void wds_sense(struct wds_softc *, struct wds_scb *); int wds_poll(struct wds_softc *, struct scsi_xfer *, int); @@ -1032,8 +1032,7 @@ out: } void -wdsminphys(bp) - struct buf *bp; +wdsminphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > ((WDS_NSEG - 1) << PGSHIFT)) bp->b_bcount = ((WDS_NSEG - 1) << PGSHIFT); diff --git a/sys/dev/pci/ahci.c b/sys/dev/pci/ahci.c index ca3aef1afc3..2837be99d12 100644 --- a/sys/dev/pci/ahci.c +++ b/sys/dev/pci/ahci.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ahci.c,v 1.146 2009/01/21 21:54:00 grange Exp $ */ +/* $OpenBSD: ahci.c,v 1.147 2009/02/16 21:19:07 miod Exp $ */ /* * Copyright (c) 2006 David Gwynne <dlg@openbsd.org> @@ -749,7 +749,7 @@ noccc: bzero(&aaa, sizeof(aaa)); aaa.aaa_cookie = sc; aaa.aaa_methods = &ahci_atascsi_methods; - aaa.aaa_minphys = minphys; + aaa.aaa_minphys = NULL; aaa.aaa_nports = AHCI_MAX_PORTS; aaa.aaa_ncmds = sc->sc_ncmds; aaa.aaa_capability = ASAA_CAP_NEEDS_RESERVED; diff --git a/sys/dev/pci/arc.c b/sys/dev/pci/arc.c index 4ab3d708ec7..889dda85db4 100644 --- a/sys/dev/pci/arc.c +++ b/sys/dev/pci/arc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: arc.c,v 1.77 2008/07/17 13:16:29 jsg Exp $ */ +/* $OpenBSD: arc.c,v 1.78 2009/02/16 21:19:07 miod Exp $ */ /* * Copyright (c) 2006 David Gwynne <dlg@openbsd.org> @@ -400,7 +400,7 @@ struct cfdriver arc_cd = { /* interface for scsi midlayer to talk to */ int arc_scsi_cmd(struct scsi_xfer *); -void arc_minphys(struct buf *); +void arc_minphys(struct buf *, struct scsi_link *); struct scsi_adapter arc_switch = { arc_scsi_cmd, arc_minphys, NULL, NULL, NULL @@ -919,7 +919,7 @@ arc_complete(struct arc_softc *sc, struct arc_ccb *nccb, int timeout) } void -arc_minphys(struct buf *bp) +arc_minphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > MAXPHYS) bp->b_bcount = MAXPHYS; diff --git a/sys/dev/pci/ips.c b/sys/dev/pci/ips.c index c2beade2fc9..15c9c942d4d 100644 --- a/sys/dev/pci/ips.c +++ b/sys/dev/pci/ips.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ips.c,v 1.45 2009/02/13 19:26:41 grange Exp $ */ +/* $OpenBSD: ips.c,v 1.46 2009/02/16 21:19:07 miod Exp $ */ /* * Copyright (c) 2006, 2007, 2009 Alexander Yurchenko <grange@openbsd.org> @@ -321,7 +321,7 @@ struct cfdriver ips_cd = { static struct scsi_adapter ips_scsi_adapter = { ips_scsi_cmd, - minphys, + scsi_minphys, NULL, NULL, NULL diff --git a/sys/dev/pci/pcscp.c b/sys/dev/pci/pcscp.c index 41d6b226950..f9c91ae85d7 100644 --- a/sys/dev/pci/pcscp.c +++ b/sys/dev/pci/pcscp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pcscp.c,v 1.15 2008/06/26 05:42:17 ray Exp $ */ +/* $OpenBSD: pcscp.c,v 1.16 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: pcscp.c,v 1.26 2003/10/19 10:25:42 tsutsui Exp $ */ /*- @@ -121,7 +121,7 @@ int pcscp_dma_isactive(struct ncr53c9x_softc *); struct scsi_adapter pcscp_adapter = { ncr53c9x_scsi_cmd, /* cmd */ - minphys, /* minphys */ + scsi_minphys, /* scsi_minphys */ 0, /* open */ 0, /* close */ }; diff --git a/sys/dev/pci/qli_pci.c b/sys/dev/pci/qli_pci.c index 8d1cd934f46..545fdea75aa 100644 --- a/sys/dev/pci/qli_pci.c +++ b/sys/dev/pci/qli_pci.c @@ -1,4 +1,4 @@ -/* $OpenBSD: qli_pci.c,v 1.12 2007/11/05 01:25:43 krw Exp $ */ +/* $OpenBSD: qli_pci.c,v 1.13 2009/02/16 21:19:07 miod Exp $ */ /* * Copyright (c) 2007 Marco Peereboom <marco@peereboom.us> * Copyright (c) 2007 David Collins <dave@davec.name> @@ -137,7 +137,7 @@ void qli_freemem(struct qli_softc *, struct qli_mem *); int qli_scsi_cmd(struct scsi_xfer *); int qli_scsi_ioctl(struct scsi_link *, u_long, caddr_t, int, struct proc *); -void qliminphys(struct buf *bp); +void qliminphys(struct buf *bp, struct scsi_link *sl); void qli_disable_interrupts(struct qli_softc *); void qli_enable_interrupts(struct qli_softc *); int qli_pci_find_device(void *); @@ -355,7 +355,7 @@ qli_freemem(struct qli_softc *sc, struct qli_mem *mm) } void -qliminphys(struct buf *bp) +qliminphys(struct buf *bp, struct scsi_link *sl) { DNPRINTF(QLI_D_MISC, "qliminphys: %d\n", bp->b_bcount); diff --git a/sys/dev/pcmcia/esp_pcmcia.c b/sys/dev/pcmcia/esp_pcmcia.c index f2bc7ce5db6..9717fdaf3a3 100644 --- a/sys/dev/pcmcia/esp_pcmcia.c +++ b/sys/dev/pcmcia/esp_pcmcia.c @@ -1,4 +1,4 @@ -/* $OpenBSD: esp_pcmcia.c,v 1.7 2008/06/26 05:42:17 ray Exp $ */ +/* $OpenBSD: esp_pcmcia.c,v 1.8 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: esp_pcmcia.c,v 1.8 2000/06/05 15:36:45 tsutsui Exp $ */ /*- @@ -80,7 +80,7 @@ int esp_pcmcia_enable(void *, int); struct scsi_adapter esp_pcmcia_adapter = { ncr53c9x_scsi_cmd, /* cmd */ - minphys, /* minphys */ + scsi_minphys, /* scsi_minphys */ 0, /* open */ 0, /* close */ }; diff --git a/sys/dev/sbus/esp_sbus.c b/sys/dev/sbus/esp_sbus.c index 2bf2d335a7a..3aa65efa19e 100644 --- a/sys/dev/sbus/esp_sbus.c +++ b/sys/dev/sbus/esp_sbus.c @@ -1,4 +1,4 @@ -/* $OpenBSD: esp_sbus.c,v 1.21 2008/06/26 05:42:18 ray Exp $ */ +/* $OpenBSD: esp_sbus.c,v 1.22 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: esp_sbus.c,v 1.14 2001/04/25 17:53:37 bouyer Exp $ */ /*- @@ -56,7 +56,7 @@ struct scsi_adapter esp_switch = { ncr53c9x_scsi_cmd, - minphys, /* no max at this level; handled by DMA code */ + scsi_minphys, /* no max at this level; handled by DMA code */ NULL, NULL, }; diff --git a/sys/dev/sdmmc/sdmmc_scsi.c b/sys/dev/sdmmc/sdmmc_scsi.c index 9e10a8760e6..3b324b072b1 100644 --- a/sys/dev/sdmmc/sdmmc_scsi.c +++ b/sys/dev/sdmmc/sdmmc_scsi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sdmmc_scsi.c,v 1.13 2009/02/06 20:16:41 grange Exp $ */ +/* $OpenBSD: sdmmc_scsi.c,v 1.14 2009/02/16 21:19:07 miod Exp $ */ /* * Copyright (c) 2006 Uwe Stuehler <uwe@openbsd.org> @@ -82,7 +82,7 @@ int sdmmc_start_xs(struct sdmmc_softc *, struct sdmmc_ccb *); void sdmmc_complete_xs(void *); void sdmmc_done_xs(struct sdmmc_ccb *); void sdmmc_stimeout(void *); -void sdmmc_scsi_minphys(struct buf *); +void sdmmc_scsi_minphys(struct buf *, struct scsi_link *); #define DEVNAME(sc) SDMMCDEVNAME(sc) @@ -495,7 +495,7 @@ sdmmc_stimeout(void *arg) } void -sdmmc_scsi_minphys(struct buf *bp) +sdmmc_scsi_minphys(struct buf *bp, struct scsi_link *sl) { /* XXX limit to max. transfer size supported by card/host? */ if (bp->b_bcount > DEV_BSIZE) diff --git a/sys/dev/softraid.c b/sys/dev/softraid.c index 3139d54dbcd..e1187e06e34 100644 --- a/sys/dev/softraid.c +++ b/sys/dev/softraid.c @@ -1,4 +1,4 @@ -/* $OpenBSD: softraid.c,v 1.126 2008/12/24 19:32:02 marco Exp $ */ +/* $OpenBSD: softraid.c,v 1.127 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 2007 Marco Peereboom <marco@peereboom.us> * Copyright (c) 2008 Chris Kuethe <ckuethe@openbsd.org> @@ -86,7 +86,7 @@ struct cfdriver softraid_cd = { /* scsi & discipline */ int sr_scsi_cmd(struct scsi_xfer *); -void sr_minphys(struct buf *bp); +void sr_minphys(struct buf *bp, struct scsi_link *sl); void sr_copy_internal_data(struct scsi_xfer *, void *, size_t); int sr_scsi_ioctl(struct scsi_link *, u_long, @@ -1182,7 +1182,7 @@ sr_activate(struct device *self, enum devact act) } void -sr_minphys(struct buf *bp) +sr_minphys(struct buf *bp, struct scsi_link *sl) { DNPRINTF(SR_D_MISC, "sr_minphys: %d\n", bp->b_bcount); diff --git a/sys/dev/tc/asc.c b/sys/dev/tc/asc.c index ab8634bebda..6bf47cc5312 100644 --- a/sys/dev/tc/asc.c +++ b/sys/dev/tc/asc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: asc.c,v 1.23 2008/06/26 05:42:18 ray Exp $ */ +/* $OpenBSD: asc.c,v 1.24 2009/02/16 21:19:07 miod Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -72,7 +72,7 @@ struct cfdriver asc_cd = { struct scsi_adapter asc_switch = { ncr53c9x_scsi_cmd, - minphys, /* no max at this level; handled by DMA code */ + scsi_minphys, /* no max at this level; handled by DMA code */ NULL, NULL, }; diff --git a/sys/dev/usb/umass_scsi.c b/sys/dev/usb/umass_scsi.c index 342213c5f52..e8d6d469822 100644 --- a/sys/dev/usb/umass_scsi.c +++ b/sys/dev/usb/umass_scsi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: umass_scsi.c,v 1.23 2008/06/26 05:42:19 ray Exp $ */ +/* $OpenBSD: umass_scsi.c,v 1.24 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: umass_scsipi.c,v 1.9 2003/02/16 23:14:08 augustss Exp $ */ /* * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -69,7 +69,7 @@ struct umass_scsi_softc { #define UMASS_ATAPI_DRIVE 0 int umass_scsi_cmd(struct scsi_xfer *); -void umass_scsi_minphys(struct buf *); +void umass_scsi_minphys(struct buf *, struct scsi_link *); void umass_scsi_cb(struct umass_softc *sc, void *priv, int residue, int status); @@ -270,7 +270,7 @@ umass_scsi_cmd(struct scsi_xfer *xs) } void -umass_scsi_minphys(struct buf *bp) +umass_scsi_minphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > UMASS_MAX_TRANSFER_SIZE) bp->b_bcount = UMASS_MAX_TRANSFER_SIZE; diff --git a/sys/dev/usb/usscanner.c b/sys/dev/usb/usscanner.c index 0b9a075acc3..84c7c7cf2a5 100644 --- a/sys/dev/usb/usscanner.c +++ b/sys/dev/usb/usscanner.c @@ -1,4 +1,4 @@ -/* $OpenBSD: usscanner.c,v 1.27 2008/06/26 05:42:19 ray Exp $ */ +/* $OpenBSD: usscanner.c,v 1.28 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: usscanner.c,v 1.6 2001/01/23 14:04:14 augustss Exp $ */ /* @@ -152,7 +152,7 @@ struct usscanner_softc { void usscanner_cleanup(struct usscanner_softc *sc); int usscanner_scsipi_cmd(struct scsipi_xfer *xs); -void usscanner_scsipi_minphys(struct buf *bp); +void usscanner_scsipi_minphys(struct buf *bp, struct scsi_link *sl); void usscanner_done(struct usscanner_softc *sc); void usscanner_sense(struct usscanner_softc *sc); typedef void callback(usbd_xfer_handle, usbd_private_handle, usbd_status); @@ -433,7 +433,7 @@ usscanner_activate(struct device *self, enum devact act) } void -usscanner_scsipi_minphys(struct buf *bp) +usscanner_scsipi_minphys(struct buf *bp, struct scsi_link *sl) { if (bp->b_bcount > USSCANNER_MAX_TRANSFER_SIZE) bp->b_bcount = USSCANNER_MAX_TRANSFER_SIZE; diff --git a/sys/dev/vscsi.c b/sys/dev/vscsi.c index baac8d343f4..550d879ccd7 100644 --- a/sys/dev/vscsi.c +++ b/sys/dev/vscsi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vscsi.c,v 1.1 2008/12/03 23:39:32 dlg Exp $ */ +/* $OpenBSD: vscsi.c,v 1.2 2009/02/16 21:19:06 miod Exp $ */ /* * Copyright (c) 2008 David Gwynne <dlg@openbsd.org> @@ -101,7 +101,7 @@ int vscsi_probe(struct scsi_link *); struct scsi_adapter vscsi_switch = { vscsi_cmd, - minphys, + scsi_minphys, vscsi_probe, NULL }; diff --git a/sys/scsi/cd.c b/sys/scsi/cd.c index d50e5db0787..560bd202e1f 100644 --- a/sys/scsi/cd.c +++ b/sys/scsi/cd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cd.c,v 1.145 2009/01/10 18:00:59 robert Exp $ */ +/* $OpenBSD: cd.c,v 1.146 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: cd.c,v 1.100 1997/04/02 02:29:30 mycroft Exp $ */ /* @@ -716,7 +716,7 @@ cdminphys(struct buf *bp) bp->b_bcount = max; } - (*cd->sc_link->adapter->scsi_minphys)(bp); + (*cd->sc_link->adapter->scsi_minphys)(bp, cd->sc_link); device_unref(&cd->sc_dev); } diff --git a/sys/scsi/scsi_ioctl.c b/sys/scsi/scsi_ioctl.c index cfea976dea6..49d1f27d6cc 100644 --- a/sys/scsi/scsi_ioctl.c +++ b/sys/scsi/scsi_ioctl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: scsi_ioctl.c,v 1.30 2007/09/16 01:30:24 krw Exp $ */ +/* $OpenBSD: scsi_ioctl.c,v 1.31 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: scsi_ioctl.c,v 1.23 1996/10/12 23:23:17 christos Exp $ */ /* @@ -67,6 +67,7 @@ struct scsi_ioctl *si_get(void); void si_free(struct scsi_ioctl *); struct scsi_ioctl *si_find(struct buf *); void scsistrategy(struct buf *); +void scsiminphys(struct buf *); const unsigned char scsi_readsafe_cmd[256] = { [0x00] = 1, /* TEST UNIT READY */ @@ -324,6 +325,24 @@ bad: splx(s); } +void +scsiminphys(struct buf *bp) +{ + struct scsi_ioctl *si; + struct scsi_link *sc_link; + + si = si_find(bp); + if (si == NULL) { + /* should not happen */ + bp->b_flags |= B_ERROR; + bp->b_error = EINVAL; + return; + } + + sc_link = si->si_sc_link; + (*sc_link->adapter->scsi_minphys)(bp, sc_link); +} + /* * Something (e.g. another driver) has called us * with an sc_link for a target/lun/adapter, and a scsi @@ -392,7 +411,7 @@ scsi_do_ioctl(struct scsi_link *sc_link, dev_t dev, u_long cmd, caddr_t addr, si->si_uio.uio_procp = p; error = physio(scsistrategy, &si->si_bp, dev, (screq->flags & SCCMD_READ) ? B_READ : B_WRITE, - sc_link->adapter->scsi_minphys, &si->si_uio); + scsiminphys, &si->si_uio); } else { /* if no data, no need to translate it.. */ si->si_bp.b_flags = 0; diff --git a/sys/scsi/scsiconf.c b/sys/scsi/scsiconf.c index 11b979d9ba3..c6e437e307f 100644 --- a/sys/scsi/scsiconf.c +++ b/sys/scsi/scsiconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: scsiconf.c,v 1.137 2009/02/16 21:13:31 krw Exp $ */ +/* $OpenBSD: scsiconf.c,v 1.138 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: scsiconf.c,v 1.57 1996/05/02 01:09:01 neil Exp $ */ /* @@ -54,6 +54,7 @@ #include <sys/systm.h> #include <sys/malloc.h> #include <sys/device.h> +#include <sys/buf.h> #include <scsi/scsi_all.h> #include <scsi/scsiconf.h> @@ -1058,3 +1059,13 @@ err: free(pg, M_TEMP); return (rv); } + +/* + * scsi_minphys member of struct scsi_adapter for drivers which don't + * need any specific routine. + */ +void +scsi_minphys(struct buf *bp, struct scsi_link *sl) +{ + minphys(bp); +} diff --git a/sys/scsi/scsiconf.h b/sys/scsi/scsiconf.h index a38f054540f..393301c4072 100644 --- a/sys/scsi/scsiconf.h +++ b/sys/scsi/scsiconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: scsiconf.h,v 1.97 2008/11/10 18:04:41 deraadt Exp $ */ +/* $OpenBSD: scsiconf.h,v 1.98 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: scsiconf.h,v 1.35 1997/04/02 02:29:38 mycroft Exp $ */ /* @@ -293,7 +293,7 @@ extern int scsi_autoconf; */ struct scsi_adapter { int (*scsi_cmd)(struct scsi_xfer *); - void (*scsi_minphys)(struct buf *); + void (*scsi_minphys)(struct buf *, struct scsi_link *); int (*dev_probe)(struct scsi_link *); void (*dev_free)(struct scsi_link *); int (*ioctl)(struct scsi_link *, u_long, caddr_t, int, @@ -538,6 +538,7 @@ int scsi_do_ioctl(struct scsi_link *, dev_t, u_long, caddr_t, void sc_print_addr(struct scsi_link *); int scsi_report_luns(struct scsi_link *, int, struct scsi_report_luns_data *, u_int32_t, int, int); +void scsi_minphys(struct buf *, struct scsi_link *); void show_scsi_xs(struct scsi_xfer *); void scsi_print_sense(struct scsi_xfer *); diff --git a/sys/scsi/sd.c b/sys/scsi/sd.c index 6b44d1c2381..e291af5815e 100644 --- a/sys/scsi/sd.c +++ b/sys/scsi/sd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sd.c,v 1.153 2008/08/24 09:08:49 dlg Exp $ */ +/* $OpenBSD: sd.c,v 1.154 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: sd.c,v 1.111 1997/04/02 02:29:41 mycroft Exp $ */ /*- @@ -808,7 +808,7 @@ sdminphys(struct buf *bp) bp->b_bcount = max; } - (*sd->sc_link->adapter->scsi_minphys)(bp); + (*sd->sc_link->adapter->scsi_minphys)(bp, sd->sc_link); device_unref(&sd->sc_dev); } diff --git a/sys/scsi/ss.c b/sys/scsi/ss.c index d38ca4931e8..797469411a2 100644 --- a/sys/scsi/ss.c +++ b/sys/scsi/ss.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ss.c,v 1.62 2008/06/22 16:32:05 krw Exp $ */ +/* $OpenBSD: ss.c,v 1.63 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: ss.c,v 1.10 1996/05/05 19:52:55 christos Exp $ */ /* @@ -501,7 +501,7 @@ ssminphys(bp) { struct ss_softc *ss = ss_cd.cd_devs[SSUNIT(bp->b_dev)]; - (ss->sc_link->adapter->scsi_minphys)(bp); + (ss->sc_link->adapter->scsi_minphys)(bp, ss->sc_link); /* * trim the transfer further for special devices this is diff --git a/sys/scsi/st.c b/sys/scsi/st.c index 70e49277b7d..82dc5f39bb1 100644 --- a/sys/scsi/st.c +++ b/sys/scsi/st.c @@ -1,4 +1,4 @@ -/* $OpenBSD: st.c,v 1.85 2008/09/22 19:44:41 miod Exp $ */ +/* $OpenBSD: st.c,v 1.86 2009/02/16 21:19:07 miod Exp $ */ /* $NetBSD: st.c,v 1.71 1997/02/21 23:03:49 thorpej Exp $ */ /* @@ -226,6 +226,7 @@ void stattach(struct device *, struct device *, void *); int stactivate(struct device *, enum devact); int stdetach(struct device *, int); +void stminphys(struct buf *); void st_kill_buffers(struct st_softc *); void st_identify_drive(struct st_softc *, struct scsi_inquiry_data *); void st_loadquirks(struct st_softc *); @@ -1088,6 +1089,20 @@ strestart(void *v) splx(s); } +void +stminphys(struct buf *bp) +{ + struct st_softc *st; + + st = stlookup(STUNIT(bp->b_dev)); + if (st == NULL) + return; /* can't happen */ + + (*st->sc_link->adapter->scsi_minphys)(bp, st->sc_link); + + device_unref(&st->sc_dev); +} + int stread(dev_t dev, struct uio *uio, int iomode) { @@ -1102,8 +1117,7 @@ stread(dev_t dev, struct uio *uio, int iomode) return (ENXIO); } - return (physio(ststrategy, NULL, dev, B_READ, - st->sc_link->adapter->scsi_minphys, uio)); + return (physio(ststrategy, NULL, dev, B_READ, stminphys, uio)); } int @@ -1120,8 +1134,7 @@ stwrite(dev_t dev, struct uio *uio, int iomode) return (ENXIO); } - return (physio(ststrategy, NULL, dev, B_WRITE, - st->sc_link->adapter->scsi_minphys, uio)); + return (physio(ststrategy, NULL, dev, B_WRITE, stminphys, uio)); } /* |