From owner-svn-src-projects@FreeBSD.ORG Sun Apr 1 08:14:52 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 49867106566C; Sun, 1 Apr 2012 08:14:52 +0000 (UTC) (envelope-from andreast@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 307118FC08; Sun, 1 Apr 2012 08:14:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q318EqPZ039946; Sun, 1 Apr 2012 08:14:52 GMT (envelope-from andreast@svn.freebsd.org) Received: (from andreast@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q318Ep62039912; Sun, 1 Apr 2012 08:14:51 GMT (envelope-from andreast@svn.freebsd.org) Message-Id: <201204010814.q318Ep62039912@svn.freebsd.org> From: Andreas Tobler Date: Sun, 1 Apr 2012 08:14:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r233754 - in projects/pseries: amd64/acpica amd64/amd64 amd64/include arm/include boot/common boot/forth boot/powerpc/ps3 cam/scsi cddl/dev/sdt conf contrib/dev/acpica/components/namesp... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Apr 2012 08:14:52 -0000 Author: andreast Date: Sun Apr 1 08:14:50 2012 New Revision: 233754 URL: http://svn.freebsd.org/changeset/base/233754 Log: IFC @ r233751 Added: projects/pseries/dev/hwpmc/hwpmc_soft.c - copied unchanged from r233751, head/sys/dev/hwpmc/hwpmc_soft.c projects/pseries/dev/hwpmc/hwpmc_soft.h - copied unchanged from r233751, head/sys/dev/hwpmc/hwpmc_soft.h projects/pseries/dev/mfi/mfi_syspd.c - copied unchanged from r233751, head/sys/dev/mfi/mfi_syspd.c projects/pseries/dev/mfi/mfi_tbolt.c - copied unchanged from r233751, head/sys/dev/mfi/mfi_tbolt.c projects/pseries/mips/nlm/dev/cfi_pci_xlp.c - copied unchanged from r233751, head/sys/mips/nlm/dev/cfi_pci_xlp.c projects/pseries/mips/nlm/dev/uart_pci_xlp.c - copied unchanged from r233751, head/sys/mips/nlm/dev/uart_pci_xlp.c projects/pseries/x86/include/legacyvar.h - copied unchanged from r233751, head/sys/x86/include/legacyvar.h projects/pseries/x86/x86/legacy.c - copied unchanged from r233751, head/sys/x86/x86/legacy.c Deleted: projects/pseries/amd64/amd64/legacy.c projects/pseries/amd64/include/legacyvar.h projects/pseries/i386/i386/legacy.c projects/pseries/i386/include/legacyvar.h projects/pseries/mips/nlm/intern_dev.c projects/pseries/mips/nlm/uart_pci_xlp.c projects/pseries/pc98/include/legacyvar.h Modified: projects/pseries/amd64/acpica/acpi_wakeup.c projects/pseries/amd64/amd64/initcpu.c projects/pseries/amd64/amd64/mp_machdep.c projects/pseries/amd64/amd64/trap.c projects/pseries/amd64/include/pmc_mdep.h projects/pseries/amd64/include/vm.h projects/pseries/arm/include/pmc_mdep.h projects/pseries/boot/common/loader.8 projects/pseries/boot/forth/loader.conf.5 projects/pseries/boot/powerpc/ps3/start.S projects/pseries/cam/scsi/scsi_da.c projects/pseries/cddl/dev/sdt/sdt.c projects/pseries/conf/files projects/pseries/conf/files.amd64 projects/pseries/conf/files.arm projects/pseries/conf/files.i386 projects/pseries/conf/files.ia64 projects/pseries/conf/files.mips projects/pseries/conf/files.pc98 projects/pseries/conf/files.powerpc projects/pseries/conf/files.sparc64 projects/pseries/conf/kern.post.mk projects/pseries/conf/kern.pre.mk projects/pseries/conf/kmod.mk projects/pseries/conf/options projects/pseries/contrib/dev/acpica/components/namespace/nsrepair.c projects/pseries/contrib/dev/acpica/components/parser/psargs.c projects/pseries/dev/acpica/acpi.c projects/pseries/dev/acpica/acpi_pcib_acpi.c projects/pseries/dev/ale/if_ale.c projects/pseries/dev/ale/if_alevar.h projects/pseries/dev/ath/if_ath.c projects/pseries/dev/ath/if_ath_tx.c projects/pseries/dev/ath/if_athvar.h projects/pseries/dev/atkbdc/atkbdc_isa.c projects/pseries/dev/atkbdc/psm.c projects/pseries/dev/cfi/cfi_core.c projects/pseries/dev/cfi/cfi_dev.c projects/pseries/dev/cfi/cfi_disk.c projects/pseries/dev/cfi/cfi_var.h projects/pseries/dev/e1000/if_em.c projects/pseries/dev/e1000/if_igb.c projects/pseries/dev/fxp/if_fxp.c projects/pseries/dev/fxp/if_fxpreg.h projects/pseries/dev/fxp/if_fxpvar.h projects/pseries/dev/hwpmc/hwpmc_amd.c projects/pseries/dev/hwpmc/hwpmc_core.c projects/pseries/dev/hwpmc/hwpmc_intel.c projects/pseries/dev/hwpmc/hwpmc_logging.c projects/pseries/dev/hwpmc/hwpmc_mips.c projects/pseries/dev/hwpmc/hwpmc_mod.c projects/pseries/dev/hwpmc/hwpmc_piv.c projects/pseries/dev/hwpmc/hwpmc_powerpc.c projects/pseries/dev/hwpmc/hwpmc_ppro.c projects/pseries/dev/hwpmc/hwpmc_tsc.c projects/pseries/dev/hwpmc/hwpmc_x86.c projects/pseries/dev/hwpmc/hwpmc_xscale.c projects/pseries/dev/hwpmc/pmc_events.h projects/pseries/dev/isci/isci.h projects/pseries/dev/isci/isci_controller.c projects/pseries/dev/isci/isci_domain.c projects/pseries/dev/isci/isci_task_request.c projects/pseries/dev/isci/scil/sati_read_capacity.c projects/pseries/dev/iwn/if_iwn.c projects/pseries/dev/mfi/mfi.c projects/pseries/dev/mfi/mfi_cam.c projects/pseries/dev/mfi/mfi_debug.c projects/pseries/dev/mfi/mfi_disk.c projects/pseries/dev/mfi/mfi_ioctl.h projects/pseries/dev/mfi/mfi_linux.c projects/pseries/dev/mfi/mfi_pci.c projects/pseries/dev/mfi/mfireg.h projects/pseries/dev/mfi/mfivar.h projects/pseries/dev/pci/pci.c projects/pseries/dev/sound/pci/hda/hdaa.c projects/pseries/dev/sound/pci/hda/hdac.c projects/pseries/dev/syscons/syscons.c projects/pseries/geom/geom_vfs.c projects/pseries/geom/part/g_part_ldm.c projects/pseries/gnu/fs/reiserfs/reiserfs_vfsops.c projects/pseries/i386/i386/trap.c projects/pseries/i386/include/pmc_mdep.h projects/pseries/i386/include/vm.h projects/pseries/i386/xbox/xboxfb.c projects/pseries/kern/kern_clock.c projects/pseries/kern/kern_lock.c projects/pseries/kern/kern_mutex.c projects/pseries/kern/kern_pmc.c projects/pseries/kern/kern_rwlock.c projects/pseries/kern/kern_sdt.c projects/pseries/kern/kern_sx.c projects/pseries/kern/kern_umtx.c projects/pseries/kern/subr_trap.c projects/pseries/mips/atheros/std.ar71xx projects/pseries/mips/cavium/cvmx_config.h projects/pseries/mips/cavium/std.octeon1 projects/pseries/mips/conf/AR71XX_BASE projects/pseries/mips/conf/AR91XX_BASE projects/pseries/mips/conf/SWARM projects/pseries/mips/conf/SWARM64 projects/pseries/mips/conf/SWARM64_SMP projects/pseries/mips/conf/SWARM_SMP projects/pseries/mips/conf/XLP projects/pseries/mips/conf/XLP64 projects/pseries/mips/conf/XLPN32 projects/pseries/mips/conf/XLR projects/pseries/mips/conf/XLR64 projects/pseries/mips/conf/XLRN32 projects/pseries/mips/conf/std.XLP projects/pseries/mips/include/param.h projects/pseries/mips/include/pmc_mdep.h projects/pseries/mips/include/vm.h projects/pseries/mips/mips/trap.c projects/pseries/mips/nlm/board.h projects/pseries/mips/nlm/dev/net/nae.c projects/pseries/mips/nlm/dev/net/ucore/ucore.h projects/pseries/mips/nlm/dev/net/ucore/ucore_app.c projects/pseries/mips/nlm/files.xlp projects/pseries/mips/nlm/hal/nlm_hal.c projects/pseries/mips/nlm/hal/pcibus.h projects/pseries/mips/nlm/hal/pic.h projects/pseries/mips/nlm/intr_machdep.c projects/pseries/mips/nlm/uart_cpu_xlp.c projects/pseries/mips/nlm/xlp.h projects/pseries/mips/nlm/xlp_machdep.c projects/pseries/mips/nlm/xlp_pci.c projects/pseries/modules/hwpmc/Makefile projects/pseries/modules/mfi/Makefile projects/pseries/netinet/ipfw/ip_fw_sockopt.c projects/pseries/netinet/sctp.h projects/pseries/netinet/sctp_constants.h projects/pseries/netinet/sctp_header.h projects/pseries/netinet/sctp_input.c projects/pseries/netinet/sctp_output.c projects/pseries/netinet/sctp_output.h projects/pseries/netinet/sctp_pcb.h projects/pseries/netinet/sctp_peeloff.c projects/pseries/netinet/sctp_structs.h projects/pseries/netinet/sctp_uio.h projects/pseries/netinet/sctp_usrreq.c projects/pseries/netinet/sctputil.c projects/pseries/netinet/sctputil.h projects/pseries/netinet/tcp_subr.c projects/pseries/netinet/udp_usrreq.c projects/pseries/netinet/udp_var.h projects/pseries/ofed/include/linux/io.h projects/pseries/ofed/include/linux/page.h projects/pseries/powerpc/aim/mmu_oea64.c projects/pseries/powerpc/aim/moea64_native.c projects/pseries/powerpc/include/pmc_mdep.h projects/pseries/powerpc/include/trap.h projects/pseries/powerpc/include/trap_aim.h projects/pseries/powerpc/include/trap_booke.h projects/pseries/powerpc/include/vm.h projects/pseries/sparc64/pci/fire.c projects/pseries/sparc64/pci/firereg.h projects/pseries/sparc64/sparc64/trap.c projects/pseries/sys/conf.h projects/pseries/sys/pmc.h projects/pseries/sys/pmckern.h projects/pseries/sys/pmclog.h projects/pseries/sys/sdt.h projects/pseries/ufs/ffs/ffs_inode.c projects/pseries/ufs/ffs/ffs_vfsops.c projects/pseries/ufs/ufs/ufs_quota.c projects/pseries/vm/vnode_pager.c projects/pseries/x86/acpica/madt.c projects/pseries/x86/include/endian.h projects/pseries/x86/include/segments.h projects/pseries/x86/isa/isa_dma.c projects/pseries/x86/pci/pci_bus.c projects/pseries/x86/x86/mca.c projects/pseries/x86/x86/mptable_pci.c Directory Properties: projects/pseries/ (props changed) projects/pseries/boot/ (props changed) projects/pseries/conf/ (props changed) projects/pseries/contrib/dev/acpica/ (props changed) projects/pseries/contrib/dev/acpica/components/namespace/ (props changed) projects/pseries/contrib/dev/acpica/components/parser/ (props changed) projects/pseries/contrib/dev/acpica/include/ (props changed) Modified: projects/pseries/amd64/acpica/acpi_wakeup.c ============================================================================== --- projects/pseries/amd64/acpica/acpi_wakeup.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/amd64/acpica/acpi_wakeup.c Sun Apr 1 08:14:50 2012 (r233754) @@ -284,6 +284,7 @@ acpi_sleep_machdep(struct acpi_softc *sc } else { pmap_init_pat(); load_cr3(susppcbs[0]->pcb_cr3); + initializecpu(); PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); #ifdef SMP Modified: projects/pseries/amd64/amd64/initcpu.c ============================================================================== --- projects/pseries/amd64/amd64/initcpu.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/amd64/amd64/initcpu.c Sun Apr 1 08:14:50 2012 (r233754) @@ -79,6 +79,27 @@ SYSCTL_UINT(_hw, OID_AUTO, via_feature_r SYSCTL_UINT(_hw, OID_AUTO, via_feature_xcrypt, CTLFLAG_RD, &via_feature_xcrypt, 0, "VIA xcrypt feature available in CPU"); +static void +init_amd(void) +{ + + /* + * Work around Erratum 721 for Family 10h and 12h processors. + * These processors may incorrectly update the stack pointer + * after a long series of push and/or near-call instructions, + * or a long series of pop and/or near-return instructions. + * + * http://support.amd.com/us/Processor_TechDocs/41322_10h_Rev_Gd.pdf + * http://support.amd.com/us/Processor_TechDocs/44739_12h_Rev_Gd.pdf + */ + switch (CPUID_TO_FAMILY(cpu_id)) { + case 0x10: + case 0x12: + wrmsr(0xc0011029, rdmsr(0xc0011029) | 1); + break; + } +} + /* * Initialize special VIA features */ @@ -135,8 +156,14 @@ initializecpu(void) wrmsr(MSR_EFER, msr); pg_nx = PG_NX; } - if (cpu_vendor_id == CPU_VENDOR_CENTAUR) + switch (cpu_vendor_id) { + case CPU_VENDOR_AMD: + init_amd(); + break; + case CPU_VENDOR_CENTAUR: init_via(); + break; + } } void Modified: projects/pseries/amd64/amd64/mp_machdep.c ============================================================================== --- projects/pseries/amd64/amd64/mp_machdep.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/amd64/amd64/mp_machdep.c Sun Apr 1 08:14:50 2012 (r233754) @@ -1425,6 +1425,7 @@ cpususpend_handler(void) } else { pmap_init_pat(); load_cr3(susppcbs[cpu]->pcb_cr3); + initializecpu(); PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); } Modified: projects/pseries/amd64/amd64/trap.c ============================================================================== --- projects/pseries/amd64/amd64/trap.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/amd64/amd64/trap.c Sun Apr 1 08:14:50 2012 (r233754) @@ -71,6 +71,9 @@ __FBSDID("$FreeBSD$"); #include #ifdef HWPMC_HOOKS #include +PMC_SOFT_DEFINE( , , page_fault, all); +PMC_SOFT_DEFINE( , , page_fault, read); +PMC_SOFT_DEFINE( , , page_fault, write); #endif #include @@ -743,8 +746,20 @@ trap_pfault(frame, usermode) */ rv = vm_fault(map, va, ftype, VM_FAULT_NORMAL); } - if (rv == KERN_SUCCESS) + if (rv == KERN_SUCCESS) { +#ifdef HWPMC_HOOKS + if (ftype == VM_PROT_READ || ftype == VM_PROT_WRITE) { + PMC_SOFT_CALL_TF( , , page_fault, all, frame); + if (ftype == VM_PROT_READ) + PMC_SOFT_CALL_TF( , , page_fault, read, + frame); + else + PMC_SOFT_CALL_TF( , , page_fault, write, + frame); + } +#endif return (0); + } nogo: if (!usermode) { if (td->td_intr_nesting_level == 0 && Modified: projects/pseries/amd64/include/pmc_mdep.h ============================================================================== --- projects/pseries/amd64/include/pmc_mdep.h Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/amd64/include/pmc_mdep.h Sun Apr 1 08:14:50 2012 (r233754) @@ -50,13 +50,13 @@ struct pmc_mdep; * measurement architecture have PMCs of the following classes: TSC, * IAF, IAP, UCF and UCP. */ -#define PMC_MDEP_CLASS_INDEX_TSC 0 -#define PMC_MDEP_CLASS_INDEX_K8 1 -#define PMC_MDEP_CLASS_INDEX_P4 1 -#define PMC_MDEP_CLASS_INDEX_IAP 1 -#define PMC_MDEP_CLASS_INDEX_IAF 2 -#define PMC_MDEP_CLASS_INDEX_UCP 3 -#define PMC_MDEP_CLASS_INDEX_UCF 4 +#define PMC_MDEP_CLASS_INDEX_TSC 1 +#define PMC_MDEP_CLASS_INDEX_K8 2 +#define PMC_MDEP_CLASS_INDEX_P4 2 +#define PMC_MDEP_CLASS_INDEX_IAP 2 +#define PMC_MDEP_CLASS_INDEX_IAF 3 +#define PMC_MDEP_CLASS_INDEX_UCP 4 +#define PMC_MDEP_CLASS_INDEX_UCF 5 /* * On the amd64 platform we support the following PMCs. @@ -119,6 +119,15 @@ union pmc_md_pmc { #define PMC_IN_USERSPACE(va) ((va) <= VM_MAXUSER_ADDRESS) +/* Build a fake kernel trapframe from current instruction pointer. */ +#define PMC_FAKE_TRAPFRAME(TF) \ + do { \ + (TF)->tf_cs = 0; (TF)->tf_rflags = 0; \ + __asm __volatile("movq %%rbp,%0" : "=r" ((TF)->tf_rbp)); \ + __asm __volatile("movq %%rsp,%0" : "=r" ((TF)->tf_rsp)); \ + __asm __volatile("call 1f \n\t1: pop %0" : "=r"((TF)->tf_rip)); \ + } while (0) + /* * Prototypes */ Modified: projects/pseries/amd64/include/vm.h ============================================================================== --- projects/pseries/amd64/include/vm.h Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/amd64/include/vm.h Sun Apr 1 08:14:50 2012 (r233754) @@ -38,7 +38,7 @@ #define VM_MEMATTR_WRITE_THROUGH ((vm_memattr_t)PAT_WRITE_THROUGH) #define VM_MEMATTR_WRITE_PROTECTED ((vm_memattr_t)PAT_WRITE_PROTECTED) #define VM_MEMATTR_WRITE_BACK ((vm_memattr_t)PAT_WRITE_BACK) -#define VM_MEMATTR_UNCACHED ((vm_memattr_t)PAT_UNCACHED) +#define VM_MEMATTR_WEAK_UNCACHEABLE ((vm_memattr_t)PAT_UNCACHED) #define VM_MEMATTR_DEFAULT VM_MEMATTR_WRITE_BACK Modified: projects/pseries/arm/include/pmc_mdep.h ============================================================================== --- projects/pseries/arm/include/pmc_mdep.h Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/arm/include/pmc_mdep.h Sun Apr 1 08:14:50 2012 (r233754) @@ -29,7 +29,7 @@ #ifndef _MACHINE_PMC_MDEP_H_ #define _MACHINE_PMC_MDEP_H_ -#define PMC_MDEP_CLASS_INDEX_XSCALE 0 +#define PMC_MDEP_CLASS_INDEX_XSCALE 1 /* * On the ARM platform we support the following PMCs. * Modified: projects/pseries/boot/common/loader.8 ============================================================================== --- projects/pseries/boot/common/loader.8 Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/boot/common/loader.8 Sun Apr 1 08:14:50 2012 (r233754) @@ -223,7 +223,7 @@ Loads a .Xr geli 8 encryption keyfile for the given provider name. The key index can be specified via -.Ar keyno +.Ar keyno or will default to zero. .Pp .It Ic ls Xo Modified: projects/pseries/boot/forth/loader.conf.5 ============================================================================== --- projects/pseries/boot/forth/loader.conf.5 Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/boot/forth/loader.conf.5 Sun Apr 1 08:14:50 2012 (r233754) @@ -266,7 +266,7 @@ The stops reading .Nm when it encounters a syntax error, so any options which are vital for -booting a particular system (i.e.\& +booting a particular system (i.e.\& .Dq Va hw.ata.ata_dma Ns "=0" ) should precede any experimental additions to .Nm . Modified: projects/pseries/boot/powerpc/ps3/start.S ============================================================================== --- projects/pseries/boot/powerpc/ps3/start.S Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/boot/powerpc/ps3/start.S Sun Apr 1 08:14:50 2012 (r233754) @@ -25,6 +25,8 @@ * $FreeBSD$ */ +#define LOCORE + #include /* Modified: projects/pseries/cam/scsi/scsi_da.c ============================================================================== --- projects/pseries/cam/scsi/scsi_da.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/cam/scsi/scsi_da.c Sun Apr 1 08:14:50 2012 (r233754) @@ -1631,9 +1631,7 @@ daregister(struct cam_periph *periph, vo softc->minimum_cmd_size = 16; /* Predict whether device may support READ CAPACITY(16). */ - if (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC3 || - (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC && - (cgd->inq_data.spc3_flags & SPC3_SID_PROTECT))) { + if (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC3) { softc->flags |= DA_FLAG_CAN_RC16; softc->state = DA_STATE_PROBE2; } Modified: projects/pseries/cddl/dev/sdt/sdt.c ============================================================================== --- projects/pseries/cddl/dev/sdt/sdt.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/cddl/dev/sdt/sdt.c Sun Apr 1 08:14:50 2012 (r233754) @@ -52,6 +52,8 @@ static void sdt_destroy(void *, dtrace_i static void sdt_enable(void *, dtrace_id_t, void *); static void sdt_disable(void *, dtrace_id_t, void *); static void sdt_load(void *); +static int sdt_provider_unreg_callback(struct sdt_provider *prov, + void *arg); static struct cdevsw sdt_cdevsw = { .d_version = D_VERSION, @@ -190,7 +192,8 @@ sdt_load(void *dummy) sdt_probe_func = dtrace_probe; - (void) sdt_provider_listall(sdt_provider_reg_callback, NULL); + sdt_register_callbacks(sdt_provider_reg_callback, NULL, + sdt_provider_unreg_callback, NULL, sdt_probe_callback, NULL); } static int @@ -206,7 +209,7 @@ sdt_unload() sdt_probe_func = sdt_probe_stub; - (void) sdt_provider_listall(sdt_provider_unreg_callback, NULL); + sdt_deregister_callbacks(); destroy_dev(sdt_cdev); Modified: projects/pseries/conf/files ============================================================================== --- projects/pseries/conf/files Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files Sun Apr 1 08:14:50 2012 (r233754) @@ -139,6 +139,131 @@ cam/scsi/scsi_sg.c optional sg cam/scsi/scsi_targ_bh.c optional targbh cam/scsi/scsi_target.c optional targ cam/scsi/smp_all.c optional scbus +# shared between zfs and dtrace +cddl/compat/opensolaris/kern/opensolaris.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_cmn_err.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_kmem.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_misc.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_sunddi.c optional zfs compile-with "${ZFS_C}" +# zfs specific +cddl/compat/opensolaris/kern/opensolaris_acl.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_kobj.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_kstat.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_lookup.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_policy.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_string.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_sysevent.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_taskq.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_uio.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_vfs.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_zone.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/acl/acl_common.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/avl/avl.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/nvpair/nvpair.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/nvpair/nvpair_alloc_fixed.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/unicode/u8_textprep.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zfs_comutil.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zfs_deleg.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zfs_fletcher.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zfs_prop.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zpool_prop.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zprop_common.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/gfs.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/vnode.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/bplist.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/ddt_zap.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c optional zfs compile-with "${ZFS_C}" \ + warning "kernel contains CDDL licensed ZFS filesystem" +cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deadlist.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/gzip.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/lzjb.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/rrwlock.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/sha256.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/spa_errlog.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/uberblock.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/unique.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_missing.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_root.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zap_leaf.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_debug.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_rlock.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_sa.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zio_compress.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zle.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zrlock.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/os/callb.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/os/fm.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/os/list.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/os/nvpair_alloc_system.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/adler32.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/deflate.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/inffast.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/inflate.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/inftrees.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/trees.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/zmod.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/zmod_subr.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/zutil.c optional zfs compile-with "${ZFS_C}" contrib/altq/altq/altq_cbq.c optional altq \ compile-with "${NORMAL_C} -I$S/contrib/pf" contrib/altq/altq/altq_cdnr.c optional altq @@ -415,7 +540,7 @@ crypto/rijndael/rijndael-api.c optional crypto/sha1.c optional carp | crypto | ipsec | \ netgraph_mppc_encryption | sctp crypto/sha2/sha2.c optional crypto | geom_bde | ipsec | random | \ - sctp + sctp | zfs ddb/db_access.c optional ddb ddb/db_break.c optional ddb ddb/db_capture.c optional ddb @@ -1135,6 +1260,7 @@ dev/hme/if_hme_sbus.c optional hme sbus dev/hptiop/hptiop.c optional hptiop scbus dev/hwpmc/hwpmc_logging.c optional hwpmc dev/hwpmc/hwpmc_mod.c optional hwpmc +dev/hwpmc/hwpmc_soft.c optional hwpmc dev/ichsmb/ichsmb.c optional ichsmb dev/ichsmb/ichsmb_pci.c optional ichsmb pci dev/ida/ida.c optional ida @@ -1432,6 +1558,8 @@ dev/mfi/mfi.c optional mfi dev/mfi/mfi_debug.c optional mfi dev/mfi/mfi_pci.c optional mfi pci dev/mfi/mfi_disk.c optional mfi +dev/mfi/mfi_syspd.c optional mfi +dev/mfi/mfi_tbolt.c optional mfi dev/mfi/mfi_linux.c optional mfi compat_linux dev/mfi/mfi_cam.c optional mfip scbus dev/mii/acphy.c optional miibus | acphy Modified: projects/pseries/conf/files.amd64 ============================================================================== --- projects/pseries/conf/files.amd64 Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.amd64 Sun Apr 1 08:14:50 2012 (r233754) @@ -113,7 +113,6 @@ amd64/amd64/identcpu.c standard amd64/amd64/in_cksum.c optional inet | inet6 amd64/amd64/initcpu.c standard amd64/amd64/io.c optional io -amd64/amd64/legacy.c standard amd64/amd64/locore.S standard no-obj amd64/amd64/machdep.c standard amd64/amd64/mem.c optional mem @@ -133,6 +132,7 @@ amd64/amd64/uio_machdep.c standard amd64/amd64/uma_machdep.c standard amd64/amd64/vm_machdep.c standard amd64/pci/pci_cfgreg.c optional pci +cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S optional zfs compile-with "${ZFS_S}" crypto/aesni/aesencdec_amd64.S optional aesni crypto/aesni/aeskeys_amd64.S optional aesni crypto/aesni/aesni.c optional aesni @@ -476,6 +476,7 @@ x86/x86/busdma_machdep.c standard x86/x86/dump_machdep.c standard x86/x86/intr_machdep.c standard x86/x86/io_apic.c standard +x86/x86/legacy.c standard x86/x86/local_apic.c standard x86/x86/mca.c standard x86/x86/mptable.c optional mptable Modified: projects/pseries/conf/files.arm ============================================================================== --- projects/pseries/conf/files.arm Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.arm Sun Apr 1 08:14:50 2012 (r233754) @@ -47,6 +47,7 @@ arm/arm/vm_machdep.c standard arm/fpe-arm/armfpe_glue.S optional armfpe arm/fpe-arm/armfpe_init.c optional armfpe arm/fpe-arm/armfpe.S optional armfpe +cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs compile-with "${ZFS_C}" dev/hwpmc/hwpmc_arm.c optional hwpmc dev/ofw/openfirm.c optional fdt dev/ofw/openfirmio.c optional fdt Modified: projects/pseries/conf/files.i386 ============================================================================== --- projects/pseries/conf/files.i386 Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.i386 Sun Apr 1 08:14:50 2012 (r233754) @@ -71,6 +71,7 @@ hptrr_lib.o optional hptrr \ compile-with "uudecode < $S/dev/hptrr/i386-elf.hptrr_lib.o.uu" \ no-implicit-rule # +cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S optional zfs compile-with "${ZFS_S}" compat/linprocfs/linprocfs.c optional linprocfs compat/linsysfs/linsysfs.c optional linsysfs compat/linux/linux_emul.c optional compat_linux @@ -407,7 +408,6 @@ i386/i386/in_cksum.c optional inet | in i386/i386/initcpu.c standard i386/i386/io.c optional io i386/i386/k6_mem.c optional mem -i386/i386/legacy.c optional native i386/i386/locore.s optional native no-obj i386/xen/locore.s optional xen no-obj i386/i386/longrun.c optional cpu_enable_longrun @@ -528,6 +528,7 @@ x86/x86/busdma_machdep.c standard x86/x86/dump_machdep.c standard x86/x86/intr_machdep.c standard x86/x86/io_apic.c optional apic +x86/x86/legacy.c optional native x86/x86/local_apic.c optional apic x86/x86/mca.c standard x86/x86/mptable.c optional apic native Modified: projects/pseries/conf/files.ia64 ============================================================================== --- projects/pseries/conf/files.ia64 Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.ia64 Sun Apr 1 08:14:50 2012 (r233754) @@ -28,6 +28,7 @@ ukbdmap.h optional ukbd_dflt_keymap \ no-obj no-implicit-rule before-depend \ clean "ukbdmap.h" # +cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S optional zfs compile-with "${ZFS_S}" compat/freebsd32/freebsd32_ioctl.c optional compat_freebsd32 compat/freebsd32/freebsd32_misc.c optional compat_freebsd32 compat/freebsd32/freebsd32_syscalls.c optional compat_freebsd32 Modified: projects/pseries/conf/files.mips ============================================================================== --- projects/pseries/conf/files.mips Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.mips Sun Apr 1 08:14:50 2012 (r233754) @@ -85,6 +85,7 @@ libkern/ucmpdi2.c standard #libkern/mips/strcmp.S standard #libkern/mips/strncmp.S standard +cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs compile-with "${ZFS_C}" compat/freebsd32/freebsd32_ioctl.c optional compat_freebsd32 compat/freebsd32/freebsd32_misc.c optional compat_freebsd32 compat/freebsd32/freebsd32_syscalls.c optional compat_freebsd32 Modified: projects/pseries/conf/files.pc98 ============================================================================== --- projects/pseries/conf/files.pc98 Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.pc98 Sun Apr 1 08:14:50 2012 (r233754) @@ -38,6 +38,7 @@ ukbdmap.h optional ukbd_dflt_keymap \ no-obj no-implicit-rule before-depend \ clean "ukbdmap.h" # +cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S optional zfs compile-with "${ZFS_S}" compat/linprocfs/linprocfs.c optional linprocfs compat/linsysfs/linsysfs.c optional linsysfs compat/linux/linux_emul.c optional compat_linux @@ -146,7 +147,6 @@ i386/i386/in_cksum.c optional inet | in i386/i386/initcpu.c standard i386/i386/io.c optional io i386/i386/k6_mem.c optional mem -i386/i386/legacy.c standard i386/i386/locore.s standard no-obj i386/i386/mem.c optional mem i386/i386/minidump_machdep.c standard @@ -204,7 +204,6 @@ i386/svr4/svr4_locore.s optional compat dependency "svr4_assym.h" \ warning "COMPAT_SVR4 is broken and should be avoided" i386/svr4/svr4_machdep.c optional compat_svr4 -# kern/kern_clocksource.c standard kern/imgact_aout.c optional compat_aout kern/imgact_gzip.c optional gzip @@ -252,6 +251,7 @@ x86/x86/busdma_machdep.c standard x86/x86/dump_machdep.c standard x86/x86/intr_machdep.c standard x86/x86/io_apic.c optional apic +x86/x86/legacy.c standard x86/x86/local_apic.c optional apic x86/x86/mca.c standard x86/x86/mptable.c optional apic Modified: projects/pseries/conf/files.powerpc ============================================================================== --- projects/pseries/conf/files.powerpc Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.powerpc Sun Apr 1 08:14:50 2012 (r233754) @@ -14,6 +14,9 @@ font.h optional sc \ no-obj no-implicit-rule before-depend \ clean "font.h ${SC_DFLT_FONT}-8x14 ${SC_DFLT_FONT}-8x16 ${SC_DFLT_FONT}-8x8" # +# There is only an asm version on ppc64. +cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs powerpc compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/atomic/powerpc64/opensolaris_atomic.S optional zfs powerpc64 compile-with "${ZFS_S}" crypto/blowfish/bf_enc.c optional crypto | ipsec crypto/des/des_enc.c optional crypto | ipsec | netsmb dev/bm/if_bm.c optional bm powermac Modified: projects/pseries/conf/files.sparc64 ============================================================================== --- projects/pseries/conf/files.sparc64 Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.sparc64 Sun Apr 1 08:14:50 2012 (r233754) @@ -22,6 +22,7 @@ ukbdmap.h optional ukbd_dflt_keymap \ no-obj no-implicit-rule before-depend \ clean "ukbdmap.h" # +cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S optional zfs compile-with "${ZFS_S}" crypto/blowfish/bf_enc.c optional crypto | ipsec crypto/des/des_enc.c optional crypto | ipsec | netsmb dev/atkbdc/atkbd.c optional atkbd atkbdc Modified: projects/pseries/conf/kern.post.mk ============================================================================== --- projects/pseries/conf/kern.post.mk Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/kern.post.mk Sun Apr 1 08:14:50 2012 (r233754) @@ -152,6 +152,12 @@ genassym.o: $S/$M/$M/genassym.c ${SYSTEM_OBJS} genassym.o vers.o: opt_global.h +# We have "special" -I include paths for opensolaris/zfs files in 'depend'. +CFILES_NOZFS= ${CFILES:N*/opensolaris/*} +SFILES_NOZFS= ${SFILES:N*/opensolaris/*} +CFILES_ZFS= ${CFILES:M*/opensolaris/*} +SFILES_ZFS= ${SFILES:M*/opensolaris/*} + kernel-depend: .depend # The argument list can be very long, so use make -V and xargs to # pass it to mkdep. @@ -160,10 +166,14 @@ SRCS= assym.s vnode_if.h ${BEFORE_DEPEND ${MFILES:T:S/.m$/.h/} .depend: .PRECIOUS ${SRCS} rm -f .newdep - ${MAKE} -V CFILES -V SYSTEM_CFILES -V GEN_CFILES | \ + ${MAKE} -V CFILES_NOZFS -V SYSTEM_CFILES -V GEN_CFILES | \ MKDEP_CPP="${CC} -E" CC="${CC}" xargs mkdep -a -f .newdep ${CFLAGS} - ${MAKE} -V SFILES | \ + ${MAKE} -V CFILES_ZFS | \ + MKDEP_CPP="${CC} -E" CC="${CC}" xargs mkdep -a -f .newdep ${ZFS_CFLAGS} + ${MAKE} -V SFILES_NOZFS | \ MKDEP_CPP="${CC} -E" xargs mkdep -a -f .newdep ${ASM_CFLAGS} + ${MAKE} -V SFILES_ZFS | \ + MKDEP_CPP="${CC} -E" xargs mkdep -a -f .newdep ${ZFS_ASM_CFLAGS} rm -f .depend mv .newdep .depend Modified: projects/pseries/conf/kern.pre.mk ============================================================================== --- projects/pseries/conf/kern.pre.mk Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/kern.pre.mk Sun Apr 1 08:14:50 2012 (r233754) @@ -6,7 +6,7 @@ .include # backwards compat option for older systems. -MACHINE_CPUARCH?=${MACHINE_ARCH:C/mipse[lb]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} +MACHINE_CPUARCH?=${MACHINE_ARCH:C/mips(n32|64)?(el)?/mips/:C/armeb/arm/:C/powerpc64/powerpc/} # Can be overridden by makeoptions or /etc/make.conf KERNEL_KO?= kernel @@ -131,6 +131,12 @@ NORMAL_C_NOWERROR= ${CC} -c ${CFLAGS} ${ NORMAL_M= ${AWK} -f $S/tools/makeobjops.awk ${.IMPSRC} -c ; \ ${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.PREFIX}.c +# Special flags for managing the compat compiles for ZFS +ZFS_CFLAGS= -DFREEBSD_NAMECACHE -DBUILDING_ZFS -nostdinc -I$S/cddl/compat/opensolaris -I$S/cddl/contrib/opensolaris/uts/common/fs/zfs -I$S/cddl/contrib/opensolaris/uts/common/zmod -I$S/cddl/contrib/opensolaris/uts/common -I$S -I$S/cddl/contrib/opensolaris/common/zfs -I$S/cddl/contrib/opensolaris/common ${CFLAGS} -Wno-unknown-pragmas -Wno-missing-prototypes -Wno-undef -Wno-strict-prototypes -Wno-cast-qual -Wno-parentheses -Wno-redundant-decls -Wno-missing-braces -Wno-uninitialized -Wno-unused -Wno-inline -Wno-switch -Wno-pointer-arith -Wno-unknown-pragmas +ZFS_ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${ZFS_CFLAGS} +ZFS_C= ${CC} -c ${ZFS_CFLAGS} ${WERROR} ${PROF} ${.IMPSRC} +ZFS_S= ${CC} -c ${ZFS_ASM_CFLAGS} ${WERROR} ${.IMPSRC} + .if ${MK_CTF} != "no" NORMAL_CTFCONVERT= ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} .elif ${MAKE_VERSION} >= 5201111300 Modified: projects/pseries/conf/kmod.mk ============================================================================== --- projects/pseries/conf/kmod.mk Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/kmod.mk Sun Apr 1 08:14:50 2012 (r233754) @@ -61,7 +61,7 @@ # # backwards compat option for older systems. -MACHINE_CPUARCH?=${MACHINE_ARCH:C/mipse[lb]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} +MACHINE_CPUARCH?=${MACHINE_ARCH:C/mips(n32|64)?(el)?/mips/:C/armeb/arm/:C/powerpc64/powerpc/} AWK?= awk KMODLOAD?= /sbin/kldload Modified: projects/pseries/conf/options ============================================================================== --- projects/pseries/conf/options Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/options Sun Apr 1 08:14:50 2012 (r233754) @@ -837,6 +837,8 @@ XBOX opt_xbox.h # XFS XFS +ZFS opt_dontuse.h + # Interrupt filtering INTR_FILTER Modified: projects/pseries/contrib/dev/acpica/components/namespace/nsrepair.c ============================================================================== --- projects/pseries/contrib/dev/acpica/components/namespace/nsrepair.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/contrib/dev/acpica/components/namespace/nsrepair.c Sun Apr 1 08:14:50 2012 (r233754) @@ -209,6 +209,9 @@ ObjectRepaired: */ if (!(Data->Flags & ACPI_OBJECT_WRAPPED)) { + NewObject->Common.ReferenceCount = + ReturnObject->Common.ReferenceCount; + if (ReturnObject->Common.ReferenceCount > 1) { ReturnObject->Common.ReferenceCount--; Modified: projects/pseries/contrib/dev/acpica/components/parser/psargs.c ============================================================================== --- projects/pseries/contrib/dev/acpica/components/parser/psargs.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/contrib/dev/acpica/components/parser/psargs.c Sun Apr 1 08:14:50 2012 (r233754) @@ -672,6 +672,7 @@ AcpiPsGetNextField ( Arg = AcpiPsAllocOp (AML_INT_BYTELIST_OP); if (!Arg) { + AcpiPsFreeOp (Field); return_PTR (NULL); } @@ -717,6 +718,7 @@ AcpiPsGetNextField ( Arg = AcpiPsAllocOp (AML_INT_NAMEPATH_OP); if (!Arg) { + AcpiPsFreeOp (Field); return_PTR (NULL); } Modified: projects/pseries/dev/acpica/acpi.c ============================================================================== --- projects/pseries/dev/acpica/acpi.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/dev/acpica/acpi.c Sun Apr 1 08:14:50 2012 (r233754) @@ -1968,6 +1968,7 @@ static void acpi_shutdown_final(void *arg, int howto) { struct acpi_softc *sc = (struct acpi_softc *)arg; + register_t intr; ACPI_STATUS status; /* @@ -1983,13 +1984,15 @@ acpi_shutdown_final(void *arg, int howto return; } device_printf(sc->acpi_dev, "Powering system off\n"); - ACPI_DISABLE_IRQS(); + intr = intr_disable(); status = AcpiEnterSleepState(ACPI_STATE_S5, acpi_sleep_flags); - if (ACPI_FAILURE(status)) + if (ACPI_FAILURE(status)) { + intr_restore(intr); device_printf(sc->acpi_dev, "power-off failed - %s\n", AcpiFormatException(status)); - else { + } else { DELAY(1000000); + intr_restore(intr); device_printf(sc->acpi_dev, "power-off failed - timeout\n"); } } else if ((howto & RB_HALT) == 0 && sc->acpi_handle_reboot) { @@ -2641,7 +2644,8 @@ enum acpi_sleep_state { static ACPI_STATUS acpi_EnterSleepState(struct acpi_softc *sc, int state) { - ACPI_STATUS status; + register_t intr; + ACPI_STATUS status; enum acpi_sleep_state slp_state; ACPI_FUNCTION_TRACE_U32((char *)(uintptr_t)__func__, state); @@ -2730,8 +2734,9 @@ acpi_EnterSleepState(struct acpi_softc * if (state == ACPI_STATE_S4) AcpiEnable(); } else { - ACPI_DISABLE_IRQS(); + intr = intr_disable(); status = AcpiEnterSleepState(state, acpi_sleep_flags); + intr_restore(intr); if (ACPI_FAILURE(status)) { device_printf(sc->acpi_dev, "AcpiEnterSleepState failed - %s\n", AcpiFormatException(status)); Modified: projects/pseries/dev/acpica/acpi_pcib_acpi.c ============================================================================== --- projects/pseries/dev/acpica/acpi_pcib_acpi.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/dev/acpica/acpi_pcib_acpi.c Sun Apr 1 08:14:50 2012 (r233754) @@ -59,8 +59,9 @@ struct acpi_hpcib_softc { ACPI_HANDLE ap_handle; int ap_flags; - int ap_segment; /* analagous to Alpha 'hose' */ + int ap_segment; /* PCI domain */ int ap_bus; /* bios-assigned bus number */ + int ap_addr; /* device/func of PCI-Host bridge */ ACPI_BUFFER ap_prt; /* interrupt routing table */ #ifdef NEW_PCIB @@ -276,7 +277,7 @@ acpi_pcib_acpi_attach(device_t dev) struct acpi_hpcib_softc *sc; ACPI_STATUS status; static int bus0_seen = 0; - u_int addr, slot, func, busok; + u_int slot, func, busok; uint8_t busno; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); @@ -286,7 +287,7 @@ acpi_pcib_acpi_attach(device_t dev) sc->ap_handle = acpi_get_handle(dev); /* - * Get our segment number by evaluating _SEG + * Get our segment number by evaluating _SEG. * It's OK for this to not exist. */ status = acpi_GetInteger(sc->ap_handle, "_SEG", &sc->ap_segment); @@ -300,6 +301,18 @@ acpi_pcib_acpi_attach(device_t dev) sc->ap_segment = 0; } + /* + * Get the address (device and function) of the associated + * PCI-Host bridge device from _ADR. Assume we don't have one if + * it doesn't exist. + */ + status = acpi_GetInteger(sc->ap_handle, "_ADR", &sc->ap_addr); + if (ACPI_FAILURE(status)) { + device_printf(dev, "could not evaluate _ADR - %s\n", + AcpiFormatException(status)); + sc->ap_addr = -1; + } + #ifdef NEW_PCIB /* * Determine which address ranges this bridge decodes and setup @@ -354,18 +367,10 @@ acpi_pcib_acpi_attach(device_t dev) busok = 1; if (sc->ap_segment == 0 && sc->ap_bus == 0 && bus0_seen) { busok = 0; - status = acpi_GetInteger(sc->ap_handle, "_ADR", &addr); - if (ACPI_FAILURE(status)) { - if (status != AE_NOT_FOUND) { - device_printf(dev, "could not evaluate _ADR - %s\n", - AcpiFormatException(status)); - return_VALUE (ENXIO); - } else - device_printf(dev, "couldn't find _ADR\n"); - } else { + if (sc->ap_addr != -1) { /* XXX: We assume bus 0. */ - slot = ACPI_ADR_PCI_SLOT(addr); - func = ACPI_ADR_PCI_FUNC(addr); + slot = ACPI_ADR_PCI_SLOT(sc->ap_addr); + func = ACPI_ADR_PCI_FUNC(sc->ap_addr); if (bootverbose) device_printf(dev, "reading config registers from 0:%d:%d\n", slot, func); @@ -488,10 +493,24 @@ static int acpi_pcib_map_msi(device_t pcib, device_t dev, int irq, uint64_t *addr, uint32_t *data) { - device_t bus; + struct acpi_hpcib_softc *sc; + device_t bus, hostb; + int error; bus = device_get_parent(pcib); - return (PCIB_MAP_MSI(device_get_parent(bus), dev, irq, addr, data)); + error = PCIB_MAP_MSI(device_get_parent(bus), dev, irq, addr, data); + if (error) + return (error); + + sc = device_get_softc(dev); + if (sc->ap_addr == -1) + return (0); + /* XXX: Assumes all bridges are on bus 0. */ + hostb = pci_find_dbsf(sc->ap_segment, 0, ACPI_ADR_PCI_SLOT(sc->ap_addr), + ACPI_ADR_PCI_FUNC(sc->ap_addr)); + if (hostb != NULL) + pci_ht_map_msi(hostb, *addr); + return (0); } struct resource * Modified: projects/pseries/dev/ale/if_ale.c ============================================================================== --- projects/pseries/dev/ale/if_ale.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/dev/ale/if_ale.c Sun Apr 1 08:14:50 2012 (r233754) @@ -115,7 +115,6 @@ static void ale_init_tx_ring(struct ale_ static void ale_int_task(void *, int); static int ale_intr(void *); static int ale_ioctl(struct ifnet *, u_long, caddr_t); -static void ale_link_task(void *, int); static void ale_mac_config(struct ale_softc *); static int ale_miibus_readreg(device_t, int, int); static void ale_miibus_statchg(device_t); @@ -253,10 +252,45 @@ static void ale_miibus_statchg(device_t dev) { struct ale_softc *sc; + struct mii_data *mii; + struct ifnet *ifp; + uint32_t reg; sc = device_get_softc(dev); + mii = device_get_softc(sc->ale_miibus); + ifp = sc->ale_ifp; + if (mii == NULL || ifp == NULL || + (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) + return; + + sc->ale_flags &= ~ALE_FLAG_LINK; + if ((mii->mii_media_status & (IFM_ACTIVE | IFM_AVALID)) == + (IFM_ACTIVE | IFM_AVALID)) { + switch (IFM_SUBTYPE(mii->mii_media_active)) { + case IFM_10_T: + case IFM_100_TX: + sc->ale_flags |= ALE_FLAG_LINK; + break; + case IFM_1000_T: + if ((sc->ale_flags & ALE_FLAG_FASTETHER) == 0) + sc->ale_flags |= ALE_FLAG_LINK; + break; + default: + break; + } + } - taskqueue_enqueue(taskqueue_swi, &sc->ale_link_task); + /* Stop Rx/Tx MACs. */ + ale_stop_mac(sc); + + /* Program MACs with resolved speed/duplex/flow-control. */ + if ((sc->ale_flags & ALE_FLAG_LINK) != 0) { + ale_mac_config(sc); + /* Reenable Tx/Rx MACs. */ + reg = CSR_READ_4(sc, ALE_MAC_CFG); + reg |= MAC_CFG_TX_ENB | MAC_CFG_RX_ENB; + CSR_WRITE_4(sc, ALE_MAC_CFG, reg); + } } static void @@ -267,6 +301,10 @@ ale_mediastatus(struct ifnet *ifp, struc sc = ifp->if_softc; ALE_LOCK(sc); + if ((ifp->if_flags & IFF_UP) == 0) { + ALE_UNLOCK(sc); + return; + } mii = device_get_softc(sc->ale_miibus); mii_pollstat(mii); @@ -425,7 +463,6 @@ ale_attach(device_t dev) MTX_DEF); callout_init_mtx(&sc->ale_tick_ch, &sc->ale_mtx, 0); TASK_INIT(&sc->ale_int_task, 0, ale_int_task, sc); - TASK_INIT(&sc->ale_link_task, 0, ale_link_task, sc); /* Map the device. */ pci_enable_busmaster(dev); @@ -679,7 +716,6 @@ ale_detach(device_t dev) ALE_UNLOCK(sc); callout_drain(&sc->ale_tick_ch); taskqueue_drain(sc->ale_tq, &sc->ale_int_task); - taskqueue_drain(taskqueue_swi, &sc->ale_link_task); } if (sc->ale_tq != NULL) { @@ -2076,57 +2112,6 @@ ale_mac_config(struct ale_softc *sc) } static void -ale_link_task(void *arg, int pending) -{ - struct ale_softc *sc; - struct mii_data *mii; - struct ifnet *ifp; - uint32_t reg; - - sc = (struct ale_softc *)arg; - - ALE_LOCK(sc); - mii = device_get_softc(sc->ale_miibus); - ifp = sc->ale_ifp; - if (mii == NULL || ifp == NULL || - (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { - ALE_UNLOCK(sc); - return; - } - - sc->ale_flags &= ~ALE_FLAG_LINK; - if ((mii->mii_media_status & (IFM_ACTIVE | IFM_AVALID)) == - (IFM_ACTIVE | IFM_AVALID)) { - switch (IFM_SUBTYPE(mii->mii_media_active)) { - case IFM_10_T: - case IFM_100_TX: - sc->ale_flags |= ALE_FLAG_LINK; - break; - case IFM_1000_T: - if ((sc->ale_flags & ALE_FLAG_FASTETHER) == 0) - sc->ale_flags |= ALE_FLAG_LINK; - break; - default: - break; - } - } - - /* Stop Rx/Tx MACs. */ - ale_stop_mac(sc); - - /* Program MACs with resolved speed/duplex/flow-control. */ - if ((sc->ale_flags & ALE_FLAG_LINK) != 0) { - ale_mac_config(sc); - /* Reenable Tx/Rx MACs. */ - reg = CSR_READ_4(sc, ALE_MAC_CFG); - reg |= MAC_CFG_TX_ENB | MAC_CFG_RX_ENB; - CSR_WRITE_4(sc, ALE_MAC_CFG, reg); - } - - ALE_UNLOCK(sc); -} - -static void ale_stats_clear(struct ale_softc *sc) { struct smb sb; @@ -2876,14 +2861,14 @@ ale_init_locked(struct ale_softc *sc) CSR_WRITE_4(sc, ALE_INTR_STATUS, 0xFFFFFFFF); CSR_WRITE_4(sc, ALE_INTR_STATUS, 0); + ifp->if_drv_flags |= IFF_DRV_RUNNING; + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + sc->ale_flags &= ~ALE_FLAG_LINK; /* Switch to the current media. */ mii_mediachg(mii); callout_reset(&sc->ale_tick_ch, hz, ale_tick, sc); - - ifp->if_drv_flags |= IFF_DRV_RUNNING; - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; } static void Modified: projects/pseries/dev/ale/if_alevar.h ============================================================================== --- projects/pseries/dev/ale/if_alevar.h Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/dev/ale/if_alevar.h Sun Apr 1 08:14:50 2012 (r233754) @@ -221,7 +221,6 @@ struct ale_softc { int ale_pagesize; struct task ale_int_task; - struct task ale_link_task; struct taskqueue *ale_tq; struct mtx ale_mtx; }; Modified: projects/pseries/dev/ath/if_ath.c ============================================================================== --- projects/pseries/dev/ath/if_ath.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/dev/ath/if_ath.c Sun Apr 1 08:14:50 2012 (r233754) @@ -191,6 +191,7 @@ static void ath_tx_cleanup(struct ath_so static void ath_tx_proc_q0(void *, int); static void ath_tx_proc_q0123(void *, int); static void ath_tx_proc(void *, int); +static void ath_txq_sched_tasklet(void *, int); static int ath_chan_set(struct ath_softc *, struct ieee80211_channel *); static void ath_draintxq(struct ath_softc *, ATH_RESET_TYPE reset_type); static void ath_stoprecv(struct ath_softc *, int); @@ -398,6 +399,7 @@ ath_attach(u_int16_t devid, struct ath_s TASK_INIT(&sc->sc_bmisstask, 0, ath_bmiss_proc, sc); TASK_INIT(&sc->sc_bstucktask,0, ath_bstuck_proc, sc); TASK_INIT(&sc->sc_resettask,0, ath_reset_proc, sc); + TASK_INIT(&sc->sc_txqtask,0, ath_txq_sched_tasklet, sc); /* * Allocate hardware transmit queues: one queue for @@ -5132,6 +5134,41 @@ ath_tx_proc(void *arg, int npending) #undef TXQACTIVE /* + * Deferred processing of TXQ rescheduling. + */ +static void +ath_txq_sched_tasklet(void *arg, int npending) +{ + struct ath_softc *sc = arg; + int i; + + /* XXX is skipping ok? */ + ATH_PCU_LOCK(sc); +#if 0 + if (sc->sc_inreset_cnt > 0) { + device_printf(sc->sc_dev, + "%s: sc_inreset_cnt > 0; skipping\n", __func__); + ATH_PCU_UNLOCK(sc); + return; *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***