PERFORCE change 166779 for review

Hans Petter Selasky hselasky at FreeBSD.org
Thu Jul 30 08:30:26 UTC 2009


http://perforce.freebsd.org/chv.cgi?CH=166779

Change 166779 by hselasky at hselasky_laptop001 on 2009/07/30 08:29:36

	
	IFC @ 166777

Affected files ...

.. //depot/projects/usb/src/lib/libusb/libusb.3#19 integrate
.. //depot/projects/usb/src/lib/libusb/libusb.h#9 integrate
.. //depot/projects/usb/src/lib/libusb/libusb10.c#11 integrate
.. //depot/projects/usb/src/lib/libusb/libusb10.h#9 integrate
.. //depot/projects/usb/src/lib/libusb/libusb10_desc.c#8 integrate
.. //depot/projects/usb/src/lib/libusb/libusb10_io.c#8 integrate
.. //depot/projects/usb/src/lib/libusb/libusb20.3#4 integrate
.. //depot/projects/usb/src/lib/libusb/libusb20_compat01.c#7 integrate
.. //depot/projects/usb/src/lib/libusb/libusb20_int.h#8 integrate
.. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#55 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/at91dci.c#28 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/atmegadci.c#38 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/avr32dci.c#13 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#32 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/ehci_pci.c#10 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/musb_otg.c#26 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/ohci.c#27 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/ohci_pci.c#10 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/uhci.c#25 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/uhci_pci.c#10 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#25 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/uss820dci.c#28 integrate
.. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#24 integrate
.. //depot/projects/usb/src/sys/dev/usb/input/ums.c#23 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/u3g.c#19 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/ulpt.c#18 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.c#46 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.h#22 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_controller.h#18 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_dev.c#33 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_dev.h#17 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_device.c#46 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#18 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_hid.c#40 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_hub.c#28 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_parse.c#9 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_request.c#25 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#162 integrate
.. //depot/projects/usb/src/sys/dev/usb/usbdevs#71 integrate
.. //depot/projects/usb/src/sys/dev/usb/usbdi.h#12 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvnops.c#10 integrate
.. //depot/projects/usb/src/sys/i386/i386/initcpu.c#8 integrate
.. //depot/projects/usb/src/sys/i386/i386/pmap.c#25 integrate
.. //depot/projects/usb/src/sys/i386/i386/vm_machdep.c#13 integrate
.. //depot/projects/usb/src/sys/i386/include/cpufunc.h#10 integrate
.. //depot/projects/usb/src/sys/i386/include/md_var.h#5 integrate
.. //depot/projects/usb/src/sys/i386/include/pmap.h#13 integrate
.. //depot/projects/usb/src/sys/i386/include/sf_buf.h#2 integrate
.. //depot/projects/usb/src/sys/i386/xen/pmap.c#12 integrate
.. //depot/projects/usb/src/sys/kern/kern_exec.c#19 integrate
.. //depot/projects/usb/src/sys/kern/kern_jail.c#27 integrate
.. //depot/projects/usb/src/sys/kern/uipc_socket.c#25 integrate
.. //depot/projects/usb/src/sys/kern/vfs_lookup.c#20 integrate
.. //depot/projects/usb/src/sys/kern/vfs_mount.c#28 integrate
.. //depot/projects/usb/src/sys/kern/vfs_syscalls.c#27 integrate
.. //depot/projects/usb/src/sys/net/if_ethersubr.c#22 integrate
.. //depot/projects/usb/src/sys/net/vnet.h#16 integrate
.. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw2.c#7 integrate
.. //depot/projects/usb/src/sys/netinet/sctp_auth.c#10 integrate
.. //depot/projects/usb/src/sys/netinet/sctp_indata.c#20 integrate
.. //depot/projects/usb/src/sys/netinet/sctp_sysctl.c#15 integrate
.. //depot/projects/usb/src/sys/netinet/sctp_sysctl.h#12 integrate
.. //depot/projects/usb/src/sys/netinet/sctputil.c#22 integrate
.. //depot/projects/usb/src/sys/netinet/sctputil.h#12 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_input.c#27 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_syncache.c#25 integrate
.. //depot/projects/usb/src/sys/security/audit/audit.c#15 integrate
.. //depot/projects/usb/src/sys/security/audit/audit.h#13 integrate
.. //depot/projects/usb/src/sys/security/audit/audit_arg.c#13 integrate
.. //depot/projects/usb/src/sys/security/audit/audit_bsm.c#16 integrate
.. //depot/projects/usb/src/sys/security/audit/audit_bsm_klib.c#13 integrate
.. //depot/projects/usb/src/sys/security/audit/audit_private.h#12 integrate

Differences ...

==== //depot/projects/usb/src/lib/libusb/libusb.3#19 (text+ko) ====

@@ -24,7 +24,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/lib/libusb/libusb.3,v 1.7 2009/06/23 01:00:26 thompsa Exp $
+.\" $FreeBSD: src/lib/libusb/libusb.3,v 1.8 2009/07/30 00:11:41 alfred Exp $
 .\"
 .Dd June 22, 2009
 .Dt LIBUSB 3

==== //depot/projects/usb/src/lib/libusb/libusb.h#9 (text+ko) ====

@@ -1,3 +1,4 @@
+/* $FreeBSD: src/lib/libusb/libusb.h,v 1.9 2009/07/30 00:11:41 alfred Exp $ */
 /*-
  * Copyright (c) 2009 Sylvestre Gallon. All rights reserved.
  *

==== //depot/projects/usb/src/lib/libusb/libusb10.c#11 (text+ko) ====

@@ -1,3 +1,4 @@
+/* $FreeBSD: src/lib/libusb/libusb10.c,v 1.3 2009/07/30 00:11:41 alfred Exp $ */
 /*-
  * Copyright (c) 2009 Sylvestre Gallon. All rights reserved.
  * Copyright (c) 2009 Hans Petter Selasky. All rights reserved.

==== //depot/projects/usb/src/lib/libusb/libusb10.h#9 (text+ko) ====

@@ -1,3 +1,4 @@
+/* $FreeBSD: src/lib/libusb/libusb10.h,v 1.3 2009/07/30 00:11:41 alfred Exp $ */
 /*-
  * Copyright (c) 2009 Sylvestre Gallon. All rights reserved.
  *

==== //depot/projects/usb/src/lib/libusb/libusb10_desc.c#8 (text+ko) ====

@@ -1,3 +1,4 @@
+/* $FreeBSD: src/lib/libusb/libusb10_desc.c,v 1.3 2009/07/30 00:11:41 alfred Exp $ */
 /*-
  * Copyright (c) 2009 Sylvestre Gallon. All rights reserved.
  *

==== //depot/projects/usb/src/lib/libusb/libusb10_io.c#8 (text+ko) ====

@@ -1,3 +1,4 @@
+/* $FreeBSD: src/lib/libusb/libusb10_io.c,v 1.3 2009/07/30 00:11:41 alfred Exp $ */
 /*-
  * Copyright (c) 2009 Sylvestre Gallon. All rights reserved.
  *

==== //depot/projects/usb/src/lib/libusb/libusb20.3#4 (text+ko) ====

@@ -24,7 +24,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/lib/libusb/libusb20.3,v 1.3 2009/06/23 01:00:26 thompsa Exp $
+.\" $FreeBSD: src/lib/libusb/libusb20.3,v 1.4 2009/07/30 00:11:41 alfred Exp $
 .\"
 .Dd June 22, 2009
 .Dt LIBUSB20 3

==== //depot/projects/usb/src/lib/libusb/libusb20_compat01.c#7 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/lib/libusb/libusb20_compat01.c,v 1.3 2009/06/12 16:07:06 thompsa Exp $ */
+/* $FreeBSD: src/lib/libusb/libusb20_compat01.c,v 1.4 2009/07/30 00:11:41 alfred Exp $ */
 /*-
  * Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
  *

==== //depot/projects/usb/src/lib/libusb/libusb20_int.h#8 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/lib/libusb/libusb20_int.h,v 1.3 2009/06/12 16:07:06 thompsa Exp $ */
+/* $FreeBSD: src/lib/libusb/libusb20_int.h,v 1.4 2009/07/30 00:11:41 alfred Exp $ */
 /*-
  * Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
  *

==== //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#55 (text+ko) ====

@@ -1,5 +1,5 @@
 /*	$NetBSD: uaudio.c,v 1.91 2004/11/05 17:46:14 kent Exp $	*/
-/*	$FreeBSD: src/sys/dev/sound/usb/uaudio.c,v 1.54 2009/07/12 16:50:32 marcel Exp $ */
+/*	$FreeBSD: src/sys/dev/sound/usb/uaudio.c,v 1.55 2009/07/30 00:14:56 alfred Exp $ */
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.

==== //depot/projects/usb/src/sys/dev/usb/controller/at91dci.c#28 (text+ko) ====

@@ -1,5 +1,5 @@
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/controller/at91dci.c,v 1.21 2009/06/27 21:23:30 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/controller/at91dci.c,v 1.22 2009/07/30 00:14:34 alfred Exp $");
 
 /*-
  * Copyright (c) 2007-2008 Hans Petter Selasky. All rights reserved.

==== //depot/projects/usb/src/sys/dev/usb/controller/atmegadci.c#38 (text+ko) ====

@@ -1,5 +1,5 @@
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/controller/atmegadci.c,v 1.27 2009/06/27 21:23:30 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/controller/atmegadci.c,v 1.28 2009/07/30 00:14:34 alfred Exp $");
 
 /*-
  * Copyright (c) 2009 Hans Petter Selasky. All rights reserved.

==== //depot/projects/usb/src/sys/dev/usb/controller/avr32dci.c#13 (text+ko) ====

@@ -1,5 +1,5 @@
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/controller/avr32dci.c,v 1.7 2009/06/27 21:23:30 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/controller/avr32dci.c,v 1.8 2009/07/30 00:14:34 alfred Exp $");
 
 /*-
  * Copyright (c) 2009 Hans Petter Selasky. All rights reserved.

==== //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#32 (text+ko) ====

@@ -44,7 +44,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci.c,v 1.25 2009/06/23 02:19:59 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci.c,v 1.26 2009/07/30 00:14:34 alfred Exp $");
 
 #include <sys/stdint.h>
 #include <sys/stddef.h>

==== //depot/projects/usb/src/sys/dev/usb/controller/ehci_pci.c#10 (text+ko) ====

@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci_pci.c,v 1.7 2009/06/23 02:19:59 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci_pci.c,v 1.8 2009/07/30 00:12:47 alfred Exp $");
 
 /*
  * USB Enhanced Host Controller Driver, a.k.a. USB 2.0 controller.

==== //depot/projects/usb/src/sys/dev/usb/controller/musb_otg.c#26 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/usb/controller/musb_otg.c,v 1.21 2009/06/27 21:23:30 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/usb/controller/musb_otg.c,v 1.22 2009/07/30 00:14:34 alfred Exp $ */
 /*-
  * Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
  *

==== //depot/projects/usb/src/sys/dev/usb/controller/ohci.c#27 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ohci.c,v 1.20 2009/06/23 02:19:59 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ohci.c,v 1.21 2009/07/30 00:14:34 alfred Exp $");
 
 /*
  * USB Open Host Controller driver.

==== //depot/projects/usb/src/sys/dev/usb/controller/ohci_pci.c#10 (text+ko) ====

@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ohci_pci.c,v 1.7 2009/06/23 02:19:59 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ohci_pci.c,v 1.8 2009/07/30 00:12:47 alfred Exp $");
 
 /*
  * USB Open Host Controller driver.

==== //depot/projects/usb/src/sys/dev/usb/controller/uhci.c#25 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/controller/uhci.c,v 1.20 2009/06/23 02:19:59 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/controller/uhci.c,v 1.21 2009/07/30 00:14:34 alfred Exp $");
 
 /*
  * USB Universal Host Controller driver.

==== //depot/projects/usb/src/sys/dev/usb/controller/uhci_pci.c#10 (text+ko) ====

@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/controller/uhci_pci.c,v 1.7 2009/06/23 02:19:59 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/controller/uhci_pci.c,v 1.8 2009/07/30 00:12:47 alfred Exp $");
 
 /* Universal Host Controller Interface
  *

==== //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#25 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/usb/controller/usb_controller.c,v 1.20 2009/06/23 02:19:59 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/usb/controller/usb_controller.c,v 1.21 2009/07/30 00:16:32 alfred Exp $ */
 /*-
  * Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
  *

==== //depot/projects/usb/src/sys/dev/usb/controller/uss820dci.c#28 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/usb/controller/uss820dci.c,v 1.24 2009/06/27 21:23:30 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/usb/controller/uss820dci.c,v 1.25 2009/07/30 00:14:34 alfred Exp $ */
 /*-
  * Copyright (c) 2008 Hans Petter Selasky <hselasky at FreeBSD.org>
  * All rights reserved.

==== //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#24 (text+ko) ====

@@ -1,5 +1,5 @@
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/input/ukbd.c,v 1.14 2009/06/23 02:19:59 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/input/ukbd.c,v 1.15 2009/07/30 00:14:34 alfred Exp $");
 
 
 /*-

==== //depot/projects/usb/src/sys/dev/usb/input/ums.c#23 (text+ko) ====

@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/input/ums.c,v 1.15 2009/06/23 02:19:59 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/input/ums.c,v 1.16 2009/07/30 00:13:09 alfred Exp $");
 
 /*
  * HID spec: http://www.usb.org/developers/devclass_docs/HID1_11.pdf

==== //depot/projects/usb/src/sys/dev/usb/serial/u3g.c#19 (text+ko) ====

@@ -16,7 +16,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $FreeBSD: src/sys/dev/usb/serial/u3g.c,v 1.18 2009/06/23 02:19:59 thompsa Exp $
+ * $FreeBSD: src/sys/dev/usb/serial/u3g.c,v 1.19 2009/07/30 00:15:17 alfred Exp $
  */
 
 /*

==== //depot/projects/usb/src/sys/dev/usb/serial/ulpt.c#18 (text+ko) ====

@@ -1,5 +1,5 @@
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/serial/ulpt.c,v 1.12 2009/06/23 02:19:59 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/serial/ulpt.c,v 1.13 2009/07/30 00:16:06 alfred Exp $");
 
 /*	$NetBSD: ulpt.c,v 1.60 2003/10/04 21:19:50 augustss Exp $	*/
 

==== //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.c#46 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/usb/usb_compat_linux.c,v 1.15 2009/06/23 02:19:59 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/usb/usb_compat_linux.c,v 1.16 2009/07/30 00:16:50 alfred Exp $ */
 /*-
  * Copyright (c) 2007 Luigi Rizzo - Universita` di Pisa. All rights reserved.
  * Copyright (c) 2007 Hans Petter Selasky. All rights reserved.

==== //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.h#22 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/usb/usb_compat_linux.h,v 1.10 2009/06/23 02:19:59 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/usb/usb_compat_linux.h,v 1.11 2009/07/30 00:16:50 alfred Exp $ */
 /*-
  * Copyright (c) 2007 Luigi Rizzo - Universita` di Pisa. All rights reserved.
  * Copyright (c) 2007 Hans Petter Selasky. All rights reserved.

==== //depot/projects/usb/src/sys/dev/usb/usb_controller.h#18 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/usb/usb_controller.h,v 1.16 2009/06/27 21:23:30 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/usb/usb_controller.h,v 1.17 2009/07/30 00:14:34 alfred Exp $ */
 /*-
  * Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
  *

==== //depot/projects/usb/src/sys/dev/usb/usb_dev.c#33 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/usb/usb_dev.c,v 1.29 2009/06/23 02:19:59 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/usb/usb_dev.c,v 1.30 2009/07/30 00:15:50 alfred Exp $ */
 /*-
  * Copyright (c) 2006-2008 Hans Petter Selasky. All rights reserved.
  *

==== //depot/projects/usb/src/sys/dev/usb/usb_dev.h#17 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/usb/usb_dev.h,v 1.12 2009/06/23 02:19:59 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/usb/usb_dev.h,v 1.13 2009/07/30 00:15:50 alfred Exp $ */
 /*-
  * Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
  *

==== //depot/projects/usb/src/sys/dev/usb/usb_device.c#46 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/usb/usb_device.c,v 1.43 2009/06/27 21:23:30 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/usb/usb_device.c,v 1.44 2009/07/30 00:15:50 alfred Exp $ */
 /*-
  * Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
  *

==== //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#18 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/usb/usb_handle_request.c,v 1.13 2009/06/27 21:23:30 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/usb/usb_handle_request.c,v 1.14 2009/07/30 00:15:50 alfred Exp $ */
 /*-
  * Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
  *

==== //depot/projects/usb/src/sys/dev/usb/usb_hid.c#40 (text+ko) ====

@@ -2,7 +2,7 @@
 
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/usb_hid.c,v 1.16 2009/06/23 02:19:59 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/usb_hid.c,v 1.17 2009/07/30 00:17:08 alfred Exp $");
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
  * All rights reserved.

==== //depot/projects/usb/src/sys/dev/usb/usb_hub.c#28 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/usb/usb_hub.c,v 1.26 2009/06/23 02:19:59 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/usb/usb_hub.c,v 1.27 2009/07/30 00:15:50 alfred Exp $ */
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc. All rights reserved.
  * Copyright (c) 1998 Lennart Augustsson. All rights reserved.

==== //depot/projects/usb/src/sys/dev/usb/usb_parse.c#9 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/usb/usb_parse.c,v 1.5 2009/06/23 02:19:59 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/usb/usb_parse.c,v 1.6 2009/07/30 00:15:50 alfred Exp $ */
 /*-
  * Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
  *

==== //depot/projects/usb/src/sys/dev/usb/usb_request.c#25 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/usb/usb_request.c,v 1.23 2009/06/23 02:19:59 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/usb/usb_request.c,v 1.24 2009/07/30 00:15:50 alfred Exp $ */
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc. All rights reserved.
  * Copyright (c) 1998 Lennart Augustsson. All rights reserved.

==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#162 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/usb/usb_transfer.c,v 1.27 2009/06/27 21:23:30 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/usb/usb_transfer.c,v 1.28 2009/07/30 00:14:34 alfred Exp $ */
 /*-
  * Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
  *

==== //depot/projects/usb/src/sys/dev/usb/usbdevs#71 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/sys/dev/usb/usbdevs,v 1.419 2009/07/27 20:17:20 weongyo Exp $
+$FreeBSD: src/sys/dev/usb/usbdevs,v 1.420 2009/07/30 00:15:17 alfred Exp $
 /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */
 
 /*-

==== //depot/projects/usb/src/sys/dev/usb/usbdi.h#12 (text+ko) ====

@@ -21,7 +21,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/usb/usbdi.h,v 1.70 2009/06/27 21:23:30 thompsa Exp $
+ * $FreeBSD: src/sys/dev/usb/usbdi.h,v 1.71 2009/07/30 00:57:54 alfred Exp $
  */
 #ifndef _USB_USBDI_H_
 #define _USB_USBDI_H_

==== //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvnops.c#10 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/fs/nfsclient/nfs_clvnops.c,v 1.12 2009/07/22 14:37:53 rmacklem Exp $");
+__FBSDID("$FreeBSD: src/sys/fs/nfsclient/nfs_clvnops.c,v 1.13 2009/07/29 14:50:31 rmacklem Exp $");
 
 /*
  * vnode op calls for Sun NFS version 2, 3 and 4
@@ -687,11 +687,17 @@
 		    int cm = newnfs_commit_on_close ? 1 : 0;
 		    error = ncl_flush(vp, MNT_WAIT, cred, ap->a_td, cm);
 		    /* np->n_flag &= ~NMODIFIED; */
-		} else if (NFS_ISV4(vp) && nfscl_mustflush(vp)) {
-			int cm = newnfs_commit_on_close ? 1 : 0;
-			error = ncl_flush(vp, MNT_WAIT, cred, ap->a_td, cm);
-			/* as above w.r.t. races when clearing NMODIFIED */
-			/* np->n_flag &= ~NMODIFIED; */
+		} else if (NFS_ISV4(vp)) { 
+			if (nfscl_mustflush(vp)) {
+				int cm = newnfs_commit_on_close ? 1 : 0;
+				error = ncl_flush(vp, MNT_WAIT, cred, ap->a_td,
+				    cm);
+				/*
+				 * as above w.r.t races when clearing
+				 * NMODIFIED.
+				 * np->n_flag &= ~NMODIFIED;
+				 */
+			}
 		} else
 		    error = ncl_vinvalbuf(vp, V_SAVE, ap->a_td, 1);
 		mtx_lock(&np->n_mtx);

==== //depot/projects/usb/src/sys/i386/i386/initcpu.c#8 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/initcpu.c,v 1.61 2009/01/12 22:01:49 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/initcpu.c,v 1.62 2009/07/29 08:49:58 kib Exp $");
 
 #include "opt_cpu.h"
 
@@ -91,6 +91,7 @@
 u_int	cpu_procinfo2 = 0;	/* Multicore info */
 char	cpu_vendor[20] = "";	/* CPU Origin code */
 u_int	cpu_vendor_id = 0;	/* CPU vendor ID */
+u_int	cpu_clflush_line_size = 32;
 
 SYSCTL_UINT(_hw, OID_AUTO, via_feature_rng, CTLFLAG_RD,
 	&via_feature_rng, 0, "VIA C3/C7 RNG feature available in CPU");
@@ -709,6 +710,14 @@
 	}
 	enable_sse();
 
+	/*
+	 * CPUID with %eax = 1, %ebx returns
+	 * Bits 15-8: CLFLUSH line size
+	 * 	(Value * 8 = cache line size in bytes)
+	 */
+	if ((cpu_feature & CPUID_CLFSH) != 0)
+		cpu_clflush_line_size = ((cpu_procinfo >> 8) & 0xff) * 8;
+
 #if defined(PC98) && !defined(CPU_UPGRADE_HW_CACHE)
 	/*
 	 * OS should flush L1 cache by itself because no PC-98 supports

==== //depot/projects/usb/src/sys/i386/i386/pmap.c#25 (text+ko) ====

@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.644 2009/07/24 13:50:29 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.645 2009/07/29 08:49:58 kib Exp $");
 
 /*
  *	Manages physical address maps.
@@ -119,6 +119,7 @@
 #include <sys/msgbuf.h>
 #include <sys/mutex.h>
 #include <sys/proc.h>
+#include <sys/sf_buf.h>
 #include <sys/sx.h>
 #include <sys/vmmeter.h>
 #include <sys/sched.h>
@@ -732,7 +733,7 @@
  * Determine the appropriate bits to set in a PTE or PDE for a specified
  * caching mode.
  */
-static int
+int
 pmap_cache_bits(int mode, boolean_t is_pde)
 {
 	int pat_flag, pat_index, cache_bits;
@@ -945,6 +946,40 @@
 }
 #endif /* !SMP */
 
+void
+pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva)
+{
+
+	KASSERT((sva & PAGE_MASK) == 0,
+	    ("pmap_invalidate_cache_range: sva not page-aligned"));
+	KASSERT((eva & PAGE_MASK) == 0,
+	    ("pmap_invalidate_cache_range: eva not page-aligned"));
+
+	if (cpu_feature & CPUID_SS)
+		; /* If "Self Snoop" is supported, do nothing. */
+	else if (cpu_feature & CPUID_CLFSH) {
+
+		/*
+		 * Otherwise, do per-cache line flush.  Use the mfence
+		 * instruction to insure that previous stores are
+		 * included in the write-back.  The processor
+		 * propagates flush to other processors in the cache
+		 * coherence domain.
+		 */
+		mfence();
+		for (; eva < sva; eva += cpu_clflush_line_size)
+			clflush(eva);
+		mfence();
+	} else {
+
+		/*
+		 * No targeted cache flush methods are supported by CPU,
+		 * globally invalidate cache as a last resort.
+		 */
+		pmap_invalidate_cache();
+	}
+}
+
 /*
  * Are we current address space or kernel?  N.B. We return FALSE when
  * a pmap's page table is in use because a kernel thread is borrowing
@@ -4400,7 +4435,8 @@
 void *
 pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode)
 {
-	vm_offset_t va, tmpva, offset;
+	vm_offset_t va, offset;
+	vm_size_t tmpsize;
 
 	offset = pa & PAGE_MASK;
 	size = roundup(offset + size, PAGE_SIZE);
@@ -4413,16 +4449,10 @@
 	if (!va)
 		panic("pmap_mapdev: Couldn't alloc kernel virtual memory");
 
-	for (tmpva = va; size > 0; ) {
-		pmap_kenter_attr(tmpva, pa, mode);
-		size -= PAGE_SIZE;
-		tmpva += PAGE_SIZE;
-		pa += PAGE_SIZE;
-	}
-	pmap_invalidate_range(kernel_pmap, va, tmpva);
-	/* If "Self Snoop" is supported, do nothing. */
-	if (!(cpu_feature & CPUID_SS))
-		pmap_invalidate_cache();
+	for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE)
+		pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode);
+	pmap_invalidate_range(kernel_pmap, va, va + tmpsize);
+	pmap_invalidate_cache_range(va, va + size);
 	return ((void *)(va + offset));
 }
 
@@ -4462,16 +4492,48 @@
 void
 pmap_page_set_memattr(vm_page_t m, vm_memattr_t ma)
 {
+	struct sysmaps *sysmaps;
+	vm_offset_t sva, eva;
 
 	m->md.pat_mode = ma;
+	if ((m->flags & PG_FICTITIOUS) != 0)
+		return;
 
 	/*
 	 * If "m" is a normal page, flush it from the cache.
+	 * See pmap_invalidate_cache_range().
+	 *
+	 * First, try to find an existing mapping of the page by sf
+	 * buffer. sf_buf_invalidate_cache() modifies mapping and
+	 * flushes the cache.
 	 */    
-	if ((m->flags & PG_FICTITIOUS) == 0) {
-		/* If "Self Snoop" is supported, do nothing. */
-		if (!(cpu_feature & CPUID_SS))
-			pmap_invalidate_cache();
+	if (sf_buf_invalidate_cache(m))
+		return;
+
+	/*
+	 * If page is not mapped by sf buffer, but CPU does not
+	 * support self snoop, map the page transient and do
+	 * invalidation. In the worst case, whole cache is flushed by
+	 * pmap_invalidate_cache_range().
+	 */
+	if ((cpu_feature & (CPUID_SS|CPUID_CLFSH)) == CPUID_CLFSH) {
+		sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)];
+		mtx_lock(&sysmaps->lock);
+		if (*sysmaps->CMAP2)
+			panic("pmap_page_set_memattr: CMAP2 busy");
+		sched_pin();
+		*sysmaps->CMAP2 = PG_V | PG_RW | VM_PAGE_TO_PHYS(m) |
+		    PG_A | PG_M | pmap_cache_bits(m->md.pat_mode, 0);
+		invlcaddr(sysmaps->CADDR2);
+		sva = (vm_offset_t)sysmaps->CADDR2;
+		eva = sva + PAGE_SIZE;
+	} else
+		sva = eva = 0; /* gcc */
+	pmap_invalidate_cache_range(sva, eva);
+	if (sva != 0) {
+		*sysmaps->CMAP2 = 0;
+		sched_unpin();
+		mtx_unlock(&sysmaps->lock);
 	}
 }
 
@@ -4537,9 +4599,7 @@
 	 */    
 	if (changed) {
 		pmap_invalidate_range(kernel_pmap, base, tmpva);
-		/* If "Self Snoop" is supported, do nothing. */
-		if (!(cpu_feature & CPUID_SS))
-			pmap_invalidate_cache();
+		pmap_invalidate_cache_range(base, tmpva);
 	}
 	return (0);
 }

==== //depot/projects/usb/src/sys/i386/i386/vm_machdep.c#13 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/vm_machdep.c,v 1.296 2009/03/22 02:33:48 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/vm_machdep.c,v 1.297 2009/07/29 08:49:58 kib Exp $");
 
 #include "opt_isa.h"
 #include "opt_npx.h"
@@ -720,6 +720,39 @@
 }
 
 /*
+ * Invalidate the cache lines that may belong to the page, if
+ * (possibly old) mapping of the page by sf buffer exists.  Returns
+ * TRUE when mapping was found and cache invalidated.
+ */
+boolean_t
+sf_buf_invalidate_cache(vm_page_t m)
+{
+	struct sf_head *hash_list;
+	struct sf_buf *sf;
+	boolean_t ret;
+
+	hash_list = &sf_buf_active[SF_BUF_HASH(m)];
+	ret = FALSE;
+	mtx_lock(&sf_buf_lock);
+	LIST_FOREACH(sf, hash_list, list_entry) {
+		if (sf->m == m) {
+			/*
+			 * Use pmap_qenter to update the pte for
+			 * existing mapping, in particular, the PAT
+			 * settings are recalculated.
+			 */
+			pmap_qenter(sf->kva, &m, 1);
+			pmap_invalidate_cache_range(sf->kva, sf->kva +
+			    PAGE_SIZE);
+			ret = TRUE;
+			break;
+		}
+	}
+	mtx_unlock(&sf_buf_lock);
+	return (ret);
+}
+
+/*
  * Get an sf_buf from the freelist.  May block if none are available.
  */
 struct sf_buf *
@@ -787,9 +820,10 @@
 	opte = *ptep;
 #ifdef XEN
        PT_SET_MA(sf->kva, xpmap_ptom(VM_PAGE_TO_PHYS(m)) | pgeflag
-	   | PG_RW | PG_V);
+	   | PG_RW | PG_V | pmap_cache_bits(m->md.pat_mode, 0));
 #else
-	*ptep = VM_PAGE_TO_PHYS(m) | pgeflag | PG_RW | PG_V;
+	*ptep = VM_PAGE_TO_PHYS(m) | pgeflag | PG_RW | PG_V |
+	    pmap_cache_bits(m->md.pat_mode, 0);
 #endif
 
 	/*

==== //depot/projects/usb/src/sys/i386/include/cpufunc.h#10 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/i386/include/cpufunc.h,v 1.154 2009/06/16 15:13:18 jhb Exp $
+ * $FreeBSD: src/sys/i386/include/cpufunc.h,v 1.155 2009/07/29 08:49:58 kib Exp $
  */
 
 /*
@@ -90,6 +90,13 @@
 }
 
 static __inline void
+clflush(u_long addr)
+{
+
+	__asm __volatile("clflush %0" : : "m" (*(char *)addr));
+}
+
+static __inline void
 disable_intr(void)
 {
 #ifdef XEN
@@ -138,6 +145,13 @@
 	__asm __volatile("mwait;" : :"a" (hints), "c" (extensions));
 }
 
+static __inline void
+mfence(void)
+{
+
+	__asm __volatile("mfence" : : : "memory");
+}
+
 #ifdef _KERNEL
 
 #define	HAVE_INLINE_FFS

==== //depot/projects/usb/src/sys/i386/include/md_var.h#5 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/i386/include/md_var.h,v 1.78 2008/11/26 19:25:13 jkim Exp $
+ * $FreeBSD: src/sys/i386/include/md_var.h,v 1.79 2009/07/29 08:49:58 kib Exp $
  */
 
 #ifndef _MACHINE_MD_VAR_H_
@@ -52,6 +52,7 @@
 extern	u_int	amd_pminfo;
 extern	u_int	via_feature_rng;
 extern	u_int	via_feature_xcrypt;
+extern	u_int	cpu_clflush_line_size;
 extern	u_int	cpu_fxsr;
 extern	u_int	cpu_high;
 extern	u_int	cpu_id;

==== //depot/projects/usb/src/sys/i386/include/pmap.h#13 (text+ko) ====

@@ -38,7 +38,7 @@
  *
  *	from: hp300: @(#)pmap.h	7.2 (Berkeley) 12/16/90
  *	from: @(#)pmap.h	7.4 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/i386/include/pmap.h,v 1.139 2009/07/12 23:31:20 alc Exp $
+ * $FreeBSD: src/sys/i386/include/pmap.h,v 1.140 2009/07/29 08:49:58 kib Exp $
  */
 
 #ifndef _MACHINE_PMAP_H_
@@ -463,6 +463,7 @@
 #define	pmap_unmapbios(va, sz)	pmap_unmapdev((va), (sz))
 
 void	pmap_bootstrap(vm_paddr_t);
+int	pmap_cache_bits(int mode, boolean_t is_pde);
 int	pmap_change_attr(vm_offset_t, vm_size_t, int);
 void	pmap_init_pat(void);
 void	pmap_kenter(vm_offset_t va, vm_paddr_t pa);
@@ -480,6 +481,7 @@
 void	pmap_invalidate_range(pmap_t, vm_offset_t, vm_offset_t);
 void	pmap_invalidate_all(pmap_t);
 void	pmap_invalidate_cache(void);
+void	pmap_invalidate_cache_range(vm_offset_t, vm_offset_t);
 
 #endif /* _KERNEL */
 

==== //depot/projects/usb/src/sys/i386/include/sf_buf.h#2 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/i386/include/sf_buf.h,v 1.4 2005/02/13 06:23:13 alc Exp $
+ * $FreeBSD: src/sys/i386/include/sf_buf.h,v 1.5 2009/07/29 08:49:58 kib Exp $
  */
 
 #ifndef _MACHINE_SF_BUF_H_
@@ -58,4 +58,6 @@
 	return (sf->m);
 }
 
+boolean_t sf_buf_invalidate_cache(vm_page_t m);
+
 #endif /* !_MACHINE_SF_BUF_H_ */

==== //depot/projects/usb/src/sys/i386/xen/pmap.c#12 (text+ko) ====

@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/xen/pmap.c,v 1.16 2009/07/24 13:50:29 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/xen/pmap.c,v 1.17 2009/07/29 19:38:33 kib Exp $");
 
 /*
  *	Manages physical address maps.
@@ -121,6 +121,7 @@
 #include <sys/msgbuf.h>
 #include <sys/mutex.h>
 #include <sys/proc.h>
+#include <sys/sf_buf.h>
 #include <sys/sx.h>
 #include <sys/vmmeter.h>
 #include <sys/sched.h>
@@ -759,7 +760,7 @@
  * Determine the appropriate bits to set in a PTE or PDE for a specified
  * caching mode.
  */
-static int
+int
 pmap_cache_bits(int mode, boolean_t is_pde)
 {
 	int pat_flag, pat_index, cache_bits;
@@ -988,6 +989,40 @@
 }
 #endif /* !SMP */
 
+void
+pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva)
+{
+
+	KASSERT((sva & PAGE_MASK) == 0,
+	    ("pmap_invalidate_cache_range: sva not page-aligned"));
+	KASSERT((eva & PAGE_MASK) == 0,
+	    ("pmap_invalidate_cache_range: eva not page-aligned"));
+
+	if (cpu_feature & CPUID_SS)
+		; /* If "Self Snoop" is supported, do nothing. */
+	else if (cpu_feature & CPUID_CLFSH) {
+
+		/*
+		 * Otherwise, do per-cache line flush.  Use the mfence
+		 * instruction to insure that previous stores are
+		 * included in the write-back.  The processor
+		 * propagates flush to other processors in the cache
+		 * coherence domain.
+		 */
+		mfence();
+		for (; eva < sva; eva += cpu_clflush_line_size)
+			clflush(eva);
+		mfence();
+	} else {
+
+		/*
+		 * No targeted cache flush methods are supported by CPU,
+		 * globally invalidate cache as a last resort.
+		 */
+		pmap_invalidate_cache();
+	}
+}
+
 /*
  * Are we current address space or kernel?  N.B. We return FALSE when
  * a pmap's page table is in use because a kernel thread is borrowing
@@ -3865,7 +3900,8 @@
 void *
 pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode)
 {
-	vm_offset_t va, tmpva, offset;
+	vm_offset_t va, offset;
+	vm_size_t tmpsize;
 
 	offset = pa & PAGE_MASK;
 	size = roundup(offset + size, PAGE_SIZE);
@@ -3878,14 +3914,10 @@
 	if (!va)
 		panic("pmap_mapdev: Couldn't alloc kernel virtual memory");
 
-	for (tmpva = va; size > 0; ) {
-		pmap_kenter_attr(tmpva, pa, mode);
-		size -= PAGE_SIZE;
-		tmpva += PAGE_SIZE;
-		pa += PAGE_SIZE;
-	}
-	pmap_invalidate_range(kernel_pmap, va, tmpva);
-	pmap_invalidate_cache();
+	for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE)
+		pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode);
+	pmap_invalidate_range(kernel_pmap, va, va + tmpsize);
+	pmap_invalidate_cache_range(va, va + size);
 	return ((void *)(va + offset));
 }
 
@@ -3927,16 +3959,49 @@
 void
 pmap_page_set_memattr(vm_page_t m, vm_memattr_t ma)
 {
+	struct sysmaps *sysmaps;
+	vm_offset_t sva, eva;
 
 	m->md.pat_mode = ma;
+	if ((m->flags & PG_FICTITIOUS) != 0)
+		return;
 
 	/*
 	 * If "m" is a normal page, flush it from the cache.
+	 * See pmap_invalidate_cache_range().
+	 *
+	 * First, try to find an existing mapping of the page by sf

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


More information about the p4-projects mailing list