From owner-svn-src-projects@FreeBSD.ORG Thu Oct 1 16:25:36 2009 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 2BF2D1065692; Thu, 1 Oct 2009 16:25:36 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1753F8FC26; Thu, 1 Oct 2009 16:25:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n91GPZQp057352; Thu, 1 Oct 2009 16:25:35 GMT (envelope-from sbruno@svn.freebsd.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n91GPZ9Z057310; Thu, 1 Oct 2009 16:25:35 GMT (envelope-from sbruno@svn.freebsd.org) Message-Id: <200910011625.n91GPZ9Z057310@svn.freebsd.org> From: Sean Bruno Date: Thu, 1 Oct 2009 16:25:35 +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: r197678 - in projects/sbruno_firewire: . etc/rc.d sys/amd64/amd64 sys/amd64/conf sys/amd64/include sys/bsm sys/cam sys/compat/freebsd32 sys/dev/acpica sys/dev/ae sys/dev/age sys/dev/alc... 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: Thu, 01 Oct 2009 16:25:36 -0000 Author: sbruno Date: Thu Oct 1 16:25:35 2009 New Revision: 197678 URL: http://svn.freebsd.org/changeset/base/197678 Log: Merge to HEAD Modified: projects/sbruno_firewire/ (props changed) projects/sbruno_firewire/etc/rc.d/netoptions projects/sbruno_firewire/etc/rc.d/routing projects/sbruno_firewire/sys/amd64/amd64/initcpu.c projects/sbruno_firewire/sys/amd64/conf/GENERIC projects/sbruno_firewire/sys/amd64/include/cpufunc.h projects/sbruno_firewire/sys/bsm/audit_kevents.h projects/sbruno_firewire/sys/cam/cam_sim.c projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_proto.h projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_syscall.h projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_syscalls.c projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_sysent.c projects/sbruno_firewire/sys/compat/freebsd32/syscalls.master projects/sbruno_firewire/sys/dev/acpica/acpi_acad.c projects/sbruno_firewire/sys/dev/acpica/acpi_video.c projects/sbruno_firewire/sys/dev/ae/if_ae.c projects/sbruno_firewire/sys/dev/age/if_age.c projects/sbruno_firewire/sys/dev/alc/if_alc.c projects/sbruno_firewire/sys/dev/ale/if_ale.c projects/sbruno_firewire/sys/dev/if_ndis/if_ndis.c projects/sbruno_firewire/sys/dev/mxge/if_mxge.c projects/sbruno_firewire/sys/dev/mxge/if_mxge_var.h projects/sbruno_firewire/sys/dev/sound/pci/hda/hdac.c projects/sbruno_firewire/sys/fs/nfs/nfs_commonacl.c projects/sbruno_firewire/sys/i386/conf/GENERIC projects/sbruno_firewire/sys/i386/i386/initcpu.c projects/sbruno_firewire/sys/i386/include/cpufunc.h projects/sbruno_firewire/sys/kern/init_main.c projects/sbruno_firewire/sys/kern/init_sysent.c projects/sbruno_firewire/sys/kern/kern_rwlock.c projects/sbruno_firewire/sys/kern/kern_sig.c projects/sbruno_firewire/sys/kern/kern_sx.c projects/sbruno_firewire/sys/kern/syscalls.c projects/sbruno_firewire/sys/kern/syscalls.master projects/sbruno_firewire/sys/kern/uipc_syscalls.c projects/sbruno_firewire/sys/pc98/conf/GENERIC projects/sbruno_firewire/sys/sys/rwlock.h projects/sbruno_firewire/sys/sys/sx.h projects/sbruno_firewire/sys/sys/syscall.h projects/sbruno_firewire/sys/sys/syscall.mk projects/sbruno_firewire/sys/sys/sysproto.h projects/sbruno_firewire/sys/vm/vm_map.c projects/sbruno_firewire/usr.sbin/lpr/lp/lp.sh projects/sbruno_firewire/usr.sbin/mfiutil/mfiutil.8 (props changed) Modified: projects/sbruno_firewire/etc/rc.d/netoptions ============================================================================== --- projects/sbruno_firewire/etc/rc.d/netoptions Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/etc/rc.d/netoptions Thu Oct 1 16:25:35 2009 (r197678) @@ -9,6 +9,7 @@ # KEYWORD: nojail . /etc/rc.subr +. /etc/network.subr name="netoptions" start_cmd="netoptions_start" @@ -66,11 +67,13 @@ netoptions_start() ;; esac - if checkyesno ipv6_ipv4mapping; then - ${SYSCTL_W} net.inet6.ip6.v6only=0 >/dev/null - else - echo -n " no-ipv4-mapped-ipv6" - ${SYSCTL_W} net.inet6.ip6.v6only=1 >/dev/null + if afexists inet6; then + if checkyesno ipv6_ipv4mapping; then + ${SYSCTL_W} net.inet6.ip6.v6only=0 >/dev/null + else + echo -n " no-ipv4-mapped-ipv6" + ${SYSCTL_W} net.inet6.ip6.v6only=1 >/dev/null + fi fi [ -n "${_netoptions_initdone}" ] && echo '.' Modified: projects/sbruno_firewire/etc/rc.d/routing ============================================================================== --- projects/sbruno_firewire/etc/rc.d/routing Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/etc/rc.d/routing Thu Oct 1 16:25:35 2009 (r197678) @@ -51,7 +51,9 @@ static_start() ;; *) do_static inet add - do_static inet6 add + if afexists inet6; then + do_static inet6 add + fi do_static atm add ;; esac @@ -74,7 +76,9 @@ static_stop() ;; *) do_static inet delete - do_static inet6 delete + if afexists inet6; then + do_static inet6 delete + fi do_static atm delete ;; esac Modified: projects/sbruno_firewire/sys/amd64/amd64/initcpu.c ============================================================================== --- projects/sbruno_firewire/sys/amd64/amd64/initcpu.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/amd64/amd64/initcpu.c Thu Oct 1 16:25:35 2009 (r197678) @@ -165,4 +165,10 @@ initializecpu(void) */ if ((cpu_feature & CPUID_CLFSH) != 0) cpu_clflush_line_size = ((cpu_procinfo >> 8) & 0xff) * 8; + /* + * XXXKIB: (temporary) hack to work around traps generated when + * CLFLUSHing APIC registers window. + */ + if (cpu_vendor_id == CPU_VENDOR_INTEL && !(cpu_feature & CPUID_SS)) + cpu_feature &= ~CPUID_CLFSH; } Modified: projects/sbruno_firewire/sys/amd64/conf/GENERIC ============================================================================== --- projects/sbruno_firewire/sys/amd64/conf/GENERIC Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/amd64/conf/GENERIC Thu Oct 1 16:25:35 2009 (r197678) @@ -257,7 +257,7 @@ device xe # Xircom pccard Ethernet device wlan # 802.11 support options IEEE80211_DEBUG # enable debug msgs options IEEE80211_AMPDU_AGE # age frames in AMPDU reorder q's -options IEEE80211_SUPPORT_MESH # enable 802.11s D3.0 support +options IEEE80211_SUPPORT_MESH # enable 802.11s draft support device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support Modified: projects/sbruno_firewire/sys/amd64/include/cpufunc.h ============================================================================== --- projects/sbruno_firewire/sys/amd64/include/cpufunc.h Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/amd64/include/cpufunc.h Thu Oct 1 16:25:35 2009 (r197678) @@ -277,7 +277,7 @@ static __inline void mfence(void) { - __asm__ __volatile("mfence" : : : "memory"); + __asm __volatile("mfence" : : : "memory"); } static __inline void @@ -457,14 +457,14 @@ load_es(u_int sel) __asm __volatile("mov %0,%%es" : : "rm" (sel)); } -static inline void +static __inline void cpu_monitor(const void *addr, int extensions, int hints) { __asm __volatile("monitor;" : :"a" (addr), "c" (extensions), "d"(hints)); } -static inline void +static __inline void cpu_mwait(int extensions, int hints) { __asm __volatile("mwait;" : :"a" (hints), "c" (extensions)); Modified: projects/sbruno_firewire/sys/bsm/audit_kevents.h ============================================================================== --- projects/sbruno_firewire/sys/bsm/audit_kevents.h Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/bsm/audit_kevents.h Thu Oct 1 16:25:35 2009 (r197678) @@ -598,6 +598,10 @@ #define AUE_FSCTL 43194 /* Darwin. */ #define AUE_FFSCTL 43195 /* Darwin. */ #define AUE_LPATHCONF 43196 /* FreeBSD. */ +#define AUE_PDFORK 43197 /* FreeBSD. */ +#define AUE_PDKILL 43198 /* FreeBSD. */ +#define AUE_PDGETPID 43199 /* FreeBSD. */ +#define AUE_PDWAIT 43200 /* FreeBSD. */ /* * Darwin BSM uses a number of AUE_O_* definitions, which are aliased to the Modified: projects/sbruno_firewire/sys/cam/cam_sim.c ============================================================================== --- projects/sbruno_firewire/sys/cam/cam_sim.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/cam/cam_sim.c Thu Oct 1 16:25:35 2009 (r197678) @@ -106,8 +106,10 @@ cam_sim_free(struct cam_sim *sim, int fr { int error; + mtx_assert(sim->mtx, MA_OWNED); sim->refcount--; if (sim->refcount > 0) { + printf("%s: sim->refcount(%d)\n", __func__, sim->refcount); error = msleep(sim, sim->mtx, PRIBIO, "simfree", 0); KASSERT(error == 0, ("invalid error value for msleep(9)")); } @@ -125,6 +127,7 @@ cam_sim_release(struct cam_sim *sim) KASSERT(sim->refcount >= 1, ("sim->refcount >= 1")); mtx_assert(sim->mtx, MA_OWNED); + printf("%s: sim->refcount(%d)\n", __func__, sim->refcount); sim->refcount--; if (sim->refcount == 0) wakeup(sim); @@ -137,6 +140,7 @@ cam_sim_hold(struct cam_sim *sim) mtx_assert(sim->mtx, MA_OWNED); sim->refcount++; + printf("%s: sim->refcount(%d)\n", __func__, sim->refcount); } void Modified: projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_proto.h ============================================================================== --- projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_proto.h Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_proto.h Thu Oct 1 16:25:35 2009 (r197678) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 197636 2009-09-30 08:46:01Z rwatson */ #ifndef _FREEBSD32_SYSPROTO_H_ @@ -626,8 +626,7 @@ int freebsd4_freebsd32_sigreturn(struct #endif /* COMPAT_FREEBSD4 */ -#if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) || \ - defined(COMPAT_FREEBSD6) +#ifdef COMPAT_FREEBSD6 struct freebsd6_freebsd32_pread_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; @@ -681,11 +680,10 @@ int freebsd6_freebsd32_lseek(struct thre int freebsd6_freebsd32_truncate(struct thread *, struct freebsd6_freebsd32_truncate_args *); int freebsd6_freebsd32_ftruncate(struct thread *, struct freebsd6_freebsd32_ftruncate_args *); -#endif /* COMPAT_FREEBSD[456] */ +#endif /* COMPAT_FREEBSD6 */ -#if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) || \ - defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD7) +#ifdef COMPAT_FREEBSD7 struct freebsd7_freebsd32_semctl_args { char semid_l_[PADL_(int)]; int semid; char semid_r_[PADR_(int)]; @@ -707,7 +705,7 @@ int freebsd7_freebsd32_semctl(struct thr int freebsd7_freebsd32_msgctl(struct thread *, struct freebsd7_freebsd32_msgctl_args *); int freebsd7_freebsd32_shmctl(struct thread *, struct freebsd7_freebsd32_shmctl_args *); -#endif /* COMPAT_FREEBSD[4567] */ +#endif /* COMPAT_FREEBSD7 */ #define FREEBSD32_SYS_AUE_freebsd32_wait4 AUE_WAIT4 #define FREEBSD32_SYS_AUE_freebsd4_freebsd32_getfsstat AUE_GETFSSTAT Modified: projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_syscall.h ============================================================================== --- projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_syscall.h Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_syscall.h Thu Oct 1 16:25:35 2009 (r197678) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 197636 2009-09-30 08:46:01Z rwatson */ #define FREEBSD32_SYS_syscall 0 @@ -382,4 +382,4 @@ #define FREEBSD32_SYS_freebsd32_msgctl 511 #define FREEBSD32_SYS_freebsd32_shmctl 512 #define FREEBSD32_SYS_lpathconf 513 -#define FREEBSD32_SYS_MAXSYSCALL 514 +#define FREEBSD32_SYS_MAXSYSCALL 522 Modified: projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_syscalls.c ============================================================================== --- projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_syscalls.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_syscalls.c Thu Oct 1 16:25:35 2009 (r197678) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 197636 2009-09-30 08:46:01Z rwatson */ const char *freebsd32_syscallnames[] = { @@ -521,4 +521,12 @@ const char *freebsd32_syscallnames[] = { "freebsd32_msgctl", /* 511 = freebsd32_msgctl */ "freebsd32_shmctl", /* 512 = freebsd32_shmctl */ "lpathconf", /* 513 = lpathconf */ + "#514", /* 514 = cap_new */ + "#515", /* 515 = cap_getrights */ + "#516", /* 516 = cap_enter */ + "#517", /* 517 = cap_getmode */ + "#518", /* 518 = pdfork */ + "#519", /* 519 = pdkill */ + "#520", /* 520 = pdgetpid */ + "#521", /* 521 = pdwait */ }; Modified: projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_sysent.c ============================================================================== --- projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_sysent.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/compat/freebsd32/freebsd32_sysent.c Thu Oct 1 16:25:35 2009 (r197678) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 197636 2009-09-30 08:46:01Z rwatson */ #include "opt_compat.h" @@ -558,4 +558,12 @@ struct sysent freebsd32_sysent[] = { { AS(freebsd32_msgctl_args), (sy_call_t *)freebsd32_msgctl, AUE_MSGCTL, NULL, 0, 0, 0 }, /* 511 = freebsd32_msgctl */ { AS(freebsd32_shmctl_args), (sy_call_t *)freebsd32_shmctl, AUE_SHMCTL, NULL, 0, 0, 0 }, /* 512 = freebsd32_shmctl */ { AS(lpathconf_args), (sy_call_t *)lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0 }, /* 513 = lpathconf */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 514 = cap_new */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 515 = cap_getrights */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 516 = cap_enter */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 517 = cap_getmode */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 518 = pdfork */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 519 = pdkill */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 520 = pdgetpid */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 521 = pdwait */ }; Modified: projects/sbruno_firewire/sys/compat/freebsd32/syscalls.master ============================================================================== --- projects/sbruno_firewire/sys/compat/freebsd32/syscalls.master Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/compat/freebsd32/syscalls.master Thu Oct 1 16:25:35 2009 (r197678) @@ -901,3 +901,11 @@ 512 AUE_SHMCTL STD { int freebsd32_shmctl(int shmid, int cmd, \ struct shmid_ds32 *buf); } 513 AUE_LPATHCONF NOPROTO { int lpathconf(char *path, int name); } +514 AUE_CAP_NEW UNIMPL cap_new +515 AUE_CAP_GETRIGHTS UNIMPL cap_getrights +516 AUE_CAP_ENTER UNIMPL cap_enter +517 AUE_CAP_GETMODE UNIMPL cap_getmode +518 AUE_PDFORK UNIMPL pdfork +519 AUE_PDKILL UNIMPL pdkill +520 AUE_PDGETPID UNIMPL pdgetpid +521 AUE_PDWAIT UNIMPL pdwait Modified: projects/sbruno_firewire/sys/dev/acpica/acpi_acad.c ============================================================================== --- projects/sbruno_firewire/sys/dev/acpica/acpi_acad.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/dev/acpica/acpi_acad.c Thu Oct 1 16:25:35 2009 (r197678) @@ -109,13 +109,14 @@ acpi_acad_get_status(void *context) ACPI_SERIAL_BEGIN(acad); if (newstatus != -1 && sc->status != newstatus) { sc->status = newstatus; + ACPI_SERIAL_END(acad); power_profile_set_state(newstatus ? POWER_PROFILE_PERFORMANCE : POWER_PROFILE_ECONOMY); ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), "%s Line\n", newstatus ? "On" : "Off"); acpi_UserNotify("ACAD", h, newstatus); - } - ACPI_SERIAL_END(acad); + } else + ACPI_SERIAL_END(acad); } static void Modified: projects/sbruno_firewire/sys/dev/acpica/acpi_video.c ============================================================================== --- projects/sbruno_firewire/sys/dev/acpica/acpi_video.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/dev/acpica/acpi_video.c Thu Oct 1 16:25:35 2009 (r197678) @@ -170,7 +170,13 @@ static struct sysctl_oid *acpi_video_sys static struct acpi_video_output_queue crt_units, tv_units, ext_units, lcd_units, other_units; +/* + * The 'video' lock protects the hierarchy of video output devices + * (the video "bus"). The 'video_output' lock protects per-output + * data is equivalent to a softc lock for each video output. + */ ACPI_SERIAL_DECL(video, "ACPI video"); +ACPI_SERIAL_DECL(video_output, "ACPI video output"); MALLOC_DEFINE(M_ACPIVIDEO, "acpivideo", "ACPI video extension"); static int @@ -236,12 +242,14 @@ acpi_video_attach(device_t dev) acpi_sc = devclass_get_softc(devclass_find("acpi"), 0); if (acpi_sc == NULL) return (ENXIO); + ACPI_SERIAL_BEGIN(video); if (acpi_video_sysctl_tree == NULL) { acpi_video_sysctl_tree = SYSCTL_ADD_NODE(&acpi_video_sysctl_ctx, SYSCTL_CHILDREN(acpi_sc->acpi_sysctl_tree), OID_AUTO, "video", CTLFLAG_RD, 0, "video extension control"); } + ACPI_SERIAL_END(video); sc->device = dev; sc->handle = acpi_get_handle(dev); @@ -316,6 +324,7 @@ acpi_video_notify_handler(ACPI_HANDLE ha dss_p = 0; lasthand = NULL; ACPI_SERIAL_BEGIN(video); + ACPI_SERIAL_BEGIN(video_output); STAILQ_FOREACH(vo, &sc->vid_outputs, vo_next) { dss = vo_get_graphics_state(vo->handle); dcs = vo_get_device_status(vo->handle); @@ -331,6 +340,7 @@ acpi_video_notify_handler(ACPI_HANDLE ha } if (lasthand != NULL) vo_set_device_state(lasthand, dss_p|DSS_COMMIT); + ACPI_SERIAL_END(video_output); ACPI_SERIAL_END(video); break; case VID_NOTIFY_REPROBE: @@ -367,12 +377,14 @@ acpi_video_power_profile(void *context) return; ACPI_SERIAL_BEGIN(video); + ACPI_SERIAL_BEGIN(video_output); STAILQ_FOREACH(vo, &sc->vid_outputs, vo_next) { if (vo->vo_levels != NULL && vo->vo_brightness == -1) vo_set_brightness(vo->handle, state == POWER_PROFILE_ECONOMY ? vo->vo_economy : vo->vo_fullpower); } + ACPI_SERIAL_END(video_output); ACPI_SERIAL_END(video); } @@ -550,7 +562,7 @@ static void acpi_video_vo_bind(struct acpi_video_output *vo, ACPI_HANDLE handle) { - ACPI_SERIAL_ASSERT(video); + ACPI_SERIAL_BEGIN(video_output); if (vo->vo_levels != NULL) AcpiOsFree(vo->vo_levels); vo->handle = handle; @@ -565,6 +577,7 @@ acpi_video_vo_bind(struct acpi_video_out /* XXX - see above. */ vo->vo_economy = vo->vo_levels[BCL_ECONOMY]; } + ACPI_SERIAL_END(video_output); } static void @@ -605,7 +618,7 @@ acpi_video_vo_check_level(struct acpi_vi { int i; - ACPI_SERIAL_ASSERT(video); + ACPI_SERIAL_ASSERT(video_output); if (vo->vo_levels == NULL) return (ENODEV); for (i = 0; i < vo->vo_numlevels; i++) @@ -624,7 +637,7 @@ acpi_video_vo_active_sysctl(SYSCTL_HANDL vo = (struct acpi_video_output *)arg1; if (vo->handle == NULL) return (ENXIO); - ACPI_SERIAL_BEGIN(video); + ACPI_SERIAL_BEGIN(video_output); state = (vo_get_device_status(vo->handle) & DCS_ACTIVE) ? 1 : 0; err = sysctl_handle_int(oidp, &state, 0, req); if (err != 0 || req->newptr == NULL) @@ -632,7 +645,7 @@ acpi_video_vo_active_sysctl(SYSCTL_HANDL vo_set_device_state(vo->handle, DSS_COMMIT | (state ? DSS_ACTIVE : DSS_INACTIVE)); out: - ACPI_SERIAL_END(video); + ACPI_SERIAL_END(video_output); return (err); } @@ -644,7 +657,7 @@ acpi_video_vo_bright_sysctl(SYSCTL_HANDL int level, preset, err; vo = (struct acpi_video_output *)arg1; - ACPI_SERIAL_BEGIN(video); + ACPI_SERIAL_BEGIN(video_output); if (vo->handle == NULL) { err = ENXIO; goto out; @@ -674,7 +687,7 @@ acpi_video_vo_bright_sysctl(SYSCTL_HANDL vo_set_brightness(vo->handle, (level == -1) ? preset : level); out: - ACPI_SERIAL_END(video); + ACPI_SERIAL_END(video_output); return (err); } @@ -686,7 +699,7 @@ acpi_video_vo_presets_sysctl(SYSCTL_HAND err = 0; vo = (struct acpi_video_output *)arg1; - ACPI_SERIAL_BEGIN(video); + ACPI_SERIAL_BEGIN(video_output); if (vo->handle == NULL) { err = ENXIO; goto out; @@ -717,7 +730,7 @@ acpi_video_vo_presets_sysctl(SYSCTL_HAND *preset = level; out: - ACPI_SERIAL_END(video); + ACPI_SERIAL_END(video_output); return (err); } @@ -729,7 +742,7 @@ acpi_video_vo_levels_sysctl(SYSCTL_HANDL int err; vo = (struct acpi_video_output *)arg1; - ACPI_SERIAL_BEGIN(video); + ACPI_SERIAL_BEGIN(video_output); if (vo->vo_levels == NULL) { err = ENODEV; goto out; @@ -742,7 +755,7 @@ acpi_video_vo_levels_sysctl(SYSCTL_HANDL vo->vo_numlevels * sizeof(*vo->vo_levels), req); out: - ACPI_SERIAL_END(video); + ACPI_SERIAL_END(video_output); return (err); } @@ -892,6 +905,7 @@ vo_set_brightness(ACPI_HANDLE handle, in { ACPI_STATUS status; + ACPI_SERIAL_ASSERT(video_output); status = acpi_SetInteger(handle, "_BCM", level); if (ACPI_FAILURE(status)) printf("can't evaluate %s._BCM - %s\n", @@ -904,6 +918,7 @@ vo_get_device_status(ACPI_HANDLE handle) UINT32 dcs; ACPI_STATUS status; + ACPI_SERIAL_ASSERT(video_output); dcs = 0; status = acpi_GetInteger(handle, "_DCS", &dcs); if (ACPI_FAILURE(status)) @@ -933,6 +948,7 @@ vo_set_device_state(ACPI_HANDLE handle, { ACPI_STATUS status; + ACPI_SERIAL_ASSERT(video_output); status = acpi_SetInteger(handle, "_DSS", state); if (ACPI_FAILURE(status)) printf("can't evaluate %s._DSS - %s\n", Modified: projects/sbruno_firewire/sys/dev/ae/if_ae.c ============================================================================== --- projects/sbruno_firewire/sys/dev/ae/if_ae.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/dev/ae/if_ae.c Thu Oct 1 16:25:35 2009 (r197678) @@ -2077,7 +2077,7 @@ ae_rxfilter(ae_softc_t *sc) TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { if (ifma->ifma_addr->sa_family != AF_LINK) continue; - crc = ether_crc32_le(LLADDR((struct sockaddr_dl *) + crc = ether_crc32_be(LLADDR((struct sockaddr_dl *) ifma->ifma_addr), ETHER_ADDR_LEN); mchash[crc >> 31] |= 1 << ((crc >> 26) & 0x1f); } Modified: projects/sbruno_firewire/sys/dev/age/if_age.c ============================================================================== --- projects/sbruno_firewire/sys/dev/age/if_age.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/dev/age/if_age.c Thu Oct 1 16:25:35 2009 (r197678) @@ -3135,7 +3135,7 @@ age_rxfilter(struct age_softc *sc) TAILQ_FOREACH(ifma, &sc->age_ifp->if_multiaddrs, ifma_link) { if (ifma->ifma_addr->sa_family != AF_LINK) continue; - crc = ether_crc32_le(LLADDR((struct sockaddr_dl *) + crc = ether_crc32_be(LLADDR((struct sockaddr_dl *) ifma->ifma_addr), ETHER_ADDR_LEN); mchash[crc >> 31] |= 1 << ((crc >> 26) & 0x1f); } Modified: projects/sbruno_firewire/sys/dev/alc/if_alc.c ============================================================================== --- projects/sbruno_firewire/sys/dev/alc/if_alc.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/dev/alc/if_alc.c Thu Oct 1 16:25:35 2009 (r197678) @@ -3476,7 +3476,7 @@ alc_rxfilter(struct alc_softc *sc) TAILQ_FOREACH(ifma, &sc->alc_ifp->if_multiaddrs, ifma_link) { if (ifma->ifma_addr->sa_family != AF_LINK) continue; - crc = ether_crc32_le(LLADDR((struct sockaddr_dl *) + crc = ether_crc32_be(LLADDR((struct sockaddr_dl *) ifma->ifma_addr), ETHER_ADDR_LEN); mchash[crc >> 31] |= 1 << ((crc >> 26) & 0x1f); } Modified: projects/sbruno_firewire/sys/dev/ale/if_ale.c ============================================================================== --- projects/sbruno_firewire/sys/dev/ale/if_ale.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/dev/ale/if_ale.c Thu Oct 1 16:25:35 2009 (r197678) @@ -3060,7 +3060,7 @@ ale_rxfilter(struct ale_softc *sc) TAILQ_FOREACH(ifma, &sc->ale_ifp->if_multiaddrs, ifma_link) { if (ifma->ifma_addr->sa_family != AF_LINK) continue; - crc = ether_crc32_le(LLADDR((struct sockaddr_dl *) + crc = ether_crc32_be(LLADDR((struct sockaddr_dl *) ifma->ifma_addr), ETHER_ADDR_LEN); mchash[crc >> 31] |= 1 << ((crc >> 26) & 0x1f); } Modified: projects/sbruno_firewire/sys/dev/if_ndis/if_ndis.c ============================================================================== --- projects/sbruno_firewire/sys/dev/if_ndis/if_ndis.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/dev/if_ndis/if_ndis.c Thu Oct 1 16:25:35 2009 (r197678) @@ -1534,7 +1534,7 @@ ndis_inputtask(dobj, arg) if (m == NULL) break; KeReleaseSpinLock(&sc->ndis_rxlock, irql); - if (sc->ndis_80211) + if ((sc->ndis_80211 != 0) && (vap != NULL)) vap->iv_deliver_data(vap, vap->iv_bss, m); else (*ifp->if_input)(ifp, m); @@ -1746,7 +1746,7 @@ ndis_ticktask(d, xsc) sc->ndis_sts == NDIS_STATUS_MEDIA_CONNECT) { sc->ndis_link = 1; NDIS_UNLOCK(sc); - if (sc->ndis_80211) { + if ((sc->ndis_80211 != 0) && (vap != NULL)) { ndis_getstate_80211(sc); ieee80211_new_state(vap, IEEE80211_S_RUN, -1); } @@ -1758,7 +1758,7 @@ ndis_ticktask(d, xsc) sc->ndis_sts == NDIS_STATUS_MEDIA_DISCONNECT) { sc->ndis_link = 0; NDIS_UNLOCK(sc); - if (sc->ndis_80211) + if ((sc->ndis_80211 != 0) && (vap != NULL)) ieee80211_new_state(vap, IEEE80211_S_SCAN, 0); NDIS_LOCK(sc); if_link_state_change(sc->ifp, LINK_STATE_DOWN); @@ -2047,9 +2047,6 @@ ndis_init(xsc) /* Setup task offload. */ ndis_set_offload(sc); - if (sc->ndis_80211) - ndis_setstate_80211(sc); - NDIS_LOCK(sc); sc->ndis_txidx = 0; @@ -2297,8 +2294,6 @@ ndis_setstate_80211(sc) ifp = sc->ifp; ic = ifp->if_l2com; vap = TAILQ_FIRST(&ic->ic_vaps); - if (vap == NULL) - return; if (!NDIS_INITIALIZED(sc)) { DPRINTF(("%s: NDIS not initialized\n", __func__)); @@ -2730,8 +2725,6 @@ ndis_getstate_80211(sc) ifp = sc->ifp; ic = ifp->if_l2com; vap = TAILQ_FIRST(&ic->ic_vaps); - if (vap == NULL) - return; ni = vap->iv_bss; if (!NDIS_INITIALIZED(sc)) Modified: projects/sbruno_firewire/sys/dev/mxge/if_mxge.c ============================================================================== --- projects/sbruno_firewire/sys/dev/mxge/if_mxge.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/dev/mxge/if_mxge.c Thu Oct 1 16:25:35 2009 (r197678) @@ -3701,10 +3701,16 @@ mxge_setup_cfg_space(mxge_softc_t *sc) if (pci_find_extcap(dev, PCIY_EXPRESS, ®) == 0) { lnk = pci_read_config(dev, reg + 0x12, 2); sc->link_width = (lnk >> 4) & 0x3f; - - pectl = pci_read_config(dev, reg + 0x8, 2); - pectl = (pectl & ~0x7000) | (5 << 12); - pci_write_config(dev, reg + 0x8, pectl, 2); + + if (sc->pectl == 0) { + pectl = pci_read_config(dev, reg + 0x8, 2); + pectl = (pectl & ~0x7000) | (5 << 12); + pci_write_config(dev, reg + 0x8, pectl, 2); + sc->pectl = pectl; + } else { + /* restore saved pectl after watchdog reset */ + pci_write_config(dev, reg + 0x8, sc->pectl, 2); + } } /* Enable DMA and Memory space access */ @@ -3816,6 +3822,9 @@ mxge_watchdog_reset(mxge_softc_t *sc, in /* release all TX locks */ for (s = 0; s < num_tx_slices; s++) { ss = &sc->ss[s]; +#ifdef IFNET_BUF_RING + mxge_start_locked(ss); +#endif mtx_unlock(&ss->tx.mtx); } } Modified: projects/sbruno_firewire/sys/dev/mxge/if_mxge_var.h ============================================================================== --- projects/sbruno_firewire/sys/dev/mxge/if_mxge_var.h Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/dev/mxge/if_mxge_var.h Thu Oct 1 16:25:35 2009 (r197678) @@ -274,6 +274,7 @@ struct mxge_softc { struct sysctl_ctx_list slice_sysctl_ctx; char *mac_addr_string; uint8_t mac_addr[6]; /* eeprom mac address */ + uint16_t pectl; /* save PCIe CTL state */ char product_code_string[64]; char serial_number_string[64]; char cmd_mtx_name[16]; Modified: projects/sbruno_firewire/sys/dev/sound/pci/hda/hdac.c ============================================================================== --- projects/sbruno_firewire/sys/dev/sound/pci/hda/hdac.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/dev/sound/pci/hda/hdac.c Thu Oct 1 16:25:35 2009 (r197678) @@ -622,6 +622,7 @@ static const struct { #define HDA_CODEC_ALC882 HDA_CODEC_CONSTRUCT(REALTEK, 0x0882) #define HDA_CODEC_ALC883 HDA_CODEC_CONSTRUCT(REALTEK, 0x0883) #define HDA_CODEC_ALC885 HDA_CODEC_CONSTRUCT(REALTEK, 0x0885) +#define HDA_CODEC_ALC887 HDA_CODEC_CONSTRUCT(REALTEK, 0x0887) #define HDA_CODEC_ALC888 HDA_CODEC_CONSTRUCT(REALTEK, 0x0888) #define HDA_CODEC_ALC889 HDA_CODEC_CONSTRUCT(REALTEK, 0x0889) #define HDA_CODEC_ALCXXXX HDA_CODEC_CONSTRUCT(REALTEK, 0xffff) @@ -807,6 +808,7 @@ static const struct { { HDA_CODEC_ALC882, "Realtek ALC882" }, { HDA_CODEC_ALC883, "Realtek ALC883" }, { HDA_CODEC_ALC885, "Realtek ALC885" }, + { HDA_CODEC_ALC887, "Realtek ALC887" }, { HDA_CODEC_ALC888, "Realtek ALC888" }, { HDA_CODEC_ALC889, "Realtek ALC889" }, { HDA_CODEC_AD1882, "Analog Devices AD1882" }, @@ -6568,7 +6570,7 @@ hdac_create_pcms(struct hdac_devinfo *de continue; for (j = 0; j < devinfo->function.audio.num_devs; j++) { if (devinfo->function.audio.devs[j].digital != 255 && - (!devinfo->function.audio.devs[j].digital) == + (!devinfo->function.audio.devs[j].digital) != (!as[i].digital)) continue; if (as[i].dir == HDA_CTL_IN) { Modified: projects/sbruno_firewire/sys/fs/nfs/nfs_commonacl.c ============================================================================== --- projects/sbruno_firewire/sys/fs/nfs/nfs_commonacl.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/fs/nfs/nfs_commonacl.c Thu Oct 1 16:25:35 2009 (r197678) @@ -695,7 +695,7 @@ nfsrv_setacl(vnode_t vp, NFSACL_T *aclp, if (nfsrv_useacl == 0 || !NFSHASNFS4ACL(vnode_mount(vp))) return (NFSERR_ATTRNOTSUPP); /* - * With NFS4 ACLs, chmod(2) may need to add additional entries. + * With NFSv4 ACLs, chmod(2) may need to add additional entries. * Make sure it has enough room for that - splitting every entry * into two and appending "canonical six" entries at the end. * Cribbed out of kern/vfs_acl.c - Rick M. Modified: projects/sbruno_firewire/sys/i386/conf/GENERIC ============================================================================== --- projects/sbruno_firewire/sys/i386/conf/GENERIC Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/i386/conf/GENERIC Thu Oct 1 16:25:35 2009 (r197678) @@ -269,7 +269,7 @@ device xe # Xircom pccard Ethernet device wlan # 802.11 support options IEEE80211_DEBUG # enable debug msgs options IEEE80211_AMPDU_AGE # age frames in AMPDU reorder q's -options IEEE80211_SUPPORT_MESH # enable 802.11s D3.0 support +options IEEE80211_SUPPORT_MESH # enable 802.11s draft support device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support Modified: projects/sbruno_firewire/sys/i386/i386/initcpu.c ============================================================================== --- projects/sbruno_firewire/sys/i386/i386/initcpu.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/i386/i386/initcpu.c Thu Oct 1 16:25:35 2009 (r197678) @@ -717,6 +717,12 @@ initializecpu(void) */ if ((cpu_feature & CPUID_CLFSH) != 0) cpu_clflush_line_size = ((cpu_procinfo >> 8) & 0xff) * 8; + /* + * XXXKIB: (temporary) hack to work around traps generated when + * CLFLUSHing APIC registers window. + */ + if (cpu_vendor_id == CPU_VENDOR_INTEL && !(cpu_feature & CPUID_SS)) + cpu_feature &= ~CPUID_CLFSH; #if defined(PC98) && !defined(CPU_UPGRADE_HW_CACHE) /* Modified: projects/sbruno_firewire/sys/i386/include/cpufunc.h ============================================================================== --- projects/sbruno_firewire/sys/i386/include/cpufunc.h Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/i386/include/cpufunc.h Thu Oct 1 16:25:35 2009 (r197678) @@ -132,14 +132,14 @@ enable_intr(void) #endif } -static inline void +static __inline void cpu_monitor(const void *addr, int extensions, int hints) { __asm __volatile("monitor;" : :"a" (addr), "c" (extensions), "d"(hints)); } -static inline void +static __inline void cpu_mwait(int extensions, int hints) { __asm __volatile("mwait;" : :"a" (hints), "c" (extensions)); Modified: projects/sbruno_firewire/sys/kern/init_main.c ============================================================================== --- projects/sbruno_firewire/sys/kern/init_main.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/kern/init_main.c Thu Oct 1 16:25:35 2009 (r197678) @@ -284,15 +284,28 @@ restart: *************************************************************************** */ static void -print_caddr_t(void *data __unused) +print_caddr_t(void *data) { printf("%s", (char *)data); } + +static void +print_version(void *data __unused) +{ + int len; + + /* Strip a trailing newline from version. */ + len = strlen(version); + while (len > 0 && version[len - 1] == '\n') + len--; + printf("%.*s %s\n", len, version, machine); +} + SYSINIT(announce, SI_SUB_COPYRIGHT, SI_ORDER_FIRST, print_caddr_t, copyright); SYSINIT(trademark, SI_SUB_COPYRIGHT, SI_ORDER_SECOND, print_caddr_t, trademark); -SYSINIT(version, SI_SUB_COPYRIGHT, SI_ORDER_THIRD, print_caddr_t, version); +SYSINIT(version, SI_SUB_COPYRIGHT, SI_ORDER_THIRD, print_version, NULL); #ifdef WITNESS static char wit_warn[] = Modified: projects/sbruno_firewire/sys/kern/init_sysent.c ============================================================================== --- projects/sbruno_firewire/sys/kern/init_sysent.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/kern/init_sysent.c Thu Oct 1 16:25:35 2009 (r197678) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/kern/syscalls.master 195458 2009-07-08 15:23:18Z trasz + * created from FreeBSD: head/sys/kern/syscalls.master 197636 2009-09-30 08:46:01Z rwatson */ #include "opt_compat.h" @@ -548,4 +548,12 @@ struct sysent sysent[] = { { AS(msgctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 511 = msgctl */ { AS(shmctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 512 = shmctl */ { AS(lpathconf_args), (sy_call_t *)lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0 }, /* 513 = lpathconf */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 514 = cap_new */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 515 = cap_getrights */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 516 = cap_enter */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 517 = cap_getmode */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 518 = pdfork */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 519 = pdkill */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 520 = pdgetpid */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 521 = pdwait */ }; Modified: projects/sbruno_firewire/sys/kern/kern_rwlock.c ============================================================================== --- projects/sbruno_firewire/sys/kern/kern_rwlock.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/kern/kern_rwlock.c Thu Oct 1 16:25:35 2009 (r197678) @@ -541,7 +541,7 @@ _rw_runlock(struct rwlock *rw, const cha */ x = rw->rw_lock; if (RW_READERS(x) > 1) { - if (atomic_cmpset_ptr(&rw->rw_lock, x, + if (atomic_cmpset_rel_ptr(&rw->rw_lock, x, x - RW_ONE_READER)) { if (LOCK_LOG_TEST(&rw->lock_object, 0)) CTR4(KTR_LOCK, @@ -559,7 +559,8 @@ _rw_runlock(struct rwlock *rw, const cha if (!(x & RW_LOCK_WAITERS)) { MPASS((x & ~RW_LOCK_WRITE_SPINNER) == RW_READERS_LOCK(1)); - if (atomic_cmpset_ptr(&rw->rw_lock, x, RW_UNLOCKED)) { + if (atomic_cmpset_rel_ptr(&rw->rw_lock, x, + RW_UNLOCKED)) { if (LOCK_LOG_TEST(&rw->lock_object, 0)) CTR2(KTR_LOCK, "%s: %p last succeeded", __func__, rw); @@ -597,7 +598,7 @@ _rw_runlock(struct rwlock *rw, const cha x |= (v & RW_LOCK_READ_WAITERS); } else queue = TS_SHARED_QUEUE; - if (!atomic_cmpset_ptr(&rw->rw_lock, RW_READERS_LOCK(1) | v, + if (!atomic_cmpset_rel_ptr(&rw->rw_lock, RW_READERS_LOCK(1) | v, x)) { turnstile_chain_unlock(&rw->lock_object); continue; Modified: projects/sbruno_firewire/sys/kern/kern_sig.c ============================================================================== --- projects/sbruno_firewire/sys/kern/kern_sig.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/kern/kern_sig.c Thu Oct 1 16:25:35 2009 (r197678) @@ -1892,7 +1892,7 @@ sigtd(struct proc *p, int sig, int prop) /* * Check if current thread can handle the signal without - * switching conetxt to another thread. + * switching context to another thread. */ if (curproc == p && !SIGISMEMBER(curthread->td_sigmask, sig)) return (curthread); Modified: projects/sbruno_firewire/sys/kern/kern_sx.c ============================================================================== --- projects/sbruno_firewire/sys/kern/kern_sx.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/kern/kern_sx.c Thu Oct 1 16:25:35 2009 (r197678) @@ -931,7 +931,7 @@ _sx_sunlock_hard(struct sx *sx, const ch * so, just drop one and return. */ if (SX_SHARERS(x) > 1) { - if (atomic_cmpset_ptr(&sx->sx_lock, x, + if (atomic_cmpset_rel_ptr(&sx->sx_lock, x, x - SX_ONE_SHARER)) { if (LOCK_LOG_TEST(&sx->lock_object, 0)) CTR4(KTR_LOCK, @@ -949,8 +949,8 @@ _sx_sunlock_hard(struct sx *sx, const ch */ if (!(x & SX_LOCK_EXCLUSIVE_WAITERS)) { MPASS(x == SX_SHARERS_LOCK(1)); - if (atomic_cmpset_ptr(&sx->sx_lock, SX_SHARERS_LOCK(1), - SX_LOCK_UNLOCKED)) { + if (atomic_cmpset_rel_ptr(&sx->sx_lock, + SX_SHARERS_LOCK(1), SX_LOCK_UNLOCKED)) { if (LOCK_LOG_TEST(&sx->lock_object, 0)) CTR2(KTR_LOCK, "%s: %p last succeeded", __func__, sx); @@ -973,7 +973,7 @@ _sx_sunlock_hard(struct sx *sx, const ch * Note that the state of the lock could have changed, * so if it fails loop back and retry. */ - if (!atomic_cmpset_ptr(&sx->sx_lock, + if (!atomic_cmpset_rel_ptr(&sx->sx_lock, SX_SHARERS_LOCK(1) | SX_LOCK_EXCLUSIVE_WAITERS, SX_LOCK_UNLOCKED)) { sleepq_release(&sx->lock_object); Modified: projects/sbruno_firewire/sys/kern/syscalls.c ============================================================================== --- projects/sbruno_firewire/sys/kern/syscalls.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/kern/syscalls.c Thu Oct 1 16:25:35 2009 (r197678) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/kern/syscalls.master 195458 2009-07-08 15:23:18Z trasz + * created from FreeBSD: head/sys/kern/syscalls.master 197636 2009-09-30 08:46:01Z rwatson */ const char *syscallnames[] = { @@ -521,4 +521,12 @@ const char *syscallnames[] = { "msgctl", /* 511 = msgctl */ "shmctl", /* 512 = shmctl */ "lpathconf", /* 513 = lpathconf */ + "#514", /* 514 = cap_new */ + "#515", /* 515 = cap_getrights */ + "#516", /* 516 = cap_enter */ + "#517", /* 517 = cap_getmode */ + "#518", /* 518 = pdfork */ + "#519", /* 519 = pdkill */ + "#520", /* 520 = pdgetpid */ + "#521", /* 521 = pdwait */ }; Modified: projects/sbruno_firewire/sys/kern/syscalls.master ============================================================================== --- projects/sbruno_firewire/sys/kern/syscalls.master Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/kern/syscalls.master Thu Oct 1 16:25:35 2009 (r197678) @@ -911,5 +911,13 @@ 512 AUE_SHMCTL NOSTD { int shmctl(int shmid, int cmd, \ struct shmid_ds *buf); } 513 AUE_LPATHCONF STD { int lpathconf(char *path, int name); } +514 AUE_CAP_NEW UNIMPL cap_new +515 AUE_CAP_GETRIGHTS UNIMPL cap_getrights +516 AUE_CAP_ENTER UNIMPL cap_enter +517 AUE_CAP_GETMODE UNIMPL cap_getmode +518 AUE_PDFORK UNIMPL pdfork +519 AUE_PDKILL UNIMPL pdkill +520 AUE_PDGETPID UNIMPL pdgetpid +521 AUE_PDWAIT UNIMPL pdwait ; Please copy any additions and changes to the following compatability tables: ; sys/compat/freebsd32/syscalls.master Modified: projects/sbruno_firewire/sys/kern/uipc_syscalls.c ============================================================================== --- projects/sbruno_firewire/sys/kern/uipc_syscalls.c Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/kern/uipc_syscalls.c Thu Oct 1 16:25:35 2009 (r197678) @@ -2086,9 +2086,11 @@ retry_space: /* * Get the page from backing store. */ - bsize = vp->v_mount->mnt_stat.f_iosize; vfslocked = VFS_LOCK_GIANT(vp->v_mount); - vn_lock(vp, LK_SHARED | LK_RETRY); + error = vn_lock(vp, LK_SHARED); + if (error != 0) + goto after_read; + bsize = vp->v_mount->mnt_stat.f_iosize; /* * XXXMAC: Because we don't have fp->f_cred @@ -2101,6 +2103,7 @@ retry_space: IO_VMIO | ((MAXBSIZE / bsize) << IO_SEQSHIFT), td->td_ucred, NOCRED, &resid, td); VOP_UNLOCK(vp, 0); + after_read: VFS_UNLOCK_GIANT(vfslocked); VM_OBJECT_LOCK(obj); vm_page_io_finish(pg); Modified: projects/sbruno_firewire/sys/pc98/conf/GENERIC ============================================================================== --- projects/sbruno_firewire/sys/pc98/conf/GENERIC Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/pc98/conf/GENERIC Thu Oct 1 16:25:35 2009 (r197678) @@ -223,7 +223,7 @@ device xe # Xircom pccard Ethernet #device wlan # 802.11 support #options IEEE80211_DEBUG # enable debug msgs #options IEEE80211_AMPDU_AGE # age frames in AMPDU reorder q's -#options IEEE80211_SUPPORT_MESH # enable 802.11s D3.0 support +#options IEEE80211_SUPPORT_MESH # enable 802.11s draft support #device wlan_wep # 802.11 WEP support #device wlan_ccmp # 802.11 CCMP support #device wlan_tkip # 802.11 TKIP support Modified: projects/sbruno_firewire/sys/sys/rwlock.h ============================================================================== --- projects/sbruno_firewire/sys/sys/rwlock.h Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/sys/rwlock.h Thu Oct 1 16:25:35 2009 (r197678) @@ -55,13 +55,6 @@ * * When the lock is not locked by any thread, it is encoded as a read lock * with zero waiters. - * - * A note about memory barriers. Write locks need to use the same memory - * barriers as mutexes: _acq when acquiring a write lock and _rel when - * releasing a write lock. Read locks also need to use an _acq barrier when - * acquiring a read lock. However, since read locks do not update any - * locked data (modulo bugs of course), no memory barrier is needed when - * releasing a read lock. */ #define RW_LOCK_READ 0x01 Modified: projects/sbruno_firewire/sys/sys/sx.h ============================================================================== --- projects/sbruno_firewire/sys/sys/sx.h Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/sys/sx.h Thu Oct 1 16:25:35 2009 (r197678) @@ -63,13 +63,6 @@ * * When the lock is not locked by any thread, it is encoded as a * shared lock with zero waiters. - * - * A note about memory barriers. Exclusive locks need to use the same - * memory barriers as mutexes: _acq when acquiring an exclusive lock - * and _rel when releasing an exclusive lock. On the other side, - * shared lock needs to use an _acq barrier when acquiring the lock - * but, since they don't update any locked data, no memory barrier is - * needed when releasing a shared lock. */ #define SX_LOCK_SHARED 0x01 @@ -200,7 +193,7 @@ __sx_sunlock(struct sx *sx, const char * uintptr_t x = sx->sx_lock; if (x == (SX_SHARERS_LOCK(1) | SX_LOCK_EXCLUSIVE_WAITERS) || - !atomic_cmpset_ptr(&sx->sx_lock, x, x - SX_ONE_SHARER)) + !atomic_cmpset_rel_ptr(&sx->sx_lock, x, x - SX_ONE_SHARER)) _sx_sunlock_hard(sx, file, line); } Modified: projects/sbruno_firewire/sys/sys/syscall.h ============================================================================== --- projects/sbruno_firewire/sys/sys/syscall.h Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/sys/syscall.h Thu Oct 1 16:25:35 2009 (r197678) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/kern/syscalls.master 195458 2009-07-08 15:23:18Z trasz + * created from FreeBSD: head/sys/kern/syscalls.master 197636 2009-09-30 08:46:01Z rwatson */ #define SYS_syscall 0 @@ -428,4 +428,4 @@ #define SYS_msgctl 511 #define SYS_shmctl 512 #define SYS_lpathconf 513 -#define SYS_MAXSYSCALL 514 +#define SYS_MAXSYSCALL 522 Modified: projects/sbruno_firewire/sys/sys/syscall.mk ============================================================================== --- projects/sbruno_firewire/sys/sys/syscall.mk Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/sys/syscall.mk Thu Oct 1 16:25:35 2009 (r197678) @@ -1,7 +1,7 @@ # FreeBSD system call names. # DO NOT EDIT-- this file is automatically generated. # $FreeBSD$ -# created from FreeBSD: head/sys/kern/syscalls.master 195458 2009-07-08 15:23:18Z trasz +# created from FreeBSD: head/sys/kern/syscalls.master 197636 2009-09-30 08:46:01Z rwatson MIASM = \ syscall.o \ exit.o \ Modified: projects/sbruno_firewire/sys/sys/sysproto.h ============================================================================== --- projects/sbruno_firewire/sys/sys/sysproto.h Thu Oct 1 16:17:44 2009 (r197677) +++ projects/sbruno_firewire/sys/sys/sysproto.h Thu Oct 1 16:25:35 2009 (r197678) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/kern/syscalls.master 195458 2009-07-08 15:23:18Z trasz + * created from FreeBSD: head/sys/kern/syscalls.master 197636 2009-09-30 08:46:01Z rwatson */ #ifndef _SYS_SYSPROTO_H_ @@ -2233,21 +2233,13 @@ int freebsd4_sigreturn(struct thread *, #endif /* COMPAT_FREEBSD4 */ -#if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) +#ifdef COMPAT_FREEBSD6 -#endif /* COMPAT_FREEBSD[45] */ +#endif /* COMPAT_FREEBSD6 */ -#if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) || \ - defined(COMPAT_FREEBSD6) - - *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***