Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Mar 2007 09:45:47 GMT
From:      Paolo Pisati <piso@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 115401 for review
Message-ID:  <200703060945.l269jlgj016323@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=115401

Change 115401 by piso@piso_newluxor on 2007/03/06 09:45:07

	IFC@115399

Affected files ...

.. //depot/projects/soc2006/intr_filter/amd64/acpica/madt.c#3 integrate
.. //depot/projects/soc2006/intr_filter/amd64/amd64/io_apic.c#4 integrate
.. //depot/projects/soc2006/intr_filter/amd64/amd64/local_apic.c#7 integrate
.. //depot/projects/soc2006/intr_filter/amd64/amd64/mp_machdep.c#6 integrate
.. //depot/projects/soc2006/intr_filter/amd64/amd64/mptable.c#2 integrate
.. //depot/projects/soc2006/intr_filter/amd64/amd64/pmap.c#12 integrate
.. //depot/projects/soc2006/intr_filter/amd64/include/apicvar.h#5 integrate
.. //depot/projects/soc2006/intr_filter/arm/xscale/ixp425/ixp425_npe.c#3 integrate
.. //depot/projects/soc2006/intr_filter/compat/linux/linux_stats.c#5 integrate
.. //depot/projects/soc2006/intr_filter/conf/files#15 integrate
.. //depot/projects/soc2006/intr_filter/dev/acpica/acpi_thermal.c#5 integrate
.. //depot/projects/soc2006/intr_filter/dev/arcmsr/arcmsr.c#8 integrate
.. //depot/projects/soc2006/intr_filter/dev/arcmsr/arcmsr.h#4 integrate
.. //depot/projects/soc2006/intr_filter/dev/ath/if_ath.c#13 integrate
.. //depot/projects/soc2006/intr_filter/dev/ath/if_athvar.h#11 integrate
.. //depot/projects/soc2006/intr_filter/dev/pccbb/pccbb.c#14 integrate
.. //depot/projects/soc2006/intr_filter/dev/pci/pci.c#11 integrate
.. //depot/projects/soc2006/intr_filter/dev/pci/pcireg.h#7 integrate
.. //depot/projects/soc2006/intr_filter/dev/sound/pci/envy24.c#6 integrate
.. //depot/projects/soc2006/intr_filter/dev/sound/pcm/ac97.c#4 integrate
.. //depot/projects/soc2006/intr_filter/dev/sym/sym_hipd.c#5 integrate
.. //depot/projects/soc2006/intr_filter/geom/eli/g_eli_ctl.c#4 integrate
.. //depot/projects/soc2006/intr_filter/i386/acpica/madt.c#3 integrate
.. //depot/projects/soc2006/intr_filter/i386/i386/io_apic.c#4 integrate
.. //depot/projects/soc2006/intr_filter/i386/i386/local_apic.c#7 integrate
.. //depot/projects/soc2006/intr_filter/i386/i386/machdep.c#11 integrate
.. //depot/projects/soc2006/intr_filter/i386/i386/mp_machdep.c#6 integrate
.. //depot/projects/soc2006/intr_filter/i386/i386/mptable.c#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/i386/nexus.c#7 integrate
.. //depot/projects/soc2006/intr_filter/i386/i386/pmap.c#11 integrate
.. //depot/projects/soc2006/intr_filter/i386/i386/vm_machdep.c#3 integrate
.. //depot/projects/soc2006/intr_filter/i386/include/apicvar.h#5 integrate
.. //depot/projects/soc2006/intr_filter/i386/isa/clock.c#12 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_acl.c#6 delete
.. //depot/projects/soc2006/intr_filter/kern/kern_alq.c#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_context.c#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_descrip.c#11 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_environment.c#4 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_exec.c#6 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_exit.c#5 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_ktrace.c#9 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_ntptime.c#5 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_prot.c#7 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_resource.c#10 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_sig.c#9 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_synch.c#8 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_sysctl.c#5 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_time.c#8 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_umtx.c#6 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_uuid.c#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_xxx.c#4 integrate
.. //depot/projects/soc2006/intr_filter/kern/p1003_1b.c#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/sys_generic.c#7 integrate
.. //depot/projects/soc2006/intr_filter/kern/sys_pipe.c#5 integrate
.. //depot/projects/soc2006/intr_filter/kern/sysv_msg.c#9 integrate
.. //depot/projects/soc2006/intr_filter/kern/sysv_sem.c#9 integrate
.. //depot/projects/soc2006/intr_filter/kern/sysv_shm.c#7 integrate
.. //depot/projects/soc2006/intr_filter/kern/uipc_mqueue.c#5 integrate
.. //depot/projects/soc2006/intr_filter/kern/uipc_sem.c#5 integrate
.. //depot/projects/soc2006/intr_filter/kern/uipc_syscalls.c#10 integrate
.. //depot/projects/soc2006/intr_filter/kern/vfs_acl.c#1 branch
.. //depot/projects/soc2006/intr_filter/kern/vfs_aio.c#6 integrate
.. //depot/projects/soc2006/intr_filter/kern/vfs_cache.c#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/vfs_cluster.c#4 integrate
.. //depot/projects/soc2006/intr_filter/kern/vfs_mount.c#7 integrate
.. //depot/projects/soc2006/intr_filter/kern/vfs_syscalls.c#8 integrate
.. //depot/projects/soc2006/intr_filter/net80211/ieee80211_ioctl.c#6 integrate
.. //depot/projects/soc2006/intr_filter/net80211/ieee80211_var.h#6 integrate
.. //depot/projects/soc2006/intr_filter/nfsserver/nfs_syscalls.c#6 integrate
.. //depot/projects/soc2006/intr_filter/sys/extattr.h#5 integrate
.. //depot/projects/soc2006/intr_filter/ufs/ufs/extattr.h#2 integrate
.. //depot/projects/soc2006/intr_filter/vm/vm_fault.c#7 integrate

Differences ...

==== //depot/projects/soc2006/intr_filter/amd64/acpica/madt.c#3 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.21 2006/08/11 19:22:55 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.22 2007/03/05 20:35:16 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -336,7 +336,7 @@
 {
 
 	madt = pmap_mapbios(madt_physaddr, madt_length);
-	lapic_init((uintptr_t)madt->LocalApicAddress);
+	lapic_init(madt->LocalApicAddress);
 	printf("ACPI APIC Table: <%.*s %.*s>\n",
 	    (int)sizeof(madt->OemId), madt->OemId,
 	    (int)sizeof(madt->OemTableId), madt->OemTableId);
@@ -482,9 +482,8 @@
 		if (ioapics[apic->IoApicId].io_apic != NULL)
 			panic("%s: Double APIC ID %d", __func__,
 			    apic->IoApicId);
-		ioapics[apic->IoApicId].io_apic = ioapic_create(
-			(uintptr_t)apic->Address, apic->IoApicId,
-			    apic->Interrupt);
+		ioapics[apic->IoApicId].io_apic = ioapic_create(apic->Address,
+		    apic->IoApicId, apic->Interrupt);
 		ioapics[apic->IoApicId].io_vector = apic->Interrupt;
 		break;
 	default:

==== //depot/projects/soc2006/intr_filter/amd64/amd64/io_apic.c#4 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.26 2006/11/17 16:41:03 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.28 2007/03/05 20:35:16 jhb Exp $");
 
 #include "opt_isa.h"
 
@@ -36,11 +36,15 @@
 #include <sys/systm.h>
 #include <sys/bus.h>
 #include <sys/kernel.h>
+#include <sys/lock.h>
 #include <sys/malloc.h>
-#include <sys/lock.h>
+#include <sys/module.h>
 #include <sys/mutex.h>
 #include <sys/sysctl.h>
 
+#include <dev/pci/pcireg.h>
+#include <dev/pci/pcivar.h>
+
 #include <vm/vm.h>
 #include <vm/pmap.h>
 
@@ -428,7 +432,7 @@
  * Create a plain I/O APIC object.
  */
 void *
-ioapic_create(uintptr_t addr, int32_t apic_id, int intbase)
+ioapic_create(vm_paddr_t addr, int32_t apic_id, int intbase)
 {
 	struct ioapic *io;
 	struct ioapic_intsrc *intpin;
@@ -727,3 +731,46 @@
 		if (pin->io_irq < NUM_IO_INTS)
 			intr_register_source(&pin->io_intsrc);
 }
+
+/* A simple new-bus driver to consume PCI I/O APIC devices. */
+static int
+ioapic_pci_probe(device_t dev)
+{
+
+	if (pci_get_class(dev) == PCIC_BASEPERIPH &&
+	    pci_get_subclass(dev) == PCIS_BASEPERIPH_PIC) {
+		switch (pci_get_progif(dev)) {
+		case PCIP_BASEPERIPH_PIC_IO_APIC:
+			device_set_desc(dev, "IO APIC");
+			break;
+		case PCIP_BASEPERIPH_PIC_IOX_APIC:
+			device_set_desc(dev, "IO(x) APIC");
+			break;
+		default:
+			return (ENXIO);
+		}
+		device_quiet(dev);
+		return (-10000);
+	}
+	return (ENXIO);
+}
+
+static int
+ioapic_pci_attach(device_t dev)
+{
+
+	return (0);
+}
+
+static device_method_t ioapic_pci_methods[] = {
+	/* Device interface */
+	DEVMETHOD(device_probe,		ioapic_pci_probe),
+	DEVMETHOD(device_attach,	ioapic_pci_attach),
+
+	{ 0, 0 }
+};
+
+DEFINE_CLASS_0(ioapic, ioapic_pci_driver, ioapic_pci_methods, 0);
+
+static devclass_t ioapic_devclass;
+DRIVER_MODULE(ioapic, pci, ioapic_pci_driver, ioapic_devclass, 0, 0);

==== //depot/projects/soc2006/intr_filter/amd64/amd64/local_apic.c#7 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.34 2006/12/17 06:48:39 kmacy Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.35 2007/03/05 20:35:16 jhb Exp $");
 
 #include "opt_hwpmc_hooks.h"
 
@@ -205,7 +205,7 @@
  * Map the local APIC and setup necessary interrupt vectors.
  */
 void
-lapic_init(uintptr_t addr)
+lapic_init(vm_paddr_t addr)
 {
 
 	/* Map the local APIC and setup the spurious interrupt handler. */

==== //depot/projects/soc2006/intr_filter/amd64/amd64/mp_machdep.c#6 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.281 2007/02/08 16:49:58 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.282 2007/03/05 21:40:10 alc Exp $");
 
 #include "opt_cpu.h"
 #include "opt_kstack_pages.h"
@@ -835,13 +835,16 @@
 	ncpu = mp_ncpus - 1;	/* does not shootdown self */
 	if (ncpu < 1)
 		return;		/* no other cpus */
-	mtx_assert(&smp_ipi_mtx, MA_OWNED);
+	if (!(read_rflags() & PSL_I))
+		panic("%s: interrupts disabled", __func__);
+	mtx_lock_spin(&smp_ipi_mtx);
 	smp_tlb_addr1 = addr1;
 	smp_tlb_addr2 = addr2;
 	atomic_store_rel_int(&smp_tlb_wait, 0);
 	ipi_all_but_self(vector);
 	while (smp_tlb_wait < ncpu)
 		ia32_pause();
+	mtx_unlock_spin(&smp_ipi_mtx);
 }
 
 static void
@@ -869,7 +872,9 @@
 		if (ncpu < 1)
 			return;
 	}
-	mtx_assert(&smp_ipi_mtx, MA_OWNED);
+	if (!(read_rflags() & PSL_I))
+		panic("%s: interrupts disabled", __func__);
+	mtx_lock_spin(&smp_ipi_mtx);
 	smp_tlb_addr1 = addr1;
 	smp_tlb_addr2 = addr2;
 	atomic_store_rel_int(&smp_tlb_wait, 0);
@@ -879,6 +884,7 @@
 		ipi_selected(mask, vector);
 	while (smp_tlb_wait < ncpu)
 		ia32_pause();
+	mtx_unlock_spin(&smp_ipi_mtx);
 }
 
 void

==== //depot/projects/soc2006/intr_filter/amd64/amd64/mptable.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.237 2005/10/31 15:41:17 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.238 2007/03/05 20:35:16 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -323,7 +323,7 @@
 		lapic_init(DEFAULT_APIC_BASE);
 		printf("Default Configuration %d", mpfps->config_type);
 	} else {
-		lapic_init((uintptr_t)mpct->apic_address);
+		lapic_init(mpct->apic_address);
 		printf("%.*s %.*s", (int)sizeof(mpct->oem_id), mpct->oem_id,
 		    (int)sizeof(mpct->product_id), mpct->product_id);
 	}
@@ -514,8 +514,8 @@
 		if (ioapics[apic->apic_id] != NULL)
 			panic("%s: Double APIC ID %d", __func__,
 			    apic->apic_id);
-		ioapics[apic->apic_id] = ioapic_create(
-			(uintptr_t)apic->apic_address, apic->apic_id, -1);
+		ioapics[apic->apic_id] = ioapic_create(apic->apic_address,
+		    apic->apic_id, -1);
 		break;
 	default:
 		break;

==== //depot/projects/soc2006/intr_filter/amd64/amd64/pmap.c#12 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.579 2007/02/19 10:55:16 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.580 2007/03/05 21:40:10 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -752,18 +752,7 @@
 	u_int cpumask;
 	u_int other_cpus;
 
-	if (smp_started) {
-		if (!(read_rflags() & PSL_I))
-			panic("%s: interrupts disabled", __func__);
-		mtx_lock_spin(&smp_ipi_mtx);
-	} else
-		critical_enter();
-	/*
-	 * We need to disable interrupt preemption but MUST NOT have
-	 * interrupts disabled here.
-	 * XXX we may need to hold schedlock to get a coherent pm_active
-	 * XXX critical sections disable interrupts again
-	 */
+	sched_pin();
 	if (pmap == kernel_pmap || pmap->pm_active == all_cpus) {
 		invlpg(va);
 		smp_invlpg(va);
@@ -775,10 +764,7 @@
 		if (pmap->pm_active & other_cpus)
 			smp_masked_invlpg(pmap->pm_active & other_cpus, va);
 	}
-	if (smp_started)
-		mtx_unlock_spin(&smp_ipi_mtx);
-	else
-		critical_exit();
+	sched_unpin();
 }
 
 void
@@ -788,18 +774,7 @@
 	u_int other_cpus;
 	vm_offset_t addr;
 
-	if (smp_started) {
-		if (!(read_rflags() & PSL_I))
-			panic("%s: interrupts disabled", __func__);
-		mtx_lock_spin(&smp_ipi_mtx);
-	} else
-		critical_enter();
-	/*
-	 * We need to disable interrupt preemption but MUST NOT have
-	 * interrupts disabled here.
-	 * XXX we may need to hold schedlock to get a coherent pm_active
-	 * XXX critical sections disable interrupts again
-	 */
+	sched_pin();
 	if (pmap == kernel_pmap || pmap->pm_active == all_cpus) {
 		for (addr = sva; addr < eva; addr += PAGE_SIZE)
 			invlpg(addr);
@@ -814,10 +789,7 @@
 			smp_masked_invlpg_range(pmap->pm_active & other_cpus,
 			    sva, eva);
 	}
-	if (smp_started)
-		mtx_unlock_spin(&smp_ipi_mtx);
-	else
-		critical_exit();
+	sched_unpin();
 }
 
 void
@@ -826,18 +798,7 @@
 	u_int cpumask;
 	u_int other_cpus;
 
-	if (smp_started) {
-		if (!(read_rflags() & PSL_I))
-			panic("%s: interrupts disabled", __func__);
-		mtx_lock_spin(&smp_ipi_mtx);
-	} else
-		critical_enter();
-	/*
-	 * We need to disable interrupt preemption but MUST NOT have
-	 * interrupts disabled here.
-	 * XXX we may need to hold schedlock to get a coherent pm_active
-	 * XXX critical sections disable interrupts again
-	 */
+	sched_pin();
 	if (pmap == kernel_pmap || pmap->pm_active == all_cpus) {
 		invltlb();
 		smp_invltlb();
@@ -849,34 +810,17 @@
 		if (pmap->pm_active & other_cpus)
 			smp_masked_invltlb(pmap->pm_active & other_cpus);
 	}
-	if (smp_started)
-		mtx_unlock_spin(&smp_ipi_mtx);
-	else
-		critical_exit();
+	sched_unpin();
 }
 
 void
 pmap_invalidate_cache(void)
 {
 
-	if (smp_started) {
-		if (!(read_rflags() & PSL_I))
-			panic("%s: interrupts disabled", __func__);
-		mtx_lock_spin(&smp_ipi_mtx);
-	} else
-		critical_enter();
-	/*
-	 * We need to disable interrupt preemption but MUST NOT have
-	 * interrupts disabled here.
-	 * XXX we may need to hold schedlock to get a coherent pm_active
-	 * XXX critical sections disable interrupts again
-	 */
+	sched_pin();
 	wbinvd();
 	smp_cache_flush();
-	if (smp_started)
-		mtx_unlock_spin(&smp_ipi_mtx);
-	else
-		critical_exit();
+	sched_unpin();
 }
 #else /* !SMP */
 /*

==== //depot/projects/soc2006/intr_filter/amd64/include/apicvar.h#5 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.21 2006/12/17 06:48:40 kmacy Exp $
+ * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.22 2007/03/05 20:35:16 jhb Exp $
  */
 
 #ifndef _MACHINE_APICVAR_H_
@@ -180,7 +180,7 @@
 void	apic_free_vector(u_int vector, u_int irq);
 u_int	apic_idt_to_irq(u_int vector);
 void	apic_register_enumerator(struct apic_enumerator *enumerator);
-void	*ioapic_create(uintptr_t addr, int32_t id, int intbase);
+void	*ioapic_create(vm_paddr_t addr, int32_t apic_id, int intbase);
 int	ioapic_disable_pin(void *cookie, u_int pin);
 int	ioapic_get_vector(void *cookie, u_int pin);
 void	ioapic_register(void *cookie);
@@ -197,7 +197,7 @@
 void	lapic_dump(const char *str);
 void	lapic_eoi(void);
 int	lapic_id(void);
-void	lapic_init(uintptr_t addr);
+void	lapic_init(vm_paddr_t addr);
 int	lapic_intr_pending(u_int vector);
 void	lapic_ipi_raw(register_t icrlo, u_int dest);
 void	lapic_ipi_vectored(u_int vector, int dest);

==== //depot/projects/soc2006/intr_filter/arm/xscale/ixp425/ixp425_npe.c#3 (text+ko) ====

@@ -57,7 +57,7 @@
  * SUCH DAMAGE.
 */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_npe.c,v 1.3 2007/02/23 12:18:28 piso Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_npe.c,v 1.5 2007/03/06 01:15:28 kevlo Exp $");
 
 /*
  * Intel XScale Network Processing Engine (NPE) support.

==== //depot/projects/soc2006/intr_filter/compat/linux/linux_stats.c#5 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_stats.c,v 1.86 2006/12/04 22:38:52 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_stats.c,v 1.87 2007/03/06 07:39:12 rwatson Exp $");
 
 #include "opt_compat.h"
 #include "opt_mac.h"
@@ -118,7 +118,6 @@
 {
 	struct proc *p = td->td_proc;	
 	struct filedesc *fdp = p->p_fd;
-	struct file *fp;
 	int fd;
 	int temp;
 
@@ -130,9 +129,6 @@
 	fd = td->td_retval[0];
 	td->td_retval[0] = temp;
 	translate_fd_major_minor(td, fd, buf);
-	FILEDESC_LOCK(fdp);
-	fp = fdp->fd_ofiles[fd];
-	FILEDESC_UNLOCK(fdp);
 	fdclose(fdp, fdp->fd_ofiles[fd], fd, td);
 }
 

==== //depot/projects/soc2006/intr_filter/conf/files#15 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1180 2007/02/27 04:01:57 mjacob Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1181 2007/03/05 13:24:01 rwatson Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -1325,7 +1325,6 @@
 kern/init_sysent.c		standard
 kern/ksched.c			optional _kposix_priority_scheduling
 kern/kern_acct.c		standard
-kern/kern_acl.c			standard
 kern/kern_alq.c			optional alq
 kern/kern_clock.c		standard
 kern/kern_condvar.c		standard
@@ -1455,6 +1454,7 @@
 kern/uipc_socket2.c		standard
 kern/uipc_syscalls.c		standard
 kern/uipc_usrreq.c		standard
+kern/vfs_acl.c			standard
 kern/vfs_aio.c			optional vfs_aio
 kern/vfs_bio.c			standard
 kern/vfs_cache.c		standard

==== //depot/projects/soc2006/intr_filter/dev/acpica/acpi_thermal.c#5 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.63 2006/09/03 15:10:04 ume Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.64 2007/03/05 21:39:53 njl Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -434,10 +434,12 @@
 {
     int		temp;
     ACPI_STATUS	status;
+    static char	*tmp_name = "_TMP";
 
     ACPI_FUNCTION_NAME ("acpi_tz_get_temperature");
 
-    status = acpi_GetInteger(sc->tz_handle, "_TMP", &temp);
+    /* Evaluate the thermal zone's _TMP method. */
+    status = acpi_GetInteger(sc->tz_handle, tmp_name, &temp);
     if (ACPI_FAILURE(status)) {
 	ACPI_VPRINT(sc->tz_dev, acpi_device_get_parent_softc(sc->tz_dev),
 	    "error fetching current temperature -- %s\n",
@@ -445,6 +447,11 @@
 	return (FALSE);
     }
 
+    /* Check it for validity. */
+    acpi_tz_sanity(sc, &temp, tmp_name);
+    if (temp == -1)
+	return (FALSE);
+
     ACPI_DEBUG_PRINT((ACPI_DB_VALUES, "got %d.%dC\n", TZ_KELVTOC(temp)));
     sc->tz_temperature = temp;
     return (TRUE);
@@ -646,12 +653,12 @@
 
 /*
  * Sanity-check a temperature value.  Assume that setpoints
- * should be between 0C and 150C.
+ * should be between 0C and 200C.
  */
 static void
 acpi_tz_sanity(struct acpi_tz_softc *sc, int *val, char *what)
 {
-    if (*val != -1 && (*val < TZ_ZEROC || *val > TZ_ZEROC + 1500)) {
+    if (*val != -1 && (*val < TZ_ZEROC || *val > TZ_ZEROC + 2000)) {
 	device_printf(sc->tz_dev, "%s value is absurd, ignored (%d.%dC)\n",
 		      what, TZ_KELVTOC(*val));
 	*val = -1;

==== //depot/projects/soc2006/intr_filter/dev/arcmsr/arcmsr.c#8 (text+ko) ====

@@ -56,7 +56,7 @@
 **                                                       and cause g_vfs_done() read write error
 
 ******************************************************************************************
-* $FreeBSD: src/sys/dev/arcmsr/arcmsr.c,v 1.17 2007/02/23 12:18:31 piso Exp $
+* $FreeBSD: src/sys/dev/arcmsr/arcmsr.c,v 1.18 2007/03/06 01:12:15 scottl Exp $
 */
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -417,7 +417,12 @@
 	}
 	ARCMSR_LOCK_ACQUIRE(&acb->workingQ_done_lock);
 	if(stand_flag==1) {
-	    atomic_subtract_int(&acb->srboutstandingcount, 1);
+		atomic_subtract_int(&acb->srboutstandingcount, 1);
+		if((acb->acb_flags & ACB_F_CAM_DEV_QFRZN) && (
+		acb->srboutstandingcount < ARCMSR_RELEASE_SIMQ_LEVEL)) {
+			acb->acb_flags &= ~ACB_F_CAM_DEV_QFRZN;
+			pccb->ccb_h.status |= CAM_RELEASE_SIMQ;
+		}
 	}
 	srb->startdone=ARCMSR_SRB_DONE;
 	srb->srb_flags=0;
@@ -1303,7 +1308,8 @@
 	pccb->ccb_h.status |= CAM_SIM_QUEUED;
 	if(acb->srboutstandingcount >= ARCMSR_MAX_OUTSTANDING_CMD) {
 		pccb->ccb_h.status &= ~CAM_STATUS_MASK;
-		pccb->ccb_h.status |= CAM_REQUEUE_REQ;
+		pccb->ccb_h.status |= (CAM_REQUEUE_REQ|CAM_DEV_QFRZN);
+		acb->acb_flags |= ACB_F_CAM_DEV_QFRZN;
 		arcmsr_srb_complete(srb, 0);
 		return;
 	}

==== //depot/projects/soc2006/intr_filter/dev/arcmsr/arcmsr.h#4 (text+ko) ====

@@ -35,7 +35,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/arcmsr/arcmsr.h,v 1.3 2007/02/15 15:36:15 scottl Exp $
+* $FreeBSD: src/sys/dev/arcmsr/arcmsr.h,v 1.4 2007/03/06 01:12:15 scottl Exp $
 */
 #define ARCMSR_DRIVER_VERSION                        "Driver Version 1.20.00.14 2007-2-05"
 #define ARCMSR_SCSI_INITIATOR_ID                                              255
@@ -51,6 +51,7 @@
 #define ARCMSR_MAX_QBUFFER                                                   4096 /* ioctl QBUFFER */
 #define ARCMSR_MAX_SG_ENTRIES                                                  38 /* max 38*/
 #define ARCMSR_MAX_ADAPTER                                                      4
+#define ARCMSR_RELEASE_SIMQ_LEVEL                                             230
 /*
 *********************************************************************
 */
@@ -509,6 +510,7 @@
 #define ACB_F_BUS_RESET                 0x0080
 #define ACB_F_IOP_INITED                0x0100                               /* iop init */
 #define ACB_F_MAPFREESRB_FAILD		0x0200                               /* arcmsr_map_freesrb faild */
+#define ACB_F_CAM_DEV_QFRZN             0x0400
 
 	struct CommandControlBlock *			psrb_pool[ARCMSR_MAX_FREESRB_NUM];     /* serial srb pointer array */
 	struct CommandControlBlock *			srbworkingQ[ARCMSR_MAX_FREESRB_NUM];   /* working srb pointer array */

==== //depot/projects/soc2006/intr_filter/dev/ath/if_ath.c#13 (text+ko) ====

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.162 2007/02/24 23:23:29 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.164 2007/03/05 21:56:33 sam Exp $");
 
 /*
  * Driver for the Atheros Wireless LAN controller.
@@ -414,7 +414,8 @@
 		error = EIO;
 		goto bad2;
 	}
-	ath_txq_init(sc, &sc->sc_mcastq, -1);	/* NB: s/w q, qnum not used */
+	/* NB: s/w q, qnum used only by WITNESS */
+	ath_txq_init(sc, &sc->sc_mcastq, HAL_NUM_TX_QUEUES+1);
 	/* NB: insure BK queue is the lowest priority h/w queue */
 	if (!ath_tx_setup(sc, WME_AC_BK, HAL_WME_AC_BK)) {
 		if_printf(ifp, "unable to setup xmit queue for %s traffic!\n",
@@ -3170,6 +3171,11 @@
 	if (ngood)
 		sc->sc_lastrx = tsf;
 
+	/* NB: may want to check mgtq too */
+	if ((ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0 &&
+	    !IFQ_IS_EMPTY(&ifp->if_snd))
+		ath_start(ifp);
+
 	NET_UNLOCK_GIANT();		/* XXX */
 #undef PA2DESC
 }

==== //depot/projects/soc2006/intr_filter/dev/ath/if_athvar.h#11 (text+ko) ====

@@ -33,7 +33,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGES.
  *
- * $FreeBSD: src/sys/dev/ath/if_athvar.h,v 1.59 2007/02/24 23:12:58 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/if_athvar.h,v 1.60 2007/03/05 21:56:33 sam Exp $
  */
 
 /*
@@ -150,7 +150,7 @@
 #define	ATH_TXQ_LOCK_INIT(_sc, _tq) do { \
 	snprintf((_tq)->axq_name, sizeof((_tq)->axq_name), "%s_txq%u", \
 		device_get_nameunit((_sc)->sc_dev), (_tq)->axq_qnum); \
-	mtx_init(&(_tq)->axq_lock, (_tq)->axq_name, "ath_txq", MTX_DEF); \
+	mtx_init(&(_tq)->axq_lock, (_tq)->axq_name, NULL, MTX_DEF); \
 } while (0)
 #define	ATH_TXQ_LOCK_DESTROY(_tq)	mtx_destroy(&(_tq)->axq_lock)
 #define	ATH_TXQ_LOCK(_tq)		mtx_lock(&(_tq)->axq_lock)
@@ -306,7 +306,7 @@
 
 #define	ATH_LOCK_INIT(_sc) \
 	mtx_init(&(_sc)->sc_mtx, device_get_nameunit((_sc)->sc_dev), \
-		 MTX_NETWORK_LOCK, MTX_DEF | MTX_RECURSE)
+		 NULL, MTX_DEF | MTX_RECURSE)
 #define	ATH_LOCK_DESTROY(_sc)	mtx_destroy(&(_sc)->sc_mtx)
 #define	ATH_LOCK(_sc)		mtx_lock(&(_sc)->sc_mtx)
 #define	ATH_UNLOCK(_sc)		mtx_unlock(&(_sc)->sc_mtx)
@@ -317,7 +317,7 @@
 #define	ATH_TXBUF_LOCK_INIT(_sc) do { \
 	snprintf((_sc)->sc_txname, sizeof((_sc)->sc_txname), "%s_buf", \
 		device_get_nameunit((_sc)->sc_dev)); \
-	mtx_init(&(_sc)->sc_txbuflock, (_sc)->sc_txname, "ath_buf", MTX_DEF); \
+	mtx_init(&(_sc)->sc_txbuflock, (_sc)->sc_txname, NULL, MTX_DEF); \
 } while (0)
 #define	ATH_TXBUF_LOCK_DESTROY(_sc)	mtx_destroy(&(_sc)->sc_txbuflock)
 #define	ATH_TXBUF_LOCK(_sc)		mtx_lock(&(_sc)->sc_txbuflock)

==== //depot/projects/soc2006/intr_filter/dev/pccbb/pccbb.c#14 (text+ko) ====

@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.157 2007/03/04 19:33:12 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.158 2007/03/05 05:40:24 imp Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -1239,7 +1239,7 @@
 
 	DPRINTF(("cbb_pcic_socket_disable\n"));
 
-	/* Turn off the card's interrupt and leave it in reset */
+	/* Turn off the card's interrupt and leave it in reset, wait 10ms */
 	exca_putb(&sc->exca[0], EXCA_INTR, 0);
 	pause("cbbP1", hz / 100);
 
@@ -1248,7 +1248,7 @@
 	exca_putb(&sc->exca[0], EXCA_PWRCTL, 0);
 
 	/* wait 300ms until power fails (Tpf). */
-	pause("cbbP1", hz * 300 / 1000);
+	pause("cbbP2", hz * 300 / 1000);
 
 	/* enable CSC interrupts */
 	exca_putb(&sc->exca[0], EXCA_INTR, EXCA_INTR_ENABLE);

==== //depot/projects/soc2006/intr_filter/dev/pci/pci.c#11 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/pci/pci.c,v 1.343 2007/02/17 16:56:39 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/pci/pci.c,v 1.344 2007/03/05 16:21:59 jhb Exp $");
 
 #include "opt_bus.h"
 
@@ -327,7 +327,7 @@
 		0,			0,
 	};
 
-	return maptype[mapreg & 0x0f];
+	return (maptype[mapreg & 0x0f]);
 }
 
 /* return log2 of map size decoded for memory or port map */
@@ -624,11 +624,11 @@
 
 	KASSERT((reg & 3) == 0, ("VPD register must by 4 byte aligned"));
 
-	WREG(cfg->vpd.vpd_reg + 2, reg, 2);
-	while ((REG(cfg->vpd.vpd_reg + 2, 2) & 0x8000) != 0x8000)
+	WREG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, reg, 2);
+	while ((REG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, 2) & 0x8000) != 0x8000)
 		DELAY(1);	/* limit looping */
 
-	return REG(cfg->vpd.vpd_reg + 4, 4);
+	return (REG(cfg->vpd.vpd_reg + PCIR_VPD_DATA, 4));
 }
 
 #if 0
@@ -637,9 +637,9 @@
 {
 	KASSERT((reg & 3) == 0, ("VPD register must by 4 byte aligned"));
 
-	WREG(cfg->vpd.vpd_reg + 4, data, 4);
-	WREG(cfg->vpd.vpd_reg + 2, reg | 0x8000, 2);
-	while ((REG(cfg->vpd.vpd_reg + 2, 2) & 0x8000) == 0x8000)
+	WREG(cfg->vpd.vpd_reg + PCIR_VPD_DATA, data, 4);
+	WREG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, reg | 0x8000, 2);
+	while ((REG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, 2) & 0x8000) == 0x8000)
 		DELAY(1);	/* limit looping */
 
 	return;
@@ -673,7 +673,7 @@
 	}
 
 	vrs->cksum += byte;
-	return byte;
+	return (byte);
 }
 
 static void
@@ -918,9 +918,9 @@
 	*identptr = cfg->vpd.vpd_ident;
 
 	if (*identptr == NULL)
-		return ENXIO;
+		return (ENXIO);
 
-	return 0;
+	return (0);
 }
 
 int
@@ -938,10 +938,10 @@
 		}
 
 	if (i != cfg->vpd.vpd_rocnt)
-		return 0;
+		return (0);
 
 	*vptr = NULL;
-	return ENXIO;
+	return (ENXIO);
 }
 
 /*
@@ -3070,7 +3070,7 @@
 			if ((flags & RF_ACTIVE) &&
 			    bus_generic_activate_resource(dev, child, type,
 			    *rid, rle->res) != 0)
-				return NULL;
+				return (NULL);
 			return (rle->res);
 		}
 	}

==== //depot/projects/soc2006/intr_filter/dev/pci/pcireg.h#7 (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/pci/pcireg.h,v 1.58 2007/02/02 19:48:25 jhb Exp $
+ * $FreeBSD: src/sys/dev/pci/pcireg.h,v 1.59 2007/03/05 16:18:31 jhb Exp $
  *
  */
 
@@ -252,7 +252,13 @@
 
 #define	PCIC_SIMPLECOMM	0x07
 #define	PCIS_SIMPLECOMM_UART	0x00
+#define	PCIP_SIMPLECOMM_UART_8250	0x00
+#define	PCIP_SIMPLECOMM_UART_16450A	0x01
 #define	PCIP_SIMPLECOMM_UART_16550A	0x02
+#define	PCIP_SIMPLECOMM_UART_16650A	0x03
+#define	PCIP_SIMPLECOMM_UART_16750A	0x04
+#define	PCIP_SIMPLECOMM_UART_16850A	0x05
+#define	PCIP_SIMPLECOMM_UART_16950A	0x06
 #define	PCIS_SIMPLECOMM_PAR	0x01
 #define	PCIS_SIMPLECOMM_MULSER	0x02
 #define	PCIS_SIMPLECOMM_MODEM	0x03
@@ -260,6 +266,11 @@
 
 #define	PCIC_BASEPERIPH	0x08
 #define	PCIS_BASEPERIPH_PIC	0x00
+#define	PCIP_BASEPERIPH_PIC_8259A	0x00
+#define	PCIP_BASEPERIPH_PIC_ISA		0x01
+#define	PCIP_BASEPERIPH_PIC_EISA	0x02
+#define	PCIP_BASEPERIPH_PIC_IO_APIC	0x10
+#define	PCIP_BASEPERIPH_PIC_IOX_APIC	0x20
 #define	PCIS_BASEPERIPH_DMA	0x01
 #define	PCIS_BASEPERIPH_TIMER	0x02
 #define	PCIS_BASEPERIPH_RTC	0x03
@@ -339,7 +350,6 @@
 #define	PCIB_BCR_DISCARD_TIMER_SERREN	0x0800
 
 /* PCI power manangement */
-
 #define	PCIR_POWER_CAP		0x2
 #define	PCIM_PCAP_SPEC			0x0007
 #define	PCIM_PCAP_PMEREQCLK		0x0008
@@ -386,6 +396,10 @@
 
 #define	PCIR_POWER_DATA		0x7
 
+/* VPD capability registers */
+#define	PCIR_VPD_ADDR		0x2
+#define	PCIR_VPD_DATA		0x4
+
 /* PCI Message Signalled Interrupts (MSI) */
 #define	PCIR_MSI_CTRL		0x2
 #define	PCIM_MSICTRL_VECTOR		0x0100

==== //depot/projects/soc2006/intr_filter/dev/sound/pci/envy24.c#6 (text+ko) ====

@@ -35,7 +35,7 @@
 
 #include "mixer_if.h"
 
-SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/envy24.c,v 1.8 2007/02/23 19:41:16 ariff Exp $");
+SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/envy24.c,v 1.9 2007/03/05 07:45:38 ariff Exp $");
 
 MALLOC_DEFINE(M_ENVY24, "envy24", "envy24 audio");
 
@@ -2413,15 +2413,16 @@
 	mixer_init(dev, &envy24mixer_class, sc);
 
 	/* set channel information */
-	err = pcm_register(dev, sc, 5, 2 + sc->adcn);
+	err = pcm_register(dev, sc, sc->dacn, sc->adcn);
 	if (err)
 		goto bad;
-	sc->chnum = 0;
-	for (i = 0; i < 5; i++) {
+	sc->chnum = ENVY24_CHAN_PLAY_DAC1;
+	for (i = 0; i < sc->dacn; i++) {
 		pcm_addchan(dev, PCMDIR_PLAY, &envy24chan_class, sc);
 		sc->chnum++;
 	}
-	for (i = 0; i < 2 + sc->adcn; i++) {
+	sc->chnum = ENVY24_CHAN_REC_ADC1;
+	for (i = 0; i < sc->adcn; i++) {
 		pcm_addchan(dev, PCMDIR_REC, &envy24chan_class, sc);
 		sc->chnum++;
 	}

==== //depot/projects/soc2006/intr_filter/dev/sound/pcm/ac97.c#4 (text+ko) ====

@@ -32,7 +32,7 @@
 
 #include "mixer_if.h"
 
-SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/ac97.c,v 1.64 2006/11/26 12:24:05 ariff Exp $");
+SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/ac97.c,v 1.65 2007/03/06 02:36:54 ariff Exp $");
 
 MALLOC_DEFINE(M_AC97, "ac97", "ac97 codec");
 
@@ -538,6 +538,23 @@
 static void
 ac97_fix_tone(struct ac97_info *codec)
 {
+	/*
+	 * YMF chips does not indicate tone and 3D enhancement capability
+	 * in the AC97_REG_RESET register.
+	 */
+	switch (codec->id) {
+	case 0x594d4800:	/* YMF743 */
+	case 0x594d4803:	/* YMF753 */
+		codec->caps |= AC97_CAP_TONE;
+		codec->se |= 0x04;
+		break;
+	case 0x594d4802:	/* YMF752 */
+		codec->se |= 0x04;
+		break;
+	default:
+		break;
+	}
+
 	/* Hide treble and bass if they don't exist */
 	if ((codec->caps & AC97_CAP_TONE) == 0) {
 		bzero(&codec->mix[SOUND_MIXER_BASS],

==== //depot/projects/soc2006/intr_filter/dev/sym/sym_hipd.c#5 (text+ko) ====

@@ -56,7 +56,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/sym/sym_hipd.c,v 1.62 2007/02/23 12:18:55 piso Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/sym/sym_hipd.c,v 1.63 2007/03/05 21:21:03 thomas Exp $");
 
 #define SYM_DRIVER_NAME	"sym-1.6.5-20000902"
 
@@ -2206,9 +2206,9 @@
 	};
 }
 
-/*--------------------------------------------------------------------------*/
-/*--------------------------- END OF FIRMARES  -----------------------------*/
-/*--------------------------------------------------------------------------*/
+/*---------------------------------------------------------------------------*/
+/*--------------------------- END OF FIRMWARES  -----------------------------*/
+/*---------------------------------------------------------------------------*/
 
 /*
  *  Function prototypes.

==== //depot/projects/soc2006/intr_filter/geom/eli/g_eli_ctl.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200703060945.l269jlgj016323>