From owner-p4-projects@FreeBSD.ORG Sun Nov 14 18:36:56 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CFC7C16A4D1; Sun, 14 Nov 2004 18:36:55 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A32D316A4CE for ; Sun, 14 Nov 2004 18:36:55 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5936943D54 for ; Sun, 14 Nov 2004 18:36:55 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id iAEIatHB005917 for ; Sun, 14 Nov 2004 18:36:55 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id iAEIasWr005914 for perforce@freebsd.org; Sun, 14 Nov 2004 18:36:54 GMT (envelope-from marcel@freebsd.org) Date: Sun, 14 Nov 2004 18:36:54 GMT Message-Id: <200411141836.iAEIasWr005914@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 65110 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 Nov 2004 18:36:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=65110 Change 65110 by marcel@marcel_nfs on 2004/11/14 18:36:36 IFC @65109 Affected files ... .. //depot/projects/uart/arm/arm/genassym.c#2 integrate .. //depot/projects/uart/arm/arm/intr.c#2 integrate .. //depot/projects/uart/arm/arm/irq_dispatch.S#2 integrate .. //depot/projects/uart/arm/arm/pmap.c#4 integrate .. //depot/projects/uart/arm/xscale/i80321/i80321.c#2 integrate .. //depot/projects/uart/boot/common/commands.c#4 integrate .. //depot/projects/uart/compat/svr4/svr4_filio.c#4 integrate .. //depot/projects/uart/compat/svr4/svr4_misc.c#4 integrate .. //depot/projects/uart/conf/NOTES#20 integrate .. //depot/projects/uart/conf/files#34 integrate .. //depot/projects/uart/conf/files.i386#11 integrate .. //depot/projects/uart/conf/kern.post.mk#5 integrate .. //depot/projects/uart/conf/options#15 integrate .. //depot/projects/uart/dev/acpi_support/acpi_asus.c#1 branch .. //depot/projects/uart/dev/acpi_support/acpi_panasonic.c#1 branch .. //depot/projects/uart/dev/acpi_support/acpi_sony.c#1 branch .. //depot/projects/uart/dev/acpi_support/acpi_toshiba.c#1 branch .. //depot/projects/uart/dev/acpica/acpi_pcib.c#6 integrate .. //depot/projects/uart/dev/acpica/acpi_snc.c#1 branch .. //depot/projects/uart/dev/aha/aha_isa.c#5 integrate .. //depot/projects/uart/dev/em/if_em.c#9 integrate .. //depot/projects/uart/dev/em/if_em.h#10 integrate .. //depot/projects/uart/dev/md/md.c#8 integrate .. //depot/projects/uart/dev/pbio/pbio.c#2 integrate .. //depot/projects/uart/dev/sound/pci/maestro.c#8 integrate .. //depot/projects/uart/dev/streams/streams.c#4 integrate .. //depot/projects/uart/dev/usb/ehci.c#7 integrate .. //depot/projects/uart/dev/usb/ohci.c#8 integrate .. //depot/projects/uart/dev/usb/uhci.c#9 integrate .. //depot/projects/uart/dev/usb/usb_port.h#8 integrate .. //depot/projects/uart/fs/devfs/devfs_vnops.c#5 integrate .. //depot/projects/uart/fs/fdescfs/fdesc_vfsops.c#4 integrate .. //depot/projects/uart/fs/fdescfs/fdesc_vnops.c#4 integrate .. //depot/projects/uart/fs/fifofs/fifo_vnops.c#4 integrate .. //depot/projects/uart/fs/unionfs/union_subr.c#4 integrate .. //depot/projects/uart/fs/unionfs/union_vfsops.c#4 integrate .. //depot/projects/uart/fs/unionfs/union_vnops.c#4 integrate .. //depot/projects/uart/i386/acpica/acpi_asus.c#4 integrate .. //depot/projects/uart/i386/include/atomic.h#3 integrate .. //depot/projects/uart/i386/isa/pbio.c#2 delete .. //depot/projects/uart/kern/kern_descrip.c#10 integrate .. //depot/projects/uart/kern/kern_event.c#3 integrate .. //depot/projects/uart/kern/kern_exec.c#8 integrate .. //depot/projects/uart/kern/kern_fork.c#7 integrate .. //depot/projects/uart/kern/sched_ule.c#10 integrate .. //depot/projects/uart/kern/sys_generic.c#5 integrate .. //depot/projects/uart/kern/sys_socket.c#3 integrate .. //depot/projects/uart/kern/sysv_msg.c#4 integrate .. //depot/projects/uart/kern/sysv_sem.c#4 integrate .. //depot/projects/uart/kern/sysv_shm.c#4 integrate .. //depot/projects/uart/kern/tty.c#4 integrate .. //depot/projects/uart/kern/uipc_domain.c#6 integrate .. //depot/projects/uart/kern/uipc_syscalls.c#8 integrate .. //depot/projects/uart/kern/vfs_default.c#6 integrate .. //depot/projects/uart/kern/vfs_subr.c#10 integrate .. //depot/projects/uart/kern/vfs_syscalls.c#9 integrate .. //depot/projects/uart/modules/acpi/Makefile#7 integrate .. //depot/projects/uart/modules/acpi/acpi_snc/Makefile#1 branch .. //depot/projects/uart/netinet/in.c#3 integrate .. //depot/projects/uart/netinet/ip_divert.c#5 integrate .. //depot/projects/uart/nfsserver/nfs_serv.c#3 integrate .. //depot/projects/uart/pci/if_sf.c#6 integrate .. //depot/projects/uart/pci/if_sk.c#7 integrate .. //depot/projects/uart/sys/filedesc.h#4 integrate .. //depot/projects/uart/sys/msg.h#2 integrate .. //depot/projects/uart/sys/pbioio.h#2 delete .. //depot/projects/uart/sys/sem.h#2 integrate .. //depot/projects/uart/sys/shm.h#2 integrate .. //depot/projects/uart/sys/vnode.h#7 integrate .. //depot/projects/uart/ufs/ffs/ffs_vfsops.c#8 integrate Differences ... ==== //depot/projects/uart/arm/arm/genassym.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.2 2004/09/23 22:11:06 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.3 2004/11/12 21:49:05 cognet Exp $"); #include #include #include @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -109,3 +110,6 @@ ASSYM(P_SIGEVENT, P_SIGEVENT); ASSYM(P_PROFIL, P_PROFIL); ASSYM(TRAPFRAMESIZE, sizeof(struct trapframe)); + +ASSYM(MAXCOMLEN, MAXCOMLEN); +ASSYM(NIRQ, NIRQ); ==== //depot/projects/uart/arm/arm/intr.c#2 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.3 2004/09/23 22:09:57 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.4 2004/11/12 21:49:05 cognet Exp $"); #include #include #include @@ -50,7 +50,10 @@ #include #include -struct ithd *ithreads[NIRQ]; +static struct ithd *ithreads[NIRQ]; +static int intrcnt_tab[NIRQ]; +static int intrcnt_index = 0; +static int last_printed = 0; struct arm_intr { driver_intr_t *handler; void *arg; @@ -69,7 +72,8 @@ void arm_handler_execute(void *, int); -void arm_setup_irqhandler(const char *name, void (*hand)(void*), void *arg, +void +arm_setup_irqhandler(const char *name, void (*hand)(void*), void *arg, int irq, int flags, void **cookiep) { struct ithd *cur_ith; @@ -87,6 +91,14 @@ if (error) return; ithreads[irq] = cur_ith; + last_printed += + snprintf(intrnames + last_printed, + MAXCOMLEN + 1, + "irq%d: %s", irq, name); + last_printed++; + intrcnt_tab[irq] = intrcnt_index; + intrcnt_index++; + } if (!(flags & INTR_FAST)) { intr->handler = hand; @@ -120,6 +132,7 @@ arm_mask_irqs(irqnb); while (irqnb != 0) { i = ffs(irqnb) - 1; + intrcnt[intrcnt_tab[i]]++; irqnb &= ~(1U << i); ithd = ithreads[i]; if (!ithd) ==== //depot/projects/uart/arm/arm/irq_dispatch.S#2 (text+ko) ==== @@ -72,7 +72,7 @@ #include #include #include -__FBSDID("$FreeBSD: src/sys/arm/arm/irq_dispatch.S,v 1.2 2004/09/23 22:09:57 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/irq_dispatch.S,v 1.3 2004/11/12 21:49:05 cognet Exp $"); /* * irq_entry: @@ -102,18 +102,13 @@ .align 0 - /* - * XXX Provide intrnames/intrcnt for legacy code, but - * don't actually use them. - */ - .global _C_LABEL(intrnames), _C_LABEL(eintrnames) .global _C_LABEL(intrcnt), _C_LABEL(eintrcnt) _C_LABEL(intrnames): + .space NIRQ * (MAXCOMLEN + 1) _C_LABEL(eintrnames): - - .global _C_LABEL(intrcnt), _C_LABEL(sintrcnt), _C_LABEL(eintrcnt) _C_LABEL(intrcnt): + .space NIRQ * 4 _C_LABEL(eintrcnt): .global _C_LABEL(current_intr_depth) ==== //depot/projects/uart/arm/arm/pmap.c#4 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.17 2004/11/10 22:11:08 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.19 2004/11/13 14:54:31 cognet Exp $"); #include #include #include @@ -1668,6 +1668,8 @@ simple_unlock(&pg->mdpage.pvh_slock); PMAP_HEAD_TO_MAP_UNLOCK(); #endif + if (maskbits & PVF_WRITE) + vm_page_flag_clear(pg, PG_WRITEABLE); return (count); } @@ -1789,6 +1791,8 @@ pg->md.urw_mappings--; else pg->md.uro_mappings--; + if (TAILQ_FIRST(&pg->md.pv_list) == NULL) + vm_page_flag_clear(pg, PG_WRITEABLE); } static struct pv_entry * @@ -1921,9 +1925,6 @@ pvzone = uma_zcreate("PV ENTRY", sizeof (struct pv_entry), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE); uma_prealloc(pvzone, MINPV); - l2table_zone = uma_zcreate("L2 Table", sizeof(struct l2_dtable), - NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, - UMA_ZONE_VM | UMA_ZONE_NOFREE); /* * Now it is safe to enable pv_table recording. */ @@ -2173,6 +2174,11 @@ l2zone = uma_zcreate("L2 Table", L2_TABLE_SIZE_REAL, pmap_l2ptp_ctor, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE); uma_prealloc(l2zone, 4096); + l2table_zone = uma_zcreate("L2 Table", sizeof(struct l2_dtable), + NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, + UMA_ZONE_VM | UMA_ZONE_NOFREE); + uma_prealloc(l2table_zone, 1024); + uma_zone_set_obj(pvzone, &pvzone_obj, pv_entry_max); uma_zone_set_obj(l2zone, &l2zone_obj, pv_entry_max); @@ -3689,6 +3695,7 @@ pmap_acquire_pmap_lock(pm); #endif + vm_page_lock_queues(); pmap_update(pm); if (!pmap_is_current(pm)) { cleanlist_idx = PMAP_REMOVE_CLEAN_LIST_SIZE + 1; @@ -3845,6 +3852,7 @@ pmap_free_l2_bucket(pm, l2b, mappings); } + vm_page_unlock_queues(); if (flushall) cpu_tlb_flushID(); #if 0 ==== //depot/projects/uart/arm/xscale/i80321/i80321.c#2 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.1 2004/09/23 22:45:36 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.2 2004/11/13 15:12:26 cognet Exp $"); #include #include @@ -146,7 +146,6 @@ bus_space_write_4(sc->sc_st, sc->sc_atu_sh, ATU_IALR2, (0xffffffff - (sc->sc_iwin[2].iwin_size - 1)) & 0xffffffc0); - printf("size : %d\n", (sc->sc_iwin[2].iwin_size - 1) / (1024 * 1024)); bus_space_write_4(sc->sc_st, sc->sc_atu_sh, ATU_IATVR2, sc->sc_iwin[2].iwin_xlate); ==== //depot/projects/uart/boot/common/commands.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/common/commands.c,v 1.20 2004/09/29 13:43:55 ru Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/common/commands.c,v 1.22 2004/11/13 17:04:55 ru Exp $"); #include #include @@ -214,12 +214,23 @@ command_commandlist(int argc, char *argv[]) { struct bootblk_command **cmdp; - - printf("Available commands:\n"); + int res; + char name[20]; + + res = 0; + pager_open(); + res = pager_output("Available commands:\n"); SET_FOREACH(cmdp, Xcommand_set) { - if (((*cmdp)->c_name != NULL) && ((*cmdp)->c_desc != NULL)) - printf(" %-15s %s\n", (*cmdp)->c_name, (*cmdp)->c_desc); + if (res) + break; + if (((*cmdp)->c_name != NULL) && ((*cmdp)->c_desc != NULL)) { + sprintf(name, " %-15s ", (*cmdp)->c_name); + pager_output(name); + pager_output((*cmdp)->c_desc); + res = pager_output("\n"); + } } + pager_close(); return(CMD_OK); } @@ -301,7 +312,7 @@ return(CMD_OK); } -COMMAND_SET(echo, "echo", NULL, command_echo); +COMMAND_SET(echo, "echo", "echo arguments", command_echo); static int command_echo(int argc, char *argv[]) @@ -340,7 +351,7 @@ * A passable emulation of the sh(1) command of the same name. */ -COMMAND_SET(read, "read", NULL, command_read); +COMMAND_SET(read, "read", "read input from the terminal", command_read); static int command_read(int argc, char *argv[]) ==== //depot/projects/uart/compat/svr4/svr4_filio.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_filio.c,v 1.32 2004/11/07 15:59:27 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_filio.c,v 1.33 2004/11/13 11:53:00 phk Exp $"); #include #include @@ -211,15 +211,15 @@ switch (cmd) { case SVR4_FIOCLEX: - FILEDESC_LOCK(fdp); + FILEDESC_LOCK_FAST(fdp); fdp->fd_ofileflags[fd] |= UF_EXCLOSE; - FILEDESC_UNLOCK(fdp); + FILEDESC_UNLOCK_FAST(fdp); return 0; case SVR4_FIONCLEX: - FILEDESC_LOCK(fdp); + FILEDESC_LOCK_FAST(fdp); fdp->fd_ofileflags[fd] &= ~UF_EXCLOSE; - FILEDESC_UNLOCK(fdp); + FILEDESC_UNLOCK_FAST(fdp); return 0; case SVR4_FIOGETOWN: ==== //depot/projects/uart/compat/svr4/svr4_misc.c#4 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_misc.c,v 1.74 2004/10/05 18:51:10 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_misc.c,v 1.75 2004/11/13 11:53:00 phk Exp $"); #include "opt_mac.h" @@ -618,10 +618,10 @@ return error; } VREF(vp); - FILEDESC_LOCK(fdp); + FILEDESC_LOCK_FAST(fdp); vpold = fdp->fd_rdir; fdp->fd_rdir = vp; - FILEDESC_UNLOCK(fdp); + FILEDESC_UNLOCK_FAST(fdp); if (vpold != NULL) vrele(vpold); fdrop(fp, td); ==== //depot/projects/uart/conf/NOTES#20 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1287 2004/11/08 19:05:21 phk Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1288 2004/11/12 19:44:30 peter Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -756,7 +756,6 @@ options NFSCLIENT #Network File System client # The rest are optional: -options AUTOFS #Auto File System options CD9660 #ISO 9660 filesystem options FDESCFS #File descriptor filesystem options HPFS #OS/2 File system ==== //depot/projects/uart/conf/files#34 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.962 2004/11/10 19:54:17 markm Exp $ +# $FreeBSD: src/sys/conf/files,v 1.966 2004/11/12 04:48:24 imp Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -300,6 +300,7 @@ dev/acpica/Osd/OsdStream.c optional acpi dev/acpica/Osd/OsdSynch.c optional acpi dev/acpica/Osd/OsdTable.c optional acpi +dev/acpica/acpi_snc.c optional acpi_snc acpi dev/acpica/acpi_video.c optional acpi_video acpi dev/adlink/adlink.c optional adlink dev/advansys/adv_eisa.c optional adv eisa @@ -594,6 +595,7 @@ dev/patm/if_patm_tx.c optional patm pci dev/patm/if_patm_attach.c optional patm pci dev/patm/if_patm_rtables.c optional patm pci +dev/pbio/pbio.c optional pbio isa dev/pccard/card_if.m standard dev/pccard/pccard.c optional pccard dev/pccard/pccard_cis.c optional pccard ==== //depot/projects/uart/conf/files.i386#11 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.i386,v 1.506 2004/10/24 08:53:40 scottl Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.507 2004/11/11 04:53:46 imp Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -292,7 +292,6 @@ i386/isa/mse.c optional mse i386/isa/nmi.c standard i386/isa/npx.c optional npx -i386/isa/pbio.c optional pbio i386/isa/pcf.c optional pcf i386/isa/pcvt/pcvt_drv.c optional vt i386/isa/pcvt/pcvt_ext.c optional vt ==== //depot/projects/uart/conf/kern.post.mk#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/kern.post.mk,v 1.70 2004/09/23 08:34:50 phk Exp $ +# $FreeBSD: src/sys/conf/kern.post.mk,v 1.73 2004/11/14 00:22:18 imp Exp $ # Part of a unified Makefile for building kernels. This part includes all # the definitions that need to be after all the % directives except %RULES @@ -27,6 +27,20 @@ .endif .endfor +# Handle out of tree ports +.if defined(PORTS_MODULES) +.if defined(SYSDIR) +PORTSMODULESENV=SYSDIR=${SYSDIR} +.endif +.for target in all install clean +${target}: ports-${target} +ports-${target}: +.for __i in ${PORTS_MODULES} + cd $${PORTSDIR:-/usr/ports/}${__i}; ${PORTSMODULESENV} ${MAKE} -B ${target} +.endfor +.endfor +.endif + .ORDER: kernel-install modules-install kernel-all: ${KERNEL_KO} ==== //depot/projects/uart/conf/options#15 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.486 2004/10/27 19:26:01 rwatson Exp $ +# $FreeBSD: src/sys/conf/options,v 1.487 2004/11/12 19:44:30 peter Exp $ # # On the handling of kernel options # @@ -162,7 +162,6 @@ # time, since the corresponding lkms cannot work if there are any static # dependencies. Unusability is enforced by hiding the defines for the # options in a never-included header. -AUTOFS opt_dontuse.h CD9660 opt_dontuse.h CODA opt_dontuse.h EXT2FS opt_dontuse.h ==== //depot/projects/uart/dev/acpica/acpi_pcib.c#6 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib.c,v 1.50 2004/08/13 06:22:07 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib.c,v 1.51 2004/11/11 22:33:08 jhb Exp $"); #include "opt_acpi.h" #include @@ -70,11 +70,13 @@ /* * Get the PCI interrupt routing table for this bus. If we can't - * get it, this is not an error but may reduce functionality. + * get it, this is not an error but may reduce functionality. There + * are several valid bridges in the field that do not have a _PRT, so + * only warn about missing tables if bootverbose is set. */ prt->Length = ACPI_ALLOCATE_BUFFER; status = AcpiGetIrqRoutingTable(acpi_get_handle(dev), prt); - if (ACPI_FAILURE(status)) + if (ACPI_FAILURE(status) && (bootverbose || status != AE_NOT_FOUND)) device_printf(dev, "could not get PCI interrupt routing table for %s - %s\n", acpi_name(acpi_get_handle(dev)), AcpiFormatException(status)); ==== //depot/projects/uart/dev/aha/aha_isa.c#5 (text+ko) ==== @@ -54,7 +54,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/aha/aha_isa.c,v 1.29 2004/03/17 17:50:24 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aha/aha_isa.c,v 1.31 2004/11/12 02:18:42 imp Exp $"); #include #include @@ -122,7 +122,7 @@ port_rid = 0; port_res = bus_alloc_resource(dev, SYS_RES_IOPORT, &port_rid, - 0, ~0, AHA_NREGS, RF_ACTIVE); + 0, ~0, AHA_NREGS, RF_ACTIVE); if (port_res == NULL) return (ENXIO); @@ -150,7 +150,7 @@ "settings for adapter at %#jx. Failing probe\n", (uintmax_t)port_start); aha_free(aha); - bus_release_resource(dev, SYS_RES_IOPORT, port_rid, + bus_release_resource(dev, SYS_RES_IOPORT, port_rid, port_res); return (ENXIO); } @@ -208,7 +208,8 @@ RF_ACTIVE); if (!aha->irq) { device_printf(dev, "Unable to allocate excluse use of irq\n"); - bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, aha->port); + bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, + aha->port); return ENOMEM; } @@ -217,7 +218,8 @@ RF_ACTIVE); if (!aha->drq) { device_printf(dev, "Unable to allocate drq\n"); - bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, aha->port); + bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, + aha->port); bus_release_resource(dev, SYS_RES_IRQ, aha->irqrid, aha->irq); return ENOMEM; } @@ -247,41 +249,45 @@ /* lockfunc */ busdma_lock_mutex, /* lockarg */ &Giant, &aha->parent_dmat) != 0) { - aha_free(aha); - bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, aha->port); + bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, + aha->port); bus_release_resource(dev, SYS_RES_IRQ, aha->irqrid, aha->irq); bus_release_resource(dev, SYS_RES_DRQ, aha->drqrid, aha->drq); - return (ENOMEM); - } + aha_free(aha); + return (ENOMEM); + } - if (aha_init(aha)) { + if (aha_init(aha)) { device_printf(dev, "init failed\n"); - aha_free(aha); - bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, aha->port); + bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, + aha->port); bus_release_resource(dev, SYS_RES_IRQ, aha->irqrid, aha->irq); bus_release_resource(dev, SYS_RES_DRQ, aha->drqrid, aha->drq); - return (ENOMEM); - } + aha_free(aha); + return (ENOMEM); + } error = aha_attach(aha); if (error) { device_printf(dev, "attach failed\n"); - aha_free(aha); - bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, aha->port); + bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, + aha->port); bus_release_resource(dev, SYS_RES_IRQ, aha->irqrid, aha->irq); bus_release_resource(dev, SYS_RES_DRQ, aha->drqrid, aha->drq); - return (error); + aha_free(aha); + return (error); } - error = bus_setup_intr(dev, aha->irq, INTR_TYPE_CAM|INTR_ENTROPY, aha_intr, aha, - &ih); + error = bus_setup_intr(dev, aha->irq, INTR_TYPE_CAM|INTR_ENTROPY, + aha_intr, aha, &ih); if (error) { device_printf(dev, "Unable to register interrupt handler\n"); - aha_free(aha); - bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, aha->port); + bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, + aha->port); bus_release_resource(dev, SYS_RES_IRQ, aha->irqrid, aha->irq); bus_release_resource(dev, SYS_RES_DRQ, aha->drqrid, aha->drq); - return (error); + aha_free(aha); + return (error); } return (0); ==== //depot/projects/uart/dev/em/if_em.c#9 (text+ko) ==== @@ -31,7 +31,7 @@ ***************************************************************************/ -/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.51 2004/11/03 14:11:18 phk Exp $*/ +/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.53 2004/11/12 11:03:07 rwatson Exp $*/ #include @@ -161,7 +161,7 @@ static int em_get_buf(int i, struct adapter *, struct mbuf *); static void em_enable_vlans(struct adapter *); -static int em_encap(struct adapter *, struct mbuf *); +static int em_encap(struct adapter *, struct mbuf **); static void em_smartspeed(struct adapter *); static int em_82547_fifo_workaround(struct adapter *, int); static void em_82547_update_fifo_head(struct adapter *, int); @@ -310,26 +310,14 @@ em_adapter_list = adapter; /* SYSCTL stuff */ - sysctl_ctx_init(&adapter->sysctl_ctx); - adapter->sysctl_tree = SYSCTL_ADD_NODE(&adapter->sysctl_ctx, - SYSCTL_STATIC_CHILDREN(_hw), - OID_AUTO, - device_get_nameunit(dev), - CTLFLAG_RD, - 0, ""); - if (adapter->sysctl_tree == NULL) { - error = EIO; - goto err_sysctl; - } - - SYSCTL_ADD_PROC(&adapter->sysctl_ctx, - SYSCTL_CHILDREN(adapter->sysctl_tree), + SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "debug_info", CTLTYPE_INT|CTLFLAG_RW, (void *)adapter, 0, em_sysctl_debug_info, "I", "Debug Information"); - SYSCTL_ADD_PROC(&adapter->sysctl_ctx, - SYSCTL_CHILDREN(adapter->sysctl_tree), + SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "stats", CTLTYPE_INT|CTLFLAG_RW, (void *)adapter, 0, em_sysctl_stats, "I", "Statistics"); @@ -504,8 +492,6 @@ err_tx_desc: err_pci: em_free_pci_resources(adapter); - sysctl_ctx_free(&adapter->sysctl_ctx); -err_sysctl: return(error); } @@ -553,9 +539,6 @@ adapter->rx_desc_base = NULL; } - /* Free the sysctl tree */ - sysctl_ctx_free(&adapter->sysctl_ctx); - /* Remove from the adapter list */ if (em_adapter_list == adapter) em_adapter_list = adapter->next; @@ -616,7 +599,7 @@ if (m_head == NULL) break; - if (em_encap(adapter, m_head)) { + if (em_encap(adapter, &m_head)) { ifp->if_flags |= IFF_OACTIVE; IFQ_DRV_PREPEND(&ifp->if_snd, m_head); break; @@ -1176,13 +1159,15 @@ * return 0 on success, positive on failure **********************************************************************/ static int -em_encap(struct adapter *adapter, struct mbuf *m_head) +em_encap(struct adapter *adapter, struct mbuf **m_headp) { u_int32_t txd_upper; u_int32_t txd_lower, txd_used = 0, txd_saved = 0; int i, j, error; u_int64_t address; + struct mbuf *m_head; + /* For 82544 Workaround */ DESC_ARRAY desc_array; u_int32_t array_elements; @@ -1198,6 +1183,8 @@ struct em_tx_desc *current_tx_desc = NULL; struct ifnet *ifp = &adapter->interface_data.ac_if; + m_head = *m_headp; + /* * Force a cleanup if number of TX descriptors * available hits the threshold @@ -1250,6 +1237,36 @@ mtag = VLAN_OUTPUT_TAG(ifp, m_head); #endif + /* + * When operating in promiscuous mode, hardware encapsulation for + * packets is disabled. This means we have to add the vlan + * encapsulation in the driver, since it will have come down from the + * VLAN layer with a tag instead of a VLAN header. + */ + if (mtag != NULL && adapter->em_insert_vlan_header) { + struct ether_vlan_header *evl; + struct ether_header eh; + + m_head = m_pullup(m_head, sizeof(eh)); + if (m_head == NULL) + return (ENOBUFS); + eh = *mtod(m_head, struct ether_header *); + M_PREPEND(m_head, sizeof(*evl), M_DONTWAIT); + if (m_head == NULL) + return (ENOBUFS); + m_head = m_pullup(m_head, sizeof(*evl)); + if (m_head == NULL) + return (ENOBUFS); + evl = mtod(m_head, struct ether_vlan_header *); + bcopy(&eh, evl, sizeof(*evl)); + evl->evl_proto = evl->evl_encap_proto; + evl->evl_encap_proto = htons(ETHERTYPE_VLAN); + evl->evl_tag = htons(VLAN_TAG_VALUE(mtag)); + m_tag_delete(m_head, mtag); + mtag = NULL; + *m_headp = m_head; + } + i = adapter->next_avail_tx_desc; if (adapter->pcix_82544) { txd_saved = i; @@ -1497,19 +1514,20 @@ if (ifp->if_flags & IFF_PROMISC) { reg_rctl |= (E1000_RCTL_UPE | E1000_RCTL_MPE); E1000_WRITE_REG(&adapter->hw, RCTL, reg_rctl); - /* Disable VLAN stripping in promiscous mode * This enables bridging of vlan tagged frames to occur * and also allows vlan tags to be seen in tcpdump */ ctrl &= ~E1000_CTRL_VME; E1000_WRITE_REG(&adapter->hw, CTRL, ctrl); - + adapter->em_insert_vlan_header = 1; } else if (ifp->if_flags & IFF_ALLMULTI) { reg_rctl |= E1000_RCTL_MPE; reg_rctl &= ~E1000_RCTL_UPE; E1000_WRITE_REG(&adapter->hw, RCTL, reg_rctl); - } + adapter->em_insert_vlan_header = 0; + } else + adapter->em_insert_vlan_header = 0; return; } @@ -1526,6 +1544,8 @@ E1000_WRITE_REG(&adapter->hw, RCTL, reg_rctl); em_enable_vlans(adapter); + adapter->em_insert_vlan_header = 0; + return; } @@ -3391,8 +3411,8 @@ info->adapter = adapter; info->offset = offset; info->value = value; - SYSCTL_ADD_PROC(&adapter->sysctl_ctx, - SYSCTL_CHILDREN(adapter->sysctl_tree), + SYSCTL_ADD_PROC(device_get_sysctl_ctx(adapter->dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(adapter->dev)), OID_AUTO, name, CTLTYPE_INT|CTLFLAG_RW, info, 0, em_sysctl_int_delay, "I", description); } ==== //depot/projects/uart/dev/em/if_em.h#10 (text+ko) ==== @@ -31,7 +31,7 @@ ***************************************************************************/ -/*$FreeBSD: src/sys/dev/em/if_em.h,v 1.26 2004/09/01 23:22:41 pdeuskar Exp $*/ +/*$FreeBSD: src/sys/dev/em/if_em.h,v 1.29 2004/11/12 11:03:07 rwatson Exp $*/ #ifndef _EM_H_DEFINED_ #define _EM_H_DEFINED_ @@ -46,6 +46,7 @@ #include #include #include +#include #include #include @@ -74,7 +75,6 @@ #include #include #include -#include #include "opt_bdg.h" #include @@ -346,6 +346,7 @@ int io_rid; u_int8_t unit; struct mtx mtx; + int em_insert_vlan_header; /* Info about the board itself */ u_int32_t part_num; @@ -399,9 +400,6 @@ struct mbuf *fmp; struct mbuf *lmp; - struct sysctl_ctx_list sysctl_ctx; - struct sysctl_oid *sysctl_tree; - /* Misc stats maintained by the driver */ unsigned long dropped_pkts; unsigned long mbuf_alloc_failed; ==== //depot/projects/uart/dev/md/md.c#8 (text+ko) ==== @@ -6,7 +6,7 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $FreeBSD: src/sys/dev/md/md.c,v 1.144 2004/11/06 13:16:35 pjd Exp $ + * $FreeBSD: src/sys/dev/md/md.c,v 1.145 2004/11/13 05:00:12 marcel Exp $ * */ @@ -1087,7 +1087,7 @@ case MDIOCDETACH: if (mdio->md_version != MDIOVERSION) return (EINVAL); - if (mdio->md_file != NULL || mdio->md_mediasize != 0 || + if (mdio->md_file[0] != '\0' || mdio->md_mediasize != 0 || mdio->md_options != 0) return (EINVAL); return (mddetach(mdio->md_unit, td)); ==== //depot/projects/uart/dev/pbio/pbio.c#2 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/pbio/pbio.c,v 1.5 2004/10/11 00:58:24 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pbio/pbio.c,v 1.6 2004/11/11 19:14:09 obrien Exp $"); #include #include @@ -46,7 +46,7 @@ #include #include /* DELAY() */ #include -#include /* pbio IOCTL definitions */ +#include /* pbio IOCTL definitions */ #include #include ==== //depot/projects/uart/dev/sound/pci/maestro.c#8 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2000 Taku YAMAMOTO + * Copyright (c) 2000-2004 Taku YAMAMOTO * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -54,7 +54,7 @@ #include -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/maestro.c,v 1.25 2004/11/10 04:29:09 julian Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/maestro.c,v 1.26 2004/11/11 13:01:13 ru Exp $"); #define inline __inline @@ -472,7 +472,7 @@ } } -static inline void +static void apu_setparam(struct agg_info *ess, int apuch, u_int32_t wpwa, u_int16_t size, int16_t pan, u_int dv) { ==== //depot/projects/uart/dev/streams/streams.c#4 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/streams/streams.c,v 1.47 2004/07/15 08:26:03 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/streams/streams.c,v 1.48 2004/11/13 11:53:01 phk Exp $"); #include #include @@ -256,26 +256,26 @@ if ((error = socreate(family, &so, type, protocol, td->td_ucred, td)) != 0) { - FILEDESC_LOCK(p->p_fd); + FILEDESC_LOCK_FAST(p->p_fd); /* Check the fd table entry hasn't changed since we made it. */ extraref = 0; if (p->p_fd->fd_ofiles[fd] == fp) { p->p_fd->fd_ofiles[fd] = NULL; extraref = 1; } - FILEDESC_UNLOCK(p->p_fd); + FILEDESC_UNLOCK_FAST(p->p_fd); if (extraref) fdrop(fp, td); fdrop(fp, td); return error; } - FILEDESC_LOCK(p->p_fd); + FILEDESC_LOCK_FAST(p->p_fd); fp->f_data = so; fp->f_flag = FREAD|FWRITE; fp->f_ops = &svr4_netops; fp->f_type = DTYPE_SOCKET; - FILEDESC_UNLOCK(p->p_fd); + FILEDESC_UNLOCK_FAST(p->p_fd); (void)svr4_stream_get(fp); fdrop(fp, td); ==== //depot/projects/uart/dev/usb/ehci.c#7 (text+ko) ==== @@ -6,7 +6,7 @@ */ >>> TRUNCATED FOR MAIL (1000 lines) <<<