PERFORCE change 200837 for review
John Baldwin
jhb at FreeBSD.org
Thu Oct 27 17:39:14 UTC 2011
http://p4web.freebsd.org/@@200837?ac=10
Change 200837 by jhb at jhb_jhbbsd on 2011/10/27 17:39:07
IFC @200835
Affected files ...
.. //depot/projects/fadvise/lib/libc/gen/getutxent.3#2 integrate
.. //depot/projects/fadvise/lib/libc/gen/pututxline.c#2 integrate
.. //depot/projects/fadvise/sys/amd64/amd64/pmap.c#2 integrate
.. //depot/projects/fadvise/sys/amd64/amd64/uma_machdep.c#2 integrate
.. //depot/projects/fadvise/sys/amd64/conf/GENERIC#3 integrate
.. //depot/projects/fadvise/sys/arm/at91/at91.c#2 integrate
.. //depot/projects/fadvise/sys/arm/econa/econa.c#2 integrate
.. //depot/projects/fadvise/sys/arm/xscale/i80321/iq80321.c#2 integrate
.. //depot/projects/fadvise/sys/arm/xscale/i8134x/i81342.c#2 integrate
.. //depot/projects/fadvise/sys/arm/xscale/ixp425/ixp425.c#2 integrate
.. //depot/projects/fadvise/sys/arm/xscale/pxa/pxa_obio.c#2 integrate
.. //depot/projects/fadvise/sys/boot/forth/loader.conf#2 integrate
.. //depot/projects/fadvise/sys/conf/files.arm#2 integrate
.. //depot/projects/fadvise/sys/contrib/pf/net/if_pfsync.c#3 integrate
.. //depot/projects/fadvise/sys/crypto/aesni/aesni_wrap.c#2 integrate
.. //depot/projects/fadvise/sys/dev/bge/if_bge.c#3 integrate
.. //depot/projects/fadvise/sys/dev/bge/if_bgereg.h#2 integrate
.. //depot/projects/fadvise/sys/dev/xen/balloon/balloon.c#2 integrate
.. //depot/projects/fadvise/sys/geom/eli/g_eli.c#3 integrate
.. //depot/projects/fadvise/sys/geom/eli/g_eli.h#3 integrate
.. //depot/projects/fadvise/sys/geom/raid/md_intel.c#2 integrate
.. //depot/projects/fadvise/sys/geom/raid/md_nvidia.c#2 integrate
.. //depot/projects/fadvise/sys/geom/raid/md_promise.c#2 integrate
.. //depot/projects/fadvise/sys/i386/conf/GENERIC#3 integrate
.. //depot/projects/fadvise/sys/i386/i386/pmap.c#2 integrate
.. //depot/projects/fadvise/sys/i386/xen/pmap.c#2 integrate
.. //depot/projects/fadvise/sys/ia64/conf/GENERIC#3 integrate
.. //depot/projects/fadvise/sys/kern/init_main.c#2 integrate
.. //depot/projects/fadvise/sys/kern/kern_malloc.c#3 integrate
.. //depot/projects/fadvise/sys/kern/vfs_bio.c#2 integrate
.. //depot/projects/fadvise/sys/net/if_var.h#2 integrate
.. //depot/projects/fadvise/sys/netgraph/netgraph.h#2 integrate
.. //depot/projects/fadvise/sys/netgraph/ng_base.c#2 integrate
.. //depot/projects/fadvise/sys/pc98/conf/GENERIC#2 integrate
.. //depot/projects/fadvise/sys/powerpc/conf/GENERIC#3 integrate
.. //depot/projects/fadvise/sys/sparc64/conf/GENERIC#3 integrate
.. //depot/projects/fadvise/sys/vm/vm_contig.c#2 integrate
.. //depot/projects/fadvise/sys/vm/vm_kern.c#2 integrate
.. //depot/projects/fadvise/sys/vm/vm_page.c#3 integrate
Differences ...
==== //depot/projects/fadvise/lib/libc/gen/getutxent.3#2 (text+ko) ====
@@ -22,9 +22,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/lib/libc/gen/getutxent.3,v 1.14 2011/10/16 14:30:28 eadler Exp $
+.\" $FreeBSD: src/lib/libc/gen/getutxent.3,v 1.17 2011/10/27 17:21:41 ed Exp $
.\"
-.Dd February 19, 2011
+.Dd October 27, 2011
.Dt GETUTXENT 3
.Os
.Sh NAME
@@ -301,7 +301,6 @@
determines which databases are modified.
.Pp
Entries of type
-.Dv BOOT_TIME ,
.Dv SHUTDOWN_TIME ,
.Dv OLD_TIME
and
@@ -335,7 +334,7 @@
.Dv BOOT_TIME
and
.Dv SHUTDOWN_TIME
-will cause all entries in
+will cause all existing entries in
.Pa /var/run/utx.active
to be discarded.
.Pp
@@ -386,10 +385,10 @@
is set to indicate the error.
.Sh ERRORS
In addition to the error conditions described in
+.Xr open 2 ,
.Xr fdopen 3 ,
.Xr fopen 3 ,
.Xr fseek 3 ,
-.Xr open 3 ,
the
.Fn pututxline
function can generate the following errors:
==== //depot/projects/fadvise/lib/libc/gen/pututxline.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/gen/pututxline.c,v 1.10 2011/06/26 18:27:17 ed Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/gen/pututxline.c,v 1.11 2011/10/27 17:05:18 ed Exp $");
#include "namespace.h"
#include <sys/endian.h>
@@ -86,6 +86,9 @@
return (-1);
while (fread(&fe, sizeof(fe), 1, fp) == 1) {
switch (fe.fu_type) {
+ case BOOT_TIME:
+ /* Leave these intact. */
+ break;
case USER_PROCESS:
case INIT_PROCESS:
case LOGIN_PROCESS:
@@ -171,6 +174,19 @@
}
static void
+utx_active_init(const struct futx *fu)
+{
+ int fd;
+
+ /* Initialize utx.active with a single BOOT_TIME record. */
+ fd = _open(_PATH_UTX_ACTIVE, O_CREAT|O_RDWR|O_TRUNC, 0644);
+ if (fd < 0)
+ return;
+ _write(fd, fu, sizeof(*fu));
+ _close(fd);
+}
+
+static void
utx_active_purge(void)
{
@@ -277,9 +293,11 @@
switch (fu.fu_type) {
case BOOT_TIME:
+ utx_active_init(&fu);
+ utx_lastlogin_upgrade();
+ break;
case SHUTDOWN_TIME:
utx_active_purge();
- utx_lastlogin_upgrade();
break;
case OLD_TIME:
case NEW_TIME:
==== //depot/projects/fadvise/sys/amd64/amd64/pmap.c#2 (text+ko) ====
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.726 2011/09/06 10:30:11 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.727 2011/10/27 16:39:17 alc Exp $");
/*
* Manages physical address maps.
@@ -1635,7 +1635,6 @@
pmap_pinit(pmap_t pmap)
{
vm_page_t pml4pg;
- static vm_pindex_t color;
int i;
PMAP_LOCK_INIT(pmap);
@@ -1643,8 +1642,8 @@
/*
* allocate the page directory page
*/
- while ((pml4pg = vm_page_alloc(NULL, color++, VM_ALLOC_NOOBJ |
- VM_ALLOC_NORMAL | VM_ALLOC_WIRED | VM_ALLOC_ZERO)) == NULL)
+ while ((pml4pg = vm_page_alloc(NULL, 0, VM_ALLOC_NORMAL |
+ VM_ALLOC_NOOBJ | VM_ALLOC_WIRED | VM_ALLOC_ZERO)) == NULL)
VM_WAIT;
pmap->pm_pml4 = (pml4_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml4pg));
@@ -2188,7 +2187,6 @@
{
static const struct timeval printinterval = { 60, 0 };
static struct timeval lastprint;
- static vm_pindex_t colour;
struct vpgqueues *pq;
int bit, field;
pv_entry_t pv;
@@ -2228,7 +2226,7 @@
}
}
/* No free items, allocate another chunk */
- m = vm_page_alloc(NULL, colour, (pq == &vm_page_queues[PQ_ACTIVE] ?
+ m = vm_page_alloc(NULL, 0, (pq == &vm_page_queues[PQ_ACTIVE] ?
VM_ALLOC_SYSTEM : VM_ALLOC_NORMAL) | VM_ALLOC_NOOBJ |
VM_ALLOC_WIRED);
if (m == NULL) {
@@ -2255,7 +2253,6 @@
}
PV_STAT(pc_chunk_count++);
PV_STAT(pc_chunk_allocs++);
- colour++;
dump_add_page(m->phys_addr);
pc = (void *)PHYS_TO_DMAP(m->phys_addr);
pc->pc_pmap = pmap;
==== //depot/projects/fadvise/sys/amd64/amd64/uma_machdep.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/uma_machdep.c,v 1.4 2007/09/15 18:47:01 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/uma_machdep.c,v 1.5 2011/10/27 16:39:17 alc Exp $");
#include <sys/param.h>
#include <sys/lock.h>
@@ -42,7 +42,6 @@
void *
uma_small_alloc(uma_zone_t zone, int bytes, u_int8_t *flags, int wait)
{
- static vm_pindex_t colour;
vm_page_t m;
vm_paddr_t pa;
void *va;
@@ -50,13 +49,13 @@
*flags = UMA_SLAB_PRIV;
if ((wait & (M_NOWAIT|M_USE_RESERVE)) == M_NOWAIT)
- pflags = VM_ALLOC_INTERRUPT | VM_ALLOC_WIRED;
+ pflags = VM_ALLOC_INTERRUPT | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED;
else
- pflags = VM_ALLOC_SYSTEM | VM_ALLOC_WIRED;
+ pflags = VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED;
if (wait & M_ZERO)
pflags |= VM_ALLOC_ZERO;
for (;;) {
- m = vm_page_alloc(NULL, colour++, pflags | VM_ALLOC_NOOBJ);
+ m = vm_page_alloc(NULL, 0, pflags);
if (m == NULL) {
if (wait & M_NOWAIT)
return (NULL);
==== //depot/projects/fadvise/sys/amd64/conf/GENERIC#3 (text+ko) ====
@@ -16,7 +16,7 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.571 2011/10/19 21:55:20 kensmith Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.572 2011/10/27 13:07:49 kensmith Exp $
cpu HAMMER
ident GENERIC
@@ -65,8 +65,11 @@
#options KDTRACE_HOOKS # Kernel DTrace hooks
options INCLUDE_CONFIG_FILE # Include this file in kernel
-# Debugging for use in -current
+# Debugging support. Always need this:
options KDB # Enable kernel debugger support.
+# For minimum debugger support (stable branch) use:
+#options KDB_TRACE # Print a stack trace for a panic.
+# For full debugger support use this instead:
options DDB # Support DDB.
options GDB # Support remote GDB.
options DEADLKRES # Enable the deadlock resolver
==== //depot/projects/fadvise/sys/arm/at91/at91.c#2 (text) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.26 2010/10/06 22:25:21 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.27 2011/10/27 10:21:40 kevlo Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -367,11 +367,15 @@
driver_intr_t *intr, void *arg, void **cookiep)
{
struct at91_softc *sc = device_get_softc(dev);
+ int error;
if (rman_get_start(ires) == sc->sc_irq_system && filt == NULL)
panic("All system interrupt ISRs must be FILTER");
- BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, filt,
- intr, arg, cookiep);
+ error = BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags,
+ filt, intr, arg, cookiep);
+ if (error)
+ return (error);
+
bus_space_write_4(sc->sc_st, sc->sc_aic_sh, IC_IECR,
1 << rman_get_start(ires));
return (0);
==== //depot/projects/fadvise/sys/arm/econa/econa.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/econa/econa.c,v 1.1 2010/01/04 03:35:45 rpaulo Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/econa/econa.c,v 1.2 2011/10/27 10:21:40 kevlo Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -592,12 +592,15 @@
struct resource *ires, int flags, driver_filter_t *filt,
driver_intr_t *intr, void *arg, void **cookiep)
{
+ int error;
if (rman_get_start(ires) == ECONA_IRQ_SYSTEM && filt == NULL)
panic("All system interrupt ISRs must be FILTER");
- BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, filt,
- intr, arg, cookiep);
+ error = BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags,
+ filt, intr, arg, cookiep);
+ if (error)
+ return (error);
arm_unmask_irq(rman_get_start(ires));
==== //depot/projects/fadvise/sys/arm/xscale/i80321/iq80321.c#2 (text+ko) ====
@@ -42,7 +42,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/iq80321.c,v 1.16 2011/02/21 09:01:34 brucec Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/iq80321.c,v 1.17 2011/10/27 10:21:40 kevlo Exp $");
#define _ARM32_BUS_DMA_PRIVATE
#include <sys/param.h>
@@ -354,8 +354,12 @@
struct resource *ires, int flags, driver_filter_t *filt,
driver_intr_t *intr, void *arg, void **cookiep)
{
- BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, filt, intr,
- arg, cookiep);
+ int error;
+
+ error = BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags,
+ filt, intr, arg, cookiep);
+ if (error)
+ return (error);
intr_enabled |= 1 << rman_get_start(ires);
i80321_set_intrmask();
==== //depot/projects/fadvise/sys/arm/xscale/i8134x/i81342.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/i8134x/i81342.c,v 1.3 2009/06/09 18:18:41 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/i8134x/i81342.c,v 1.4 2011/10/27 10:21:40 kevlo Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -429,10 +429,12 @@
int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg,
void **cookiep)
{
-
+ int error;
- BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, filt, intr,
- arg, cookiep);
+ error = BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags,
+ filt, intr, arg, cookiep);
+ if (error)
+ return (error);
arm_unmask_irq(rman_get_start(ires));
return (0);
}
==== //depot/projects/fadvise/sys/arm/xscale/ixp425/ixp425.c#2 (text+ko) ====
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.32 2010/11/14 20:41:22 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.33 2011/10/27 10:21:40 kevlo Exp $");
#include "opt_ddb.h"
@@ -639,9 +639,12 @@
driver_intr_t *intr, void *arg, void **cookiep)
{
uint32_t mask, mask2;
+ int error;
- BUS_SETUP_INTR(device_get_parent(dev), child, res, flags, filt, intr,
- arg, cookiep);
+ error = BUS_SETUP_INTR(device_get_parent(dev), child, res, flags,
+ filt, intr, arg, cookiep);
+ if (error)
+ return (error);
get_masks(res, &mask, &mask2);
update_masks(intr_enabled | mask, intr_enabled2 | mask2);
==== //depot/projects/fadvise/sys/arm/xscale/pxa/pxa_obio.c#2 (text+ko) ====
@@ -23,7 +23,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/pxa/pxa_obio.c,v 1.2 2008/06/10 06:06:15 kevlo Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/pxa/pxa_obio.c,v 1.3 2011/10/27 10:21:40 kevlo Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -173,11 +173,14 @@
driver_filter_t *filter, driver_intr_t *ithread, void *arg, void **cookiep)
{
struct obio_softc *sc;
+ int error;
sc = (struct obio_softc *)device_get_softc(dev);
- BUS_SETUP_INTR(device_get_parent(dev), child, irq, flags, filter,
- ithread, arg, cookiep);
+ error = BUS_SETUP_INTR(device_get_parent(dev), child, irq, flags,
+ filter, ithread, arg, cookiep);
+ if (error)
+ return (error);
arm_unmask_irq(rman_get_start(irq));
return (0);
}
==== //depot/projects/fadvise/sys/boot/forth/loader.conf#2 (text+ko) ====
@@ -6,7 +6,7 @@
#
# All arguments must be in double quotes.
#
-# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.159 2011/08/23 20:25:11 marck Exp $
+# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.160 2011/10/27 10:25:11 pluknet Exp $
##############################################################
### Basic configuration options ############################
@@ -81,7 +81,7 @@
#boot_serial="" # -h: Use serial console
#boot_single="" # -s: Start system in single-user mode
#boot_verbose="" # -v: Causes extra debugging information to be printed
-#init_path="/sbin/init:/sbin/oinit:/sbin/init.bak:/rescue/init:/stand/sysinstall"
+#init_path="/sbin/init:/sbin/oinit:/sbin/init.bak:/rescue/init"
# Sets the list of init candidates
#init_shell="/bin/sh" # The shell binary used by init(8).
#init_script="" # Initial script to run by init(8) before chrooting.
==== //depot/projects/fadvise/sys/conf/files.arm#2 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files.arm,v 1.26 2011/04/20 12:58:30 bz Exp $
+# $FreeBSD: src/sys/conf/files.arm,v 1.27 2011/10/26 19:07:36 cognet Exp $
crypto/blowfish/bf_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec | netsmb
arm/arm/autoconf.c standard
@@ -71,6 +71,7 @@
libkern/memchr.c optional fdt
libkern/moddi3.c standard
libkern/qdivrem.c standard
+libkern/ucmpdi2.c standard
libkern/udivdi3.c standard
libkern/umoddi3.c standard
#XXX: We can't use these versions, as strcmp.c is included conf/files
==== //depot/projects/fadvise/sys/contrib/pf/net/if_pfsync.c#3 (text+ko) ====
@@ -49,7 +49,7 @@
#include "opt_pf.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/contrib/pf/net/if_pfsync.c,v 1.51 2011/10/23 15:15:17 glebius Exp $");
+__FBSDID("$FreeBSD: src/sys/contrib/pf/net/if_pfsync.c,v 1.52 2011/10/27 09:47:00 glebius Exp $");
#ifdef DEV_BPF
#define NBPFILTER DEV_BPF
@@ -3290,16 +3290,17 @@
pfsyncintr(void *arg)
{
struct pfsync_softc *sc = arg;
- struct mbuf *m;
+ struct mbuf *m, *n;
CURVNET_SET(sc->sc_ifp->if_vnet);
pfsync_ints++;
- for (;;) {
- IF_DEQUEUE(&sc->sc_ifp->if_snd, m);
- if (m == 0)
- break;
+ IF_DEQUEUE_ALL(&sc->sc_ifp->if_snd, m);
+
+ for (; m != NULL; m = n) {
+ n = m->m_nextpkt;
+ m->m_nextpkt = NULL;
if (ip_output(m, NULL, NULL, IP_RAWOUTPUT, &sc->sc_imo, NULL)
== 0)
V_pfsyncstats.pfsyncs_opackets++;
==== //depot/projects/fadvise/sys/crypto/aesni/aesni_wrap.c#2 (text+ko) ====
@@ -1,6 +1,6 @@
/*-
* Copyright (c) 2010 Konstantin Belousov <kib at FreeBSD.org>
- * Copyright (c) 2010 Pawel Jakub Dawidek <pjd at FreeBSD.org>
+ * Copyright (c) 2010-2011 Pawel Jakub Dawidek <pawel at dawidek.net>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/crypto/aesni/aesni_wrap.c,v 1.7 2010/11/27 15:41:44 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/crypto/aesni/aesni_wrap.c,v 1.9 2011/10/27 14:15:26 pjd Exp $");
#include <sys/param.h>
#include <sys/libkern.h>
@@ -87,33 +87,33 @@
#define AES_XTS_ALPHA 0x87 /* GF(2^128) generator polynomial */
static void
-aesni_crypt_xts_block(int rounds, const void *key_schedule, uint8_t *tweak,
- const uint8_t *from, uint8_t *to, int do_encrypt)
+aesni_crypt_xts_block(int rounds, const void *key_schedule, uint64_t *tweak,
+ const uint64_t *from, uint64_t *to, uint64_t *block, int do_encrypt)
{
- uint8_t block[AES_XTS_BLOCKSIZE];
- u_int i, carry_in, carry_out;
+ int carry;
- for (i = 0; i < AES_XTS_BLOCKSIZE; i++)
- block[i] = from[i] ^ tweak[i];
+ block[0] = from[0] ^ tweak[0];
+ block[1] = from[1] ^ tweak[1];
if (do_encrypt)
- aesni_enc(rounds - 1, key_schedule, block, to, NULL);
+ aesni_enc(rounds - 1, key_schedule, (uint8_t *)block, (uint8_t *)to, NULL);
else
- aesni_dec(rounds - 1, key_schedule, block, to, NULL);
+ aesni_dec(rounds - 1, key_schedule, (uint8_t *)block, (uint8_t *)to, NULL);
- for (i = 0; i < AES_XTS_BLOCKSIZE; i++)
- to[i] ^= tweak[i];
+ to[0] ^= tweak[0];
+ to[1] ^= tweak[1];
/* Exponentiate tweak. */
- carry_in = 0;
- for (i = 0; i < AES_XTS_BLOCKSIZE; i++) {
- carry_out = tweak[i] & 0x80;
- tweak[i] = (tweak[i] << 1) | (carry_in ? 1 : 0);
- carry_in = carry_out;
+ carry = ((tweak[0] & 0x8000000000000000ULL) > 0);
+ tweak[0] <<= 1;
+ if (tweak[1] & 0x8000000000000000ULL) {
+ uint8_t *twk = (uint8_t *)tweak;
+
+ twk[0] ^= AES_XTS_ALPHA;
}
- if (carry_in)
- tweak[0] ^= AES_XTS_ALPHA;
- bzero(block, sizeof(block));
+ tweak[1] <<= 1;
+ if (carry)
+ tweak[1] |= 1;
}
static void
@@ -121,32 +121,33 @@
const void *tweak_schedule, size_t len, const uint8_t *from, uint8_t *to,
const uint8_t iv[AES_BLOCK_LEN], int do_encrypt)
{
+ uint64_t block[AES_XTS_BLOCKSIZE / 8];
uint8_t tweak[AES_XTS_BLOCKSIZE];
- uint64_t blocknum;
size_t i;
/*
* Prepare tweak as E_k2(IV). IV is specified as LE representation
* of a 64-bit block number which we allow to be passed in directly.
*/
- bcopy(iv, &blocknum, AES_XTS_IVSIZE);
- for (i = 0; i < AES_XTS_IVSIZE; i++) {
- tweak[i] = blocknum & 0xff;
- blocknum >>= 8;
- }
+#if BYTE_ORDER == LITTLE_ENDIAN
+ bcopy(iv, tweak, AES_XTS_IVSIZE);
/* Last 64 bits of IV are always zero. */
bzero(tweak + AES_XTS_IVSIZE, AES_XTS_IVSIZE);
+#else
+#error Only LITTLE_ENDIAN architectures are supported.
+#endif
aesni_enc(rounds - 1, tweak_schedule, tweak, tweak, NULL);
len /= AES_XTS_BLOCKSIZE;
for (i = 0; i < len; i++) {
- aesni_crypt_xts_block(rounds, data_schedule, tweak, from, to,
- do_encrypt);
+ aesni_crypt_xts_block(rounds, data_schedule, (uint64_t *)tweak,
+ (const uint64_t *)from, (uint64_t *)to, block, do_encrypt);
from += AES_XTS_BLOCKSIZE;
to += AES_XTS_BLOCKSIZE;
}
bzero(tweak, sizeof(tweak));
+ bzero(block, sizeof(block));
}
static void
==== //depot/projects/fadvise/sys/dev/bge/if_bge.c#3 (text+ko) ====
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.352 2011/10/26 01:03:53 yongari Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.360 2011/10/26 23:52:02 yongari Exp $");
/*
* Broadcom BCM570x family gigabit ethernet driver for FreeBSD.
@@ -1309,15 +1309,17 @@
* Some chips don't like this so only do this if ASF is enabled
*/
if (sc->bge_asf_mode)
- bge_writemem_ind(sc, BGE_SOFTWARE_GENCOMM, BGE_MAGIC_NUMBER);
+ bge_writemem_ind(sc, BGE_SRAM_FW_MB, BGE_SRAM_FW_MB_MAGIC);
if (sc->bge_asf_mode & ASF_NEW_HANDSHAKE) {
switch (type) {
case BGE_RESET_START:
- bge_writemem_ind(sc, BGE_SDI_STATUS, 0x1); /* START */
+ bge_writemem_ind(sc, BGE_SRAM_FW_DRV_STATE_MB,
+ BGE_FW_DRV_STATE_START);
break;
case BGE_RESET_STOP:
- bge_writemem_ind(sc, BGE_SDI_STATUS, 0x2); /* UNLOAD */
+ bge_writemem_ind(sc, BGE_SRAM_FW_DRV_STATE_MB,
+ BGE_FW_DRV_STATE_UNLOAD);
break;
}
}
@@ -1330,11 +1332,13 @@
if (sc->bge_asf_mode & ASF_NEW_HANDSHAKE) {
switch (type) {
case BGE_RESET_START:
- bge_writemem_ind(sc, BGE_SDI_STATUS, 0x80000001);
+ bge_writemem_ind(sc, BGE_SRAM_FW_DRV_STATE_MB,
+ BGE_FW_DRV_STATE_START_DONE);
/* START DONE */
break;
case BGE_RESET_STOP:
- bge_writemem_ind(sc, BGE_SDI_STATUS, 0x80000002);
+ bge_writemem_ind(sc, BGE_SRAM_FW_DRV_STATE_MB,
+ BGE_FW_DRV_STATE_UNLOAD_DONE);
break;
}
}
@@ -1347,10 +1351,12 @@
if (sc->bge_asf_mode) {
switch (type) {
case BGE_RESET_START:
- bge_writemem_ind(sc, BGE_SDI_STATUS, 0x1); /* START */
+ bge_writemem_ind(sc, BGE_SRAM_FW_DRV_STATE_MB,
+ BGE_FW_DRV_STATE_START);
break;
case BGE_RESET_STOP:
- bge_writemem_ind(sc, BGE_SDI_STATUS, 0x2); /* UNLOAD */
+ bge_writemem_ind(sc, BGE_SRAM_FW_DRV_STATE_MB,
+ BGE_FW_DRV_STATE_UNLOAD);
break;
}
}
@@ -1362,12 +1368,12 @@
int i;
if (sc->bge_asf_mode) {
- bge_writemem_ind(sc, BGE_SOFTWARE_GENCOMM_FW, BGE_FW_PAUSE);
- CSR_WRITE_4(sc, BGE_CPU_EVENT,
- CSR_READ_4(sc, BGE_CPU_EVENT) | (1 << 14));
+ bge_writemem_ind(sc, BGE_SRAM_FW_CMD_MB, BGE_FW_PAUSE);
+ CSR_WRITE_4(sc, BGE_RX_CPU_EVENT,
+ CSR_READ_4(sc, BGE_RX_CPU_EVENT) | (1 << 14));
for (i = 0; i < 100; i++ ) {
- if (!(CSR_READ_4(sc, BGE_CPU_EVENT) & (1 << 14)))
+ if (!(CSR_READ_4(sc, BGE_RX_CPU_EVENT) & (1 << 14)))
break;
DELAY(10);
}
@@ -2828,7 +2834,6 @@
switch (sc->bge_asicrev) {
case BGE_ASICREV_BCM5717:
case BGE_ASICREV_BCM5719:
- sc->bge_flags |= BGE_FLAG_SHORT_DMA_BUG;
case BGE_ASICREV_BCM57765:
sc->bge_flags |= BGE_FLAG_5717_PLUS | BGE_FLAG_5755_PLUS |
BGE_FLAG_575X_PLUS | BGE_FLAG_5705_PLUS | BGE_FLAG_JUMBO |
@@ -2863,8 +2868,6 @@
case BGE_ASICREV_BCM5752:
case BGE_ASICREV_BCM5906:
sc->bge_flags |= BGE_FLAG_575X_PLUS;
- if (sc->bge_asicrev == BGE_ASICREV_BCM5906)
- sc->bge_flags |= BGE_FLAG_SHORT_DMA_BUG;
/* FALLTHROUGH */
case BGE_ASICREV_BCM5705:
sc->bge_flags |= BGE_FLAG_5705_PLUS;
@@ -2918,15 +2921,26 @@
sc->bge_mi_mode |= BGE_MIMODE_AUTOPOLL;
/*
- * All controllers that are not 5755 or higher have 4GB
- * boundary DMA bug.
+ * All Broadcom controllers have 4GB boundary DMA bug.
* Whenever an address crosses a multiple of the 4GB boundary
* (including 4GB, 8Gb, 12Gb, etc.) and makes the transition
* from 0xX_FFFF_FFFF to 0x(X+1)_0000_0000 an internal DMA
* state machine will lockup and cause the device to hang.
*/
- if (BGE_IS_5755_PLUS(sc) == 0)
- sc->bge_flags |= BGE_FLAG_4G_BNDRY_BUG;
+ sc->bge_flags |= BGE_FLAG_4G_BNDRY_BUG;
+
+ /* BCM5755 or higher and BCM5906 have short DMA bug. */
+ if (BGE_IS_5755_PLUS(sc) || sc->bge_asicrev == BGE_ASICREV_BCM5906)
+ sc->bge_flags |= BGE_FLAG_SHORT_DMA_BUG;
+
+ /*
+ * BCM5719 cannot handle DMA requests for DMA segments that
+ * have larger than 4KB in size. However the maximum DMA
+ * segment size created in DMA tag is 4KB for TSO, so we
+ * wouldn't encounter the issue here.
+ */
+ if (sc->bge_asicrev == BGE_ASICREV_BCM5719)
+ sc->bge_flags |= BGE_FLAG_4K_RDMA_BUG;
misccfg = CSR_READ_4(sc, BGE_MISC_CFG) & BGE_MISCCFG_BOARD_ID;
if (sc->bge_asicrev == BGE_ASICREV_BCM5705) {
@@ -3073,9 +3087,9 @@
}
sc->bge_asf_mode = 0;
- if (bge_allow_asf && (bge_readmem_ind(sc, BGE_SOFTWARE_GENCOMM_SIG)
- == BGE_MAGIC_NUMBER)) {
- if (bge_readmem_ind(sc, BGE_SOFTWARE_GENCOMM_NICCFG)
+ if (bge_allow_asf && (bge_readmem_ind(sc, BGE_SRAM_DATA_SIG) ==
+ BGE_SRAM_DATA_SIG_MAGIC)) {
+ if (bge_readmem_ind(sc, BGE_SRAM_DATA_CFG)
& BGE_HWCFG_ASF) {
sc->bge_asf_mode |= ASF_ENABLE;
sc->bge_asf_mode |= ASF_STACKUP;
@@ -3189,8 +3203,8 @@
* by its PCI subsystem ID, as we do below for the SysKonnect
* SK-9D41.
*/
- if (bge_readmem_ind(sc, BGE_SOFTWARE_GENCOMM_SIG) == BGE_MAGIC_NUMBER)
- hwcfg = bge_readmem_ind(sc, BGE_SOFTWARE_GENCOMM_NICCFG);
+ if (bge_readmem_ind(sc, BGE_SRAM_DATA_SIG) == BGE_SRAM_DATA_SIG_MAGIC)
+ hwcfg = bge_readmem_ind(sc, BGE_SRAM_DATA_CFG);
else if ((sc->bge_flags & BGE_FLAG_EADDR) &&
(sc->bge_asicrev != BGE_ASICREV_BCM5906)) {
if (bge_read_eeprom(sc, (caddr_t)&hwcfg, BGE_EE_HWCFG_OFFSET,
@@ -3425,9 +3439,9 @@
/*
* Write the magic number to SRAM at offset 0xB50.
* When firmware finishes its initialization it will
- * write ~BGE_MAGIC_NUMBER to the same location.
+ * write ~BGE_SRAM_FW_MB_MAGIC to the same location.
*/
- bge_writemem_ind(sc, BGE_SOFTWARE_GENCOMM, BGE_MAGIC_NUMBER);
+ bge_writemem_ind(sc, BGE_SRAM_FW_MB, BGE_SRAM_FW_MB_MAGIC);
reset = BGE_MISCCFG_RESET_CORE_CLOCKS | BGE_32BITTIME_66MHZ;
@@ -3446,7 +3460,8 @@
* Set GPHY Power Down Override to leave GPHY
* powered up in D0 uninitialized.
*/
- if (BGE_IS_5705_PLUS(sc))
+ if (BGE_IS_5705_PLUS(sc) &&
+ (sc->bge_flags & BGE_FLAG_CPMU_PRESENT) == 0)
reset |= BGE_MISCCFG_GPHY_PD_OVERRIDE;
/* Issue global reset */
@@ -3551,8 +3566,8 @@
*/
for (i = 0; i < BGE_TIMEOUT; i++) {
DELAY(10);
- val = bge_readmem_ind(sc, BGE_SOFTWARE_GENCOMM);
- if (val == ~BGE_MAGIC_NUMBER)
+ val = bge_readmem_ind(sc, BGE_SRAM_FW_MB);
+ if (val == ~BGE_SRAM_FW_MB_MAGIC)
break;
}
@@ -4091,12 +4106,12 @@
sc->bge_asf_count --;
else {
sc->bge_asf_count = 2;
- bge_writemem_ind(sc, BGE_SOFTWARE_GENCOMM_FW,
+ bge_writemem_ind(sc, BGE_SRAM_FW_CMD_MB,
BGE_FW_DRV_ALIVE);
- bge_writemem_ind(sc, BGE_SOFTWARE_GENNCOMM_FW_LEN, 4);
- bge_writemem_ind(sc, BGE_SOFTWARE_GENNCOMM_FW_DATA, 3);
- CSR_WRITE_4(sc, BGE_CPU_EVENT,
- CSR_READ_4(sc, BGE_CPU_EVENT) | (1 << 14));
+ bge_writemem_ind(sc, BGE_SRAM_FW_CMD_LEN_MB, 4);
+ bge_writemem_ind(sc, BGE_SRAM_FW_CMD_DATA_MB, 3);
+ CSR_WRITE_4(sc, BGE_RX_CPU_EVENT,
+ CSR_READ_4(sc, BGE_RX_CPU_EVENT) | (1 << 14));
}
}
}
@@ -5929,11 +5944,11 @@
{
uint32_t mac_addr;
- mac_addr = bge_readmem_ind(sc, 0x0c14);
+ mac_addr = bge_readmem_ind(sc, BGE_SRAM_MAC_ADDR_HIGH_MB);
if ((mac_addr >> 16) == 0x484b) {
ether_addr[0] = (uint8_t)(mac_addr >> 8);
ether_addr[1] = (uint8_t)mac_addr;
- mac_addr = bge_readmem_ind(sc, 0x0c18);
+ mac_addr = bge_readmem_ind(sc, BGE_SRAM_MAC_ADDR_LOW_MB);
ether_addr[2] = (uint8_t)(mac_addr >> 24);
ether_addr[3] = (uint8_t)(mac_addr >> 16);
ether_addr[4] = (uint8_t)(mac_addr >> 8);
==== //depot/projects/fadvise/sys/dev/bge/if_bgereg.h#2 (text+ko) ====
@@ -30,7 +30,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/bge/if_bgereg.h,v 1.120 2011/05/12 17:15:57 yongari Exp $
+ * $FreeBSD: src/sys/dev/bge/if_bgereg.h,v 1.125 2011/10/26 23:52:02 yongari Exp $
*/
/*
@@ -71,12 +71,15 @@
#define BGE_STATS_BLOCK_END 0x00000AFF
#define BGE_STATUS_BLOCK 0x00000B00
#define BGE_STATUS_BLOCK_END 0x00000B4F
-#define BGE_SOFTWARE_GENCOMM 0x00000B50
-#define BGE_SOFTWARE_GENCOMM_SIG 0x00000B54
-#define BGE_SOFTWARE_GENCOMM_NICCFG 0x00000B58
-#define BGE_SOFTWARE_GENCOMM_FW 0x00000B78
-#define BGE_SOFTWARE_GENNCOMM_FW_LEN 0x00000B7C
-#define BGE_SOFTWARE_GENNCOMM_FW_DATA 0x00000B80
+#define BGE_SRAM_FW_MB 0x00000B50
+#define BGE_SRAM_DATA_SIG 0x00000B54
+#define BGE_SRAM_DATA_CFG 0x00000B58
+#define BGE_SRAM_FW_CMD_MB 0x00000B78
+#define BGE_SRAM_FW_CMD_LEN_MB 0x00000B7C
+#define BGE_SRAM_FW_CMD_DATA_MB 0x00000B80
+#define BGE_SRAM_FW_DRV_STATE_MB 0x00000C04
+#define BGE_SRAM_MAC_ADDR_HIGH_MB 0x00000C14
+#define BGE_SRAM_MAC_ADDR_LOW_MB 0x00000C18
#define BGE_SOFTWARE_GENCOMM_END 0x00000FFF
#define BGE_UNMAPPED 0x00001000
#define BGE_UNMAPPED_END 0x00001FFF
@@ -87,9 +90,17 @@
#define BGE_SEND_RING_1_TO_4_END 0x00005FFF
/* Firmware interface */
+#define BGE_SRAM_DATA_SIG_MAGIC 0x4B657654 /* 'KevT' */
#define BGE_FW_DRV_ALIVE 0x00000001
#define BGE_FW_PAUSE 0x00000002
+#define BGE_FW_DRV_STATE_START 0x00000001
+#define BGE_FW_DRV_STATE_START_DONE 0x80000001
+#define BGE_FW_DRV_STATE_UNLOAD 0x00000002
+#define BGE_FW_DRV_STATE_UNLOAD_DONE 0x80000002
+#define BGE_FW_DRV_STATE_WOL 0x00000003
+#define BGE_FW_DRV_STATE_SUSPEND 0x00000004
+
/* Mappings for internal memory configuration */
#define BGE_STD_RX_RINGS 0x00006000
#define BGE_STD_RX_RINGS_END 0x00006FFF
@@ -1875,7 +1886,8 @@
#define BGE_MODE_CTL 0x6800
#define BGE_MISC_CFG 0x6804
#define BGE_MISC_LOCAL_CTL 0x6808
-#define BGE_CPU_EVENT 0x6810
+#define BGE_RX_CPU_EVENT 0x6810
+#define BGE_TX_CPU_EVENT 0x6820
#define BGE_EE_ADDR 0x6838
#define BGE_EE_DATA 0x683C
#define BGE_EE_CTL 0x6840
@@ -2052,10 +2064,10 @@
* This magic number is written to the firmware mailbox at 0xb50
* before a software reset is issued. After the internal firmware
* has completed its initialization it will write the opposite of
- * this value, ~BGE_MAGIC_NUMBER, to the same location, allowing the
- * driver to synchronize with the firmware.
+ * this value, ~BGE_SRAM_FW_MB_MAGIC, to the same location,
+ * allowing the driver to synchronize with the firmware.
*/
-#define BGE_MAGIC_NUMBER 0x4B657654
+#define BGE_SRAM_FW_MB_MAGIC 0x4B657654
typedef struct {
uint32_t bge_addr_hi;
@@ -2797,6 +2809,7 @@
#define BGE_FLAG_4G_BNDRY_BUG 0x02000000
#define BGE_FLAG_RX_ALIGNBUG 0x04000000
#define BGE_FLAG_SHORT_DMA_BUG 0x08000000
+#define BGE_FLAG_4K_RDMA_BUG 0x10000000
uint32_t bge_phy_flags;
#define BGE_PHY_NO_WIRESPEED 0x00000001
#define BGE_PHY_ADC_BUG 0x00000002
==== //depot/projects/fadvise/sys/dev/xen/balloon/balloon.c#2 (text+ko) ====
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/xen/balloon/balloon.c,v 1.6 2011/05/13 03:40:16 mav Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/xen/balloon/balloon.c,v 1.7 2011/10/27 16:39:17 alc Exp $");
#include <sys/param.h>
#include <sys/lock.h>
@@ -298,8 +298,7 @@
nr_pages = ARRAY_SIZE(frame_list);
for (i = 0; i < nr_pages; i++) {
- int color = 0;
- if ((page = vm_page_alloc(NULL, color++,
+ if ((page = vm_page_alloc(NULL, 0,
VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ |
VM_ALLOC_WIRED | VM_ALLOC_ZERO)) == NULL) {
nr_pages = i;
==== //depot/projects/fadvise/sys/geom/eli/g_eli.c#3 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/geom/eli/g_eli.c,v 1.71 2011/10/25 13:57:50 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/geom/eli/g_eli.c,v 1.72 2011/10/27 16:12:25 pjd Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -443,16 +443,15 @@
sc = wr->w_softc;
#ifdef SMP
/* Before sched_bind() to a CPU, wait for all CPUs to go on-line. */
- if (mp_ncpus > 1 && sc->sc_crypto == G_ELI_CRYPTO_SW &&
- g_eli_threads == 0) {
+ if (sc->sc_cpubind) {
while (!smp_started)
tsleep(wr, 0, "geli:smp", hz / 4);
}
#endif
thread_lock(curthread);
sched_prio(curthread, PUSER);
- if (sc->sc_crypto == G_ELI_CRYPTO_SW && g_eli_threads == 0)
- sched_bind(curthread, wr->w_number);
+ if (sc->sc_cpubind)
+ sched_bind(curthread, wr->w_number % mp_ncpus);
thread_unlock(curthread);
G_ELI_DEBUG(1, "Thread %s started.", curthread->td_proc->p_comm);
@@ -813,11 +812,7 @@
threads = g_eli_threads;
if (threads == 0)
threads = mp_ncpus;
- else if (threads > mp_ncpus) {
- /* There is really no need for too many worker threads. */
- threads = mp_ncpus;
- G_ELI_DEBUG(0, "Reducing number of threads to %u.", threads);
- }
+ sc->sc_cpubind = (mp_ncpus > 1 && threads == mp_ncpus);
for (i = 0; i < threads; i++) {
if (g_eli_cpu_is_disabled(i)) {
G_ELI_DEBUG(1, "%s: CPU %u disabled, skipping.",
@@ -857,9 +852,6 @@
goto failed;
}
LIST_INSERT_HEAD(&sc->sc_workers, wr, w_next);
- /* If we have hardware support, one thread is enough. */
- if (sc->sc_crypto == G_ELI_CRYPTO_HW)
- break;
}
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list