Date: Tue, 15 Apr 2008 05:14:30 GMT From: Sam Leffler <sam@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 140067 for review Message-ID: <200804150514.m3F5EU46024720@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=140067 Change 140067 by sam@sam_ebb on 2008/04/15 05:13:52 IFC @ 140064 Affected files ... .. //depot/projects/vap/sbin/restore/dirs.c#5 integrate .. //depot/projects/vap/sys/amd64/include/pcb_ext.h#3 delete .. //depot/projects/vap/sys/dev/ata/ata-all.h#9 integrate .. //depot/projects/vap/sys/dev/ata/ata-chipset.c#9 integrate .. //depot/projects/vap/sys/dev/ata/ata-dma.c#8 integrate .. //depot/projects/vap/sys/dev/ata/ata-lowlevel.c#8 integrate .. //depot/projects/vap/sys/dev/k8temp/k8temp.c#2 integrate .. //depot/projects/vap/sys/dev/re/if_re.c#11 integrate .. //depot/projects/vap/sys/ia64/conf/GENERIC#9 integrate .. //depot/projects/vap/sys/ia64/conf/SKI#5 integrate .. //depot/projects/vap/sys/ia64/ia64/interrupt.c#9 integrate .. //depot/projects/vap/sys/ia64/ia64/machdep.c#12 integrate .. //depot/projects/vap/sys/ia64/ia64/sapic.c#5 integrate .. //depot/projects/vap/sys/kern/sched_ule.c#13 integrate .. //depot/projects/vap/sys/kern/uipc_socket.c#10 integrate .. //depot/projects/vap/sys/mips/include/ns16550.h#2 delete .. //depot/projects/vap/sys/mips/include/pcb_ext.h#2 delete .. //depot/projects/vap/sys/mips/mips/machdep.c#2 integrate .. //depot/projects/vap/sys/mips/mips/mainbus.c#2 integrate .. //depot/projects/vap/sys/net/bpf.c#12 integrate .. //depot/projects/vap/sys/netinet/sctp_constants.h#3 integrate .. //depot/projects/vap/sys/netinet/sctp_indata.c#4 integrate .. //depot/projects/vap/sys/netinet/sctp_input.c#4 integrate .. //depot/projects/vap/sys/netinet/sctp_output.c#5 integrate .. //depot/projects/vap/sys/netinet/sctp_usrreq.c#4 integrate .. //depot/projects/vap/sys/netinet/sctp_var.h#3 integrate .. //depot/projects/vap/sys/netinet6/sctp6_usrreq.c#4 integrate .. //depot/projects/vap/sys/sys/protosw.h#5 integrate .. //depot/projects/vap/sys/sys/socket.h#8 integrate .. //depot/projects/vap/usr.sbin/ndiscvt/ndiscvt.c#3 integrate .. //depot/projects/vap/usr.sbin/ndiscvt/ndisgen.sh#3 integrate Differences ... ==== //depot/projects/vap/sbin/restore/dirs.c#5 (text+ko) ==== @@ -37,7 +37,7 @@ static char sccsid[] = "@(#)dirs.c 8.7 (Berkeley) 5/1/95"; #endif static const char rcsid[] = - "$FreeBSD: src/sbin/restore/dirs.c,v 1.33 2008/04/11 21:48:13 mckusick Exp $"; + "$FreeBSD: src/sbin/restore/dirs.c,v 1.34 2008/04/14 20:15:53 mckusick Exp $"; #endif /* not lint */ #include <sys/param.h> @@ -120,6 +120,7 @@ static void rst_seekdir(RST_DIR *, long, long); static long rst_telldir(RST_DIR *); static struct direct *searchdir(ino_t, char *); +static void fail_dirtmp(char *); /* * Extract directory contents, building up a directory structure @@ -147,7 +148,7 @@ if (fd == -1 || (df = fdopen(fd, "w")) == NULL) { if (fd != -1) close(fd); - warn("%s - cannot create directory temporary\nfopen", dirfile); + warn("%s: cannot create directory database", dirfile); done(1); } if (genmode != 0) { @@ -160,7 +161,7 @@ if (fd == -1 || (mf = fdopen(fd, "w")) == NULL) { if (fd != -1) close(fd); - warn("%s - cannot create modefile\nfopen", modefile); + warn("%s: cannot create modefile", modefile); done(1); } } @@ -172,25 +173,24 @@ for (;;) { curfile.name = "<directory file - name unknown>"; curfile.action = USING; - if (curfile.mode == 0 || (curfile.mode & IFMT) != IFDIR) { - (void) fclose(df); - dirp = opendirfile(dirfile); - if (dirp == NULL) - fprintf(stderr, "opendirfile: %s\n", - strerror(errno)); - if (mf != NULL) - (void) fclose(mf); - i = dirlookup(dot); - if (i == 0) - panic("Root directory is not on tape\n"); - return; - } + if (curfile.mode == 0 || (curfile.mode & IFMT) != IFDIR) + break; itp = allocinotab(&curfile, seekpt); getfile(putdir, putdirattrs, xtrnull); putent(&nulldir); flushent(); itp->t_size = seekpt - itp->t_seekpt; } + if (fclose(df) != 0) + fail_dirtmp(dirfile); + dirp = opendirfile(dirfile); + if (dirp == NULL) + fprintf(stderr, "opendirfile: %s\n", strerror(errno)); + if (mf != NULL && fclose(mf) != 0) + fail_dirtmp(modefile); + i = dirlookup(dot); + if (i == 0) + panic("Root directory is not on tape\n"); } /* @@ -390,7 +390,8 @@ if (dirloc + dp->d_reclen > DIRBLKSIZ) { ((struct direct *)(dirbuf + prev))->d_reclen = DIRBLKSIZ - prev; - (void) fwrite(dirbuf, 1, DIRBLKSIZ, df); + if (fwrite(dirbuf, DIRBLKSIZ, 1, df) != 1) + fail_dirtmp(dirfile); dirloc = 0; } memmove(dirbuf + dirloc, dp, (long)dp->d_reclen); @@ -405,7 +406,8 @@ flushent(void) { ((struct direct *)(dirbuf + prev))->d_reclen = DIRBLKSIZ - prev; - (void) fwrite(dirbuf, (int)dirloc, 1, df); + if (fwrite(dirbuf, (int)dirloc, 1, df) != 1) + fail_dirtmp(dirfile); seekpt = ftell(df); dirloc = 0; } @@ -417,8 +419,8 @@ putdirattrs(char *buf, long size) { - if (mf != NULL) - (void) fwrite(buf, 1, size, mf); + if (mf != NULL && fwrite(buf, size, 1, mf) != 1) + fail_dirtmp(modefile); } /* @@ -582,6 +584,11 @@ myuid = getuid(); for (;;) { (void) fread((char *)&node, 1, sizeof(struct modeinfo), mf); + if (ferror(mf)) { + warn("%s: cannot read modefile.", modefile); + fprintf(stderr, "Mode, owner, and times not set.\n"); + break; + } if (feof(mf)) break; if (node.extsize > 0) { @@ -596,8 +603,22 @@ } if (bufsize >= node.extsize) { (void) fread(buf, 1, node.extsize, mf); + if (ferror(mf)) { + warn("%s: cannot read modefile.", + modefile); + fprintf(stderr, "Not all external "); + fprintf(stderr, "attributes set.\n"); + break; + } } else { (void) fseek(mf, node.extsize, SEEK_CUR); + if (ferror(mf)) { + warn("%s: cannot seek in modefile.", + modefile); + fprintf(stderr, "Not all directory "); + fprintf(stderr, "attributes set.\n"); + break; + } } } ep = lookupino(node.ino); @@ -639,8 +660,6 @@ } if (bufsize > 0) free(buf); - if (ferror(mf)) - panic("error setting directory modes\n"); (void) fclose(mf); } @@ -734,7 +753,8 @@ node.flags = ctxp->file_flags; node.uid = ctxp->uid; node.gid = ctxp->gid; - (void) fwrite((char *)&node, 1, sizeof(struct modeinfo), mf); + if (fwrite((char *)&node, sizeof(struct modeinfo), 1, mf) != 1) + fail_dirtmp(modefile); return (itp); } @@ -760,9 +780,33 @@ { closemt(); - if (modefile[0] != '#') + if (modefile[0] != '#') { + (void) truncate(modefile, 0); (void) unlink(modefile); - if (dirfile[0] != '#') + } + if (dirfile[0] != '#') { + (void) truncate(dirfile, 0); (void) unlink(dirfile); + } exit(exitcode); } + +/* + * Print out information about the failure to save directory, + * extended attribute, and mode information. + */ +static void +fail_dirtmp(char *filename) +{ + const char *tmpdir; + + warn("%s: cannot write directory database", filename); + if (errno == ENOSPC) { + if ((tmpdir = getenv("TMPDIR")) == NULL || tmpdir[0] == '\0') + tmpdir = _PATH_TMP; + fprintf(stderr, "Try making space in %s, %s\n%s\n", tmpdir, + "or set environment variable TMPDIR", + "to an alternate location with more disk space."); + } + done(1); +} ==== //depot/projects/vap/sys/dev/ata/ata-all.h#9 (text+ko) ==== @@ -23,7 +23,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.131 2008/04/13 16:05:34 sos Exp $ + * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.132 2008/04/14 18:34:24 sos Exp $ */ /* ATA register defines */ @@ -418,8 +418,8 @@ device_t dev; /* device handle */ int unit; /* physical unit */ #define ATA_MASTER 0x00 +#define ATA_SLAVE 0x01 #define ATA_PM 0x0f -#define ATA_SLAVE 0x10 struct ata_params param; /* ata param structure */ int mode; /* current transfermode */ ==== //depot/projects/vap/sys/dev/ata/ata-chipset.c#9 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.215 2008/04/12 17:21:22 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.216 2008/04/14 18:34:24 sos Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -1055,9 +1055,10 @@ { struct ata_pci_controller *ctlr = device_get_softc(device_get_parent(dev)); struct ata_channel *ch = device_get_softc(dev); + int offset = ch->unit << 7; +#ifdef AHCI_PM struct ata_ahci_cmd_tab *ctp = (struct ata_ahci_cmd_tab *)(ch->dma.work + ATA_AHCI_CT_OFFSET); - int offset = ch->unit << 7; int timeout = 0; /* kick controller into sane state if needed */ @@ -1097,7 +1098,7 @@ } while (ATA_INL(ctlr->r_res2, ATA_AHCI_P_TFD + offset) & ATA_S_BUSY); if (bootverbose) device_printf(dev, "BUSY wait time=%dms\n", timeout); - +#endif return ATA_INL(ctlr->r_res2, ATA_AHCI_P_SIG + offset); } @@ -4306,7 +4307,7 @@ ATA_OUTB(ctlr->r_res2, 0x4e8 + (ch->unit << 8), port & 0x0f); /* softreset device on this channel */ - ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_D_LBA | ATA_MASTER); + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_D_LBA | ATA_DEV(ATA_MASTER)); DELAY(10); ATA_IDX_OUTB(ch, ATA_CONTROL, ATA_A_IDS | ATA_A_RESET); ata_udelay(10000); ==== //depot/projects/vap/sys/dev/ata/ata-dma.c#8 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.152 2008/04/11 11:30:27 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.153 2008/04/14 18:34:24 sos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -112,8 +112,8 @@ &ch->dma.work_map)) goto error; - if (bus_dmamap_load(ch->dma.work_tag, ch->dma.work_map ,ch->dma.work, - MAXWSPCSZ, ata_dmasetupc_cb, &dcba, BUS_DMA_NOWAIT) || + if (bus_dmamap_load(ch->dma.work_tag, ch->dma.work_map, ch->dma.work, + MAXWSPCSZ, ata_dmasetupc_cb, &dcba, 0) || dcba.error) { bus_dmamem_free(ch->dma.work_tag, ch->dma.work, ch->dma.work_map); goto error; @@ -202,8 +202,8 @@ } if (bus_dmamap_load(request->dma.sg_tag, request->dma.sg_map, - request->dma.sg, MAXTABSZ, - ata_dmasetupc_cb, &dcba, BUS_DMA_NOWAIT) || dcba.error){ + request->dma.sg, MAXTABSZ, ata_dmasetupc_cb, &dcba, 0)|| + dcba.error) { bus_dmamem_free(request->dma.sg_tag, request->dma.sg, request->dma.sg_map); device_printf(request->dev, "FAILURE - load sg\n"); ==== //depot/projects/vap/sys/dev/ata/ata-lowlevel.c#8 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.81 2008/04/10 13:05:05 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.82 2008/04/14 18:34:24 sos Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -463,7 +463,7 @@ int mask = 0, timeout; /* do we have any signs of ATA/ATAPI HW being present ? */ - ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_D_LBA | ATA_MASTER); + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_D_LBA | ATA_DEV(ATA_MASTER)); DELAY(10); ostat0 = ATA_IDX_INB(ch, ATA_STATUS); if ((ostat0 & 0xf8) != 0xf8 && ostat0 != 0xa5) { @@ -473,7 +473,7 @@ /* in some setups we dont want to test for a slave */ if (!(ch->flags & ATA_NO_SLAVE)) { - ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_D_LBA | ATA_SLAVE); + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_D_LBA | ATA_DEV(ATA_SLAVE)); DELAY(10); ostat1 = ATA_IDX_INB(ch, ATA_STATUS); if ((ostat1 & 0xf8) != 0xf8 && ostat1 != 0xa5) { @@ -493,7 +493,7 @@ return; /* reset (both) devices on this channel */ - ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_D_LBA | ATA_MASTER); + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_D_LBA | ATA_DEV(ATA_MASTER)); DELAY(10); ATA_IDX_OUTB(ch, ATA_CONTROL, ATA_A_IDS | ATA_A_RESET); ata_udelay(10000); @@ -504,7 +504,7 @@ /* wait for BUSY to go inactive */ for (timeout = 0; timeout < 310; timeout++) { if ((mask & 0x01) && (stat0 & ATA_S_BUSY)) { - ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_MASTER); + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_DEV(ATA_MASTER)); DELAY(10); err = ATA_IDX_INB(ch, ATA_ERROR); lsb = ATA_IDX_INB(ch, ATA_CYL_LSB); @@ -534,7 +534,7 @@ if ((mask & 0x02) && (stat1 & ATA_S_BUSY) && !((mask & 0x01) && (stat0 & ATA_S_BUSY))) { - ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_SLAVE); + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_DEV(ATA_SLAVE)); DELAY(10); err = ATA_IDX_INB(ch, ATA_ERROR); lsb = ATA_IDX_INB(ch, ATA_CYL_LSB); @@ -582,9 +582,8 @@ } if (bootverbose) - device_printf(dev, "reset tp2 stat0=%02x stat1=%02x devices=0x%b\n", - stat0, stat1, ch->devices, - "\20\4ATAPI_SLAVE\3ATAPI_MASTER\2ATA_SLAVE\1ATA_MASTER"); + device_printf(dev, "reset tp2 stat0=%02x stat1=%02x devices=0x%x\n", + stat0, stat1, ch->devices); } /* must be called with ATA channel locked and state_mtx held */ ==== //depot/projects/vap/sys/dev/k8temp/k8temp.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/vap/sys/dev/k8temp/k8temp.c#1 $ + * $P4: //depot/projects/vap/sys/dev/k8temp/k8temp.c#2 $ */ /* ==== //depot/projects/vap/sys/dev/re/if_re.c#11 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.113 2008/03/31 04:03:14 yongari Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.114 2008/04/15 00:46:15 yongari Exp $"); /* * RealTek 8139C+/8169/8169S/8110S/8168/8111/8101E PCI NIC driver @@ -1185,23 +1185,17 @@ device_printf(dev, "Using %d MSI messages\n", msic); sc->rl_msi = 1; + /* Explicitly set MSI enable bit. */ + CSR_WRITE_1(sc, RL_EECMD, RL_EE_MODE); + cfg = CSR_READ_1(sc, RL_CFG2); + cfg |= RL_CFG2_MSI; + CSR_WRITE_1(sc, RL_CFG2, cfg); + CSR_WRITE_1(sc, RL_EECMD, 0); } else pci_release_msi(dev); } } - /* For MSI capable hardwares, explicitily set/clear MSI enable bit. */ - if (msic != 0) { - CSR_WRITE_1(sc, RL_EECMD, RL_EE_MODE); - cfg = CSR_READ_1(sc, RL_CFG2); - if (sc->rl_msi != 0) - cfg |= RL_CFG2_MSI; - else - cfg &= ~RL_CFG2_MSI; - CSR_WRITE_1(sc, RL_CFG2, cfg); - CSR_WRITE_1(sc, RL_EECMD, 0); - } - /* Allocate interrupt */ if (sc->rl_msi == 0) { rid = 0; ==== //depot/projects/vap/sys/ia64/conf/GENERIC#9 (text+ko) ==== @@ -18,7 +18,7 @@ # # For hardware specific information check HARDWARE.TXT # -# $FreeBSD: src/sys/ia64/conf/GENERIC,v 1.96 2008/03/27 11:54:18 dfr Exp $ +# $FreeBSD: src/sys/ia64/conf/GENERIC,v 1.97 2008/04/15 05:02:41 marcel Exp $ cpu ITANIUM ident GENERIC @@ -48,7 +48,7 @@ options NFS_ROOT # NFS usable as root device options PROCFS # Process filesystem (/proc) options PSEUDOFS # Pseudo-filesystem framework -options SCHED_4BSD # 4BSD scheduler +options SCHED_ULE # ULE scheduler options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI options SCTP # Stream Control Transmission Protocol options SMP # Symmetric Multi-Processor support ==== //depot/projects/vap/sys/ia64/conf/SKI#5 (text+ko) ==== @@ -17,7 +17,7 @@ # If you are in doubt as to the purpose or necessity of a line, check # first in NOTES. # -# $FreeBSD: src/sys/ia64/conf/SKI,v 1.24 2006/06/15 19:58:53 netchild Exp $ +# $FreeBSD: src/sys/ia64/conf/SKI,v 1.25 2008/04/15 05:02:41 marcel Exp $ cpu ITANIUM ident SKI @@ -35,8 +35,8 @@ options MD_ROOT # MD usable as root device options PROCFS # Process filesystem (/proc) options PSEUDOFS # Pseudo-filesystem framework -options SCHED_4BSD # 4BSD scheduler -#options SCHED_ULE # ULE scheduler +#options SCHED_4BSD # 4BSD scheduler +options SCHED_ULE # ULE scheduler options SKI # Include SKI support code options SOFTUPDATES # Enable FFS soft updates support options SYSVMSG # SYSV-style message queues ==== //depot/projects/vap/sys/ia64/ia64/interrupt.c#9 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/ia64/ia64/interrupt.c,v 1.67 2008/04/11 23:10:39 jeff Exp $ */ +/* $FreeBSD: src/sys/ia64/ia64/interrupt.c,v 1.68 2008/04/15 05:02:42 marcel Exp $ */ /* $NetBSD: interrupt.c,v 1.23 1998/02/24 07:38:01 thorpej Exp $ */ /*- @@ -47,6 +47,7 @@ #include <sys/ktr.h> #include <sys/lock.h> #include <sys/mutex.h> +#include <sys/sched.h> #include <sys/smp.h> #include <sys/sysctl.h> #include <sys/syslog.h> @@ -241,6 +242,9 @@ } else if (vector == ipi_vector[IPI_TEST]) { CTR1(KTR_SMP, "IPI_TEST, cpuid=%d", PCPU_GET(cpuid)); mp_ipi_test++; + } else if (vector == ipi_vector[IPI_PREEMPT]) { + CTR1(KTR_SMP, "IPI_PREEMPT, cpuid=%d", PCPU_GET(cpuid)); + sched_preempt(curthread); #endif } else { ints[PCPU_GET(cpuid)]++; ==== //depot/projects/vap/sys/ia64/ia64/machdep.c#12 (text+ko) ==== @@ -26,12 +26,13 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.235 2008/03/30 23:09:14 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.236 2008/04/15 05:02:42 marcel Exp $"); #include "opt_compat.h" #include "opt_ddb.h" #include "opt_kstack_pages.h" #include "opt_msgbuf.h" +#include "opt_sched.h" #include <sys/param.h> #include <sys/proc.h> @@ -370,6 +371,12 @@ if (PCPU_GET(fpcurthread) == old) old->td_frame->tf_special.psr |= IA64_PSR_DFH; if (!savectx(oldpcb)) { + old->td_lock = mtx; +#if defined(SCHED_ULE) && defined(SMP) + /* td_lock is volatile */ + while (new->td_lock == &blocked_lock) + ; +#endif newpcb = new->td_pcb; oldpcb->pcb_current_pmap = pmap_switch(newpcb->pcb_current_pmap); @@ -890,12 +897,16 @@ { u_int64_t start, end, now; + sched_pin(); + start = ia64_get_itc(); end = start + (itc_frequency * n) / 1000000; /* printf("DELAY from 0x%lx to 0x%lx\n", start, end); */ do { now = ia64_get_itc(); } while (now < end || (now > start && end < start)); + + sched_unpin(); } /* ==== //depot/projects/vap/sys/ia64/ia64/sapic.c#5 (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/sapic.c,v 1.14 2007/07/30 22:29:33 marcel Exp $ + * $FreeBSD: src/sys/ia64/ia64/sapic.c,v 1.15 2008/04/14 20:34:45 marcel Exp $ */ #include "opt_ddb.h" @@ -202,7 +202,7 @@ sapic_read_rte(sa, irq - sa->sa_base, &rte); rte.rte_destination_id = (lid >> 24) & 255; rte.rte_destination_eid = (lid >> 16) & 255; - rte.rte_delivery_mode = SAPIC_DELMODE_LOWPRI; + rte.rte_delivery_mode = SAPIC_DELMODE_FIXED; rte.rte_vector = vector; rte.rte_mask = 0; sapic_write_rte(sa, irq - sa->sa_base, &rte); ==== //depot/projects/vap/sys/kern/sched_ule.c#13 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.240 2008/04/04 01:16:18 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.241 2008/04/15 05:02:42 marcel Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_sched.h" @@ -72,7 +72,7 @@ #include <machine/cpu.h> #include <machine/smp.h> -#if !defined(__i386__) && !defined(__amd64__) && !defined(__powerpc__) && !defined(__arm__) +#if defined(__sparc64__) || defined(__mips__) #error "This architecture is not currently compatible with ULE" #endif ==== //depot/projects/vap/sys/kern/uipc_socket.c#10 (text+ko) ==== @@ -95,7 +95,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.308 2008/03/25 09:38:59 ru Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.309 2008/04/14 18:06:04 rrs Exp $"); #include "opt_inet.h" #include "opt_mac.h" @@ -1859,7 +1859,9 @@ if (!(how == SHUT_RD || how == SHUT_WR || how == SHUT_RDWR)) return (EINVAL); - + if (pr->pr_usrreqs->pru_flush != NULL) { + (*pr->pr_usrreqs->pru_flush)(so, how); + } if (how != SHUT_WR) sorflush(so); if (how != SHUT_RD) ==== //depot/projects/vap/sys/mips/mips/machdep.c#2 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/mips/mips/machdep.c,v 1.1 2008/04/13 07:27:37 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/mips/mips/machdep.c,v 1.2 2008/04/15 02:50:07 imp Exp $"); #include "opt_md.h" #include "opt_ddb.h" @@ -93,7 +93,6 @@ #endif #include <sys/random.h> -#include <machine/ns16550.h> #include <net/if.h> #define BOOTINFO_DEBUG 0 @@ -293,19 +292,6 @@ PCPU_SET(curpcb, thread0.td_pcb); } -#ifdef DEBUG_UART_POLLED -void -init_bootstrap_console() -{ - /* - * Initalize the (temporary) bootstrap console interface, so - * we can use printf until the VM system starts being setup. - * The real console is initialized before then. - */ - uart_post_init(PA_2_K1VA(ADDR_NS16550_UART1)); -} -#endif - struct msgbuf *msgbufp=0; #if 0 ==== //depot/projects/vap/sys/mips/mips/mainbus.c#2 (text+ko) ==== @@ -42,7 +42,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/mips/mips/mainbus.c,v 1.1 2008/04/13 07:27:37 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/mips/mips/mainbus.c,v 1.2 2008/04/15 02:50:07 imp Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -60,11 +60,6 @@ #include <machine/pmap.h> #include <machine/resource.h> -#ifdef DCHU_DEBUG_UART -#include <machine/pltfm.h> -#include <machine/ns16550.h> -#endif - static struct rman irq_rman, port_rman, mem_rman; static int mainbus_probe(device_t); @@ -116,10 +111,6 @@ }; static devclass_t mainbus_devclass; -#ifdef DEBUG_UART -#define printf(s) puts_post(PA_2_K1VA(ADDR_NS16550_UART1), s) -#endif - DRIVER_MODULE(mainbus, root, mainbus_driver, mainbus_devclass, 0, 0); static int @@ -179,9 +170,7 @@ int retval = 0; retval += bus_print_child_header(bus, child); -#ifndef DEBUG_UART retval += printf(" on motherboard\n"); -#endif return (retval); } ==== //depot/projects/vap/sys/net/bpf.c#12 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/net/bpf.c,v 1.191 2008/04/07 02:51:00 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/net/bpf.c,v 1.192 2008/04/15 00:50:01 jkim Exp $"); #include "opt_bpf.h" #include "opt_mac.h" @@ -88,8 +88,6 @@ #define PRINET 26 /* interruptible */ -#define M_SKIP_BPF M_SKIP_FIREWALL - /* * bpf_iflist is a list of BPF interface structures, each corresponding to a * specific DLT. The same network interface might have several BPF interface @@ -843,9 +841,6 @@ mc = m_dup(m, M_DONTWAIT); if (mc != NULL) mc->m_pkthdr.rcvif = ifp; - /* XXX Do not return the same packet twice. */ - if (d->bd_direction == BPF_D_INOUT) - m->m_flags |= M_SKIP_BPF; } else mc = NULL; @@ -1573,9 +1568,12 @@ BPFIF_UNLOCK(bp); } -#define BPF_CHECK_DIRECTION(d, m) \ - if (((d)->bd_direction == BPF_D_IN && (m)->m_pkthdr.rcvif == NULL) || \ - ((d)->bd_direction == BPF_D_OUT && (m)->m_pkthdr.rcvif != NULL)) +#define BPF_CHECK_DIRECTION(d, i) \ + (((d)->bd_direction == BPF_D_IN && (i) == NULL) || \ + ((d)->bd_direction == BPF_D_OUT && (i) != NULL)) +#define BPF_CHECK_DUPLICATE(d, i) \ + ((d)->bd_feedback && \ + (d)->bd_direction == BPF_D_INOUT && (i) == NULL) /* * Incoming linkage from device drivers, when packet is in an mbuf chain. @@ -1588,18 +1586,14 @@ int gottime; struct timeval tv; - if (m->m_flags & M_SKIP_BPF) { - m->m_flags &= ~M_SKIP_BPF; - return; - } - gottime = 0; pktlen = m_length(m, NULL); BPFIF_LOCK(bp); LIST_FOREACH(d, &bp->bif_dlist, bd_next) { - BPF_CHECK_DIRECTION(d, m) + if (BPF_CHECK_DIRECTION(d, m->m_pkthdr.rcvif) || + BPF_CHECK_DUPLICATE(d, m->m_pkthdr.rcvif)) continue; BPFD_LOCK(d); ++d->bd_rcount; @@ -1642,11 +1636,6 @@ int gottime; struct timeval tv; - if (m->m_flags & M_SKIP_BPF) { - m->m_flags &= ~M_SKIP_BPF; - return; - } - gottime = 0; pktlen = m_length(m, NULL); @@ -1662,7 +1651,8 @@ BPFIF_LOCK(bp); LIST_FOREACH(d, &bp->bif_dlist, bd_next) { - BPF_CHECK_DIRECTION(d, m) + if (BPF_CHECK_DIRECTION(d, m->m_pkthdr.rcvif) || + BPF_CHECK_DUPLICATE(d, m->m_pkthdr.rcvif)) continue; BPFD_LOCK(d); ++d->bd_rcount; @@ -1685,6 +1675,7 @@ } #undef BPF_CHECK_DIRECTION +#undef BPF_CHECK_DUPLICATE /* * Move the packet data from interface memory (pkt) into the ==== //depot/projects/vap/sys/netinet/sctp_constants.h#3 (text+ko) ==== @@ -31,7 +31,7 @@ /* $KAME: sctp_constants.h,v 1.17 2005/03/06 16:04:17 itojun Exp $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/netinet/sctp_constants.h,v 1.34 2007/10/30 14:09:23 rrs Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/sctp_constants.h,v 1.35 2008/04/14 14:33:07 rrs Exp $"); #ifndef __sctp_constants_h__ #define __sctp_constants_h__ @@ -190,35 +190,36 @@ #define SCTP_MBUF_IALLOC 91 #define SCTP_MBUF_IFREE 92 #define SCTP_MBUF_ICOPY 93 -#define SCTP_SORCV_FREECTL 94 -#define SCTP_SORCV_DOESCPY 95 -#define SCTP_SORCV_DOESLCK 96 -#define SCTP_SORCV_DOESADJ 97 -#define SCTP_SORCV_BOTWHILE 98 -#define SCTP_SORCV_PASSBF 99 -#define SCTP_SORCV_ADJD 100 -#define SCTP_UNKNOWN_MAX 101 -#define SCTP_RANDY_STUFF 102 -#define SCTP_RANDY_STUFF1 103 -#define SCTP_STRMOUT_LOG_ASSIGN 104 -#define SCTP_STRMOUT_LOG_SEND 105 -#define SCTP_FLIGHT_LOG_DOWN_CA 106 -#define SCTP_FLIGHT_LOG_UP 107 -#define SCTP_FLIGHT_LOG_DOWN_GAP 108 -#define SCTP_FLIGHT_LOG_DOWN_RSND 109 -#define SCTP_FLIGHT_LOG_UP_RSND 110 -#define SCTP_FLIGHT_LOG_DOWN_RSND_TO 111 -#define SCTP_FLIGHT_LOG_DOWN_WP 112 -#define SCTP_FLIGHT_LOG_UP_REVOKE 113 -#define SCTP_FLIGHT_LOG_DOWN_PDRP 114 -#define SCTP_FLIGHT_LOG_DOWN_PMTU 115 -#define SCTP_SACK_LOG_NORMAL 116 -#define SCTP_SACK_LOG_EXPRESS 117 -#define SCTP_MAP_TSN_ENTERS 118 -#define SCTP_THRESHOLD_CLEAR 119 -#define SCTP_THRESHOLD_INCR 120 +#define SCTP_MBUF_SPLIT 94 +#define SCTP_SORCV_FREECTL 95 +#define SCTP_SORCV_DOESCPY 96 +#define SCTP_SORCV_DOESLCK 97 +#define SCTP_SORCV_DOESADJ 98 +#define SCTP_SORCV_BOTWHILE 99 +#define SCTP_SORCV_PASSBF 100 +#define SCTP_SORCV_ADJD 101 +#define SCTP_UNKNOWN_MAX 102 +#define SCTP_RANDY_STUFF 103 +#define SCTP_RANDY_STUFF1 104 +#define SCTP_STRMOUT_LOG_ASSIGN 105 +#define SCTP_STRMOUT_LOG_SEND 106 +#define SCTP_FLIGHT_LOG_DOWN_CA 107 +#define SCTP_FLIGHT_LOG_UP 108 +#define SCTP_FLIGHT_LOG_DOWN_GAP 109 +#define SCTP_FLIGHT_LOG_DOWN_RSND 110 +#define SCTP_FLIGHT_LOG_UP_RSND 111 +#define SCTP_FLIGHT_LOG_DOWN_RSND_TO 112 +#define SCTP_FLIGHT_LOG_DOWN_WP 113 +#define SCTP_FLIGHT_LOG_UP_REVOKE 114 +#define SCTP_FLIGHT_LOG_DOWN_PDRP 115 +#define SCTP_FLIGHT_LOG_DOWN_PMTU 116 +#define SCTP_SACK_LOG_NORMAL 117 +#define SCTP_SACK_LOG_EXPRESS 118 +#define SCTP_MAP_TSN_ENTERS 119 +#define SCTP_THRESHOLD_CLEAR 120 +#define SCTP_THRESHOLD_INCR 121 -#define SCTP_LOG_MAX_TYPES 121 +#define SCTP_LOG_MAX_TYPES 122 /* * To turn on various logging, you must first enable 'options KTR' and * you might want to bump the entires 'options KTR_ENTRIES=80000'. ==== //depot/projects/vap/sys/netinet/sctp_indata.c#4 (text+ko) ==== @@ -31,7 +31,7 @@ /* $KAME: sctp_indata.c,v 1.36 2005/03/06 16:04:17 itojun Exp $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/netinet/sctp_indata.c,v 1.48 2008/01/28 10:25:43 rrs Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/sctp_indata.c,v 1.49 2008/04/14 14:34:29 rrs Exp $"); #include <netinet/sctp_os.h> #include <netinet/sctp_var.h> @@ -582,6 +582,7 @@ /* The incoming sseq is behind where we last delivered? */ SCTPDBG(SCTP_DEBUG_INDATA1, "Duplicate S-SEQ:%d delivered:%d from peer, Abort association\n", control->sinfo_ssn, strm->last_sequence_delivered); +protocol_error: /* * throw it in the stream so it gets cleaned up in * association destruction @@ -659,6 +660,11 @@ * Ok, we did not deliver this guy, find the correct place * to put it on the queue. */ + if ((compare_with_wrap(asoc->cumulative_tsn, + control->sinfo_tsn, MAX_TSN)) || + (control->sinfo_tsn == asoc->cumulative_tsn)) { + goto protocol_error; + } if (TAILQ_EMPTY(&strm->inqueue)) { /* Empty queue */ if (sctp_logging_level & SCTP_STR_LOGGING_ENABLE) { @@ -3343,7 +3349,7 @@ tp1->sent++; } } - } else if (tp1->rec.data.doing_fast_retransmit) { + } else if ((tp1->rec.data.doing_fast_retransmit) && (sctp_cmt_on_off == 0)) { /* * For those that have done a FR we must take * special consideration if we strike. I.e the ==== //depot/projects/vap/sys/netinet/sctp_input.c#4 (text+ko) ==== @@ -31,7 +31,7 @@ /* $KAME: sctp_input.c,v 1.27 2005/03/06 16:04:17 itojun Exp $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/netinet/sctp_input.c,v 1.67 2008/01/31 08:22:24 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/sctp_input.c,v 1.68 2008/04/14 18:13:33 rrs Exp $"); #include <netinet/sctp_os.h> #include <netinet/sctp_var.h> @@ -2182,6 +2182,20 @@ /* out of memory or ?? */ return (NULL); } +#ifdef SCTP_MBUF_LOGGING + if (sctp_logging_level & SCTP_MBUF_LOGGING_ENABLE) { + struct mbuf *mat; + + mat = m_sig; + while (mat) { + if (SCTP_BUF_IS_EXTENDED(mat)) { + sctp_log_mb(mat, SCTP_MBUF_SPLIT); + } + mat = SCTP_BUF_NEXT(mat); + } + } +#endif + /* * compute the signature/digest for the cookie */ @@ -2795,7 +2809,7 @@ } } /* stop the timer */ - sctp_timer_stop(SCTP_TIMER_TYPE_SHUTDOWN, stcb->sctp_ep, stcb, net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_22); + sctp_timer_stop(SCTP_TIMER_TYPE_SHUTDOWNACK, stcb->sctp_ep, stcb, net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_22); SCTP_STAT_INCR_COUNTER32(sctps_shutdown); /* free the TCB */ SCTPDBG(SCTP_DEBUG_INPUT2, @@ -4807,6 +4821,19 @@ SCTP_BUF_NEXT(mm) = SCTP_M_COPYM(m, *offset, SCTP_SIZE32(chk_length), M_DONTWAIT); if (SCTP_BUF_NEXT(mm)) { +#ifdef SCTP_MBUF_LOGGING + if (sctp_logging_level & SCTP_MBUF_LOGGING_ENABLE) { + struct mbuf *mat; + + mat = SCTP_BUF_NEXT(mm); + while (mat) { + if (SCTP_BUF_IS_EXTENDED(mat)) { + sctp_log_mb(mat, SCTP_MBUF_ICOPY); + } + mat = SCTP_BUF_NEXT(mat); + } + } >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804150514.m3F5EU46024720>