Date: Wed, 22 Oct 2003 09:05:44 -0700 (PDT) From: Sam Leffler <sam@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 40167 for review Message-ID: <200310221605.h9MG5ifv002011@repoman.freebsd.org>
index | next in thread | raw e-mail
http://perforce.freebsd.org/chv.cgi?CH=40167 Change 40167 by sam@sam_ebb on 2003/10/22 09:05:25 IFC @ 40166 Affected files ... .. //depot/projects/netperf/sys/amd64/amd64/amd64_mem.c#3 integrate .. //depot/projects/netperf/sys/amd64/amd64/tsc.c#4 integrate .. //depot/projects/netperf/sys/compat/linux/linux_misc.c#5 integrate .. //depot/projects/netperf/sys/compat/linux/linux_uid16.c#2 integrate .. //depot/projects/netperf/sys/contrib/ngatm/FREEBSD-upgrade#1 branch .. //depot/projects/netperf/sys/contrib/ngatm/netnatm/misc/unimsg_common.c#1 branch .. //depot/projects/netperf/sys/contrib/ngatm/netnatm/saal/saal_sscfu.c#1 branch .. //depot/projects/netperf/sys/contrib/ngatm/netnatm/saal/saal_sscop.c#1 branch .. //depot/projects/netperf/sys/contrib/ngatm/netnatm/saal/sscfu.h#1 branch .. //depot/projects/netperf/sys/contrib/ngatm/netnatm/saal/sscfudef.h#1 branch .. //depot/projects/netperf/sys/contrib/ngatm/netnatm/saal/sscfupriv.h#1 branch .. //depot/projects/netperf/sys/contrib/ngatm/netnatm/saal/sscop.h#1 branch .. //depot/projects/netperf/sys/contrib/ngatm/netnatm/saal/sscopdef.h#1 branch .. //depot/projects/netperf/sys/contrib/ngatm/netnatm/saal/sscoppriv.h#1 branch .. //depot/projects/netperf/sys/contrib/ngatm/netnatm/unimsg.h#1 branch .. //depot/projects/netperf/sys/dev/aac/aac_disk.c#4 integrate .. //depot/projects/netperf/sys/dev/ata/ata-all.h#4 integrate .. //depot/projects/netperf/sys/dev/ata/ata-chipset.c#6 integrate .. //depot/projects/netperf/sys/dev/ata/ata-disk.c#5 integrate .. //depot/projects/netperf/sys/dev/ata/ata-dma.c#8 integrate .. //depot/projects/netperf/sys/dev/ata/ata-lowlevel.c#10 integrate .. //depot/projects/netperf/sys/dev/ata/ata-pci.c#6 integrate .. //depot/projects/netperf/sys/dev/ath/if_ath.c#28 integrate .. //depot/projects/netperf/sys/dev/isp/isp_freebsd.h#3 integrate .. //depot/projects/netperf/sys/dev/pci/pci_pci.c#4 integrate .. //depot/projects/netperf/sys/geom/geom_io.c#7 integrate .. //depot/projects/netperf/sys/i386/i386/i686_mem.c#4 integrate .. //depot/projects/netperf/sys/i386/i386/tsc.c#5 integrate .. //depot/projects/netperf/sys/i386/pci/pci_cfgreg.c#4 integrate .. //depot/projects/netperf/sys/ia64/ia64/machdep.c#13 integrate .. //depot/projects/netperf/sys/ia64/include/proc.h#2 integrate .. //depot/projects/netperf/sys/kern/init_sysent.c#4 integrate .. //depot/projects/netperf/sys/kern/kern_exec.c#7 integrate .. //depot/projects/netperf/sys/kern/kern_mib.c#3 integrate .. //depot/projects/netperf/sys/kern/kern_poll.c#6 integrate .. //depot/projects/netperf/sys/kern/sched_ule.c#11 integrate .. //depot/projects/netperf/sys/kern/subr_mbuf.c#7 integrate .. //depot/projects/netperf/sys/kern/subr_smp.c#2 integrate .. //depot/projects/netperf/sys/kern/subr_witness.c#4 integrate .. //depot/projects/netperf/sys/kern/sys_pipe.c#8 integrate .. //depot/projects/netperf/sys/kern/syscalls.c#4 integrate .. //depot/projects/netperf/sys/kern/syscalls.master#4 integrate .. //depot/projects/netperf/sys/kern/sysv_msg.c#3 integrate .. //depot/projects/netperf/sys/kern/sysv_sem.c#3 integrate .. //depot/projects/netperf/sys/kern/sysv_shm.c#3 integrate .. //depot/projects/netperf/sys/kern/uipc_socket.c#4 integrate .. //depot/projects/netperf/sys/kern/uipc_socket2.c#4 integrate .. //depot/projects/netperf/sys/kern/vfs_aio.c#3 integrate .. //depot/projects/netperf/sys/kern/vfs_bio.c#11 integrate .. //depot/projects/netperf/sys/kern/vfs_init.c#2 integrate .. //depot/projects/netperf/sys/net/if.c#8 integrate .. //depot/projects/netperf/sys/netgraph/ng_base.c#2 integrate .. //depot/projects/netperf/sys/netgraph/ng_message.h#2 integrate .. //depot/projects/netperf/sys/netinet/tcp_subr.c#4 integrate .. //depot/projects/netperf/sys/netinet/tcp_syncache.c#5 integrate .. //depot/projects/netperf/sys/netinet6/ah_core.c#6 integrate .. //depot/projects/netperf/sys/netinet6/esp_input.c#3 integrate .. //depot/projects/netperf/sys/netinet6/frag6.c#5 integrate .. //depot/projects/netperf/sys/netinet6/icmp6.c#8 integrate .. //depot/projects/netperf/sys/netinet6/in6.c#10 integrate .. //depot/projects/netperf/sys/netinet6/in6.h#3 integrate .. //depot/projects/netperf/sys/netinet6/in6_proto.c#6 integrate .. //depot/projects/netperf/sys/netinet6/in6_src.c#7 integrate .. //depot/projects/netperf/sys/netinet6/in6_var.h#4 integrate .. //depot/projects/netperf/sys/netinet6/ip6_forward.c#9 integrate .. //depot/projects/netperf/sys/netinet6/ip6_input.c#11 integrate .. //depot/projects/netperf/sys/netinet6/ip6_mroute.c#5 integrate .. //depot/projects/netperf/sys/netinet6/ip6_output.c#16 integrate .. //depot/projects/netperf/sys/netinet6/ip6_var.h#6 integrate .. //depot/projects/netperf/sys/netinet6/ipsec.c#5 integrate .. //depot/projects/netperf/sys/netinet6/mld6.c#3 integrate .. //depot/projects/netperf/sys/netinet6/nd6_nbr.c#5 integrate .. //depot/projects/netperf/sys/netinet6/scope6.c#5 integrate .. //depot/projects/netperf/sys/pccard/pcic.c#3 integrate .. //depot/projects/netperf/sys/pccard/pcic_pci.c#3 integrate .. //depot/projects/netperf/sys/security/mac_lomac/mac_lomac.c#3 integrate .. //depot/projects/netperf/sys/sys/buf.h#5 integrate .. //depot/projects/netperf/sys/sys/syscall.h#4 integrate .. //depot/projects/netperf/sys/sys/syscall.mk#4 integrate .. //depot/projects/netperf/sys/sys/sysctl.h#4 integrate .. //depot/projects/netperf/sys/sys/sysproto.h#4 integrate .. //depot/projects/netperf/sys/vm/vm_page.c#9 integrate .. //depot/projects/netperf/sys/vm/vm_page.h#5 integrate .. //depot/projects/netperf/sys/vm/vm_pageout.c#9 integrate Differences ... ==== //depot/projects/netperf/sys/amd64/amd64/amd64_mem.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/amd64_mem.c,v 1.21 2003/08/23 00:27:58 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/amd64_mem.c,v 1.22 2003/10/21 18:28:33 silby Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -65,7 +65,7 @@ static int mtrrs_disabled; TUNABLE_INT("machdep.disable_mtrrs", &mtrrs_disabled); -SYSCTL_INT(_machdep, OID_AUTO, disable_mtrrs, CTLFLAG_RD, +SYSCTL_INT(_machdep, OID_AUTO, disable_mtrrs, CTLFLAG_RDTUN, &mtrrs_disabled, 0, "Disable amd64 MTRRs."); static void amd64_mrinit(struct mem_range_softc *sc); ==== //depot/projects/netperf/sys/amd64/amd64/tsc.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/tsc.c,v 1.203 2003/09/23 00:18:45 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/tsc.c,v 1.204 2003/10/21 18:28:33 silby Exp $"); #include "opt_clock.h" @@ -46,7 +46,7 @@ #ifdef SMP static int smp_tsc; -SYSCTL_INT(_kern_timecounter, OID_AUTO, smp_tsc, CTLFLAG_RD, &smp_tsc, 0, +SYSCTL_INT(_kern_timecounter, OID_AUTO, smp_tsc, CTLFLAG_RDTUN, &smp_tsc, 0, "Indicates whether the TSC is safe to use in SMP mode"); TUNABLE_INT("kern.timecounter.smp_tsc", &smp_tsc); #endif ==== //depot/projects/netperf/sys/compat/linux/linux_misc.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.148 2003/09/07 13:03:13 bde Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.149 2003/10/21 11:00:33 tjr Exp $"); #include "opt_mac.h" @@ -989,7 +989,7 @@ struct proc *p; ngrp = args->gidsetsize; - if (ngrp >= NGROUPS) + if (ngrp < 0 || ngrp >= NGROUPS) return (EINVAL); error = copyin(args->grouplist, linux_gidset, ngrp * sizeof(l_gid_t)); if (error) ==== //depot/projects/netperf/sys/compat/linux/linux_uid16.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_uid16.c,v 1.11 2003/06/10 21:27:40 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_uid16.c,v 1.12 2003/10/21 11:00:33 tjr Exp $"); #include <sys/param.h> #include <sys/lock.h> @@ -100,7 +100,7 @@ #endif ngrp = args->gidsetsize; - if (ngrp >= NGROUPS) + if (ngrp < 0 || ngrp >= NGROUPS) return (EINVAL); error = copyin(args->gidset, linux_gidset, ngrp * sizeof(l_gid16_t)); if (error) ==== //depot/projects/netperf/sys/dev/aac/aac_disk.c#4 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/aac/aac_disk.c,v 1.35 2003/08/24 17:48:01 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aac/aac_disk.c,v 1.36 2003/10/21 18:28:33 silby Exp $"); #include "opt_aac.h" @@ -91,7 +91,7 @@ TUNABLE_INT("hw.aac.iosize_max", &aac_iosize_max); SYSCTL_DECL(_hw_aac); -SYSCTL_UINT(_hw_aac, OID_AUTO, iosize_max, CTLFLAG_RD, &aac_iosize_max, 0, +SYSCTL_UINT(_hw_aac, OID_AUTO, iosize_max, CTLFLAG_RDTUN, &aac_iosize_max, 0, "Max I/O size per transfer to an array"); /* ==== //depot/projects/netperf/sys/dev/ata/ata-all.h#4 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.65 2003/08/25 11:13:04 sos Exp $ + * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.66 2003/10/21 19:20:36 sos Exp $ */ /* ATA register defines */ @@ -247,14 +247,16 @@ bus_addr_t mdmatab; /* bus address of dmatab */ u_int32_t alignment; /* DMA engine alignment */ u_int32_t max_iosize; /* DMA engine max IO size */ + u_int32_t cur_iosize; /* DMA engine current IO size */ int flags; #define ATA_DMA_ACTIVE 0x01 /* DMA transfer in progress */ #define ATA_DMA_READ 0x02 /* transaction is a read */ void (*alloc)(struct ata_channel *ch); void (*free)(struct ata_channel *ch); - int (*setup)(struct ata_device *atadev, caddr_t data, int32_t count); - int (*start)(struct ata_channel *ch, caddr_t data, int32_t count, int dir); + int (*load)(struct ata_device *atadev, caddr_t data, int32_t count,int dir); + int (*unload)(struct ata_channel *ch); + int (*start)(struct ata_channel *ch); int (*stop)(struct ata_channel *ch); }; ==== //depot/projects/netperf/sys/dev/ata/ata-chipset.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.39 2003/09/08 13:55:05 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.41 2003/10/21 19:20:36 sos Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -90,10 +90,10 @@ static void ata_promise_mio_intr(void *); static void ata_promise_setmode(struct ata_device *, int); static void ata_promise_new_dmainit(struct ata_channel *); -static int ata_promise_new_dmastart(struct ata_channel *, caddr_t, int32_t,int); +static int ata_promise_new_dmastart(struct ata_channel *); static int ata_promise_new_dmastop(struct ata_channel *); static void ata_promise_mio_dmainit(struct ata_channel *); -static int ata_promise_mio_dmastart(struct ata_channel *, caddr_t, int32_t,int); +static int ata_promise_mio_dmastart(struct ata_channel *); static int ata_promise_mio_dmastop(struct ata_channel *); static int ata_serverworks_chipinit(device_t); static void ata_serverworks_setmode(struct ata_device *, int); @@ -508,8 +508,10 @@ u_int32_t udmatiming[] = { 0x00921250, 0x00911140, 0x00911030 }; int error; + atadev->channel->dma->alignment = 16; + atadev->channel->dma->max_iosize = 63 * 1024; + mode = ata_limit_mode(atadev, mode, ATA_UDMA2); - atadev->channel->dma->alignment = 16; error = ata_controlcmd(atadev, ATA_SETFEATURES, ATA_SF_SETXFER, 0, mode); @@ -955,7 +957,7 @@ u_int32_t udmatiming[] = { 0x80921250, 0x80911140, 0x80911030 }; int error; - atadev->channel->dma->alignment = 4; + atadev->channel->dma->alignment = 16; atadev->channel->dma->max_iosize = 63 * 1024; mode = ata_limit_mode(atadev, mode, ATA_UDMA2); @@ -1358,27 +1360,25 @@ } static int -ata_promise_new_dmastart(struct ata_channel *ch, - caddr_t data, int32_t count, int dir) +ata_promise_new_dmastart(struct ata_channel *ch) { struct ata_pci_controller *ctlr = device_get_softc(device_get_parent(ch->dev)); - int error; - if ((error = ata_dmastart(ch, data, count, dir))) - return error; if (ch->flags & ATA_48BIT_ACTIVE) { ATA_OUTB(ctlr->r_io1, 0x11, ATA_INB(ctlr->r_io1, 0x11) | (ch->unit ? 0x08 : 0x02)); ATA_OUTL(ctlr->r_io1, 0x20, - (dir ? 0x05000000 : 0x06000000) | (count >> 1)); + ((ch->dma->flags & ATA_DMA_READ) ? 0x05000000 : 0x06000000) | + (ch->dma->cur_iosize >> 1)); } ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) | (ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR))); ATA_IDX_OUTL(ch, ATA_BMDTP_PORT, ch->dma->mdmatab); ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, - (dir ? ATA_BMCMD_WRITE_READ : 0) | ATA_BMCMD_START_STOP); - return error; + ((ch->dma->flags & ATA_DMA_READ) ? ATA_BMCMD_WRITE_READ : 0) | + ATA_BMCMD_START_STOP); + return 0; } static int @@ -1397,7 +1397,6 @@ ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP); ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR); - ata_dmastop(ch); return error; } @@ -1412,19 +1411,13 @@ } static int -ata_promise_mio_dmastart(struct ata_channel *ch, - caddr_t data, int32_t count, int dir) +ata_promise_mio_dmastart(struct ata_channel *ch) { - int error; - - if ((error = ata_dmastart(ch, data, count, dir))) - return error; - ATA_IDX_OUTL(ch, ATA_BMDTP_PORT, ch->dma->mdmatab); ATA_IDX_OUTL(ch, ATA_BMCTL_PORT, (ATA_IDX_INL(ch, ATA_BMCTL_PORT) & ~0x000000c0) | - ((dir) ? 0x00000080 : 0x000000c0)); - return error; + ((ch->dma->flags & ATA_DMA_READ) ? 0x00000080 : 0x000000c0)); + return 0; } static int @@ -1432,7 +1425,7 @@ { ATA_IDX_OUTL(ch, ATA_BMCTL_PORT, ATA_IDX_INL(ch, ATA_BMCTL_PORT) & ~0x00000080); - return ata_dmastop(ch); + return 0; } /* ==== //depot/projects/netperf/sys/dev/ata/ata-disk.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.160 2003/10/12 12:35:44 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.161 2003/10/21 18:28:34 silby Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -69,9 +69,9 @@ /* sysctl vars */ SYSCTL_DECL(_hw_ata); -SYSCTL_INT(_hw_ata, OID_AUTO, ata_dma, CTLFLAG_RD, &ata_dma, 0, +SYSCTL_INT(_hw_ata, OID_AUTO, ata_dma, CTLFLAG_RDTUN, &ata_dma, 0, "ATA disk DMA mode control"); -SYSCTL_INT(_hw_ata, OID_AUTO, wc, CTLFLAG_RD, &ata_wc, 0, +SYSCTL_INT(_hw_ata, OID_AUTO, wc, CTLFLAG_RDTUN, &ata_wc, 0, "ATA disk write caching"); void ==== //depot/projects/netperf/sys/dev/ata/ata-dma.c#8 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.121 2003/10/07 13:48:55 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.122 2003/10/21 19:20:37 sos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -49,7 +49,8 @@ static void ata_dmaalloc(struct ata_channel *); static void ata_dmafree(struct ata_channel *); static void ata_dmasetupd_cb(void *, bus_dma_segment_t *, int, int); -static int ata_dmasetup(struct ata_device *, caddr_t, int32_t); +static int ata_dmaload(struct ata_device *, caddr_t, int32_t, int); +static int ata_dmaunload(struct ata_channel *); /* local vars */ static MALLOC_DEFINE(M_ATADMA, "ATA DMA", "ATA driver DMA"); @@ -70,9 +71,8 @@ if ((ch->dma = malloc(sizeof(struct ata_dma), M_ATADMA, M_NOWAIT|M_ZERO))) { ch->dma->alloc = ata_dmaalloc; ch->dma->free = ata_dmafree; - ch->dma->setup = ata_dmasetup; - ch->dma->start = ata_dmastart; - ch->dma->stop = ata_dmastop; + ch->dma->load = ata_dmaload; + ch->dma->unload = ata_dmaunload; ch->dma->alignment = 2; ch->dma->max_iosize = 64*1024; } @@ -194,38 +194,35 @@ } static int -ata_dmasetup(struct ata_device *atadev, caddr_t data, int32_t count) +ata_dmaload(struct ata_device *atadev, caddr_t data, int32_t count, int dir) { struct ata_channel *ch = atadev->channel; + struct ata_dmasetup_data_cb_args cba; - if (((uintptr_t)data & (ch->dma->alignment - 1)) || - (count & (ch->dma->alignment - 1))) { - ata_prtdev(atadev, "FAILURE - non aligned DMA transfer attempted\n"); + if (ch->dma->flags & ATA_DMA_ACTIVE) { + ata_prtdev(atadev, "FAILURE - already active DMA on this device\n"); return -1; } if (!count) { ata_prtdev(atadev, "FAILURE - zero length DMA transfer attempted\n"); return -1; } + if (((uintptr_t)data & (ch->dma->alignment - 1)) || + (count & (ch->dma->alignment - 1))) { + ata_prtdev(atadev, "FAILURE - non aligned DMA transfer attempted\n"); + return -1; + } if (count > ch->dma->max_iosize) { ata_prtdev(atadev, "FAILURE - oversized DMA transfer attempted %d > %d\n", count, ch->dma->max_iosize); return -1; } - return 0; -} -int -ata_dmastart(struct ata_channel *ch, caddr_t data, int32_t count, int dir) -{ - struct ata_dmasetup_data_cb_args cba; + cba.dmatab = ch->dma->dmatab; - if (ch->dma->flags & ATA_DMA_ACTIVE) - panic("ata_dmasetup: transfer active on this device!"); + bus_dmamap_sync(ch->dma->cdmatag, ch->dma->cdmamap, BUS_DMASYNC_PREWRITE); - cba.dmatab = ch->dma->dmatab; - bus_dmamap_sync(ch->dma->cdmatag, ch->dma->cdmamap, BUS_DMASYNC_PREWRITE); if (bus_dmamap_load(ch->dma->ddmatag, ch->dma->ddmamap, data, count, ata_dmasetupd_cb, &cba, 0) || cba.error) return -1; @@ -233,12 +230,14 @@ bus_dmamap_sync(ch->dma->ddmatag, ch->dma->ddmamap, dir ? BUS_DMASYNC_PREREAD : BUS_DMASYNC_PREWRITE); + ch->dma->cur_iosize = count; ch->dma->flags = dir ? (ATA_DMA_ACTIVE | ATA_DMA_READ) : ATA_DMA_ACTIVE; + return 0; } int -ata_dmastop(struct ata_channel *ch) +ata_dmaunload(struct ata_channel *ch) { bus_dmamap_sync(ch->dma->cdmatag, ch->dma->cdmamap, BUS_DMASYNC_POSTWRITE); @@ -247,6 +246,8 @@ BUS_DMASYNC_POSTREAD : BUS_DMASYNC_POSTWRITE); bus_dmamap_unload(ch->dma->ddmatag, ch->dma->ddmamap); + ch->dma->cur_iosize = 0; ch->dma->flags = 0; + return 0; } ==== //depot/projects/netperf/sys/dev/ata/ata-lowlevel.c#10 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.20 2003/10/20 13:44:33 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.22 2003/10/21 19:25:20 sos Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -111,10 +111,11 @@ /* ATA DMA data transfer commands */ case ATA_R_DMA: - /* check sanity and setup DMA engine */ - if (request->device->channel->dma->setup(request->device, - request->data, - request->bytecount)) { + /* check sanity, setup SG list and DMA engine */ + if (request->device->channel->dma->load(request->device, + request->data, + request->bytecount, + request->flags & ATA_R_READ)) { ata_prtdev(request->device, "setting up DMA failed\n"); request->result = EIO; break; @@ -130,10 +131,7 @@ } /* start DMA engine */ - if (request->device->channel->dma->start(request->device->channel, - request->data, - request->bytecount, - request->flags & ATA_R_READ)) { + if (request->device->channel->dma->start(request->device->channel)) { ata_prtdev(request->device, "error starting DMA\n"); request->result = EIO; break; @@ -208,10 +206,11 @@ break; } - /* check sanity and setup DMA engine */ - if (request->device->channel->dma->setup(request->device, - request->data, - request->bytecount)) { + /* check sanity, setup SG list and DMA engine */ + if (request->device->channel->dma->load(request->device, + request->data, + request->bytecount, + request->flags & ATA_R_READ)) { ata_prtdev(request->device, "setting up DMA failed\n"); request->result = EIO; break; @@ -253,10 +252,7 @@ ATA_PROTO_ATAPI_12 ? 6 : 8); /* start DMA engine */ - if (request->device->channel->dma->start(request->device->channel, - request->data, - request->bytecount, - request->flags & ATA_R_READ)) { + if (request->device->channel->dma->start(request->device->channel)) { request->result = EIO; break; } @@ -266,6 +262,8 @@ } /* request finish here */ + if (request->device->channel->dma->flags & ATA_DMA_ACTIVE) + request->device->channel->dma->unload(request->device->channel); request->device->channel->running = NULL; return ATA_OP_FINISHED; } @@ -373,6 +371,9 @@ else request->donecount = request->bytecount; + /* release SG list etc */ + ch->dma->unload(ch); + /* done with HW */ break; @@ -458,6 +459,7 @@ ata_prtdev(request->device, "unknown transfer phase\n"); request->status = ATA_S_ERROR; } + /* done with HW */ break; @@ -474,6 +476,9 @@ request->status |= ATA_S_ERROR; else request->donecount = request->bytecount; + + /* release SG list etc */ + ch->dma->unload(ch); /* done with HW */ break; @@ -481,7 +486,7 @@ ata_finish(request); - /* unlock the ATA HW for new work */ + /* unlock the ATA channel for new work */ ch->running = NULL; ATA_UNLOCK_CH(ch); ch->locking(ch, ATA_LF_UNLOCK); ==== //depot/projects/netperf/sys/dev/ata/ata-pci.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.69 2003/10/20 13:45:11 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.70 2003/10/21 19:20:37 sos Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -411,17 +411,14 @@ } static int -ata_pci_dmastart(struct ata_channel *ch, caddr_t data, int32_t count, int dir) +ata_pci_dmastart(struct ata_channel *ch) { - int error; - - if ((error = ata_dmastart(ch, data, count, dir))) - return error; ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) | (ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR))); ATA_IDX_OUTL(ch, ATA_BMDTP_PORT, ch->dma->mdmatab); ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, - (dir ? ATA_BMCMD_WRITE_READ : 0) | ATA_BMCMD_START_STOP); + ((ch->dma->flags & ATA_DMA_READ) ? ATA_BMCMD_WRITE_READ : 0) | + ATA_BMCMD_START_STOP); return 0; } @@ -434,7 +431,6 @@ ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP); ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR); - ata_dmastop(ch); return error; } ==== //depot/projects/netperf/sys/dev/ath/if_ath.c#28 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.28 2003/10/17 21:58:39 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.29 2003/10/22 04:37:34 sam Exp $"); /* * Driver for the Atheros Wireless LAN controller. ==== //depot/projects/netperf/sys/dev/isp/isp_freebsd.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/isp/isp_freebsd.h,v 1.72 2003/09/13 01:56:45 mjacob Exp $ */ +/* $FreeBSD: src/sys/dev/isp/isp_freebsd.h,v 1.73 2003/10/21 21:52:23 mjacob Exp $ */ /* * Qlogic ISP SCSI Host Adapter FreeBSD Wrapper Definitions * Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002 by Matthew Jacob @@ -76,7 +76,7 @@ #endif #define HANDLE_LOOPSTATE_IN_OUTER_LAYERS 1 -#define ISP_SMPLOCK 1 +/* #define ISP_SMPLOCK 1 */ #ifdef ISP_SMPLOCK #define ISP_IFLAGS INTR_TYPE_CAM | INTR_ENTROPY | INTR_MPSAFE ==== //depot/projects/netperf/sys/dev/pci/pci_pci.c#4 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/pci/pci_pci.c,v 1.27 2003/08/24 17:54:15 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pci/pci_pci.c,v 1.28 2003/10/21 18:28:34 silby Exp $"); /* * PCI:PCI bridge support. @@ -98,7 +98,7 @@ TUNABLE_INT("hw.pci.allow_unsupported_io_range", (int *)&pci_allow_unsupported_io_range); SYSCTL_DECL(_hw_pci); -SYSCTL_INT(_hw_pci, OID_AUTO, allow_unsupported_io_range, CTLFLAG_RD, +SYSCTL_INT(_hw_pci, OID_AUTO, allow_unsupported_io_range, CTLFLAG_RDTUN, &pci_allow_unsupported_io_range, 0, "Allows the PCI Bridge to pass through an unsupported memory range " "assigned by the BIOS."); ==== //depot/projects/netperf/sys/geom/geom_io.c#7 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/geom/geom_io.c,v 1.49 2003/10/19 19:06:54 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/geom_io.c,v 1.50 2003/10/22 06:32:20 phk Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -209,12 +209,9 @@ case BIO_READ: case BIO_WRITE: case BIO_DELETE: - /* Noisily reject zero size sectors */ - if (pp->sectorsize == 0) { - printf("GEOM provider %s has zero sectorsize\n", - pp->name); - return (EDOOFUS); - } + /* Zero sectorsize is a probably lack of media */ + if (pp->sectorsize == 0) + return (ENXIO); /* Reject I/O not on sector boundary */ if (bp->bio_offset % pp->sectorsize) return (EINVAL); ==== //depot/projects/netperf/sys/i386/i386/i686_mem.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/i386/i386/i686_mem.c,v 1.22 2003/08/25 09:48:46 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/i686_mem.c,v 1.23 2003/10/21 18:28:34 silby Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -64,7 +64,7 @@ static int mtrrs_disabled; TUNABLE_INT("machdep.disable_mtrrs", &mtrrs_disabled); -SYSCTL_INT(_machdep, OID_AUTO, disable_mtrrs, CTLFLAG_RD, +SYSCTL_INT(_machdep, OID_AUTO, disable_mtrrs, CTLFLAG_RDTUN, &mtrrs_disabled, 0, "Disable i686 MTRRs."); static void i686_mrinit(struct mem_range_softc *sc); ==== //depot/projects/netperf/sys/i386/i386/tsc.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/i386/i386/tsc.c,v 1.203 2003/08/25 09:48:47 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/tsc.c,v 1.204 2003/10/21 18:28:34 silby Exp $"); #include "opt_clock.h" @@ -47,7 +47,7 @@ #ifdef SMP static int smp_tsc; -SYSCTL_INT(_kern_timecounter, OID_AUTO, smp_tsc, CTLFLAG_RD, &smp_tsc, 0, +SYSCTL_INT(_kern_timecounter, OID_AUTO, smp_tsc, CTLFLAG_RDTUN, &smp_tsc, 0, "Indicates whether the TSC is safe to use in SMP mode"); TUNABLE_INT("kern.timecounter.smp_tsc", &smp_tsc); #endif ==== //depot/projects/netperf/sys/i386/pci/pci_cfgreg.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/i386/pci/pci_cfgreg.c,v 1.105 2003/09/10 06:00:53 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/pci/pci_cfgreg.c,v 1.106 2003/10/21 18:28:34 silby Exp $"); #include <sys/param.h> /* XXX trim includes */ #include <sys/systm.h> @@ -90,7 +90,7 @@ static uint32_t pci_irq_override_mask = PCI_IRQ_OVERRIDE_MASK; TUNABLE_INT("hw.pci.irq_override_mask", &pci_irq_override_mask); -SYSCTL_INT(_hw_pci, OID_AUTO, irq_override_mask, CTLFLAG_RD, +SYSCTL_INT(_hw_pci, OID_AUTO, irq_override_mask, CTLFLAG_RDTUN, &pci_irq_override_mask, PCI_IRQ_OVERRIDE_MASK, "Mask of allowed irqs to try to route when it has no good clue about\n" "which irqs it should use."); ==== //depot/projects/netperf/sys/ia64/ia64/machdep.c#13 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.159 2003/10/18 22:25:07 njl Exp $ + * $FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.160 2003/10/21 01:13:49 marcel Exp $ */ #include "opt_compat.h" @@ -1217,7 +1217,7 @@ bzero(&tf->tf_scratch, sizeof(tf->tf_scratch)); bzero(&tf->tf_scratch_fp, sizeof(tf->tf_scratch_fp)); tf->tf_special.cfm = (1UL<<63) | (3UL<<7) | 3UL; - tf->tf_special.bspstore = td->td_md.md_bspstore; + tf->tf_special.bspstore = IA64_BACKINGSTORE; /* * Copy the arguments onto the kernel register stack so that * they get loaded by the loadrs instruction. Skip over the @@ -1236,7 +1236,7 @@ tf->tf_special.ndirty = (ksttop - kst) << 3; } else { /* epc syscalls (default). */ tf->tf_special.cfm = (3UL<<62) | (3UL<<7) | 3UL; - tf->tf_special.bspstore = td->td_md.md_bspstore + 24; + tf->tf_special.bspstore = IA64_BACKINGSTORE + 24; /* * Write values for out0, out1 and out2 to the user's backing * store and arrange for them to be restored into the user's ==== //depot/projects/netperf/sys/ia64/include/proc.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/ia64/include/proc.h,v 1.10 2003/05/16 21:26:41 marcel Exp $ */ +/* $FreeBSD: src/sys/ia64/include/proc.h,v 1.11 2003/10/21 01:13:49 marcel Exp $ */ /* From: NetBSD: proc.h,v 1.3 1997/04/06 08:47:36 cgd Exp */ /* @@ -37,7 +37,6 @@ struct mdthread { u_long md_flags; - vm_offset_t md_bspstore; /* initial ar.bspstore */ register_t md_savecrit; }; ==== //depot/projects/netperf/sys/kern/init_sysent.c#4 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/init_sysent.c,v 1.157 2003/10/20 16:16:03 dwmalone Exp $ - * created from FreeBSD: src/sys/kern/syscalls.master,v 1.153 2003/09/07 05:42:06 alc Exp + * $FreeBSD: src/sys/kern/init_sysent.c,v 1.158 2003/10/21 07:03:27 scottl Exp $ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.154 2003/10/20 16:16:03 dwmalone Exp */ #include "opt_compat.h" @@ -70,7 +70,7 @@ { SYF_MPSAFE | 0, (sy_call_t *)getppid }, /* 39 = getppid */ { compat(AS(olstat_args),lstat) }, /* 40 = old lstat */ { SYF_MPSAFE | AS(dup_args), (sy_call_t *)dup }, /* 41 = dup */ - { 0, (sy_call_t *)pipe }, /* 42 = pipe */ + { SYF_MPSAFE | 0, (sy_call_t *)pipe }, /* 42 = pipe */ { SYF_MPSAFE | 0, (sy_call_t *)getegid }, /* 43 = getegid */ { SYF_MPSAFE | AS(profil_args), (sy_call_t *)profil }, /* 44 = profil */ { AS(ktrace_args), (sy_call_t *)ktrace }, /* 45 = ktrace */ ==== //depot/projects/netperf/sys/kern/kern_exec.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/kern_exec.c,v 1.230 2003/10/20 05:34:10 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_exec.c,v 1.231 2003/10/21 01:13:49 marcel Exp $"); #include "opt_ktrace.h" #include "opt_mac.h" @@ -873,7 +873,6 @@ sv->sv_stackprot, VM_PROT_ALL, MAP_STACK_GROWS_UP); if (error) return (error); - FIRST_THREAD_IN_PROC(p)->td_md.md_bspstore = stack_addr; #endif /* vm_ssize and vm_maxsaddr are somewhat antiquated concepts in the ==== //depot/projects/netperf/sys/kern/kern_mib.c#3 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/kern_mib.c,v 1.69 2003/08/21 14:47:08 eivind Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_mib.c,v 1.70 2003/10/21 18:28:34 silby Exp $"); #include "opt_posix.h" @@ -110,13 +110,13 @@ SYSCTL_INT(_kern, KERN_OSRELDATE, osreldate, CTLFLAG_RD, &osreldate, 0, "Kernel release date"); -SYSCTL_INT(_kern, KERN_MAXPROC, maxproc, CTLFLAG_RD, +SYSCTL_INT(_kern, KERN_MAXPROC, maxproc, CTLFLAG_RDTUN, &maxproc, 0, "Maximum number of processes"); SYSCTL_INT(_kern, KERN_MAXPROCPERUID, maxprocperuid, CTLFLAG_RW, &maxprocperuid, 0, "Maximum processes allowed per userid"); -SYSCTL_INT(_kern, OID_AUTO, maxusers, CTLFLAG_RD, +SYSCTL_INT(_kern, OID_AUTO, maxusers, CTLFLAG_RDTUN, &maxusers, 0, "Hint for kernel tuning"); SYSCTL_INT(_kern, KERN_ARGMAX, argmax, CTLFLAG_RD, ==== //depot/projects/netperf/sys/kern/kern_poll.c#6 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/kern_poll.c,v 1.13 2003/10/14 18:39:36 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_poll.c,v 1.14 2003/10/20 21:14:24 sam Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -118,7 +118,7 @@ SYSCTL_UINT(_kern_polling, OID_AUTO, burst_max, CTLFLAG_RW, &poll_burst_max, 0, "Max Polling burst size"); -static u_int32_t poll_in_idle_loop=1; /* do we poll in idle loop ? */ +static u_int32_t poll_in_idle_loop=0; /* do we poll in idle loop ? */ SYSCTL_UINT(_kern_polling, OID_AUTO, idle_poll, CTLFLAG_RW, &poll_in_idle_loop, 0, "Enable device polling in idle loop"); ==== //depot/projects/netperf/sys/kern/sched_ule.c#11 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.65 2003/10/16 20:32:57 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.66 2003/10/20 19:55:21 jeff Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1311,6 +1311,8 @@ pctcpu = 0; ke = td->td_kse; + if (ke == NULL) + return (0); mtx_lock_spin(&sched_lock); if (ke->ke_ticks) { ==== //depot/projects/netperf/sys/kern/subr_mbuf.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/subr_mbuf.c,v 1.55 2003/08/16 19:48:52 bmilekic Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_mbuf.c,v 1.56 2003/10/21 18:28:34 silby Exp $"); #include "opt_mac.h" #include "opt_param.h" @@ -310,13 +310,13 @@ * Objects exported by sysctl(8). */ SYSCTL_DECL(_kern_ipc); -SYSCTL_INT(_kern_ipc, OID_AUTO, nmbclusters, CTLFLAG_RD, &nmbclusters, 0, +SYSCTL_INT(_kern_ipc, OID_AUTO, nmbclusters, CTLFLAG_RDTUN, &nmbclusters, 0, "Maximum number of mbuf clusters available"); -SYSCTL_INT(_kern_ipc, OID_AUTO, nmbufs, CTLFLAG_RD, &nmbufs, 0, +SYSCTL_INT(_kern_ipc, OID_AUTO, nmbufs, CTLFLAG_RDTUN, &nmbufs, 0, "Maximum number of mbufs available"); -SYSCTL_INT(_kern_ipc, OID_AUTO, nmbcnt, CTLFLAG_RD, &nmbcnt, 0, +SYSCTL_INT(_kern_ipc, OID_AUTO, nmbcnt, CTLFLAG_RDTUN, &nmbcnt, 0, "Number used to scale kmem_map to ensure sufficient space for counters"); -SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufs, CTLFLAG_RD, &nsfbufs, 0, +SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufs, CTLFLAG_RDTUN, &nsfbufs, 0, "Maximum number of sendfile(2) sf_bufs available"); SYSCTL_INT(_kern_ipc, OID_AUTO, mbuf_wait, CTLFLAG_RW, &mbuf_wait, 0, "Sleep time of mbuf subsystem wait allocations during exhaustion"); ==== //depot/projects/netperf/sys/kern/subr_smp.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/subr_smp.c,v 1.176 2003/06/12 19:46:51 des Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_smp.c,v 1.177 2003/10/21 18:28:34 silby Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -65,7 +65,7 @@ "Number of Auxillary Processors (APs) that were successfully started"); int smp_disabled = 0; /* has smp been disabled? */ -SYSCTL_INT(_kern_smp, OID_AUTO, disabled, CTLFLAG_RD, &smp_disabled, 0, +SYSCTL_INT(_kern_smp, OID_AUTO, disabled, CTLFLAG_RDTUN, &smp_disabled, 0, "SMP has been disabled from the loader"); TUNABLE_INT("kern.smp.disabled", &smp_disabled); ==== //depot/projects/netperf/sys/kern/subr_witness.c#4 (text+ko) ==== @@ -82,7 +82,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.159 2003/09/06 21:06:08 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.160 2003/10/21 18:28:34 silby Exp $"); #include "opt_ddb.h" >>> TRUNCATED FOR MAIL (1000 lines) <<<home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200310221605.h9MG5ifv002011>
