Date: Sun, 30 Jun 2013 13:32:03 +0000 (UTC) From: Attilio Rao <attilio@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r252417 - in user/attilio/vmobj-readlock: contrib/libstdc++/libsupc++ crypto/heimdal/lib/gssapi/gssapi include/gssapi lib/librt sbin/hastd sbin/ifconfig sbin/swapon sys/arm/conf sys/arm... Message-ID: <201306301332.r5UDW3Lu099480@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: attilio Date: Sun Jun 30 13:32:02 2013 New Revision: 252417 URL: http://svnweb.freebsd.org/changeset/base/252417 Log: MFC Added: user/attilio/vmobj-readlock/sys/arm/conf/ARNDALE - copied unchanged from r252416, user/attilio/vmcontention/sys/arm/conf/ARNDALE user/attilio/vmobj-readlock/sys/arm/samsung/ - copied from r252416, user/attilio/vmcontention/sys/arm/samsung/ Modified: user/attilio/vmobj-readlock/contrib/libstdc++/libsupc++/unwind-cxx.h user/attilio/vmobj-readlock/crypto/heimdal/lib/gssapi/gssapi/gssapi_krb5.h user/attilio/vmobj-readlock/include/gssapi/gssapi.h user/attilio/vmobj-readlock/lib/librt/sigev_thread.c user/attilio/vmobj-readlock/sbin/hastd/refcnt.h user/attilio/vmobj-readlock/sbin/ifconfig/af_nd6.c user/attilio/vmobj-readlock/sbin/swapon/swapon.c user/attilio/vmobj-readlock/sys/arm/versatile/versatile_pci.c user/attilio/vmobj-readlock/sys/arm/versatile/versatile_sic.c user/attilio/vmobj-readlock/sys/cam/cam_ccb.h user/attilio/vmobj-readlock/sys/cam/scsi/scsi_xpt.c user/attilio/vmobj-readlock/sys/cddl/compat/opensolaris/kern/opensolaris_cmn_err.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c user/attilio/vmobj-readlock/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c user/attilio/vmobj-readlock/sys/dev/ath/if_ath_rx_edma.c user/attilio/vmobj-readlock/sys/dev/bce/if_bce.c user/attilio/vmobj-readlock/sys/dev/bce/if_bcereg.h user/attilio/vmobj-readlock/sys/dev/bge/if_bge.c user/attilio/vmobj-readlock/sys/dev/bge/if_bgereg.h user/attilio/vmobj-readlock/sys/dev/iwn/if_iwn.c user/attilio/vmobj-readlock/sys/dev/uart/uart.h user/attilio/vmobj-readlock/sys/dev/uart/uart_bus_fdt.c user/attilio/vmobj-readlock/sys/dev/uart/uart_cpu_fdt.c user/attilio/vmobj-readlock/sys/dev/uart/uart_subr.c user/attilio/vmobj-readlock/sys/dev/usb/wlan/if_urtwn.c user/attilio/vmobj-readlock/sys/fs/ext2fs/ext2_vfsops.c user/attilio/vmobj-readlock/sys/kern/kern_acct.c user/attilio/vmobj-readlock/sys/sys/stdatomic.h user/attilio/vmobj-readlock/usr.bin/calendar/calendars/calendar.freebsd user/attilio/vmobj-readlock/usr.bin/truss/syscalls.c Directory Properties: user/attilio/vmobj-readlock/ (props changed) user/attilio/vmobj-readlock/contrib/libstdc++/ (props changed) user/attilio/vmobj-readlock/crypto/heimdal/ (props changed) user/attilio/vmobj-readlock/sbin/ (props changed) user/attilio/vmobj-readlock/sys/ (props changed) user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/ (props changed) user/attilio/vmobj-readlock/usr.bin/calendar/ (props changed) Modified: user/attilio/vmobj-readlock/contrib/libstdc++/libsupc++/unwind-cxx.h ============================================================================== --- user/attilio/vmobj-readlock/contrib/libstdc++/libsupc++/unwind-cxx.h Sun Jun 30 13:29:07 2013 (r252416) +++ user/attilio/vmobj-readlock/contrib/libstdc++/libsupc++/unwind-cxx.h Sun Jun 30 13:32:02 2013 (r252417) @@ -133,7 +133,7 @@ extern "C" void __cxa_bad_typeid (); // throws, and if bad_exception needs to be thrown. Called from the // compiler. extern "C" void __cxa_call_unexpected (void *) __attribute__((noreturn)); -extern "C" void __cxa_call_terminate (void*) __attribute__((noreturn)); +extern "C" void __cxa_call_terminate (_Unwind_Exception*) __attribute__((noreturn)); #ifdef __ARM_EABI_UNWINDER__ // Arm EABI specified routines. Modified: user/attilio/vmobj-readlock/crypto/heimdal/lib/gssapi/gssapi/gssapi_krb5.h ============================================================================== --- user/attilio/vmobj-readlock/crypto/heimdal/lib/gssapi/gssapi/gssapi_krb5.h Sun Jun 30 13:29:07 2013 (r252416) +++ user/attilio/vmobj-readlock/crypto/heimdal/lib/gssapi/gssapi/gssapi_krb5.h Sun Jun 30 13:32:02 2013 (r252417) @@ -36,7 +36,7 @@ #ifndef GSSAPI_KRB5_H_ #define GSSAPI_KRB5_H_ -#include <gssapi.h> +#include <gssapi/gssapi.h> GSSAPI_CPP_START Modified: user/attilio/vmobj-readlock/include/gssapi/gssapi.h ============================================================================== --- user/attilio/vmobj-readlock/include/gssapi/gssapi.h Sun Jun 30 13:29:07 2013 (r252416) +++ user/attilio/vmobj-readlock/include/gssapi/gssapi.h Sun Jun 30 13:32:02 2013 (r252417) @@ -44,6 +44,33 @@ typedef __ssize_t ssize_t; #define _SSIZE_T_DECLARED #endif +/* Compatibility with Heimdal 1.5.1 */ +#ifndef GSSAPI_CPP_START +#ifdef __cplusplus +#define GSSAPI_CPP_START extern "C" { +#define GSSAPI_CPP_END } +#else +#define GSSAPI_CPP_START +#define GSSAPI_CPP_END +#endif +#endif + +/* Compatibility with Heimdal 1.5.1 */ +#ifndef BUILD_GSSAPI_LIB +#define GSSAPI_LIB_FUNCTION +#define GSSAPI_LIB_CALL +#define GSSAPI_LIB_VARIABLE +#endif + +/* Compatibility with Heimdal 1.5.1 */ +#ifndef GSSAPI_DEPRECATED_FUNCTION +#if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1 ))) +#define GSSAPI_DEPRECATED_FUNCTION(X) __attribute__((deprecated)) +#else +#define GSSAPI_DEPRECATED_FUNCTION(X) +#endif +#endif + #if 0 /* * If the platform supports the xom.h header file, it should be Modified: user/attilio/vmobj-readlock/lib/librt/sigev_thread.c ============================================================================== --- user/attilio/vmobj-readlock/lib/librt/sigev_thread.c Sun Jun 30 13:29:07 2013 (r252416) +++ user/attilio/vmobj-readlock/lib/librt/sigev_thread.c Sun Jun 30 13:32:02 2013 (r252417) @@ -28,13 +28,13 @@ */ #include <sys/types.h> -#include <machine/atomic.h> #include "namespace.h" #include <err.h> #include <errno.h> #include <ucontext.h> #include <sys/thr.h> +#include <stdatomic.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -51,7 +51,7 @@ LIST_HEAD(sigev_list_head, sigev_node); static struct sigev_list_head sigev_hash[HASH_QUEUES]; static struct sigev_list_head sigev_all; static LIST_HEAD(,sigev_thread) sigev_threads; -static unsigned int sigev_generation; +static atomic_int sigev_generation; static pthread_mutex_t *sigev_list_mtx; static pthread_once_t sigev_once = PTHREAD_ONCE_INIT; static pthread_once_t sigev_once_default = PTHREAD_ONCE_INIT; @@ -196,7 +196,8 @@ __sigev_alloc(int type, const struct sig if (sn != NULL) { sn->sn_value = evp->sigev_value; sn->sn_func = evp->sigev_notify_function; - sn->sn_gen = atomic_fetchadd_int(&sigev_generation, 1); + sn->sn_gen = atomic_fetch_add_explicit(&sigev_generation, 1, + memory_order_relaxed); sn->sn_type = type; _pthread_attr_init(&sn->sn_attr); _pthread_attr_setdetachstate(&sn->sn_attr, PTHREAD_CREATE_DETACHED); Modified: user/attilio/vmobj-readlock/sbin/hastd/refcnt.h ============================================================================== --- user/attilio/vmobj-readlock/sbin/hastd/refcnt.h Sun Jun 30 13:29:07 2013 (r252416) +++ user/attilio/vmobj-readlock/sbin/hastd/refcnt.h Sun Jun 30 13:32:02 2013 (r252417) @@ -32,24 +32,24 @@ #ifndef __REFCNT_H__ #define __REFCNT_H__ -#include <stdatomic.h> +#include <machine/atomic.h> #include "pjdlog.h" -typedef atomic_uint refcnt_t; +typedef unsigned int refcnt_t; static __inline void refcnt_init(refcnt_t *count, unsigned int v) { - atomic_init(count, v); + *count = v; } static __inline void refcnt_acquire(refcnt_t *count) { - atomic_fetch_add_explicit(count, 1, memory_order_acquire); + atomic_add_acq_int(count, 1); } static __inline unsigned int @@ -58,7 +58,7 @@ refcnt_release(refcnt_t *count) unsigned int old; /* XXX: Should this have a rel membar? */ - old = atomic_fetch_sub(count, 1); + old = atomic_fetchadd_int(count, -1); PJDLOG_ASSERT(old > 0); return (old - 1); } Modified: user/attilio/vmobj-readlock/sbin/ifconfig/af_nd6.c ============================================================================== --- user/attilio/vmobj-readlock/sbin/ifconfig/af_nd6.c Sun Jun 30 13:29:07 2013 (r252416) +++ user/attilio/vmobj-readlock/sbin/ifconfig/af_nd6.c Sun Jun 30 13:32:02 2013 (r252417) @@ -148,7 +148,7 @@ nd6_status(int s) memset(&nd, 0, sizeof(nd)); strncpy(nd.ifname, ifr.ifr_name, sizeof(nd.ifname)); if ((s6 = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) { - if (errno != EAFNOSUPPORT) + if (errno != EAFNOSUPPORT && error != EPROTONOSUPPORT) warn("socket(AF_INET6, SOCK_DGRAM)"); return; } Modified: user/attilio/vmobj-readlock/sbin/swapon/swapon.c ============================================================================== --- user/attilio/vmobj-readlock/sbin/swapon/swapon.c Sun Jun 30 13:29:07 2013 (r252416) +++ user/attilio/vmobj-readlock/sbin/swapon/swapon.c Sun Jun 30 13:32:02 2013 (r252417) @@ -65,19 +65,17 @@ __FBSDID("$FreeBSD$"); #include <unistd.h> static void usage(void); -static const char *swap_on_off(char *, int, char *); -static const char *swap_on_off_gbde(char *, int); -static const char *swap_on_off_geli(char *, char *, int); -static const char *swap_on_off_md(char *, char *, int); -static const char *swap_on_off_sfile(char *, int); +static const char *swap_on_off(const char *, int, char *); +static const char *swap_on_off_gbde(const char *, int); +static const char *swap_on_off_geli(const char *, char *, int); +static const char *swap_on_off_md(const char *, char *, int); +static const char *swap_on_off_sfile(const char *, int); static void swaplist(int, int, int); static int run_cmd(int *, const char *, ...) __printflike(2, 3); static enum { SWAPON, SWAPOFF, SWAPCTL } orig_prog, which_prog = SWAPCTL; static int qflag; -static char aalgo_default[] = "hmac/sha256"; -static char ealgo_default[] = "aes"; int main(int argc, char **argv) @@ -219,215 +217,231 @@ main(int argc, char **argv) } static const char * -swap_on_off(char *name, int doingall, char *mntops) +swap_on_off(const char *name, int doingall, char *mntops) { char base[PATH_MAX]; /* Swap on vnode-backed md(4) device. */ if (mntops != NULL && - (fnmatch(_PATH_DEV MD_NAME "[0-9]*", name, 0) != FNM_NOMATCH || - fnmatch(MD_NAME "[0-9]*", name, 0) != FNM_NOMATCH || + (fnmatch(_PATH_DEV MD_NAME "[0-9]*", name, 0) == 0 || + fnmatch(MD_NAME "[0-9]*", name, 0) == 0 || strncmp(_PATH_DEV MD_NAME, name, sizeof(_PATH_DEV) + sizeof(MD_NAME)) == 0 || strncmp(MD_NAME, name, sizeof(MD_NAME)) == 0)) return (swap_on_off_md(name, mntops, doingall)); - /* Swap on encrypted device by GEOM_BDE. */ basename_r(name, base); - if (fnmatch("*.bde", base, 0) != FNM_NOMATCH) + + /* Swap on encrypted device by GEOM_BDE. */ + if (fnmatch("*.bde", base, 0) == 0) return (swap_on_off_gbde(name, doingall)); /* Swap on encrypted device by GEOM_ELI. */ - if (fnmatch("*.eli", base, 0) != FNM_NOMATCH) + if (fnmatch("*.eli", base, 0) == 0) return (swap_on_off_geli(name, mntops, doingall)); /* Swap on special file. */ return (swap_on_off_sfile(name, doingall)); } -static const char * -swap_on_off_gbde(char *name, int doingall) +/* Strip off .bde or .eli suffix from swap device name */ +static char * +swap_basename(const char *name) { - const char *ret; - char pass[64 * 2 + 1], bpass[64]; char *dname, *p; - int i, fd, error; dname = strdup(name); p = strrchr(dname, '.'); - if (p == NULL) { - warnx("%s: Malformed device name", name); - return (NULL); - } + /* assert(p != NULL); */ *p = '\0'; - fd = -1; - switch (which_prog) { - case SWAPON: + return (dname); +} + +static const char * +swap_on_off_gbde(const char *name, int doingall) +{ + const char *ret; + char pass[64 * 2 + 1], bpass[64]; + char *dname; + int i, error; + + dname = swap_basename(name); + if (dname == NULL) + return (NULL); + + if (which_prog == SWAPON) { arc4random_buf(bpass, sizeof(bpass)); for (i = 0; i < (int)sizeof(bpass); i++) sprintf(&pass[2 * i], "%02x", bpass[i]); pass[sizeof(pass) - 1] = '\0'; - error = run_cmd(&fd, "%s init %s -P %s", _PATH_GBDE, + error = run_cmd(NULL, "%s init %s -P %s", _PATH_GBDE, dname, pass); if (error) { /* bde device found. Ignore it. */ - close(fd); + free(dname); if (!qflag) warnx("%s: Device already in use", name); return (NULL); } - close(fd); - error = run_cmd(&fd, "%s attach %s -p %s", _PATH_GBDE, + error = run_cmd(NULL, "%s attach %s -p %s", _PATH_GBDE, dname, pass); + free(dname); if (error) { - close(fd); warnx("gbde (attach) error: %s", name); return (NULL); } - break; - case SWAPOFF: - break; - default: - return (NULL); - break; } - if (fd != -1) - close(fd); + ret = swap_on_off_sfile(name, doingall); - fd = -1; - switch (which_prog) { - case SWAPOFF: - error = run_cmd(&fd, "%s detach %s", _PATH_GBDE, dname); + if (which_prog == SWAPOFF) { + error = run_cmd(NULL, "%s detach %s", _PATH_GBDE, dname); + free(dname); if (error) { /* bde device not found. Ignore it. */ if (!qflag) - warnx("%s: Device not found", dname); + warnx("%s: Device not found", name); return (NULL); } - break; - default: - return (NULL); - break; } - if (fd != -1) - close(fd); return (ret); } +/* Build geli(8) arguments from mntopts */ +static char * +swap_on_geli_args(const char *mntops) +{ + const char *aalgo, *ealgo, *keylen_str, *sectorsize_str; + const char *aflag, *eflag, *lflag, *sflag; + char *p; + char *args; + char *token, *string, *ops; + int argsize, pagesize; + size_t pagesize_len; + u_long ul; + + /* Use built-in defaults for geli(8) */ + aalgo = ealgo = keylen_str = ""; + aflag = eflag = lflag = ""; + + /* We will always specify sectorsize */ + sflag = " -s "; + sectorsize_str = NULL; + + if (mntops != NULL) { + string = ops = strdup(mntops); + + while ((token = strsep(&string, ",")) != NULL) { + if ((p = strstr(token, "aalgo=")) == token) { + aalgo = p + sizeof("aalgo=") - 1; + aflag = " -a "; + } else if ((p = strstr(token, "ealgo=")) == token) { + ealgo = p + sizeof("ealgo=") - 1; + eflag = " -e "; + } else if ((p = strstr(token, "keylen=")) == token) { + keylen_str = p + sizeof("keylen=") - 1; + errno = 0; + ul = strtoul(keylen_str, &p, 10); + if (errno == 0) { + if (*p != '\0' || ul > INT_MAX) + errno = EINVAL; + } + if (errno) { + warn("Invalid keylen: %s", keylen_str); + free(ops); + return (NULL); + } + lflag = " -l "; + } else if ((p = strstr(token, "sectorsize=")) == token) { + sectorsize_str = p + sizeof("sectorsize=") - 1; + errno = 0; + ul = strtoul(sectorsize_str, &p, 10); + if (errno == 0) { + if (*p != '\0' || ul > INT_MAX) + errno = EINVAL; + } + if (errno) { + warn("Invalid sectorsize: %s", sectorsize_str); + free(ops); + return (NULL); + } + } else if (strcmp(token, "sw") != 0) { + warnx("Invalid option: %s", token); + free(ops); + return (NULL); + } + } + } else + ops = NULL; + + /* + * If we do not have a sector size at this point, fill in + * pagesize as sector size. + */ + if (sectorsize_str == NULL) { + /* Use pagesize as default sectorsize */ + pagesize = getpagesize(); + pagesize_len = snprintf(NULL, 0, "%d", pagesize) + 1; + p = alloca(pagesize_len); + snprintf(p, pagesize_len, "%d", pagesize); + sectorsize_str = p; + } + + argsize = asprintf(&args, "%s%s%s%s%s%s%s%s -d", + aflag, aalgo, eflag, ealgo, lflag, keylen_str, + sflag, sectorsize_str); + + free(ops); + return (args); +} + static const char * -swap_on_off_geli(char *name, char *mntops, int doingall) +swap_on_off_geli(const char *name, char *mntops, int doingall) { - char *ops, *aalgo, *ealgo, *keylen_str, *sectorsize_str; - char *dname, *p; - char args[4096]; + char *dname; + char *args; struct stat sb; - int fd, error, keylen, sectorsize; - u_long ul; + int error; - dname = strdup(name); - p = strrchr(dname, '.'); - if (p == NULL) { - warnx("%s: Malformed device name", name); - return (NULL); - } - *p = '\0'; + error = stat(name, &sb); - ops = strdup(mntops); + if (which_prog == SWAPON) do { + /* Skip if the .eli device already exists */ + if (error == 0) + break; - /* Default parameters for geli(8). */ - aalgo = aalgo_default; - ealgo = ealgo_default; - keylen = 256; - sectorsize = 4096; - - if ((p = strstr(ops, "aalgo=")) != NULL) { - aalgo = p + sizeof("aalgo=") - 1; - p = strchr(aalgo, ','); - if (p != NULL) - *p = '\0'; - } - if ((p = strstr(ops, "ealgo=")) != NULL) { - ealgo = p + sizeof("ealgo=") - 1; - p = strchr(ealgo, ','); - if (p != NULL) - *p = '\0'; - } - if ((p = strstr(ops, "keylen=")) != NULL) { - keylen_str = p + sizeof("keylen=") - 1; - p = strchr(keylen_str, ','); - if (p != NULL) - *p = '\0'; - errno = 0; - ul = strtoul(keylen_str, &p, 10); - if (errno == 0) { - if (*p != '\0' || ul > INT_MAX) - errno = EINVAL; - } - if (errno) { - warn("Invalid keylen: %s", keylen_str); + args = swap_on_geli_args(mntops); + if (args == NULL) return (NULL); - } - keylen = (int)ul; - } - if ((p = strstr(ops, "sectorsize=")) != NULL) { - sectorsize_str = p + sizeof("sectorsize=") - 1; - p = strchr(sectorsize_str, ','); - if (p != NULL) - *p = '\0'; - errno = 0; - ul = strtoul(sectorsize_str, &p, 10); - if (errno == 0) { - if (*p != '\0' || ul > INT_MAX) - errno = EINVAL; - } - if (errno) { - warn("Invalid sectorsize: %s", sectorsize_str); + + dname = swap_basename(name); + if (dname == NULL) { + free(args); return (NULL); } - sectorsize = (int)ul; - } - snprintf(args, sizeof(args), "-a %s -e %s -l %d -s %d -d", - aalgo, ealgo, keylen, sectorsize); - args[sizeof(args) - 1] = '\0'; - free((void *)ops); - fd = -1; - switch (which_prog) { - case SWAPON: - error = run_cmd(&fd, "%s onetime %s %s", _PATH_GELI, args, + error = run_cmd(NULL, "%s onetime%s %s", _PATH_GELI, args, dname); + + free(dname); + free(args); + if (error) { - /* eli device found. Ignore it. */ - close(fd); + /* error occured during creation */ if (!qflag) - warnx("%s: Device already in use " - "or invalid parameters", name); + warnx("%s: Invalid parameters", name); return (NULL); } - break; - case SWAPOFF: - if (stat(name, &sb) == -1 && errno == ENOENT) { - if (!qflag) - warnx("%s: Device not found", name); - return (NULL); - } - break; - default: - return (NULL); - break; - } - if (fd != -1) - close(fd); + } while (0); return (swap_on_off_sfile(name, doingall)); } static const char * -swap_on_off_md(char *name, char *mntops, int doingall) +swap_on_off_md(const char *name, char *mntops, int doingall) { FILE *sfd; int fd, mdunit, error; @@ -467,8 +481,7 @@ swap_on_off_md(char *name, char *mntops, return (NULL); } - switch (which_prog) { - case SWAPON: + if (which_prog == SWAPON) { if (mdunit == -1) { error = run_cmd(&fd, "%s -l -n -f %s", _PATH_MDCONFIG, vnodefile); @@ -534,8 +547,7 @@ swap_on_off_md(char *name, char *mntops, return (NULL); } } - break; - case SWAPOFF: + } else /* SWAPOFF */ { if (mdunit == -1) { error = run_cmd(&fd, "%s -l -n -f %s", _PATH_MDCONFIG, vnodefile); @@ -590,17 +602,13 @@ swap_on_off_md(char *name, char *mntops, return (NULL); } } - break; - default: - return (NULL); } snprintf(mdpath, sizeof(mdpath), "%s%s%d", _PATH_DEV, MD_NAME, mdunit); mdpath[sizeof(mdpath) - 1] = '\0'; ret = swap_on_off_sfile(mdpath, doingall); - switch (which_prog) { - case SWAPOFF: + if (which_prog == SWAPOFF) { if (ret != NULL) { error = run_cmd(NULL, "%s -d -u %d", _PATH_MDCONFIG, mdunit); @@ -608,9 +616,6 @@ swap_on_off_md(char *name, char *mntops, warn("mdconfig (detach) detach failed: %s%s%d", _PATH_DEV, MD_NAME, mdunit); } - break; - default: - break; } err: if (sfd != NULL) @@ -695,21 +700,15 @@ run_cmd(int *ofd, const char *cmdline, . } static const char * -swap_on_off_sfile(char *name, int doingall) +swap_on_off_sfile(const char *name, int doingall) { int error; - switch (which_prog) { - case SWAPON: + if (which_prog == SWAPON) error = swapon(name); - break; - case SWAPOFF: + else /* SWAPOFF */ error = swapoff(name); - break; - default: - error = 0; - break; - } + if (error == -1) { switch (errno) { case EBUSY: Copied: user/attilio/vmobj-readlock/sys/arm/conf/ARNDALE (from r252416, user/attilio/vmcontention/sys/arm/conf/ARNDALE) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmobj-readlock/sys/arm/conf/ARNDALE Sun Jun 30 13:32:02 2013 (r252417, copy of r252416, user/attilio/vmcontention/sys/arm/conf/ARNDALE) @@ -0,0 +1,135 @@ +# Kernel configuration for Arndale Board (Exynos5 Dual development platform). +# +# For more information on this file, please read the config(5) manual page, +# and/or the handbook section on Kernel Configuration Files: +# +# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html +# +# The handbook is also available locally in /usr/share/doc/handbook +# if you've installed the doc distribution, otherwise always see the +# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the +# latest information. +# +# An exhaustive list of options and more detailed explanations of the +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first +# in NOTES. +# +# $FreeBSD$ + +ident ARNDALE + +include "../samsung/exynos/std.exynos5" + +makeoptions MODULES_OVERRIDE="" +makeoptions WITHOUT_MODULES="ahc" + +makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols +makeoptions WERROR="-Werror" + +options HZ=100 ## +options SCHED_4BSD #4BSD scheduler +options INET #InterNETworking +options INET6 #IPv6 communications protocols +options FFS #Berkeley Fast Filesystem +options SOFTUPDATES +options UFS_ACL #Support for access control lists +options UFS_DIRHASH #Improve performance on big directories +options MSDOSFS #MSDOS Filesystem +options CD9660 #ISO 9660 Filesystem +options PROCFS #Process filesystem (requires PSEUDOFS) +options PSEUDOFS #Pseudo-filesystem framework +options TMPFS +options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!] +options SCSI_DELAY=5000 #Delay (in ms) before probing SCSI +options KTRACE +options SYSVSHM #SYSV-style shared memory +options SYSVMSG #SYSV-style message queues +options SYSVSEM #SYSV-style semaphores +options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions +options KBD_INSTALL_CDEV +options PREEMPTION +options FREEBSD_BOOT_LOADER + +# Debugging +makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols +options BREAK_TO_DEBUGGER +#options VERBOSE_SYSINIT #Enable verbose sysinit messages +options KDB +options DDB #Enable the kernel debugger +options INVARIANTS #Enable calls of extra sanity checking +options INVARIANT_SUPPORT #Extra sanity checks of internal structures, required by INVARIANTS +#options WITNESS #Enable checks to detect deadlocks and cycles +#options WITNESS_SKIPSPIN #Don't run witness on spinlocks for speed +options DIAGNOSTIC + +# NFS support +options NFSCL #Network Filesystem Client +options NFSLOCKD #Network Lock Manager +options NFS_ROOT #NFS usable as /, requires NFSCLIENT + +# Uncomment this for NFS root +#options NFS_ROOT #NFS usable as /, requires NFSCL +#options BOOTP_NFSROOT +#options BOOTP_COMPAT +#options BOOTP +#options BOOTP_NFSV3 +#options BOOTP_WIRED_TO=cpsw0 + +device mmc # mmc/sd bus +device mmcsd # mmc/sd flash cards +device sdhci # generic sdhci + +options ROOTDEVNAME=\"ufs:/dev/da0\" + +#options SMP + +# Pseudo devices + +device loop +device random +device pty +device md +device gpio + +# USB support +device usb +options USB_DEBUG +#options USB_REQ_DEBUG +#options USB_VERBOSE +#device musb +device ehci +#device ohci + +device umass +device scbus # SCSI bus (required for SCSI) +device da # Direct Access (disks) +device pass + +# SATA +#device ata +#device atadisk +#device mvs + +# Serial ports +device uart + +# I2C (TWSI) +#device iic +#device iicbus + +# Ethernet +device ether +device mii +device smsc +device smscphy + +# USB ethernet support, requires miibus +device miibus +device axe # ASIX Electronics USB Ethernet +device bpf # Berkeley packet filter + +#FDT +options FDT +options FDT_DTB_STATIC +makeoptions FDT_DTS_FILE=exynos5250-arndale.dts Modified: user/attilio/vmobj-readlock/sys/arm/versatile/versatile_pci.c ============================================================================== --- user/attilio/vmobj-readlock/sys/arm/versatile/versatile_pci.c Sun Jun 30 13:29:07 2013 (r252416) +++ user/attilio/vmobj-readlock/sys/arm/versatile/versatile_pci.c Sun Jun 30 13:32:02 2013 (r252417) @@ -173,16 +173,17 @@ versatile_pci_attach(device_t dev) /* * Setup memory windows */ - versatile_pci_core_write_4(PCI_CORE_IMAP0, (PCI_IO_WINDOW >> 11)); - versatile_pci_core_write_4(PCI_CORE_IMAP1, (PCI_NPREFETCH_WINDOW >> 11)); - versatile_pci_core_write_4(PCI_CORE_IMAP2, (PCI_PREFETCH_WINDOW >> 11)); + versatile_pci_core_write_4(PCI_CORE_IMAP0, (PCI_IO_WINDOW >> 28)); + versatile_pci_core_write_4(PCI_CORE_IMAP1, (PCI_NPREFETCH_WINDOW >> 28)); + versatile_pci_core_write_4(PCI_CORE_IMAP2, (PCI_PREFETCH_WINDOW >> 28)); /* * XXX: this is SDRAM offset >> 28 + * Unused as of QEMU 1.5 */ - versatile_pci_core_write_4(PCI_CORE_SMAP0, 0); - versatile_pci_core_write_4(PCI_CORE_SMAP1, 0); - versatile_pci_core_write_4(PCI_CORE_SMAP2, 0); + versatile_pci_core_write_4(PCI_CORE_SMAP0, (PCI_IO_WINDOW >> 28)); + versatile_pci_core_write_4(PCI_CORE_SMAP1, (PCI_NPREFETCH_WINDOW >> 28)); + versatile_pci_core_write_4(PCI_CORE_SMAP2, (PCI_NPREFETCH_WINDOW >> 28)); versatile_pci_sys_write_4(SYS_PCICTL, 1); @@ -307,7 +308,7 @@ versatile_pci_alloc_resource(device_t bu struct resource *rv; struct rman *rm; - printf("Alloc resources %d, %08lx..%08lx, %ld\n", type, start, end, count); + dprintf("Alloc resources %d, %08lx..%08lx, %ld\n", type, start, end, count); switch (type) { case SYS_RES_IOPORT: @@ -344,20 +345,23 @@ versatile_pci_activate_resource(device_t struct resource *r) { vm_offset_t vaddr; - int res = (BUS_ACTIVATE_RESOURCE(device_get_parent(bus), - child, type, rid, r)); + int res; - if (!res) { - switch(type) { - case SYS_RES_MEMORY: - case SYS_RES_IOPORT: - vaddr = (vm_offset_t)pmap_mapdev(rman_get_start(r), - rman_get_size(r)); - rman_set_bushandle(r, vaddr); - rman_set_bustag(r, versatile_bus_space_pcimem); - break; - } + switch(type) { + case SYS_RES_MEMORY: + case SYS_RES_IOPORT: + vaddr = (vm_offset_t)pmap_mapdev(rman_get_start(r), + rman_get_size(r)); + rman_set_bushandle(r, vaddr); + rman_set_bustag(r, versatile_bus_space_pcimem); + res = rman_activate_resource(r); + break; + case SYS_RES_IRQ: + res = (BUS_ACTIVATE_RESOURCE(device_get_parent(bus), + child, type, rid, r)); + break; } + return (res); } Modified: user/attilio/vmobj-readlock/sys/arm/versatile/versatile_sic.c ============================================================================== --- user/attilio/vmobj-readlock/sys/arm/versatile/versatile_sic.c Sun Jun 30 13:29:07 2013 (r252416) +++ user/attilio/vmobj-readlock/sys/arm/versatile/versatile_sic.c Sun Jun 30 13:32:02 2013 (r252417) @@ -110,7 +110,7 @@ versatile_sic_attach(device_t dev) * Let PCI and Ethernet interrupts pass through * IRQ25, IRQ27..IRQ31 */ - pass_irqs = (7 << 27) | (1 << 25); + pass_irqs = (0x1f << 27) | (1 << 25); sic_write_4(sc, SIC_PICENSET, pass_irqs); return (0); Modified: user/attilio/vmobj-readlock/sys/cam/cam_ccb.h ============================================================================== --- user/attilio/vmobj-readlock/sys/cam/cam_ccb.h Sun Jun 30 13:29:07 2013 (r252416) +++ user/attilio/vmobj-readlock/sys/cam/cam_ccb.h Sun Jun 30 13:32:02 2013 (r252417) @@ -1296,6 +1296,19 @@ cam_fill_smpio(struct ccb_smpio *smpio, smpio->smp_response_len = smp_response_len; } +static __inline void +cam_set_ccbstatus(union ccb *ccb, cam_status status) +{ + ccb->ccb_h.status &= ~CAM_STATUS_MASK; + ccb->ccb_h.status |= status; +} + +static __inline cam_status +cam_ccb_status(union ccb *ccb) +{ + return (ccb->ccb_h.status & CAM_STATUS_MASK); +} + void cam_calc_geometry(struct ccb_calc_geometry *ccg, int extended); __END_DECLS Modified: user/attilio/vmobj-readlock/sys/cam/scsi/scsi_xpt.c ============================================================================== --- user/attilio/vmobj-readlock/sys/cam/scsi/scsi_xpt.c Sun Jun 30 13:29:07 2013 (r252416) +++ user/attilio/vmobj-readlock/sys/cam/scsi/scsi_xpt.c Sun Jun 30 13:32:02 2013 (r252417) @@ -974,7 +974,7 @@ proberequestdefaultnegotiation(struct ca cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS; cts.type = CTS_TYPE_USER_SETTINGS; xpt_action((union ccb *)&cts); - if ((cts.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + if (cam_ccb_status((union ccb *)&cts) != CAM_REQ_CMP) { return; } cts.ccb_h.func_code = XPT_SET_TRAN_SETTINGS; @@ -996,7 +996,7 @@ proberequestbackoff(struct cam_periph *p cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS; cts.type = CTS_TYPE_CURRENT_SETTINGS; xpt_action((union ccb *)&cts); - if ((cts.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + if (cam_ccb_status((union ccb *)&cts) != CAM_REQ_CMP) { if (bootverbose) { xpt_print(periph->path, "failed to get current device settings\n"); @@ -1075,7 +1075,7 @@ proberequestbackoff(struct cam_periph *p cts.ccb_h.func_code = XPT_SET_TRAN_SETTINGS; cts.type = CTS_TYPE_CURRENT_SETTINGS; xpt_action((union ccb *)&cts); - if ((cts.ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { + if (cam_ccb_status((union ccb *)&cts) != CAM_REQ_CMP) { break; } CAM_DEBUG(periph->path, CAM_DEBUG_PROBE, @@ -1105,7 +1105,7 @@ probedone(struct cam_periph *periph, uni switch (softc->action) { case PROBE_TUR: { - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + if (cam_ccb_status(done_ccb) != CAM_REQ_CMP) { if (cam_periph_error(done_ccb, 0, SF_NO_PRINT, NULL) == ERESTART) { @@ -1128,7 +1128,7 @@ out: case PROBE_INQUIRY: case PROBE_FULL_INQUIRY: { - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { + if (cam_ccb_status(done_ccb) == CAM_REQ_CMP) { struct scsi_inquiry_data *inq_buf; u_int8_t periph_qual; @@ -1246,7 +1246,7 @@ out: nlun = scsi_4btoul(lp->length) / 8; maxlun = (csio->dxfer_len / 8) - 1; - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + if (cam_ccb_status(done_ccb) != CAM_REQ_CMP) { if (cam_periph_error(done_ccb, 0, done_ccb->ccb_h.target_lun > 0 ? SF_RETRY_UA|SF_QUIET_IR : SF_RETRY_UA, @@ -1357,7 +1357,7 @@ out: csio = &done_ccb->csio; mode_hdr = (struct scsi_mode_header_6 *)csio->data_ptr; - if ((csio->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { + if (cam_ccb_status(done_ccb) == CAM_REQ_CMP) { struct scsi_control_page *page; u_int8_t *offset; @@ -1492,7 +1492,7 @@ probe_device_check: /* * Don't process the command as it was never sent */ - } else if ((csio->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP + } else if (cam_ccb_status(done_ccb) == CAM_REQ_CMP && (serial_buf->length > 0)) { have_serialnum = 1; @@ -1577,7 +1577,7 @@ probe_device_check: } case PROBE_TUR_FOR_NEGOTIATION: case PROBE_DV_EXIT: - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + if (cam_ccb_status(done_ccb) != CAM_REQ_CMP) { cam_periph_error(done_ccb, 0, SF_NO_PRINT | SF_NO_RECOVERY | SF_NO_RETRY, NULL); } @@ -1628,7 +1628,7 @@ probe_device_check: struct scsi_inquiry_data *nbuf; struct ccb_scsiio *csio; - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + if (cam_ccb_status(done_ccb) != CAM_REQ_CMP) { cam_periph_error(done_ccb, 0, SF_NO_PRINT | SF_NO_RECOVERY | SF_NO_RETRY, NULL); } @@ -1984,7 +1984,7 @@ scsi_scan_bus(struct cam_periph *periph, oldpath = request_ccb->ccb_h.path; - status = request_ccb->ccb_h.status & CAM_STATUS_MASK; + status = cam_ccb_status(request_ccb); /* Reuse the same CCB to query if a device was really found */ scan_info = (scsi_scan_bus_info *)request_ccb->ccb_h.ppriv_ptr0; xpt_setup_ccb(&request_ccb->ccb_h, request_ccb->ccb_h.path, @@ -2667,7 +2667,7 @@ scsi_set_transfer_settings(struct ccb_tr cur_cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS; cur_cts.type = cts->type; xpt_action((union ccb *)&cur_cts); - if ((cur_cts.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + if (cam_ccb_status((union ccb *)&cur_cts) != CAM_REQ_CMP) { return; } cur_scsi = &cur_cts.proto_specific.scsi; @@ -2951,7 +2951,7 @@ scsi_announce_periph(struct cam_periph * cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS; cts.type = CTS_TYPE_CURRENT_SETTINGS; xpt_action((union ccb*)&cts); - if ((cts.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) + if (cam_ccb_status((union ccb *)&cts) != CAM_REQ_CMP) return; /* Ask the SIM for its base transfer speed */ xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NORMAL); Modified: user/attilio/vmobj-readlock/sys/cddl/compat/opensolaris/kern/opensolaris_cmn_err.c ============================================================================== --- user/attilio/vmobj-readlock/sys/cddl/compat/opensolaris/kern/opensolaris_cmn_err.c Sun Jun 30 13:29:07 2013 (r252416) +++ user/attilio/vmobj-readlock/sys/cddl/compat/opensolaris/kern/opensolaris_cmn_err.c Sun Jun 30 13:32:02 2013 (r252417) @@ -75,7 +75,8 @@ cmn_err(int type, const char *fmt, ...) } int -assfail(const char *a, const char *f, int l) { +assfail(const char *a, const char *f, int l) +{ panic("solaris assert: %s, file: %s, line: %d", a, f, l); @@ -84,7 +85,8 @@ assfail(const char *a, const char *f, in void assfail3(const char *a, uintmax_t lv, const char *op, uintmax_t rv, - const char *f, int l) { + const char *f, int l) +{ panic("solaris assert: %s (0x%jx %s 0x%jx), file: %s, line: %d", a, lv, op, rv, f, l); Modified: user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c ============================================================================== --- user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c Sun Jun 30 13:29:07 2013 (r252416) +++ user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c Sun Jun 30 13:32:02 2013 (r252417) @@ -1258,8 +1258,6 @@ dsl_dir_rename_sync(void *arg, dmu_tx_t int error; objset_t *mos = dp->dp_meta_objset; *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306301332.r5UDW3Lu099480>