Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Jul 2006 20:10:35 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 102592 for review
Message-ID:  <200607272010.k6RKAZqW016554@repoman.freebsd.org>

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

Change 102592 by jhb@jhb_mutex on 2006/07/27 20:09:45

	IFC @102591.

Affected files ...

.. //depot/projects/smpng/sys/amd64/amd64/machdep.c#56 integrate
.. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#33 integrate
.. //depot/projects/smpng/sys/amd64/ia32/ia32_syscall.c#14 integrate
.. //depot/projects/smpng/sys/arm/at91/kb920x_machdep.c#8 integrate
.. //depot/projects/smpng/sys/arm/include/db_machdep.h#5 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/i80321.c#6 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/iq80321.c#11 integrate
.. //depot/projects/smpng/sys/boot/forth/loader.conf#42 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_stream.c#39 integrate
.. //depot/projects/smpng/sys/conf/Makefile.arm#24 integrate
.. //depot/projects/smpng/sys/conf/NOTES#125 integrate
.. //depot/projects/smpng/sys/conf/files#182 integrate
.. //depot/projects/smpng/sys/conf/files.i386#99 integrate
.. //depot/projects/smpng/sys/conf/files.powerpc#30 integrate
.. //depot/projects/smpng/sys/crypto/via/padlock.c#6 integrate
.. //depot/projects/smpng/sys/crypto/via/padlock.h#1 branch
.. //depot/projects/smpng/sys/crypto/via/padlock_cipher.c#1 branch
.. //depot/projects/smpng/sys/crypto/via/padlock_hash.c#1 branch
.. //depot/projects/smpng/sys/dev/acpica/acpi_thermal.c#37 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#70 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-pci.h#44 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_rate/sample/sample.h#3 integrate
.. //depot/projects/smpng/sys/dev/ath/if_ath.c#42 integrate
.. //depot/projects/smpng/sys/dev/em/if_em.c#70 integrate
.. //depot/projects/smpng/sys/dev/iwi/if_iwi.c#18 integrate
.. //depot/projects/smpng/sys/dev/mii/gentbi.c#1 branch
.. //depot/projects/smpng/sys/dev/mii/ip1000phy.c#1 branch
.. //depot/projects/smpng/sys/dev/mii/ip1000phyreg.h#1 branch
.. //depot/projects/smpng/sys/dev/mii/miidevs#18 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpt_cam.c#12 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpt_pci.c#23 integrate
.. //depot/projects/smpng/sys/dev/ral/rt2560.c#4 integrate
.. //depot/projects/smpng/sys/dev/scc/scc_core.c#2 integrate
.. //depot/projects/smpng/sys/dev/scc/scc_dev_z8530.c#2 integrate
.. //depot/projects/smpng/sys/dev/sk/if_sk.c#5 integrate
.. //depot/projects/smpng/sys/dev/sk/if_skreg.h#4 integrate
.. //depot/projects/smpng/sys/dev/stge/if_stge.c#1 branch
.. //depot/projects/smpng/sys/dev/stge/if_stgereg.h#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_cpu_powerpc.c#2 integrate
.. //depot/projects/smpng/sys/dev/uart/uart_dev_z8530.c#12 integrate
.. //depot/projects/smpng/sys/dev/uart/uart_tty.c#20 integrate
.. //depot/projects/smpng/sys/dev/usb/if_ural.c#17 integrate
.. //depot/projects/smpng/sys/dev/usb/uplcom.c#26 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs#92 integrate
.. //depot/projects/smpng/sys/fs/udf/ecma167-udf.h#6 integrate
.. //depot/projects/smpng/sys/fs/udf/udf_vfsops.c#29 integrate
.. //depot/projects/smpng/sys/geom/eli/g_eli.c#13 integrate
.. //depot/projects/smpng/sys/geom/eli/g_eli_integrity.c#2 integrate
.. //depot/projects/smpng/sys/i386/conf/GENERIC#81 integrate
.. //depot/projects/smpng/sys/i386/i386/machdep.c#112 integrate
.. //depot/projects/smpng/sys/ia64/ia32/ia32_trap.c#10 integrate
.. //depot/projects/smpng/sys/kern/kern_malloc.c#45 integrate
.. //depot/projects/smpng/sys/kern/kern_mutex.c#133 integrate
.. //depot/projects/smpng/sys/kern/subr_acl_posix1e.c#3 integrate
.. //depot/projects/smpng/sys/kern/sys_socket.c#24 integrate
.. //depot/projects/smpng/sys/kern/uipc_domain.c#18 integrate
.. //depot/projects/smpng/sys/kern/uipc_sockbuf.c#1 branch
.. //depot/projects/smpng/sys/kern/uipc_socket.c#88 integrate
.. //depot/projects/smpng/sys/kern/uipc_socket2.c#56 integrate
.. //depot/projects/smpng/sys/kern/uipc_syscalls.c#92 integrate
.. //depot/projects/smpng/sys/kern/uipc_usrreq.c#63 integrate
.. //depot/projects/smpng/sys/kern/vfs_syscalls.c#114 integrate
.. //depot/projects/smpng/sys/modules/Makefile#126 integrate
.. //depot/projects/smpng/sys/modules/agp/Makefile#11 integrate
.. //depot/projects/smpng/sys/modules/asr/Makefile#4 integrate
.. //depot/projects/smpng/sys/modules/bridgestp/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/hwpmc/Makefile#3 integrate
.. //depot/projects/smpng/sys/modules/if_bridge/Makefile#5 integrate
.. //depot/projects/smpng/sys/modules/mii/Makefile#10 integrate
.. //depot/projects/smpng/sys/modules/osf1/Makefile#8 delete
.. //depot/projects/smpng/sys/modules/padlock/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/stge/Makefile#1 branch
.. //depot/projects/smpng/sys/net/bpf.c#62 integrate
.. //depot/projects/smpng/sys/net/bridgestp.c#8 integrate
.. //depot/projects/smpng/sys/net/bridgestp.h#1 branch
.. //depot/projects/smpng/sys/net/if_bridge.c#33 integrate
.. //depot/projects/smpng/sys/net/if_bridgevar.h#10 integrate
.. //depot/projects/smpng/sys/net/if_enc.c#5 integrate
.. //depot/projects/smpng/sys/net/if_ethersubr.c#73 integrate
.. //depot/projects/smpng/sys/net/if_gif.c#36 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211.c#22 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211.h#9 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_freebsd.h#7 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.c#27 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.h#12 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_output.c#25 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_proto.c#20 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_proto.h#12 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_var.h#21 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#14 integrate
.. //depot/projects/smpng/sys/netgraph/ng_ether.c#31 integrate
.. //depot/projects/smpng/sys/netgraph/ng_ksocket.c#30 integrate
.. //depot/projects/smpng/sys/netinet6/README#3 delete
.. //depot/projects/smpng/sys/netinet6/icmp6.c#33 integrate
.. //depot/projects/smpng/sys/netipsec/keysock.c#14 integrate
.. //depot/projects/smpng/sys/netncp/ncp_sock.c#8 integrate
.. //depot/projects/smpng/sys/netsmb/smb_trantcp.c#19 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_socket.c#45 integrate
.. //depot/projects/smpng/sys/nfsserver/nfs_srvsock.c#28 integrate
.. //depot/projects/smpng/sys/powerpc/conf/GENERIC#36 integrate
.. //depot/projects/smpng/sys/powerpc/conf/NOTES#3 integrate
.. //depot/projects/smpng/sys/powerpc/include/md_var.h#9 integrate
.. //depot/projects/smpng/sys/powerpc/include/ofw_machdep.h#3 integrate
.. //depot/projects/smpng/sys/powerpc/include/pcb.h#8 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/clock.c#18 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/mem.c#2 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/ofw_machdep.c#13 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/trap.c#51 integrate
.. //depot/projects/smpng/sys/powerpc/psim/sio_iobus.c#4 delete
.. //depot/projects/smpng/sys/powerpc/psim/uart_iobus.c#1 branch
.. //depot/projects/smpng/sys/sparc64/conf/GENERIC#72 integrate
.. //depot/projects/smpng/sys/sys/_label.h#7 integrate
.. //depot/projects/smpng/sys/sys/bufobj.h#7 integrate
.. //depot/projects/smpng/sys/sys/extattr.h#8 integrate
.. //depot/projects/smpng/sys/sys/mbuf.h#63 integrate
.. //depot/projects/smpng/sys/sys/mutex.h#65 integrate
.. //depot/projects/smpng/sys/sys/protosw.h#21 integrate
.. //depot/projects/smpng/sys/sys/socket.h#29 integrate
.. //depot/projects/smpng/sys/sys/socketvar.h#53 integrate
.. //depot/projects/smpng/sys/sys/syscallsubr.h#49 integrate
.. //depot/projects/smpng/sys/sys/unpcb.h#10 integrate
.. //depot/projects/smpng/sys/vm/vm.h#10 integrate
.. //depot/projects/smpng/sys/vm/vm_fault.c#59 integrate
.. //depot/projects/smpng/sys/vm/vm_map.c#81 integrate
.. //depot/projects/smpng/sys/vm/vm_meter.c#30 integrate
.. //depot/projects/smpng/sys/vm/vm_object.c#82 integrate

Differences ...

==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#56 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.650 2006/06/19 22:36:01 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.651 2006/07/27 19:47:22 jhb Exp $");
 
 #include "opt_atalk.h"
 #include "opt_atpic.h"

==== //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#33 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.250 2005/10/24 20:53:51 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.251 2006/07/24 12:24:56 davidxu Exp $");
 
 #include "opt_isa.h"
 #include "opt_cpu.h"
@@ -328,7 +328,6 @@
 	td->td_frame->tf_rsp =
 	    ((register_t)stack->ss_sp + stack->ss_size) & ~0x0f;
 	td->td_frame->tf_rsp -= 8;
-	td->td_frame->tf_rbp = 0;
 	td->td_frame->tf_rip = (register_t)entry;
 
 	/*

==== //depot/projects/smpng/sys/amd64/ia32/ia32_syscall.c#14 (text+ko) ====

@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_syscall.c,v 1.11 2006/02/08 08:09:15 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_syscall.c,v 1.12 2006/07/27 19:50:16 jhb Exp $");
 
 /*
  * 386 Trap and System call handling
@@ -274,6 +274,8 @@
 	 * is not the case, this code will need to be revisited.
 	 */
 	STOPEVENT(p, S_SCX, code);
+ 
+	PTRACESTOP_SC(p, td, S_PT_SCX);
 
 	PTRACESTOP_SC(p, td, S_PT_SCX);
 }

==== //depot/projects/smpng/sys/arm/at91/kb920x_machdep.c#8 (text) ====

@@ -48,7 +48,7 @@
 #include "opt_at91.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/kb920x_machdep.c,v 1.12 2006/07/17 21:20:00 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/kb920x_machdep.c,v 1.13 2006/07/25 23:07:35 cognet Exp $");
 
 #define _ARM32_BUS_DMA_PRIVATE
 #include <sys/param.h>
@@ -478,7 +478,7 @@
 	dump_avail[2] = 0;
 	dump_avail[3] = 0;
 	
-	phys_avail[0] = freemempos - KERNVIRTADDR + KERNPHYSADDR;
+	phys_avail[0] = virtual_avail - KERNVIRTADDR + KERNPHYSADDR;
 	phys_avail[1] = KERNPHYSADDR + memsize;
 	phys_avail[2] = 0;
 	phys_avail[3] = 0;

==== //depot/projects/smpng/sys/arm/include/db_machdep.h#5 (text+ko) ====

@@ -24,7 +24,7 @@
  * the rights to redistribute these changes.
  *
  *	from: FreeBSD: src/sys/i386/include/db_machdep.h,v 1.16 1999/10/04
- * $FreeBSD: src/sys/arm/include/db_machdep.h,v 1.5 2005/01/05 21:58:48 imp Exp $
+ * $FreeBSD: src/sys/arm/include/db_machdep.h,v 1.6 2006/07/27 11:41:37 cognet Exp $
  */
 
 #ifndef	_MACHINE_DB_MACHDEP_H_
@@ -89,4 +89,7 @@
 
 u_int branch_taken (u_int insn, u_int pc);
 
+#ifdef __ARMEB__
+#define BYTE_MSF	(1)
+#endif
 #endif /* !_MACHINE_DB_MACHDEP_H_ */

==== //depot/projects/smpng/sys/arm/xscale/i80321/i80321.c#6 (text+ko) ====

@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.5 2005/06/09 12:26:20 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.6 2006/07/25 01:08:41 kevlo Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -73,23 +73,6 @@
  */
 struct i80321_softc *i80321_softc;
 
-/* Built-in devices. */
-static const struct iopxs_device {
-	const char *id_name;
-	bus_addr_t id_offset;
-	bus_size_t id_size;
-} iopxs_devices[] = {
-	{ "iopaau",	VERDE_AAU_BASE,		VERDE_AAU_SIZE },
-/*	{ "iopdma",	VERDE_DMA_BASE0,	VERDE_DMA_CHSIZE },	*/
-/*	{ "iopdma",	VERDE_DMA_BASE1,	VERDE_DMA_CHSIZE },	*/
-	{ "iopiic",	VERDE_I2C_BASE0,	VERDE_I2C_CHSIZE },
-	{ "iopiic",	VERDE_I2C_BASE1,	VERDE_I2C_CHSIZE },
-/*	{ "iopssp",	VERDE_SSP_BASE,		VERDE_SSP_SIZE },	*/
-	{ "iopmu",	VERDE_MU_BASE,		VERDE_MU_SIZE },
-	{ "iopwdog",	0,			0 },
-	{ NULL,		0,			0 }
-};
-
 #define PCI_MAPREG_MEM_ADDR(x) ((x) & 0xfffffff0)
 /*
  * i80321_attach:

==== //depot/projects/smpng/sys/arm/xscale/i80321/iq80321.c#11 (text+ko) ====

@@ -42,7 +42,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/iq80321.c,v 1.12 2006/05/05 19:14:57 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/iq80321.c,v 1.13 2006/07/25 01:08:41 kevlo Exp $");
 
 #define _ARM32_BUS_DMA_PRIVATE
 #include <sys/param.h>
@@ -291,7 +291,7 @@
 	(void) disable_interrupts(I32_bit|F32_bit);
 	*(__volatile uint32_t *)(IQ80321_80321_VBASE + VERDE_ATU_BASE +
 	    ATU_PCSR) = PCSR_RIB | PCSR_RPB;
-	printf("Reset failed :'(\n");
+	printf("Reset failed!\n");
 	for(;;);
 }
 

==== //depot/projects/smpng/sys/boot/forth/loader.conf#42 (text+ko) ====

@@ -6,7 +6,7 @@
 #
 # All arguments must be in double quotes.
 #
-# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.106 2006/05/14 19:04:12 marius Exp $
+# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.108 2006/07/26 12:59:42 ache Exp $
 
 ##############################################################
 ###  Basic configuration options  ############################
@@ -243,6 +243,7 @@
 if_sn_load="NO"			# SMC 91Cxx
 if_sr_load="NO"			# synchronous RISCom/N2 / WANic 400/405
 if_ste_load="NO"		# Sundance Technologies ST201 fast ethernet
+if_stge_load="NO"		# Sundance/Tamarack TC9021 gigabit ethernet
 if_ti_load="NO"			# Alteon Networks Tigon 1 and Tigon 2
 if_tl_load="NO"			# Texas Instruments TNETE100 ("ThunderLAN")
 if_tx_load="NO"			# SMC 83c17x fast ethernet
@@ -253,7 +254,6 @@
 if_vx_load="NO"			# 3Com 3C590 family
 if_wb_load="NO"			# Winbond W89C840F
 if_wi_load="NO"			# WaveLAN/IEEE 802.11 wireless NICs
-if_wx_load="NO"			# Intel Gigabit Ethernet
 if_xe_load="NO"			# Xircom CreditCard PCMCIA
 if_xl_load="NO"			# 3Com Etherlink XL (3c900, 3c905, 3c905B)
 
@@ -309,6 +309,7 @@
 snd_csa_load="NO"		# csa
 snd_ds1_load="NO"		# ds1
 snd_emu10k1_load="NO" 		# Creative Sound Blaster Live
+snd_emu10kx_load="NO" 		# Creative SoundBlaster Live! and Audigy
 snd_es137x_load="NO"		# es137x
 snd_ess_load="NO"		# ess
 snd_fm801_load="NO"		# fm801

==== //depot/projects/smpng/sys/compat/svr4/svr4_stream.c#39 (text+ko) ====

@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.59 2006/07/21 20:40:13 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.60 2006/07/27 19:54:41 jhb Exp $");
 
 #include "opt_compat.h"
 #include "opt_ktrace.h"

==== //depot/projects/smpng/sys/conf/Makefile.arm#24 (text+ko) ====

@@ -1,7 +1,7 @@
 # Makefile.arm -- with config changes.
 # Copyright 1990 W. Jolitz
 #	from: @(#)Makefile.i386	7.1 5/10/91
-# $FreeBSD: src/sys/conf/Makefile.arm,v 1.30 2006/07/18 21:16:39 cognet Exp $
+# $FreeBSD: src/sys/conf/Makefile.arm,v 1.31 2006/07/24 22:09:47 cognet Exp $
 #
 # Makefile for FreeBSD
 #
@@ -44,12 +44,15 @@
 
 
 .if !defined(DEBUG) && !defined(PROFLEVEL)
-CFLAGS += -mno-apcs-frame
 STRIP_FLAGS = -S
 .endif
 
 DDB_ENABLED!=	grep DDB opt_ddb.h || true
 
+.if empty(DDB_ENABLED)
+CFLAGS += -mno-apcs-frame
+.endif
+
 SYSTEM_LD_ = ${LD} -Bdynamic -T ldscript.$M.noheader \
 	  -warn-common -export-dynamic -dynamic-linker /red/herring -o \
 	   ${FULLKERNEL}.noheader -X ${SYSTEM_OBJS} vers.o

==== //depot/projects/smpng/sys/conf/NOTES#125 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1374 2006/07/17 09:07:01 phk Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1375 2006/07/25 00:45:54 yongari Exp $
 #
 # NOTES -- Lines that can be cut/pasted into kernel and hints configs.
 #
@@ -1785,6 +1785,9 @@
 #       SMC91C90/92/94/95 chips.
 # ste:  Sundance Technologies ST201 PCI fast ethernet controller, includes
 #       the D-Link DFE-550TX.
+# stge: Support for gigabit ethernet adapters based on the Sundance/Tamarack
+#       TC9021 family of controllers, including the Sundance ST2021/ST2023,
+#       the Sundance/Tamarack TC9021, the D-Link DL-4000 and ASUS NX1101.
 # ti:   Support for PCI gigabit ethernet NICs based on the Alteon Networks
 #       Tigon 1 and Tigon 2 chipsets.  This includes the Alteon AceNIC, the
 #       3Com 3c985, the Netgear GA620 and various others.

==== //depot/projects/smpng/sys/conf/files#182 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1130 2006/07/15 20:22:40 netchild Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1133 2006/07/25 02:15:28 rwatson Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -724,8 +724,10 @@
 dev/mii/e1000phy.c		optional miibus | e1000phy
 # XXX only xl cards?
 dev/mii/exphy.c			optional miibus | exphy
+dev/mii/gentbi.c		optional miibus | gentbi
 # XXX only fxp cards?
 dev/mii/inphy.c			optional miibus | inphy
+dev/mii/ip1000phy.c		optional miibus | ip1000phy
 dev/mii/lxtphy.c		optional miibus | lxtphy
 dev/mii/mii.c			optional miibus | mii
 dev/mii/mii_physubr.c		optional miibus | mii
@@ -950,6 +952,7 @@
 dev/stg/tmc18c30_pccard.c	optional stg pccard
 dev/stg/tmc18c30_pci.c		optional stg pci
 dev/stg/tmc18c30_subr.c		optional stg
+dev/stge/if_stge.c		optional stge
 dev/streams/streams.c		optional streams
 dev/sym/sym_hipd.c		optional sym				\
 	dependency	"$S/dev/sym/sym_{conf,defs}.h"
@@ -1420,6 +1423,7 @@
 kern/uipc_mqueue.c		optional p1003_1b_mqueue
 kern/uipc_proto.c		standard
 kern/uipc_sem.c			optional p1003_1b_semaphores
+kern/uipc_sockbuf.c		standard
 kern/uipc_socket.c		standard
 kern/uipc_socket2.c		standard
 kern/uipc_syscalls.c		standard

==== //depot/projects/smpng/sys/conf/files.i386#99 (text+ko) ====

@@ -1,7 +1,7 @@
 # This file tells config what files go into building a kernel,
 # files marked standard are always included.
 #
-# $FreeBSD: src/sys/conf/files.i386,v 1.562 2006/06/26 23:41:07 obrien Exp $
+# $FreeBSD: src/sys/conf/files.i386,v 1.563 2006/07/22 16:18:47 pjd Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -135,6 +135,8 @@
 	no-implicit-rule
 crypto/des/arch/i386/des_enc.S	optional crypto | ipsec ipsec_esp | netsmb
 crypto/via/padlock.c		optional padlock
+crypto/via/padlock_cipher.c	optional padlock
+crypto/via/padlock_hash.c	optional padlock
 dev/advansys/adv_isa.c		optional adv isa
 dev/aic/aic_isa.c		optional aic isa
 dev/arcmsr/arcmsr.c		optional arcmsr pci

==== //depot/projects/smpng/sys/conf/files.powerpc#30 (text+ko) ====

@@ -1,7 +1,7 @@
 # This file tells config what files go into building a kernel,
 # files marked standard are always included.
 #
-# $FreeBSD: src/sys/conf/files.powerpc,v 1.54 2006/06/08 23:38:01 sam Exp $
+# $FreeBSD: src/sys/conf/files.powerpc,v 1.56 2006/07/26 19:44:42 marcel Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -125,8 +125,6 @@
 powerpc/psim/iobus.c 		optional psim
 powerpc/psim/ata_iobus.c	optional ata psim
 powerpc/psim/openpic_iobus.c	optional psim
-powerpc/psim/sio_iobus.c	optional sio psim
+powerpc/psim/uart_iobus.c	optional uart psim
 
 dev/scc/scc_bfe_macio.c		optional	scc powermac
-dev/zs/zs.c			optional	powermac zs
-dev/zs/zs_macio.c		optional	powermac zs

==== //depot/projects/smpng/sys/crypto/via/padlock.c#6 (text+ko) ====

@@ -1,6 +1,5 @@
 /*-
- * Copyright (c) 2005 Pawel Jakub Dawidek <pjd@FreeBSD.org>
- * Copyright (c) 2004 Mark R V Murray
+ * Copyright (c) 2005-2006 Pawel Jakub Dawidek <pjd@FreeBSD.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -11,7 +10,7 @@
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -25,27 +24,8 @@
  * SUCH DAMAGE.
  */
 
-/*	$OpenBSD: via.c,v 1.3 2004/06/15 23:36:55 deraadt Exp $	*/
-/*-
- * Copyright (c) 2003 Jason Wright
- * Copyright (c) 2003, 2004 Theo de Raadt
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/crypto/via/padlock.c,v 1.6 2006/07/13 09:15:13 mr Exp $");
+__FBSDID("$FreeBSD: src/sys/crypto/via/padlock.c,v 1.10 2006/07/25 19:04:26 pjd Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -63,67 +43,15 @@
 #endif
 
 #include <opencrypto/cryptodev.h>
-#include <opencrypto/cryptosoft.h> /* for hmac_ipad_buffer and hmac_opad_buffer */
-#include <opencrypto/xform.h>
-#include <crypto/rijndael/rijndael.h>
 
+#include <crypto/via/padlock.h>
 
-#define	PADLOCK_ROUND_COUNT_AES128	10
-#define	PADLOCK_ROUND_COUNT_AES192	12
-#define	PADLOCK_ROUND_COUNT_AES256	14
-
-#define	PADLOCK_ALGORITHM_TYPE_AES	0
-
-#define	PADLOCK_KEY_GENERATION_HW	0
-#define	PADLOCK_KEY_GENERATION_SW	1
-
-#define	PADLOCK_DIRECTION_ENCRYPT	0
-#define	PADLOCK_DIRECTION_DECRYPT	1
-
-#define	PADLOCK_KEY_SIZE_128	0
-#define	PADLOCK_KEY_SIZE_192	1
-#define	PADLOCK_KEY_SIZE_256	2
+/*
+ * Technical documentation about the PadLock engine can be found here:
+ *
+ * http://www.via.com.tw/en/downloads/whitepapers/initiatives/padlock/programming_guide.pdf
+ */
 
-union padlock_cw {
-	uint64_t raw;
-	struct {
-		u_int round_count : 4;
-		u_int algorithm_type : 3;
-		u_int key_generation : 1;
-		u_int intermediate : 1;
-		u_int direction : 1;
-		u_int key_size : 2;
-		u_int filler0 : 20;
-		u_int filler1 : 32;
-		u_int filler2 : 32;
-		u_int filler3 : 32;
-	} __field;
-};
-#define	cw_round_count		__field.round_count
-#define	cw_algorithm_type	__field.algorithm_type
-#define	cw_key_generation	__field.key_generation
-#define	cw_intermediate		__field.intermediate
-#define	cw_direction		__field.direction
-#define	cw_key_size		__field.key_size
-#define	cw_filler0		__field.filler0
-#define	cw_filler1		__field.filler1
-#define	cw_filler2		__field.filler2
-#define	cw_filler3		__field.filler3
-
-struct padlock_session {
-	union padlock_cw ses_cw __aligned(16);
-	uint32_t	ses_ekey[4 * (RIJNDAEL_MAXNR + 1) + 4] __aligned(16);	/* 128 bit aligned */
-	uint32_t	ses_dkey[4 * (RIJNDAEL_MAXNR + 1) + 4] __aligned(16);	/* 128 bit aligned */
-	uint8_t		ses_iv[16] __aligned(16);			/* 128 bit aligned */
-	struct auth_hash *ses_axf;
-	uint8_t		*ses_ictx;
-	uint8_t		*ses_octx;
-	int		ses_mlen;
-	int		ses_used;
-	uint32_t	ses_id;
-	TAILQ_ENTRY(padlock_session) ses_next;
-};
-
 struct padlock_softc {
 	int32_t		sc_cid;
 	uint32_t	sc_sid;
@@ -139,47 +67,50 @@
 static int padlock_process(void *arg __unused, struct cryptop *crp,
     int hint __unused);
 
-static __inline void
-padlock_cbc(void *in, void *out, size_t count, void *key, union padlock_cw *cw,
-    void *iv)
-{
-#ifdef __GNUCLIKE_ASM
-	/* The .byte line is really VIA C3 "xcrypt-cbc" instruction */
-	__asm __volatile(
-		"pushf				\n\t"
-		"popf				\n\t"
-		"rep				\n\t"
-		".byte	0x0f, 0xa7, 0xd0"
-			: "+a" (iv), "+c" (count), "+D" (out), "+S" (in)
-			: "b" (key), "d" (cw)
-			: "cc", "memory"
-		);
-#endif
-}
+MALLOC_DEFINE(M_PADLOCK, "padlock_data", "PadLock Data");
 
 static int
 padlock_init(void)
 {
 	struct padlock_softc *sc;
+	char capp[256];
+
 #if defined(__i386__) && !defined(PC98)
+	/* If there is no AES support, we has nothing to do here. */
 	if (!(via_feature_xcrypt & VIA_HAS_AES)) {
-		printf("PADLOCK: No ACE support.\n");
+		printf("PadLock: No ACE support.\n");
 		return (EINVAL);
-	} else
-		printf("PADLOCK: HW support loaded.\n");
+	}
+	strlcpy(capp, "AES-CBC", sizeof(capp));
+#if 0
+	strlcat(capp, ",AES-EBC", sizeof(capp));
+	strlcat(capp, ",AES-CFB", sizeof(capp));
+	strlcat(capp, ",AES-OFB", sizeof(capp));
+#endif
+	if (via_feature_xcrypt & VIA_HAS_SHA) {
+		strlcat(capp, ",SHA1", sizeof(capp));
+		strlcat(capp, ",SHA256", sizeof(capp));
+	}
+#if 0
+	if (via_feature_xcrypt & VIA_HAS_AESCTR)
+		strlcat(capp, ",AES-CTR", sizeof(capp));
+	if (via_feature_xcrypt & VIA_HAS_MM)
+		strlcat(capp, ",RSA", sizeof(capp));
+#endif
+	printf("PadLock: HW support loaded for %s.\n", capp);
 #else
 	return (EINVAL);
 #endif
 
-	padlock_sc = sc = malloc(sizeof(*padlock_sc), M_DEVBUF,
+	padlock_sc = sc = malloc(sizeof(*padlock_sc), M_PADLOCK,
 	    M_WAITOK | M_ZERO);
 	TAILQ_INIT(&sc->sc_sessions);
 	sc->sc_sid = 1;
 
 	sc->sc_cid = crypto_get_driverid(0);
 	if (sc->sc_cid < 0) {
-		printf("PADLOCK: Could not get crypto driver id.\n");
-		free(padlock_sc, M_DEVBUF);
+		printf("PadLock: Could not get crypto driver id.\n");
+		free(padlock_sc, M_PADLOCK);
 		padlock_sc = NULL;
 		return (ENOMEM);
 	}       
@@ -218,7 +149,7 @@
 	}
 	if (active > 0) {
 		mtx_unlock(&sc->sc_sessions_mtx);
-		printf("PADLOCK: Cannot destroy, %u sessions active.\n",
+		printf("PadLock: Cannot destroy, %u sessions active.\n",
 		    active);
 		return (EBUSY);
 	}
@@ -226,102 +157,21 @@
 	for (ses = TAILQ_FIRST(&sc->sc_sessions); ses != NULL;
 	    ses = TAILQ_FIRST(&sc->sc_sessions)) {
 		TAILQ_REMOVE(&sc->sc_sessions, ses, ses_next);
-		free(ses, M_DEVBUF);
+		free(ses, M_PADLOCK);
 	}
 	mtx_destroy(&sc->sc_sessions_mtx);
 	crypto_unregister_all(sc->sc_cid);
-	free(sc, M_DEVBUF);
+	free(sc, M_PADLOCK);
 	return (0);
 }
 
-static void
-padlock_setup_enckey(struct padlock_session *ses, caddr_t key, int klen)
-{
-	union padlock_cw *cw;
-	int i;
-
-	cw = &ses->ses_cw;
-	if (cw->cw_key_generation == PADLOCK_KEY_GENERATION_SW) {
-		/* Build expanded keys for both directions */
-		rijndaelKeySetupEnc(ses->ses_ekey, key, klen);
-		rijndaelKeySetupDec(ses->ses_dkey, key, klen);
-		for (i = 0; i < 4 * (RIJNDAEL_MAXNR + 1); i++) {
-			ses->ses_ekey[i] = ntohl(ses->ses_ekey[i]);
-			ses->ses_dkey[i] = ntohl(ses->ses_dkey[i]);
-		}
-	} else {
-		bcopy(key, ses->ses_ekey, klen);
-		bcopy(key, ses->ses_dkey, klen);
-	}
-}
-
-static void
-padlock_setup_mackey(struct padlock_session *ses, caddr_t key, int klen)
-{
-	struct auth_hash *axf;
-	int i;
-
-	klen /= 8;
-	axf = ses->ses_axf;
-
-	for (i = 0; i < klen; i++)
-		key[i] ^= HMAC_IPAD_VAL;
-
-	axf->Init(ses->ses_ictx);
-	axf->Update(ses->ses_ictx, key, klen);
-	axf->Update(ses->ses_ictx, hmac_ipad_buffer, axf->blocksize - klen);
-
-	for (i = 0; i < klen; i++)
-		key[i] ^= (HMAC_IPAD_VAL ^ HMAC_OPAD_VAL);
-
-	axf->Init(ses->ses_octx); 
-	axf->Update(ses->ses_octx, key, klen);
-	axf->Update(ses->ses_octx, hmac_opad_buffer, axf->blocksize - klen);
-
-	for (i = 0; i < klen; i++)
-		key[i] ^= HMAC_OPAD_VAL;
-}
-
-/*
- * Compute keyed-hash authenticator.
- */
 static int
-padlock_authcompute(struct padlock_session *ses, struct cryptodesc *crd,
-    caddr_t buf, int flags)
-{
-	u_char hash[HASH_MAX_LEN];
-	struct auth_hash *axf;
-	union authctx ctx;
-	int error;
-
-	axf = ses->ses_axf;
-
-	bcopy(ses->ses_ictx, &ctx, axf->ctxsize);
-
-	error = crypto_apply(flags, buf, crd->crd_skip, crd->crd_len,
-	    (int (*)(void *, void *, unsigned int))axf->Update, (caddr_t)&ctx);
-	if (error != 0)
-		return (error);
-
-	axf->Final(hash, &ctx);
-	bcopy(ses->ses_octx, &ctx, axf->ctxsize);
-	axf->Update(&ctx, hash, axf->hashsize);
-	axf->Final(hash, &ctx);
-
-	/* Inject the authentication data */
-	crypto_copyback(flags, buf, crd->crd_inject,
-	    ses->ses_mlen == 0 ? axf->hashsize : ses->ses_mlen, hash);
-	return (0);
-}
-
-
-static int
 padlock_newsession(void *arg __unused, uint32_t *sidp, struct cryptoini *cri)
 {
 	struct padlock_softc *sc = padlock_sc;
 	struct padlock_session *ses = NULL;
 	struct cryptoini *encini, *macini;
-	union padlock_cw *cw;
+	int error;
 
 	if (sc == NULL || sidp == NULL || cri == NULL)
 		return (EINVAL);
@@ -357,10 +207,6 @@
 	 */
 	if (encini == NULL)
 		return (EINVAL);
-	if (encini->cri_klen != 128 && encini->cri_klen != 192 &&
-	    encini->cri_klen != 256) {
-		return (EINVAL);
-	}
 
 	/*
 	 * Let's look for a free session structure.
@@ -380,7 +226,7 @@
 	}
 	mtx_unlock(&sc->sc_sessions_mtx);
 	if (ses == NULL) {
-		ses = malloc(sizeof(*ses), M_DEVBUF, M_NOWAIT | M_ZERO);
+		ses = malloc(sizeof(*ses), M_PADLOCK, M_NOWAIT | M_ZERO);
 		if (ses == NULL)
 			return (ENOMEM);
 		ses->ses_used = 1;
@@ -390,76 +236,17 @@
 		mtx_unlock(&sc->sc_sessions_mtx);
 	}
 
-	cw = &ses->ses_cw;
-	bzero(cw, sizeof(*cw));
-	cw->cw_algorithm_type = PADLOCK_ALGORITHM_TYPE_AES;
-	cw->cw_key_generation = PADLOCK_KEY_GENERATION_SW;
-	cw->cw_intermediate = 0;
-	switch (encini->cri_klen) {
-	case 128:
-		cw->cw_round_count = PADLOCK_ROUND_COUNT_AES128;
-		cw->cw_key_size = PADLOCK_KEY_SIZE_128;
-#ifdef HW_KEY_GENERATION
-		/* This doesn't buy us much, that's why it is commented out. */
-		cw->cw_key_generation = PADLOCK_KEY_GENERATION_HW;
-#endif
-		break;
-	case 192:
-		cw->cw_round_count = PADLOCK_ROUND_COUNT_AES192;
-		cw->cw_key_size = PADLOCK_KEY_SIZE_192;
-		break;
-	case 256:
-		cw->cw_round_count = PADLOCK_ROUND_COUNT_AES256;
-		cw->cw_key_size = PADLOCK_KEY_SIZE_256;
-		break;
+	error = padlock_cipher_setup(ses, encini);
+	if (error != 0) {
+		padlock_freesession(NULL, ses->ses_id);
+		return (error);
 	}
-	if (encini->cri_key != NULL)
-		padlock_setup_enckey(ses, encini->cri_key, encini->cri_klen);
 
-	arc4rand(ses->ses_iv, sizeof(ses->ses_iv), 0);
-
 	if (macini != NULL) {
-		ses->ses_mlen = macini->cri_mlen;
-
-		/* Find software structure which describes HMAC algorithm. */
-		switch (macini->cri_alg) {
-		case CRYPTO_NULL_HMAC:
-			ses->ses_axf = &auth_hash_null;
-			break;
-		case CRYPTO_MD5_HMAC:
-			ses->ses_axf = &auth_hash_hmac_md5;
-			break;
-		case CRYPTO_SHA1_HMAC:
-			ses->ses_axf = &auth_hash_hmac_sha1;
-			break;
-		case CRYPTO_RIPEMD160_HMAC:
-			ses->ses_axf = &auth_hash_hmac_ripemd_160;
-			break;
-		case CRYPTO_SHA2_256_HMAC:
-			ses->ses_axf = &auth_hash_hmac_sha2_256;
-			break;
-		case CRYPTO_SHA2_384_HMAC:
-			ses->ses_axf = &auth_hash_hmac_sha2_384;
-			break;
-		case CRYPTO_SHA2_512_HMAC:
-			ses->ses_axf = &auth_hash_hmac_sha2_512;
-			break;
-		}
-
-		/* Allocate memory for HMAC inner and outer contexts. */
-		ses->ses_ictx = malloc(ses->ses_axf->ctxsize, M_CRYPTO_DATA,
-		    M_NOWAIT);
-		ses->ses_octx = malloc(ses->ses_axf->ctxsize, M_CRYPTO_DATA,
-		    M_NOWAIT);
-		if (ses->ses_ictx == NULL || ses->ses_octx == NULL) {
+		error = padlock_hash_setup(ses, macini);
+		if (error != 0) {
 			padlock_freesession(NULL, ses->ses_id);
-			return (ENOMEM);
-		}
-
-		/* Setup key if given. */
-		if (macini->cri_key != NULL) {
-			padlock_setup_mackey(ses, macini->cri_key,
-			    macini->cri_klen);
+			return (error);
 		}
 	}
 
@@ -486,15 +273,8 @@
 		return (EINVAL);
 	}
 	TAILQ_REMOVE(&sc->sc_sessions, ses, ses_next);
-	if (ses->ses_ictx != NULL) {
-		bzero(ses->ses_ictx, sizeof(ses->ses_ictx));
-		free(ses->ses_ictx, M_CRYPTO_DATA);
-	}
-	if (ses->ses_octx != NULL) {
-		bzero(ses->ses_octx, sizeof(ses->ses_octx));
-		free(ses->ses_octx, M_CRYPTO_DATA);
-	}
-	bzero(ses, sizeof(ses));
+	padlock_hash_free(ses);
+	bzero(ses, sizeof(*ses));
 	ses->ses_used = 0;
 	TAILQ_INSERT_TAIL(&sc->sc_sessions, ses, ses_next);
 	mtx_unlock(&sc->sc_sessions_mtx);
@@ -505,15 +285,11 @@
 padlock_process(void *arg __unused, struct cryptop *crp, int hint __unused)
 {
 	struct padlock_softc *sc = padlock_sc;
-	struct padlock_session *ses;
-	union padlock_cw *cw;
+	struct padlock_session *ses = NULL;
 	struct cryptodesc *crd, *enccrd, *maccrd;
-	uint32_t *key;
-	u_char *buf, *abuf;
 	int error = 0;
 
 	enccrd = maccrd = NULL;
-	buf = NULL;
 
 	if (crp == NULL || crp->crp_callback == NULL || crp->crp_desc == NULL) {
 		error = EINVAL;
@@ -562,81 +338,36 @@
 		goto out;
 	}
 
-	buf = malloc(enccrd->crd_len + 16, M_DEVBUF, M_NOWAIT);
-	if (buf == NULL) {
-		error = ENOMEM;
-		goto out;
-	}
-	/* Buffer has to be 16 bytes aligned. */
-	abuf = buf + 16 - ((uintptr_t)buf % 16);
-
-	if ((enccrd->crd_flags & CRD_F_KEY_EXPLICIT) != 0)
-		padlock_setup_enckey(ses, enccrd->crd_key, enccrd->crd_klen);
-	if (maccrd != NULL && (maccrd->crd_flags & CRD_F_KEY_EXPLICIT) != 0)
-		padlock_setup_mackey(ses, maccrd->crd_key, maccrd->crd_klen);
-
-	cw = &ses->ses_cw;
-	cw->cw_filler0 = 0;
-	cw->cw_filler1 = 0;
-	cw->cw_filler2 = 0;
-	cw->cw_filler3 = 0;
-	if ((enccrd->crd_flags & CRD_F_ENCRYPT) != 0) {
-		cw->cw_direction = PADLOCK_DIRECTION_ENCRYPT;
-		key = ses->ses_ekey;
-		if ((enccrd->crd_flags & CRD_F_IV_EXPLICIT) != 0)
-			bcopy(enccrd->crd_iv, ses->ses_iv, 16);
-
-		if ((enccrd->crd_flags & CRD_F_IV_PRESENT) == 0) {
-			crypto_copyback(crp->crp_flags, crp->crp_buf,
-			    enccrd->crd_inject, AES_BLOCK_LEN, ses->ses_iv);
-		}
-	} else {
-		cw->cw_direction = PADLOCK_DIRECTION_DECRYPT;
-		key = ses->ses_dkey;
-		if ((enccrd->crd_flags & CRD_F_IV_EXPLICIT) != 0)
-			bcopy(enccrd->crd_iv, ses->ses_iv, AES_BLOCK_LEN);
-		else {
-			crypto_copydata(crp->crp_flags, crp->crp_buf,
-			    enccrd->crd_inject, AES_BLOCK_LEN, ses->ses_iv);
-		}
-	}
-
 	/* Perform data authentication if requested before encryption. */
 	if (maccrd != NULL && maccrd->crd_next == enccrd) {
-		error = padlock_authcompute(ses, maccrd, crp->crp_buf,
-		    crp->crp_flags);
+		error = padlock_hash_process(ses, maccrd, crp);
 		if (error != 0)
 			goto out;
 	}
 
-	crypto_copydata(crp->crp_flags, crp->crp_buf, enccrd->crd_skip,
-	    enccrd->crd_len, abuf);
-
-	padlock_cbc(abuf, abuf, enccrd->crd_len / 16, key, cw, ses->ses_iv);
+	error = padlock_cipher_process(ses, enccrd, crp);
+	if (error != 0)
+		goto out;
 
-	crypto_copyback(crp->crp_flags, crp->crp_buf, enccrd->crd_skip,
-	    enccrd->crd_len, abuf);
-
 	/* Perform data authentication if requested after encryption. */
 	if (maccrd != NULL && enccrd->crd_next == maccrd) {
-		error = padlock_authcompute(ses, maccrd, crp->crp_buf,
-		    crp->crp_flags);
+		error = padlock_hash_process(ses, maccrd, crp);
 		if (error != 0)
 			goto out;
 	}
 
-	/* copy out last block for use as next session IV */
-	if ((enccrd->crd_flags & CRD_F_ENCRYPT) != 0) {
-		crypto_copydata(crp->crp_flags, crp->crp_buf,
-		    enccrd->crd_skip + enccrd->crd_len - AES_BLOCK_LEN,
-		    AES_BLOCK_LEN, ses->ses_iv);
-	}
-
 out:
-	if (buf != NULL) {
-		bzero(buf, enccrd->crd_len + 16);
-		free(buf, M_DEVBUF);
+#if 0
+	/*
+	 * This code is not necessary, because contexts will be freed on next
+	 * padlock_setup_mackey() call or at padlock_freesession() call.
+	 */
+	if (ses != NULL && maccrd != NULL &&

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



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