diff options
author | Kenneth R Westerback <krw@cvs.openbsd.org> | 2020-02-15 18:02:01 +0000 |
---|---|---|
committer | Kenneth R Westerback <krw@cvs.openbsd.org> | 2020-02-15 18:02:01 +0000 |
commit | 7f575b2b90078628c0244d2ad6ee8966d19a2500 (patch) | |
tree | 104e763abd59dc41ad47208cb0ecb0dfe9ecb9e1 /sys/dev/ic | |
parent | 041333ded23476ee20b2d905937694662dc6849b (diff) |
*_minphys() functions that cap i/o sizes at a value larger than the
value minphys() uses (MAXPHYS) are pointless since minphys() is always
called after the *_minphys() function.
MAXPHYS (64 * 1024) == 16 * 4096. 4096 is the smallest PAGE_SIZE we
have. So a *_minphys() function that caps the i/o size at N *
PAGE_SIZE where N is > 16 is just wasting cycles.
Nuke adv_minphys (40 * PAGE_SIZE), adw_minphys (254 * PAGE_SIZE),
ahc_minphys (128 * PAGE_SIZE), ahd_minphys (128 * PAGE_SIZE),
ami_minphys (26 * PAGE_SIZE), cac_minphys (65535 (!!!) * 512),
iha_minphsy (32 * PAGE_SIZE), trm_minphys (31 * PAGE_SIZE),
twe_minphys (62 * PAGE_SIZE). uha_minphys (32 * PAGE_SIZE),
Diffstat (limited to 'sys/dev/ic')
-rw-r--r-- | sys/dev/ic/adv.c | 13 | ||||
-rw-r--r-- | sys/dev/ic/adw.c | 14 | ||||
-rw-r--r-- | sys/dev/ic/aic79xx_openbsd.c | 20 | ||||
-rw-r--r-- | sys/dev/ic/aic7xxx_openbsd.c | 20 | ||||
-rw-r--r-- | sys/dev/ic/ami.c | 14 | ||||
-rw-r--r-- | sys/dev/ic/cac.c | 12 | ||||
-rw-r--r-- | sys/dev/ic/iha.c | 17 | ||||
-rw-r--r-- | sys/dev/ic/iha.h | 3 | ||||
-rw-r--r-- | sys/dev/ic/trm.c | 21 | ||||
-rw-r--r-- | sys/dev/ic/twe.c | 11 | ||||
-rw-r--r-- | sys/dev/ic/twevar.h | 3 | ||||
-rw-r--r-- | sys/dev/ic/uha.c | 12 |
12 files changed, 23 insertions, 137 deletions
diff --git a/sys/dev/ic/adv.c b/sys/dev/ic/adv.c index 67e0bf2b931..20ecfac4274 100644 --- a/sys/dev/ic/adv.c +++ b/sys/dev/ic/adv.c @@ -1,4 +1,4 @@ -/* $OpenBSD: adv.c,v 1.41 2020/01/27 13:11:01 sthen Exp $ */ +/* $OpenBSD: adv.c,v 1.42 2020/02/15 18:02:00 krw Exp $ */ /* $NetBSD: adv.c,v 1.6 1998/10/28 20:39:45 dante Exp $ */ /* @@ -66,7 +66,6 @@ static void adv_start_ccbs(ASC_SOFTC *); static u_int8_t *adv_alloc_overrunbuf(char *dvname, bus_dma_tag_t); static void adv_scsi_cmd(struct scsi_xfer *); -static void adv_minphys(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); @@ -83,7 +82,7 @@ struct cfdriver adv_cd = { struct scsi_adapter adv_switch = { - adv_scsi_cmd, adv_minphys, NULL, NULL, NULL + adv_scsi_cmd, NULL, NULL, NULL, NULL }; @@ -516,14 +515,6 @@ adv_attach(sc) } -static void -adv_minphys(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); -} - - /* * start a scsi operation given the command and the data address. Also needs * the unit, target and lu. diff --git a/sys/dev/ic/adw.c b/sys/dev/ic/adw.c index 2d1499f60bc..2a3fd25ff5f 100644 --- a/sys/dev/ic/adw.c +++ b/sys/dev/ic/adw.c @@ -1,4 +1,4 @@ -/* $OpenBSD: adw.c,v 1.58 2020/02/07 13:31:47 krw Exp $ */ +/* $OpenBSD: adw.c,v 1.59 2020/02/15 18:02:00 krw Exp $ */ /* $NetBSD: adw.c,v 1.23 2000/05/27 18:24:50 dante Exp $ */ /* @@ -65,7 +65,6 @@ int adw_queue_ccb(ADW_SOFTC *, ADW_CCB *, int); void 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 *, struct scsi_link *); void adw_isr_callback(ADW_SOFTC *, ADW_SCSI_REQ_Q *); void adw_async_callback(ADW_SOFTC *, u_int8_t); @@ -84,7 +83,7 @@ struct cfdriver adw_cd = { }; struct scsi_adapter adw_switch = { - adw_scsi_cmd, adw_minphys, NULL, NULL, NULL + adw_scsi_cmd, NULL, NULL, NULL, NULL }; /******************************************************************************/ @@ -520,15 +519,6 @@ adw_attach(ADW_SOFTC *sc) } -void -adw_minphys(struct buf *bp, struct scsi_link *sl) -{ - - if (bp->b_bcount > ((ADW_MAX_SG_LIST - 1) * PAGE_SIZE)) - bp->b_bcount = ((ADW_MAX_SG_LIST - 1) * PAGE_SIZE); -} - - /* * start a scsi operation given the command and the data address. * Also needs the unit, target and lu. diff --git a/sys/dev/ic/aic79xx_openbsd.c b/sys/dev/ic/aic79xx_openbsd.c index ef7d138d996..95be685f6f8 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.49 2020/02/06 15:08:19 krw Exp $ */ +/* $OpenBSD: aic79xx_openbsd.c,v 1.50 2020/02/15 18:02:00 krw Exp $ */ /* * Copyright (c) 2004 Milos Urbanek, Kenneth R. Westerback & Marco Peereboom @@ -76,14 +76,13 @@ void 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 *, struct scsi_link *); struct cfdriver ahd_cd = { NULL, "ahd", DV_DULL }; static struct scsi_adapter ahd_switch = { - ahd_action, ahd_minphys, NULL, NULL, NULL + ahd_action, NULL, NULL, NULL, NULL }; /* @@ -249,21 +248,6 @@ ahd_done(struct ahd_softc *ahd, struct scb *scb) } void -ahd_minphys(struct buf *bp, struct scsi_link *sl) -{ - /* - * Even though the card can transfer up to 16megs per command - * we are limited by the number of segments in the dma segment - * list that we can hold. The worst case is that all pages are - * discontinuous physically, hence the "page per segment" limit - * enforced here. - */ - if (bp->b_bcount > ((AHD_NSEG - 1) * PAGE_SIZE)) { - bp->b_bcount = ((AHD_NSEG - 1) * PAGE_SIZE); - } -} - -void ahd_action(struct scsi_xfer *xs) { struct ahd_softc *ahd; diff --git a/sys/dev/ic/aic7xxx_openbsd.c b/sys/dev/ic/aic7xxx_openbsd.c index 406a0c33893..861464b54bc 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.59 2020/02/06 15:08:19 krw Exp $ */ +/* $OpenBSD: aic7xxx_openbsd.c,v 1.60 2020/02/15 18:02:00 krw Exp $ */ /* $NetBSD: aic7xxx_osm.c,v 1.14 2003/11/02 11:07:44 wiz Exp $ */ /* @@ -53,7 +53,6 @@ void ahc_execute_scb(void *, bus_dma_segment_t *, int); int ahc_poll(struct ahc_softc *, int); void ahc_setup_data(struct ahc_softc *, struct scsi_xfer *, struct scb *); -void ahc_minphys(struct buf *, struct scsi_link *); void ahc_adapter_req_set_xfer_mode(struct ahc_softc *, struct scb *); @@ -62,7 +61,7 @@ struct cfdriver ahc_cd = { }; static struct scsi_adapter ahc_switch = { - ahc_action, ahc_minphys, NULL, NULL, NULL + ahc_action, NULL, NULL, NULL, NULL }; /* @@ -254,21 +253,6 @@ ahc_done(struct ahc_softc *ahc, struct scb *scb) } void -ahc_minphys(struct buf *bp, struct scsi_link *sl) -{ - /* - * Even though the card can transfer up to 16megs per command - * we are limited by the number of segments in the dma segment - * list that we can hold. The worst case is that all pages are - * discontinuous physically, hence the "page per segment" limit - * enforced here. - */ - if (bp->b_bcount > ((AHC_NSEG - 1) * PAGE_SIZE)) { - bp->b_bcount = ((AHC_NSEG - 1) * PAGE_SIZE); - } -} - -void ahc_action(struct scsi_xfer *xs) { struct ahc_softc *ahc; diff --git a/sys/dev/ic/ami.c b/sys/dev/ic/ami.c index b9425ffc6d0..6e655074757 100644 --- a/sys/dev/ic/ami.c +++ b/sys/dev/ic/ami.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ami.c,v 1.240 2020/01/26 00:53:31 krw Exp $ */ +/* $OpenBSD: ami.c,v 1.241 2020/02/15 18:02:00 krw Exp $ */ /* * Copyright (c) 2001 Michael Shalayeff @@ -95,16 +95,15 @@ struct cfdriver ami_cd = { void ami_scsi_cmd(struct scsi_xfer *); int ami_scsi_ioctl(struct scsi_link *, u_long, caddr_t, int); -void ami_minphys(struct buf *bp, struct scsi_link *sl); struct scsi_adapter ami_switch = { - ami_scsi_cmd, ami_minphys, NULL, NULL, ami_scsi_ioctl + ami_scsi_cmd, NULL, NULL, NULL, ami_scsi_ioctl }; void ami_scsi_raw_cmd(struct scsi_xfer *); struct scsi_adapter ami_raw_switch = { - ami_scsi_raw_cmd, ami_minphys, NULL, NULL, NULL + ami_scsi_raw_cmd, NULL, NULL, NULL, NULL }; void * ami_get_ccb(void *); @@ -1191,13 +1190,6 @@ ami_done_init(struct ami_softc *sc, struct ami_ccb *ccb) } void -ami_minphys(struct buf *bp, struct scsi_link *sl) -{ - if (bp->b_bcount > AMI_MAXFER) - bp->b_bcount = AMI_MAXFER; -} - -void ami_copy_internal_data(struct scsi_xfer *xs, void *v, size_t size) { size_t copy_cnt; diff --git a/sys/dev/ic/cac.c b/sys/dev/ic/cac.c index 690f1e86c6e..51d6a21701f 100644 --- a/sys/dev/ic/cac.c +++ b/sys/dev/ic/cac.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cac.c,v 1.58 2020/01/26 00:53:31 krw Exp $ */ +/* $OpenBSD: cac.c,v 1.59 2020/02/15 18:02:00 krw Exp $ */ /* $NetBSD: cac.c,v 1.15 2000/11/08 19:20:35 ad Exp $ */ /* @@ -96,10 +96,9 @@ struct cfdriver cac_cd = { }; void cac_scsi_cmd(struct scsi_xfer *); -void cac_minphys(struct buf *bp, struct scsi_link *sl); struct scsi_adapter cac_switch = { - cac_scsi_cmd, cac_minphys, NULL, NULL, NULL + cac_scsi_cmd, NULL, NULL, NULL, NULL }; void *cac_ccb_alloc(void *); @@ -562,13 +561,6 @@ cac_get_dinfo(sc, target) } void -cac_minphys(struct buf *bp, struct scsi_link *sl) -{ - if (bp->b_bcount > CAC_MAX_XFER) - bp->b_bcount = CAC_MAX_XFER; -} - -void cac_copy_internal_data(xs, v, size) struct scsi_xfer *xs; void *v; diff --git a/sys/dev/ic/iha.c b/sys/dev/ic/iha.c index 6e0a5d88c0e..b862342b226 100644 --- a/sys/dev/ic/iha.c +++ b/sys/dev/ic/iha.c @@ -1,4 +1,4 @@ -/* $OpenBSD: iha.c,v 1.46 2020/01/26 00:53:31 krw Exp $ */ +/* $OpenBSD: iha.c,v 1.47 2020/02/15 18:02:00 krw Exp $ */ /*------------------------------------------------------------------------- * * Device driver for the INI-9XXXU/UW or INIC-940/950 PCI SCSI Controller. @@ -53,7 +53,7 @@ struct cfdriver iha_cd = { }; struct scsi_adapter iha_switch = { - iha_scsi_cmd, iha_minphys, NULL, NULL, NULL + iha_scsi_cmd, NULL, NULL, NULL, NULL }; /* @@ -443,19 +443,6 @@ iha_init_tulip(struct iha_softc *sc) } /* - * iha_minphys - reduce bp->b_bcount to something less than - * or equal to the largest I/O possible through - * the adapter. Called from higher layers - * via sc->sc_adapter.dev_minphys. - */ -void -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); -} - -/* * iha_reset_dma - abort any active DMA xfer, reset tulip FIFO. */ void diff --git a/sys/dev/ic/iha.h b/sys/dev/ic/iha.h index 983ed8bf18b..b9a1d25215c 100644 --- a/sys/dev/ic/iha.h +++ b/sys/dev/ic/iha.h @@ -1,4 +1,4 @@ -/* $OpenBSD: iha.h,v 1.19 2020/02/06 18:18:51 krw Exp $ */ +/* $OpenBSD: iha.h,v 1.20 2020/02/15 18:02:00 krw Exp $ */ /*------------------------------------------------------------------------- * * Device driver for the INI-9XXXU/UW or INIC-940/950 PCI SCSI Controller. @@ -426,7 +426,6 @@ struct iha_nvram { void iha_scsi_cmd(struct scsi_xfer *); int iha_intr(void *); -void iha_minphys(struct buf *, struct scsi_link *); int iha_init_tulip(struct iha_softc *); diff --git a/sys/dev/ic/trm.c b/sys/dev/ic/trm.c index dfccb55f07d..9d226e2d6a1 100644 --- a/sys/dev/ic/trm.c +++ b/sys/dev/ic/trm.c @@ -1,4 +1,4 @@ -/* $OpenBSD: trm.c,v 1.38 2020/02/06 19:17:54 krw Exp $ +/* $OpenBSD: trm.c,v 1.39 2020/02/15 18:02:00 krw Exp $ * ------------------------------------------------------------ * O.S : OpenBSD * File Name : trm.c @@ -61,8 +61,6 @@ /* #define TRM_DEBUG0 */ -void trm_minphys(struct buf *, struct scsi_link *); - void trm_initSRB(struct trm_scsi_req_q *); void trm_check_eeprom(struct trm_adapter_nvram *, bus_space_tag_t, bus_space_handle_t); @@ -134,7 +132,7 @@ struct cfdriver trm_cd = { }; struct scsi_adapter trm_switch = { - trm_scsi_cmd, trm_minphys, NULL, NULL, NULL + trm_scsi_cmd, NULL, NULL, NULL, NULL }; /* @@ -2352,21 +2350,6 @@ trm_linkSRB(struct trm_softc *sc) /* * ------------------------------------------------------------ - * Function : trm_minphys - * Purpose : limited by the number of segments in the dma segment list - * Inputs : *buf - * ------------------------------------------------------------ - */ -void -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; - } -} - -/* - * ------------------------------------------------------------ * Function : trm_initACB * Purpose : initialize the internal structures for a given SCSI host * Inputs : diff --git a/sys/dev/ic/twe.c b/sys/dev/ic/twe.c index 61637da28cb..6b6a8a6f30a 100644 --- a/sys/dev/ic/twe.c +++ b/sys/dev/ic/twe.c @@ -1,4 +1,4 @@ -/* $OpenBSD: twe.c,v 1.50 2020/01/26 00:53:31 krw Exp $ */ +/* $OpenBSD: twe.c,v 1.51 2020/02/15 18:02:00 krw Exp $ */ /* * Copyright (c) 2000-2002 Michael Shalayeff. All rights reserved. @@ -65,7 +65,7 @@ struct cfdriver twe_cd = { void twe_scsi_cmd(struct scsi_xfer *); struct scsi_adapter twe_switch = { - twe_scsi_cmd, twe_minphys, NULL, NULL, NULL + twe_scsi_cmd, NULL, NULL, NULL, NULL }; void *twe_get_ccb(void *); @@ -753,13 +753,6 @@ twe_done(sc, ccb) } void -twe_minphys(struct buf *bp, struct scsi_link *sl) -{ - if (bp->b_bcount > TWE_MAXFER) - bp->b_bcount = TWE_MAXFER; -} - -void twe_copy_internal_data(xs, v, size) struct scsi_xfer *xs; void *v; diff --git a/sys/dev/ic/twevar.h b/sys/dev/ic/twevar.h index 11724b6e529..8b34888991b 100644 --- a/sys/dev/ic/twevar.h +++ b/sys/dev/ic/twevar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: twevar.h,v 1.12 2020/01/27 02:02:28 krw Exp $ */ +/* $OpenBSD: twevar.h,v 1.13 2020/02/15 18:02:00 krw Exp $ */ /* * Copyright (c) 2000 Michael Shalayeff @@ -87,6 +87,5 @@ struct twe_softc { #define TWE_UNLOCK(sc, lock) splx(lock) typedef int twe_lock_t; -void twe_minphys(struct buf *, struct scsi_link *); 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 94863f0a31e..315adeffe88 100644 --- a/sys/dev/ic/uha.c +++ b/sys/dev/ic/uha.c @@ -1,4 +1,4 @@ -/* $OpenBSD: uha.c,v 1.29 2020/01/26 00:53:31 krw Exp $ */ +/* $OpenBSD: uha.c,v 1.30 2020/02/15 18:02:00 krw Exp $ */ /* $NetBSD: uha.c,v 1.3 1996/10/13 01:37:29 christos Exp $ */ #undef UHADEBUG @@ -78,11 +78,10 @@ void uha_reset_mscp(struct uha_softc *, struct uha_mscp *); void uha_mscp_free(void *, void *); void *uha_mscp_alloc(void *); -void uha_minphys(struct buf *, struct scsi_link *); void uha_scsi_cmd(struct scsi_xfer *); struct scsi_adapter uha_switch = { - uha_scsi_cmd, uha_minphys, NULL, NULL, NULL + uha_scsi_cmd, NULL, NULL, NULL, NULL }; struct cfdriver uha_cd = { @@ -260,13 +259,6 @@ uha_done(sc, mscp) scsi_done(xs); } -void -uha_minphys(struct buf *bp, struct scsi_link *sl) -{ - if (bp->b_bcount > ((UHA_NSEG - 1) << PGSHIFT)) - bp->b_bcount = ((UHA_NSEG - 1) << PGSHIFT); -} - /* * start a scsi operation given the command and the data address. Also * needs the unit, target and lu. |