diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2013-04-01 13:31:10 -0400 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2013-04-01 13:31:10 -0400 |
commit | d02438c075ea4af178d2612ee8909bf13cd82af4 (patch) | |
tree | 8135070edec049b1a61985bb23b770ef25ee93b2 | |
parent | Grsec/PaX: 2.9.1-{2.6.32.60,3.2.41,3.8.4}-201303252031 (diff) | |
download | hardened-patchset-20130329.tar.gz hardened-patchset-20130329.tar.bz2 hardened-patchset-20130329.zip |
Grsec/PaX: 2.9.1-{2.6.32.60,3.2.42,3.8.5}-20130329201820130329
-rw-r--r-- | 2.6.32/0000_README | 2 | ||||
-rw-r--r-- | 2.6.32/4420_grsecurity-2.9.1-2.6.32.60-201303292014.patch (renamed from 2.6.32/4420_grsecurity-2.9.1-2.6.32.60-201303252031.patch) | 33 | ||||
-rw-r--r-- | 3.2.42/0000_README (renamed from 3.2.41/0000_README) | 6 | ||||
-rw-r--r-- | 3.2.42/1021_linux-3.2.22.patch (renamed from 3.2.41/1021_linux-3.2.22.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1022_linux-3.2.23.patch (renamed from 3.2.41/1022_linux-3.2.23.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1023_linux-3.2.24.patch (renamed from 3.2.41/1023_linux-3.2.24.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1024_linux-3.2.25.patch (renamed from 3.2.41/1024_linux-3.2.25.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1025_linux-3.2.26.patch (renamed from 3.2.41/1025_linux-3.2.26.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1026_linux-3.2.27.patch (renamed from 3.2.41/1026_linux-3.2.27.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1027_linux-3.2.28.patch (renamed from 3.2.41/1027_linux-3.2.28.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1028_linux-3.2.29.patch (renamed from 3.2.41/1028_linux-3.2.29.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1029_linux-3.2.30.patch (renamed from 3.2.41/1029_linux-3.2.30.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1030_linux-3.2.31.patch (renamed from 3.2.41/1030_linux-3.2.31.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1031_linux-3.2.32.patch (renamed from 3.2.41/1031_linux-3.2.32.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1032_linux-3.2.33.patch (renamed from 3.2.41/1032_linux-3.2.33.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1033_linux-3.2.34.patch (renamed from 3.2.41/1033_linux-3.2.34.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1034_linux-3.2.35.patch (renamed from 3.2.41/1034_linux-3.2.35.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1035_linux-3.2.36.patch (renamed from 3.2.41/1035_linux-3.2.36.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1036_linux-3.2.37.patch (renamed from 3.2.41/1036_linux-3.2.37.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1037_linux-3.2.38.patch (renamed from 3.2.41/1037_linux-3.2.38.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1038_linux-3.2.39.patch (renamed from 3.2.41/1038_linux-3.2.39.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1039_linux-3.2.40.patch (renamed from 3.2.41/1039_linux-3.2.40.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1040_linux-3.2.41.patch (renamed from 3.2.41/1040_linux-3.2.41.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/1041_linux-3.2.42.patch | 3602 | ||||
-rw-r--r-- | 3.2.42/4420_grsecurity-2.9.1-3.2.42-201303292017.patch (renamed from 3.2.41/4420_grsecurity-2.9.1-3.2.41-201303252031.patch) | 15121 | ||||
-rw-r--r-- | 3.2.42/4425_grsec_remove_EI_PAX.patch (renamed from 3.2.41/4425_grsec_remove_EI_PAX.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/4430_grsec-remove-localversion-grsec.patch (renamed from 3.2.41/4430_grsec-remove-localversion-grsec.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/4435_grsec-mute-warnings.patch (renamed from 3.2.41/4435_grsec-mute-warnings.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/4440_grsec-remove-protected-paths.patch (renamed from 3.2.41/4440_grsec-remove-protected-paths.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/4450_grsec-kconfig-default-gids.patch (renamed from 3.2.41/4450_grsec-kconfig-default-gids.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/4465_selinux-avc_audit-log-curr_ip.patch (renamed from 3.2.41/4465_selinux-avc_audit-log-curr_ip.patch) | 0 | ||||
-rw-r--r-- | 3.2.42/4470_disable-compat_vdso.patch (renamed from 3.2.41/4470_disable-compat_vdso.patch) | 0 | ||||
-rw-r--r-- | 3.8.4/1003_linux-3.8.4.patch | 2902 | ||||
-rw-r--r-- | 3.8.5/0000_README (renamed from 3.8.4/0000_README) | 6 | ||||
-rw-r--r-- | 3.8.5/1004_linux-3.8.5.patch | 3805 | ||||
-rw-r--r-- | 3.8.5/4420_grsecurity-2.9.1-3.8.5-201303292018.patch (renamed from 3.8.4/4420_grsecurity-2.9.1-3.8.4-201303252035.patch) | 940 | ||||
-rw-r--r-- | 3.8.5/4425_grsec_remove_EI_PAX.patch (renamed from 3.8.4/4425_grsec_remove_EI_PAX.patch) | 0 | ||||
-rw-r--r-- | 3.8.5/4430_grsec-remove-localversion-grsec.patch (renamed from 3.8.4/4430_grsec-remove-localversion-grsec.patch) | 0 | ||||
-rw-r--r-- | 3.8.5/4435_grsec-mute-warnings.patch (renamed from 3.8.4/4435_grsec-mute-warnings.patch) | 0 | ||||
-rw-r--r-- | 3.8.5/4440_grsec-remove-protected-paths.patch (renamed from 3.8.4/4440_grsec-remove-protected-paths.patch) | 0 | ||||
-rw-r--r-- | 3.8.5/4450_grsec-kconfig-default-gids.patch (renamed from 3.8.4/4450_grsec-kconfig-default-gids.patch) | 0 | ||||
-rw-r--r-- | 3.8.5/4465_selinux-avc_audit-log-curr_ip.patch (renamed from 3.8.4/4465_selinux-avc_audit-log-curr_ip.patch) | 0 | ||||
-rw-r--r-- | 3.8.5/4470_disable-compat_vdso.patch (renamed from 3.8.4/4470_disable-compat_vdso.patch) | 0 |
43 files changed, 19010 insertions, 7407 deletions
diff --git a/2.6.32/0000_README b/2.6.32/0000_README index ad0b750..7ca453d 100644 --- a/2.6.32/0000_README +++ b/2.6.32/0000_README @@ -34,7 +34,7 @@ Patch: 1059_linux-2.6.32.60.patch From: http://www.kernel.org Desc: Linux 2.6.32.59 -Patch: 4420_grsecurity-2.9.1-2.6.32.60-201303252031.patch +Patch: 4420_grsecurity-2.9.1-2.6.32.60-201303292014.patch From: http://www.grsecurity.net Desc: hardened-sources base patch from upstream grsecurity diff --git a/2.6.32/4420_grsecurity-2.9.1-2.6.32.60-201303252031.patch b/2.6.32/4420_grsecurity-2.9.1-2.6.32.60-201303292014.patch index 0b5fc75..095a480 100644 --- a/2.6.32/4420_grsecurity-2.9.1-2.6.32.60-201303252031.patch +++ b/2.6.32/4420_grsecurity-2.9.1-2.6.32.60-201303292014.patch @@ -10274,7 +10274,7 @@ index 4edd8eb..273579e 100644 CFI_ENDPROC diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c -index 016218c..47ccbdd 100644 +index 016218c..c5cd85d 100644 --- a/arch/x86/ia32/sys_ia32.c +++ b/arch/x86/ia32/sys_ia32.c @@ -69,8 +69,8 @@ asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low, @@ -10308,7 +10308,14 @@ index 016218c..47ccbdd 100644 set_fs(old_fs); if (put_compat_timespec(&t, interval)) return -EFAULT; -@@ -387,7 +387,7 @@ asmlinkage long sys32_rt_sigpending(compat_sigset_t __user *set, +@@ -381,13 +381,13 @@ asmlinkage long sys32_sched_rr_get_interval(compat_pid_t pid, + asmlinkage long sys32_rt_sigpending(compat_sigset_t __user *set, + compat_size_t sigsetsize) + { +- sigset_t s; ++ sigset_t s = { }; + compat_sigset_t s32; + int ret; mm_segment_t old_fs = get_fs(); set_fs(KERNEL_DS); @@ -81984,9 +81991,18 @@ index cfc3391..dcc083a 100644 (long long) lock->lk_offset, (long long) lock->lk_length); diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c -index 6d27757..d046ba1 100644 +index 6d27757..616507d 100644 --- a/fs/nfsd/nfs4xdr.c +++ b/fs/nfsd/nfs4xdr.c +@@ -268,7 +268,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval, + iattr->ia_valid |= ATTR_SIZE; + } + if (bmval[0] & FATTR4_WORD0_ACL) { +- int nace; ++ u32 nace; + struct nfs4_ace *ace; + + READ_BUF(4); len += 4; @@ -1751,6 +1751,8 @@ nfsd4_encode_fattr(struct svc_fh *fhp, struct svc_export *exp, struct nfsd4_compoundres *resp = rqstp->rq_resp; u32 minorversion = resp->cstate.minorversion; @@ -118201,7 +118217,7 @@ index e04c9f8..51bc18e 100644 + (rtt >> sctp_rto_alpha); } else { diff --git a/net/socket.c b/net/socket.c -index d449812..4ac08d3c 100644 +index d449812..709474b 100644 --- a/net/socket.c +++ b/net/socket.c @@ -87,6 +87,7 @@ @@ -118376,6 +118392,15 @@ index d449812..4ac08d3c 100644 err = -EFAULT; if (MSG_CMSG_COMPAT & flags) { if (get_compat_msghdr(&msg_sys, msg_compat)) +@@ -1987,7 +2062,7 @@ SYSCALL_DEFINE3(recvmsg, int, fd, struct msghdr __user *, msg, + int fput_needed; + + /* kernel mode address */ +- struct sockaddr_storage addr; ++ struct sockaddr_storage addr = { }; + + /* user mode address pointers */ + struct sockaddr __user *uaddr; @@ -2022,7 +2097,7 @@ SYSCALL_DEFINE3(recvmsg, int, fd, struct msghdr __user *, msg, * kernel msghdr to use the kernel address space) */ diff --git a/3.2.41/0000_README b/3.2.42/0000_README index e1de4b2..57b50e6 100644 --- a/3.2.41/0000_README +++ b/3.2.42/0000_README @@ -82,7 +82,11 @@ Patch: 1040_linux-3.2.41.patch From: http://www.kernel.org Desc: Linux 3.2.41 -Patch: 4420_grsecurity-2.9.1-3.2.41-201303252031.patch +Patch: 1041_linux-3.2.42.patch +From: http://www.kernel.org +Desc: Linux 3.2.42 + +Patch: 4420_grsecurity-2.9.1-3.2.42-201303292017.patch From: http://www.grsecurity.net Desc: hardened-sources base patch from upstream grsecurity diff --git a/3.2.41/1021_linux-3.2.22.patch b/3.2.42/1021_linux-3.2.22.patch index e6ad93a..e6ad93a 100644 --- a/3.2.41/1021_linux-3.2.22.patch +++ b/3.2.42/1021_linux-3.2.22.patch diff --git a/3.2.41/1022_linux-3.2.23.patch b/3.2.42/1022_linux-3.2.23.patch index 3d796d0..3d796d0 100644 --- a/3.2.41/1022_linux-3.2.23.patch +++ b/3.2.42/1022_linux-3.2.23.patch diff --git a/3.2.41/1023_linux-3.2.24.patch b/3.2.42/1023_linux-3.2.24.patch index 4692eb4..4692eb4 100644 --- a/3.2.41/1023_linux-3.2.24.patch +++ b/3.2.42/1023_linux-3.2.24.patch diff --git a/3.2.41/1024_linux-3.2.25.patch b/3.2.42/1024_linux-3.2.25.patch index e95c213..e95c213 100644 --- a/3.2.41/1024_linux-3.2.25.patch +++ b/3.2.42/1024_linux-3.2.25.patch diff --git a/3.2.41/1025_linux-3.2.26.patch b/3.2.42/1025_linux-3.2.26.patch index 44065b9..44065b9 100644 --- a/3.2.41/1025_linux-3.2.26.patch +++ b/3.2.42/1025_linux-3.2.26.patch diff --git a/3.2.41/1026_linux-3.2.27.patch b/3.2.42/1026_linux-3.2.27.patch index 5878eb4..5878eb4 100644 --- a/3.2.41/1026_linux-3.2.27.patch +++ b/3.2.42/1026_linux-3.2.27.patch diff --git a/3.2.41/1027_linux-3.2.28.patch b/3.2.42/1027_linux-3.2.28.patch index 4dbba4b..4dbba4b 100644 --- a/3.2.41/1027_linux-3.2.28.patch +++ b/3.2.42/1027_linux-3.2.28.patch diff --git a/3.2.41/1028_linux-3.2.29.patch b/3.2.42/1028_linux-3.2.29.patch index 3c65179..3c65179 100644 --- a/3.2.41/1028_linux-3.2.29.patch +++ b/3.2.42/1028_linux-3.2.29.patch diff --git a/3.2.41/1029_linux-3.2.30.patch b/3.2.42/1029_linux-3.2.30.patch index 86aea4b..86aea4b 100644 --- a/3.2.41/1029_linux-3.2.30.patch +++ b/3.2.42/1029_linux-3.2.30.patch diff --git a/3.2.41/1030_linux-3.2.31.patch b/3.2.42/1030_linux-3.2.31.patch index c6accf5..c6accf5 100644 --- a/3.2.41/1030_linux-3.2.31.patch +++ b/3.2.42/1030_linux-3.2.31.patch diff --git a/3.2.41/1031_linux-3.2.32.patch b/3.2.42/1031_linux-3.2.32.patch index 247fc0b..247fc0b 100644 --- a/3.2.41/1031_linux-3.2.32.patch +++ b/3.2.42/1031_linux-3.2.32.patch diff --git a/3.2.41/1032_linux-3.2.33.patch b/3.2.42/1032_linux-3.2.33.patch index c32fb75..c32fb75 100644 --- a/3.2.41/1032_linux-3.2.33.patch +++ b/3.2.42/1032_linux-3.2.33.patch diff --git a/3.2.41/1033_linux-3.2.34.patch b/3.2.42/1033_linux-3.2.34.patch index d647b38..d647b38 100644 --- a/3.2.41/1033_linux-3.2.34.patch +++ b/3.2.42/1033_linux-3.2.34.patch diff --git a/3.2.41/1034_linux-3.2.35.patch b/3.2.42/1034_linux-3.2.35.patch index 76a9c19..76a9c19 100644 --- a/3.2.41/1034_linux-3.2.35.patch +++ b/3.2.42/1034_linux-3.2.35.patch diff --git a/3.2.41/1035_linux-3.2.36.patch b/3.2.42/1035_linux-3.2.36.patch index 5d192a3..5d192a3 100644 --- a/3.2.41/1035_linux-3.2.36.patch +++ b/3.2.42/1035_linux-3.2.36.patch diff --git a/3.2.41/1036_linux-3.2.37.patch b/3.2.42/1036_linux-3.2.37.patch index ad13251..ad13251 100644 --- a/3.2.41/1036_linux-3.2.37.patch +++ b/3.2.42/1036_linux-3.2.37.patch diff --git a/3.2.41/1037_linux-3.2.38.patch b/3.2.42/1037_linux-3.2.38.patch index a3c106f..a3c106f 100644 --- a/3.2.41/1037_linux-3.2.38.patch +++ b/3.2.42/1037_linux-3.2.38.patch diff --git a/3.2.41/1038_linux-3.2.39.patch b/3.2.42/1038_linux-3.2.39.patch index 5639e92..5639e92 100644 --- a/3.2.41/1038_linux-3.2.39.patch +++ b/3.2.42/1038_linux-3.2.39.patch diff --git a/3.2.41/1039_linux-3.2.40.patch b/3.2.42/1039_linux-3.2.40.patch index f26b39c..f26b39c 100644 --- a/3.2.41/1039_linux-3.2.40.patch +++ b/3.2.42/1039_linux-3.2.40.patch diff --git a/3.2.41/1040_linux-3.2.41.patch b/3.2.42/1040_linux-3.2.41.patch index 0d27fcb..0d27fcb 100644 --- a/3.2.41/1040_linux-3.2.41.patch +++ b/3.2.42/1040_linux-3.2.41.patch diff --git a/3.2.42/1041_linux-3.2.42.patch b/3.2.42/1041_linux-3.2.42.patch new file mode 100644 index 0000000..77a08ed --- /dev/null +++ b/3.2.42/1041_linux-3.2.42.patch @@ -0,0 +1,3602 @@ +diff --git a/Makefile b/Makefile +index 95e6220..d44f009 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,6 +1,6 @@ + VERSION = 3 + PATCHLEVEL = 2 +-SUBLEVEL = 41 ++SUBLEVEL = 42 + EXTRAVERSION = + NAME = Saber-toothed Squirrel + +diff --git a/arch/arm/include/asm/signal.h b/arch/arm/include/asm/signal.h +index 43ba0fb..559ee24 100644 +--- a/arch/arm/include/asm/signal.h ++++ b/arch/arm/include/asm/signal.h +@@ -127,6 +127,7 @@ struct sigaction { + __sigrestore_t sa_restorer; + sigset_t sa_mask; /* mask last for extensibility */ + }; ++#define __ARCH_HAS_SA_RESTORER + + struct k_sigaction { + struct sigaction sa; +diff --git a/arch/avr32/include/asm/signal.h b/arch/avr32/include/asm/signal.h +index 8790dfc..e6952a0 100644 +--- a/arch/avr32/include/asm/signal.h ++++ b/arch/avr32/include/asm/signal.h +@@ -128,6 +128,7 @@ struct sigaction { + __sigrestore_t sa_restorer; + sigset_t sa_mask; /* mask last for extensibility */ + }; ++#define __ARCH_HAS_SA_RESTORER + + struct k_sigaction { + struct sigaction sa; +diff --git a/arch/cris/include/asm/signal.h b/arch/cris/include/asm/signal.h +index ea6af9a..057fea2 100644 +--- a/arch/cris/include/asm/signal.h ++++ b/arch/cris/include/asm/signal.h +@@ -122,6 +122,7 @@ struct sigaction { + void (*sa_restorer)(void); + sigset_t sa_mask; /* mask last for extensibility */ + }; ++#define __ARCH_HAS_SA_RESTORER + + struct k_sigaction { + struct sigaction sa; +diff --git a/arch/h8300/include/asm/signal.h b/arch/h8300/include/asm/signal.h +index fd8b66e..8695707 100644 +--- a/arch/h8300/include/asm/signal.h ++++ b/arch/h8300/include/asm/signal.h +@@ -121,6 +121,7 @@ struct sigaction { + void (*sa_restorer)(void); + sigset_t sa_mask; /* mask last for extensibility */ + }; ++#define __ARCH_HAS_SA_RESTORER + + struct k_sigaction { + struct sigaction sa; +diff --git a/arch/m32r/include/asm/signal.h b/arch/m32r/include/asm/signal.h +index b2eeb0d..802d561 100644 +--- a/arch/m32r/include/asm/signal.h ++++ b/arch/m32r/include/asm/signal.h +@@ -123,6 +123,7 @@ struct sigaction { + __sigrestore_t sa_restorer; + sigset_t sa_mask; /* mask last for extensibility */ + }; ++#define __ARCH_HAS_SA_RESTORER + + struct k_sigaction { + struct sigaction sa; +diff --git a/arch/m68k/include/asm/signal.h b/arch/m68k/include/asm/signal.h +index 93fe83e..a20ae63 100644 +--- a/arch/m68k/include/asm/signal.h ++++ b/arch/m68k/include/asm/signal.h +@@ -119,6 +119,7 @@ struct sigaction { + __sigrestore_t sa_restorer; + sigset_t sa_mask; /* mask last for extensibility */ + }; ++#define __ARCH_HAS_SA_RESTORER + + struct k_sigaction { + struct sigaction sa; +diff --git a/arch/mn10300/include/asm/signal.h b/arch/mn10300/include/asm/signal.h +index 1865d72..eecaa76 100644 +--- a/arch/mn10300/include/asm/signal.h ++++ b/arch/mn10300/include/asm/signal.h +@@ -131,6 +131,7 @@ struct sigaction { + __sigrestore_t sa_restorer; + sigset_t sa_mask; /* mask last for extensibility */ + }; ++#define __ARCH_HAS_SA_RESTORER + + struct k_sigaction { + struct sigaction sa; +diff --git a/arch/powerpc/include/asm/signal.h b/arch/powerpc/include/asm/signal.h +index 3eb13be..ec63a0a 100644 +--- a/arch/powerpc/include/asm/signal.h ++++ b/arch/powerpc/include/asm/signal.h +@@ -109,6 +109,7 @@ struct sigaction { + __sigrestore_t sa_restorer; + sigset_t sa_mask; /* mask last for extensibility */ + }; ++#define __ARCH_HAS_SA_RESTORER + + struct k_sigaction { + struct sigaction sa; +diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c +index edae5bb..b92b756 100644 +--- a/arch/powerpc/kernel/cputable.c ++++ b/arch/powerpc/kernel/cputable.c +@@ -268,7 +268,7 @@ static struct cpu_spec __initdata cpu_specs[] = { + .cpu_features = CPU_FTRS_PPC970, + .cpu_user_features = COMMON_USER_POWER4 | + PPC_FEATURE_HAS_ALTIVEC_COMP, +- .mmu_features = MMU_FTR_HPTE_TABLE, ++ .mmu_features = MMU_FTRS_PPC970, + .icache_bsize = 128, + .dcache_bsize = 128, + .num_pmcs = 8, +diff --git a/arch/s390/include/asm/signal.h b/arch/s390/include/asm/signal.h +index cdf5cb2..c872626 100644 +--- a/arch/s390/include/asm/signal.h ++++ b/arch/s390/include/asm/signal.h +@@ -131,6 +131,7 @@ struct sigaction { + void (*sa_restorer)(void); + sigset_t sa_mask; /* mask last for extensibility */ + }; ++#define __ARCH_HAS_SA_RESTORER + + struct k_sigaction { + struct sigaction sa; +diff --git a/arch/s390/include/asm/tlbflush.h b/arch/s390/include/asm/tlbflush.h +index 1d8648c..8743029 100644 +--- a/arch/s390/include/asm/tlbflush.h ++++ b/arch/s390/include/asm/tlbflush.h +@@ -74,8 +74,6 @@ static inline void __tlb_flush_idte(unsigned long asce) + + static inline void __tlb_flush_mm(struct mm_struct * mm) + { +- if (unlikely(cpumask_empty(mm_cpumask(mm)))) +- return; + /* + * If the machine has IDTE we prefer to do a per mm flush + * on all cpus instead of doing a local flush if the mm +diff --git a/arch/sparc/include/asm/signal.h b/arch/sparc/include/asm/signal.h +index e49b828..4929431 100644 +--- a/arch/sparc/include/asm/signal.h ++++ b/arch/sparc/include/asm/signal.h +@@ -191,6 +191,7 @@ struct __old_sigaction { + unsigned long sa_flags; + void (*sa_restorer)(void); /* not used by Linux/SPARC yet */ + }; ++#define __ARCH_HAS_SA_RESTORER + + typedef struct sigaltstack { + void __user *ss_sp; +diff --git a/arch/x86/include/asm/signal.h b/arch/x86/include/asm/signal.h +index 598457c..6cbc795 100644 +--- a/arch/x86/include/asm/signal.h ++++ b/arch/x86/include/asm/signal.h +@@ -125,6 +125,8 @@ typedef unsigned long sigset_t; + extern void do_notify_resume(struct pt_regs *, void *, __u32); + # endif /* __KERNEL__ */ + ++#define __ARCH_HAS_SA_RESTORER ++ + #ifdef __i386__ + # ifdef __KERNEL__ + struct old_sigaction { +diff --git a/arch/x86/kernel/cpu/perf_event_intel_ds.c b/arch/x86/kernel/cpu/perf_event_intel_ds.c +index 73da6b6..2d4e76b 100644 +--- a/arch/x86/kernel/cpu/perf_event_intel_ds.c ++++ b/arch/x86/kernel/cpu/perf_event_intel_ds.c +@@ -736,3 +736,13 @@ void intel_ds_init(void) + } + } + } ++ ++void perf_restore_debug_store(void) ++{ ++ struct debug_store *ds = __this_cpu_read(cpu_hw_events.ds); ++ ++ if (!x86_pmu.bts && !x86_pmu.pebs) ++ return; ++ ++ wrmsrl(MSR_IA32_DS_AREA, (unsigned long)ds); ++} +diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c +index b7c2849..554b7b5 100644 +--- a/arch/x86/lib/usercopy_64.c ++++ b/arch/x86/lib/usercopy_64.c +@@ -169,10 +169,10 @@ copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest) + char c; + unsigned zero_len; + +- for (; len; --len) { ++ for (; len; --len, to++) { + if (__get_user_nocheck(c, from++, sizeof(char))) + break; +- if (__put_user_nocheck(c, to++, sizeof(char))) ++ if (__put_user_nocheck(c, to, sizeof(char))) + break; + } + +diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c +index f10c0af..43c9f6a 100644 +--- a/arch/x86/power/cpu.c ++++ b/arch/x86/power/cpu.c +@@ -11,6 +11,7 @@ + #include <linux/suspend.h> + #include <linux/export.h> + #include <linux/smp.h> ++#include <linux/perf_event.h> + + #include <asm/pgtable.h> + #include <asm/proto.h> +@@ -225,6 +226,7 @@ static void __restore_processor_state(struct saved_context *ctxt) + + do_fpu_end(); + mtrr_bp_restore(); ++ perf_restore_debug_store(); + } + + /* Needed by apm.c */ +diff --git a/arch/xtensa/include/asm/signal.h b/arch/xtensa/include/asm/signal.h +index 633ba73..75edf8a 100644 +--- a/arch/xtensa/include/asm/signal.h ++++ b/arch/xtensa/include/asm/signal.h +@@ -133,6 +133,7 @@ struct sigaction { + void (*sa_restorer)(void); + sigset_t sa_mask; /* mask last for extensibility */ + }; ++#define __ARCH_HAS_SA_RESTORER + + struct k_sigaction { + struct sigaction sa; +diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig +index efba163..bf4d6e2 100644 +--- a/drivers/firmware/Kconfig ++++ b/drivers/firmware/Kconfig +@@ -53,6 +53,24 @@ config EFI_VARS + Subsequent efibootmgr releases may be found at: + <http://linux.dell.com/efibootmgr> + ++config EFI_VARS_PSTORE ++ bool "Register efivars backend for pstore" ++ depends on EFI_VARS && PSTORE ++ default y ++ help ++ Say Y here to enable use efivars as a backend to pstore. This ++ will allow writing console messages, crash dumps, or anything ++ else supported by pstore to EFI variables. ++ ++config EFI_VARS_PSTORE_DEFAULT_DISABLE ++ bool "Disable using efivars as a pstore backend by default" ++ depends on EFI_VARS_PSTORE ++ default n ++ help ++ Saying Y here will disable the use of efivars as a storage ++ backend for pstore by default. This setting can be overridden ++ using the efivars module's pstore_disable parameter. ++ + config EFI_PCDP + bool "Console device selection via EFI PCDP or HCDP table" + depends on ACPI && EFI && IA64 +diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c +index 81346ae..b15c0aa 100644 +--- a/drivers/firmware/efivars.c ++++ b/drivers/firmware/efivars.c +@@ -92,6 +92,11 @@ MODULE_VERSION(EFIVARS_VERSION); + + #define DUMP_NAME_LEN 52 + ++static bool efivars_pstore_disable = ++ IS_ENABLED(CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE); ++ ++module_param_named(pstore_disable, efivars_pstore_disable, bool, 0644); ++ + /* + * The maximum size of VariableName + Data = 1024 + * Therefore, it's reasonable to save that much +@@ -122,6 +127,8 @@ struct efivar_attribute { + ssize_t (*store)(struct efivar_entry *entry, const char *buf, size_t count); + }; + ++static struct efivars __efivars; ++ + #define PSTORE_EFI_ATTRIBUTES \ + (EFI_VARIABLE_NON_VOLATILE | \ + EFI_VARIABLE_BOOTSERVICE_ACCESS | \ +@@ -146,6 +153,14 @@ efivar_create_sysfs_entry(struct efivars *efivars, + efi_char16_t *variable_name, + efi_guid_t *vendor_guid); + ++/* ++ * Prototype for workqueue functions updating sysfs entry ++ */ ++ ++static void efivar_update_sysfs_entries(struct work_struct *); ++static DECLARE_WORK(efivar_work, efivar_update_sysfs_entries); ++static bool efivar_wq_enabled = true; ++ + /* Return the number of unicode characters in data */ + static unsigned long + utf16_strnlen(efi_char16_t *s, size_t maxlength) +@@ -659,8 +674,6 @@ static struct kobj_type efivar_ktype = { + .default_attrs = def_attrs, + }; + +-static struct pstore_info efi_pstore_info; +- + static inline void + efivar_unregister(struct efivar_entry *var) + { +@@ -697,7 +710,7 @@ static int efi_status_to_err(efi_status_t status) + return err; + } + +-#ifdef CONFIG_PSTORE ++#ifdef CONFIG_EFI_VARS_PSTORE + + static int efi_pstore_open(struct pstore_info *psi) + { +@@ -774,19 +787,21 @@ static int efi_pstore_write(enum pstore_type_id type, u64 *id, + + spin_lock_irqsave(&efivars->lock, flags); + +- /* +- * Check if there is a space enough to log. +- * size: a size of logging data +- * DUMP_NAME_LEN * 2: a maximum size of variable name +- */ ++ if (size) { ++ /* ++ * Check if there is a space enough to log. ++ * size: a size of logging data ++ * DUMP_NAME_LEN * 2: a maximum size of variable name ++ */ + +- status = check_var_size_locked(efivars, PSTORE_EFI_ATTRIBUTES, +- size + DUMP_NAME_LEN * 2); ++ status = check_var_size_locked(efivars, PSTORE_EFI_ATTRIBUTES, ++ size + DUMP_NAME_LEN * 2); + +- if (status) { +- spin_unlock_irqrestore(&efivars->lock, flags); +- *id = part; +- return -ENOSPC; ++ if (status) { ++ spin_unlock_irqrestore(&efivars->lock, flags); ++ *id = part; ++ return -ENOSPC; ++ } + } + + for (i = 0; i < DUMP_NAME_LEN; i++) +@@ -830,11 +845,8 @@ static int efi_pstore_write(enum pstore_type_id type, u64 *id, + if (found) + efivar_unregister(found); + +- if (size) +- ret = efivar_create_sysfs_entry(efivars, +- utf16_strsize(efi_name, +- DUMP_NAME_LEN * 2), +- efi_name, &vendor); ++ if (efivar_wq_enabled) ++ schedule_work(&efivar_work); + + *id = part; + return ret; +@@ -847,36 +859,6 @@ static int efi_pstore_erase(enum pstore_type_id type, u64 id, + + return 0; + } +-#else +-static int efi_pstore_open(struct pstore_info *psi) +-{ +- return 0; +-} +- +-static int efi_pstore_close(struct pstore_info *psi) +-{ +- return 0; +-} +- +-static ssize_t efi_pstore_read(u64 *id, enum pstore_type_id *type, +- struct timespec *timespec, +- char **buf, struct pstore_info *psi) +-{ +- return -1; +-} +- +-static int efi_pstore_write(enum pstore_type_id type, u64 *id, +- unsigned int part, size_t size, struct pstore_info *psi) +-{ +- return 0; +-} +- +-static int efi_pstore_erase(enum pstore_type_id type, u64 id, +- struct pstore_info *psi) +-{ +- return 0; +-} +-#endif + + static struct pstore_info efi_pstore_info = { + .owner = THIS_MODULE, +@@ -888,6 +870,24 @@ static struct pstore_info efi_pstore_info = { + .erase = efi_pstore_erase, + }; + ++static void efivar_pstore_register(struct efivars *efivars) ++{ ++ efivars->efi_pstore_info = efi_pstore_info; ++ efivars->efi_pstore_info.buf = kmalloc(4096, GFP_KERNEL); ++ if (efivars->efi_pstore_info.buf) { ++ efivars->efi_pstore_info.bufsize = 1024; ++ efivars->efi_pstore_info.data = efivars; ++ spin_lock_init(&efivars->efi_pstore_info.buf_lock); ++ pstore_register(&efivars->efi_pstore_info); ++ } ++} ++#else ++static void efivar_pstore_register(struct efivars *efivars) ++{ ++ return; ++} ++#endif ++ + static ssize_t efivar_create(struct file *filp, struct kobject *kobj, + struct bin_attribute *bin_attr, + char *buf, loff_t pos, size_t count) +@@ -1025,6 +1025,103 @@ static ssize_t efivar_delete(struct file *filp, struct kobject *kobj, + return count; + } + ++static bool variable_is_present(efi_char16_t *variable_name, efi_guid_t *vendor) ++{ ++ struct efivar_entry *entry, *n; ++ struct efivars *efivars = &__efivars; ++ unsigned long strsize1, strsize2; ++ bool found = false; ++ ++ strsize1 = utf16_strsize(variable_name, 1024); ++ list_for_each_entry_safe(entry, n, &efivars->list, list) { ++ strsize2 = utf16_strsize(entry->var.VariableName, 1024); ++ if (strsize1 == strsize2 && ++ !memcmp(variable_name, &(entry->var.VariableName), ++ strsize2) && ++ !efi_guidcmp(entry->var.VendorGuid, ++ *vendor)) { ++ found = true; ++ break; ++ } ++ } ++ return found; ++} ++ ++/* ++ * Returns the size of variable_name, in bytes, including the ++ * terminating NULL character, or variable_name_size if no NULL ++ * character is found among the first variable_name_size bytes. ++ */ ++static unsigned long var_name_strnsize(efi_char16_t *variable_name, ++ unsigned long variable_name_size) ++{ ++ unsigned long len; ++ efi_char16_t c; ++ ++ /* ++ * The variable name is, by definition, a NULL-terminated ++ * string, so make absolutely sure that variable_name_size is ++ * the value we expect it to be. If not, return the real size. ++ */ ++ for (len = 2; len <= variable_name_size; len += sizeof(c)) { ++ c = variable_name[(len / sizeof(c)) - 1]; ++ if (!c) ++ break; ++ } ++ ++ return min(len, variable_name_size); ++} ++ ++static void efivar_update_sysfs_entries(struct work_struct *work) ++{ ++ struct efivars *efivars = &__efivars; ++ efi_guid_t vendor; ++ efi_char16_t *variable_name; ++ unsigned long variable_name_size = 1024; ++ efi_status_t status = EFI_NOT_FOUND; ++ bool found; ++ ++ /* Add new sysfs entries */ ++ while (1) { ++ variable_name = kzalloc(variable_name_size, GFP_KERNEL); ++ if (!variable_name) { ++ pr_err("efivars: Memory allocation failed.\n"); ++ return; ++ } ++ ++ spin_lock_irq(&efivars->lock); ++ found = false; ++ while (1) { ++ variable_name_size = 1024; ++ status = efivars->ops->get_next_variable( ++ &variable_name_size, ++ variable_name, ++ &vendor); ++ if (status != EFI_SUCCESS) { ++ break; ++ } else { ++ if (!variable_is_present(variable_name, ++ &vendor)) { ++ found = true; ++ break; ++ } ++ } ++ } ++ spin_unlock_irq(&efivars->lock); ++ ++ if (!found) { ++ kfree(variable_name); ++ break; ++ } else { ++ variable_name_size = var_name_strnsize(variable_name, ++ variable_name_size); ++ efivar_create_sysfs_entry(efivars, ++ variable_name_size, ++ variable_name, &vendor); ++ } ++ } ++} ++ + /* + * Let's not leave out systab information that snuck into + * the efivars driver +@@ -1212,6 +1309,35 @@ void unregister_efivars(struct efivars *efivars) + } + EXPORT_SYMBOL_GPL(unregister_efivars); + ++/* ++ * Print a warning when duplicate EFI variables are encountered and ++ * disable the sysfs workqueue since the firmware is buggy. ++ */ ++static void dup_variable_bug(efi_char16_t *s16, efi_guid_t *vendor_guid, ++ unsigned long len16) ++{ ++ size_t i, len8 = len16 / sizeof(efi_char16_t); ++ char *s8; ++ ++ /* ++ * Disable the workqueue since the algorithm it uses for ++ * detecting new variables won't work with this buggy ++ * implementation of GetNextVariableName(). ++ */ ++ efivar_wq_enabled = false; ++ ++ s8 = kzalloc(len8, GFP_KERNEL); ++ if (!s8) ++ return; ++ ++ for (i = 0; i < len8; i++) ++ s8[i] = s16[i]; ++ ++ printk(KERN_WARNING "efivars: duplicate variable: %s-%pUl\n", ++ s8, vendor_guid); ++ kfree(s8); ++} ++ + int register_efivars(struct efivars *efivars, + const struct efivar_operations *ops, + struct kobject *parent_kobj) +@@ -1252,6 +1378,24 @@ int register_efivars(struct efivars *efivars, + &vendor_guid); + switch (status) { + case EFI_SUCCESS: ++ variable_name_size = var_name_strnsize(variable_name, ++ variable_name_size); ++ ++ /* ++ * Some firmware implementations return the ++ * same variable name on multiple calls to ++ * get_next_variable(). Terminate the loop ++ * immediately as there is no guarantee that ++ * we'll ever see a different variable name, ++ * and may end up looping here forever. ++ */ ++ if (variable_is_present(variable_name, &vendor_guid)) { ++ dup_variable_bug(variable_name, &vendor_guid, ++ variable_name_size); ++ status = EFI_NOT_FOUND; ++ break; ++ } ++ + efivar_create_sysfs_entry(efivars, + variable_name_size, + variable_name, +@@ -1271,15 +1415,8 @@ int register_efivars(struct efivars *efivars, + if (error) + unregister_efivars(efivars); + +- efivars->efi_pstore_info = efi_pstore_info; +- +- efivars->efi_pstore_info.buf = kmalloc(4096, GFP_KERNEL); +- if (efivars->efi_pstore_info.buf) { +- efivars->efi_pstore_info.bufsize = 1024; +- efivars->efi_pstore_info.data = efivars; +- spin_lock_init(&efivars->efi_pstore_info.buf_lock); +- pstore_register(&efivars->efi_pstore_info); +- } ++ if (!efivars_pstore_disable) ++ efivar_pstore_register(efivars); + + out: + kfree(variable_name); +@@ -1288,7 +1425,6 @@ out: + } + EXPORT_SYMBOL_GPL(register_efivars); + +-static struct efivars __efivars; + static struct efivar_operations ops; + + /* +@@ -1346,6 +1482,8 @@ err_put: + static void __exit + efivars_exit(void) + { ++ cancel_work_sync(&efivar_work); ++ + if (efi_enabled(EFI_RUNTIME_SERVICES)) { + unregister_efivars(&__efivars); + kobject_put(efi_kobj); +diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c +index 9080eb7..7211f67 100644 +--- a/drivers/gpu/drm/drm_edid.c ++++ b/drivers/gpu/drm/drm_edid.c +@@ -852,7 +852,7 @@ static struct drm_display_mode *drm_mode_detailed(struct drm_device *dev, + unsigned vblank = (pt->vactive_vblank_hi & 0xf) << 8 | pt->vblank_lo; + unsigned hsync_offset = (pt->hsync_vsync_offset_pulse_width_hi & 0xc0) << 2 | pt->hsync_offset_lo; + unsigned hsync_pulse_width = (pt->hsync_vsync_offset_pulse_width_hi & 0x30) << 4 | pt->hsync_pulse_width_lo; +- unsigned vsync_offset = (pt->hsync_vsync_offset_pulse_width_hi & 0xc) >> 2 | pt->vsync_offset_pulse_width_lo >> 4; ++ unsigned vsync_offset = (pt->hsync_vsync_offset_pulse_width_hi & 0xc) << 2 | pt->vsync_offset_pulse_width_lo >> 4; + unsigned vsync_pulse_width = (pt->hsync_vsync_offset_pulse_width_hi & 0x3) << 4 | (pt->vsync_offset_pulse_width_lo & 0xf); + + /* ignore tiny modes */ +@@ -933,6 +933,7 @@ set_size: + } + + mode->type = DRM_MODE_TYPE_DRIVER; ++ mode->vrefresh = drm_mode_vrefresh(mode); + drm_mode_set_name(mode); + + return mode; +diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c +index 5620192..9b4e5c6 100644 +--- a/drivers/gpu/drm/i915/i915_debugfs.c ++++ b/drivers/gpu/drm/i915/i915_debugfs.c +@@ -122,7 +122,7 @@ static const char *cache_level_str(int type) + static void + describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj) + { +- seq_printf(m, "%p: %s%s %8zd %04x %04x %d %d%s%s%s", ++ seq_printf(m, "%pK: %s%s %8zd %04x %04x %d %d%s%s%s", + &obj->base, + get_pin_flag(obj), + get_tiling_flag(obj), +diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c +index 878b989..b1bb734 100644 +--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c ++++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c +@@ -907,15 +907,20 @@ validate_exec_list(struct drm_i915_gem_exec_object2 *exec, + int count) + { + int i; ++ int relocs_total = 0; ++ int relocs_max = INT_MAX / sizeof(struct drm_i915_gem_relocation_entry); + + for (i = 0; i < count; i++) { + char __user *ptr = (char __user *)(uintptr_t)exec[i].relocs_ptr; + int length; /* limited by fault_in_pages_readable() */ + +- /* First check for malicious input causing overflow */ +- if (exec[i].relocation_count > +- INT_MAX / sizeof(struct drm_i915_gem_relocation_entry)) ++ /* First check for malicious input causing overflow in ++ * the worst case where we need to allocate the entire ++ * relocation tree as a single array. ++ */ ++ if (exec[i].relocation_count > relocs_max - relocs_total) + return -EINVAL; ++ relocs_total += exec[i].relocation_count; + + length = exec[i].relocation_count * + sizeof(struct drm_i915_gem_relocation_entry); +diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c +index 4591582..17961df 100644 +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -8059,7 +8059,7 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv) + I915_WRITE(GEN6_RC_SLEEP, 0); + I915_WRITE(GEN6_RC1e_THRESHOLD, 1000); + I915_WRITE(GEN6_RC6_THRESHOLD, 50000); +- I915_WRITE(GEN6_RC6p_THRESHOLD, 100000); ++ I915_WRITE(GEN6_RC6p_THRESHOLD, 150000); + I915_WRITE(GEN6_RC6pp_THRESHOLD, 64000); /* unused */ + + if (intel_enable_rc6(dev_priv->dev)) +diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c +index 289140b..cffb007 100644 +--- a/drivers/gpu/drm/i915/intel_opregion.c ++++ b/drivers/gpu/drm/i915/intel_opregion.c +@@ -419,6 +419,25 @@ blind_set: + goto end; + } + ++static void intel_setup_cadls(struct drm_device *dev) ++{ ++ struct drm_i915_private *dev_priv = dev->dev_private; ++ struct intel_opregion *opregion = &dev_priv->opregion; ++ int i = 0; ++ u32 disp_id; ++ ++ /* Initialize the CADL field by duplicating the DIDL values. ++ * Technically, this is not always correct as display outputs may exist, ++ * but not active. This initialization is necessary for some Clevo ++ * laptops that check this field before processing the brightness and ++ * display switching hotkeys. Just like DIDL, CADL is NULL-terminated if ++ * there are less than eight devices. */ ++ do { ++ disp_id = ioread32(&opregion->acpi->didl[i]); ++ iowrite32(disp_id, &opregion->acpi->cadl[i]); ++ } while (++i < 8 && disp_id != 0); ++} ++ + void intel_opregion_init(struct drm_device *dev) + { + struct drm_i915_private *dev_priv = dev->dev_private; +@@ -428,8 +447,10 @@ void intel_opregion_init(struct drm_device *dev) + return; + + if (opregion->acpi) { +- if (drm_core_check_feature(dev, DRIVER_MODESET)) ++ if (drm_core_check_feature(dev, DRIVER_MODESET)) { + intel_didl_outputs(dev); ++ intel_setup_cadls(dev); ++ } + + /* Notify BIOS we are ready to handle ACPI video ext notifs. + * Right now, all the events are handled by the ACPI video module. +diff --git a/drivers/gpu/drm/radeon/radeon_benchmark.c b/drivers/gpu/drm/radeon/radeon_benchmark.c +index 17e1a9b..441de38 100644 +--- a/drivers/gpu/drm/radeon/radeon_benchmark.c ++++ b/drivers/gpu/drm/radeon/radeon_benchmark.c +@@ -139,13 +139,15 @@ static void radeon_benchmark_move(struct radeon_device *rdev, unsigned size, + sdomain, ddomain, "dma"); + } + +- time = radeon_benchmark_do_move(rdev, size, saddr, daddr, +- RADEON_BENCHMARK_COPY_BLIT, n); +- if (time < 0) +- goto out_cleanup; +- if (time > 0) +- radeon_benchmark_log_results(n, size, time, +- sdomain, ddomain, "blit"); ++ if (rdev->asic->copy_blit) { ++ time = radeon_benchmark_do_move(rdev, size, saddr, daddr, ++ RADEON_BENCHMARK_COPY_BLIT, n); ++ if (time < 0) ++ goto out_cleanup; ++ if (time > 0) ++ radeon_benchmark_log_results(n, size, time, ++ sdomain, ddomain, "blit"); ++ } + + out_cleanup: + if (sobj) { +diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c +index 3d7885a..3056ea4 100644 +--- a/drivers/i2c/busses/i2c-tegra.c ++++ b/drivers/i2c/busses/i2c-tegra.c +@@ -341,7 +341,11 @@ static int tegra_i2c_init(struct tegra_i2c_dev *i2c_dev) + u32 val; + int err = 0; + +- clk_enable(i2c_dev->clk); ++ err = clk_enable(i2c_dev->clk); ++ if (err < 0) { ++ dev_err(i2c_dev->dev, "Clock enable failed %d\n", err); ++ return err; ++ } + + tegra_periph_reset_assert(i2c_dev->clk); + udelay(2); +@@ -536,7 +540,12 @@ static int tegra_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], + if (i2c_dev->is_suspended) + return -EBUSY; + +- clk_enable(i2c_dev->clk); ++ ret = clk_enable(i2c_dev->clk); ++ if (ret < 0) { ++ dev_err(i2c_dev->dev, "Clock enable failed %d\n", ret); ++ return ret; ++ } ++ + for (i = 0; i < num; i++) { + int stop = (i == (num - 1)) ? 1 : 0; + ret = tegra_i2c_xfer_msg(i2c_dev, &msgs[i], stop); +diff --git a/drivers/md/dm-thin.c b/drivers/md/dm-thin.c +index da4d299..2c9dd2c 100644 +--- a/drivers/md/dm-thin.c ++++ b/drivers/md/dm-thin.c +@@ -2212,7 +2212,7 @@ static struct target_type pool_target = { + .name = "thin-pool", + .features = DM_TARGET_SINGLETON | DM_TARGET_ALWAYS_WRITEABLE | + DM_TARGET_IMMUTABLE, +- .version = {1, 0, 1}, ++ .version = {1, 0, 2}, + .module = THIS_MODULE, + .ctr = pool_ctr, + .dtr = pool_dtr, +@@ -2428,7 +2428,7 @@ static void thin_io_hints(struct dm_target *ti, struct queue_limits *limits) + + static struct target_type thin_target = { + .name = "thin", +- .version = {1, 0, 1}, ++ .version = {1, 0, 2}, + .module = THIS_MODULE, + .ctr = thin_ctr, + .dtr = thin_dtr, +diff --git a/drivers/md/persistent-data/dm-btree-remove.c b/drivers/md/persistent-data/dm-btree-remove.c +index e6cdfde..1de0f5f 100644 +--- a/drivers/md/persistent-data/dm-btree-remove.c ++++ b/drivers/md/persistent-data/dm-btree-remove.c +@@ -139,15 +139,8 @@ struct child { + struct btree_node *n; + }; + +-static struct dm_btree_value_type le64_type = { +- .context = NULL, +- .size = sizeof(__le64), +- .inc = NULL, +- .dec = NULL, +- .equal = NULL +-}; +- +-static int init_child(struct dm_btree_info *info, struct btree_node *parent, ++static int init_child(struct dm_btree_info *info, struct dm_btree_value_type *vt, ++ struct btree_node *parent, + unsigned index, struct child *result) + { + int r, inc; +@@ -164,7 +157,7 @@ static int init_child(struct dm_btree_info *info, struct btree_node *parent, + result->n = dm_block_data(result->block); + + if (inc) +- inc_children(info->tm, result->n, &le64_type); ++ inc_children(info->tm, result->n, vt); + + *((__le64 *) value_ptr(parent, index, sizeof(__le64))) = + cpu_to_le64(dm_block_location(result->block)); +@@ -236,7 +229,7 @@ static void __rebalance2(struct dm_btree_info *info, struct btree_node *parent, + } + + static int rebalance2(struct shadow_spine *s, struct dm_btree_info *info, +- unsigned left_index) ++ struct dm_btree_value_type *vt, unsigned left_index) + { + int r; + struct btree_node *parent; +@@ -244,11 +237,11 @@ static int rebalance2(struct shadow_spine *s, struct dm_btree_info *info, + + parent = dm_block_data(shadow_current(s)); + +- r = init_child(info, parent, left_index, &left); ++ r = init_child(info, vt, parent, left_index, &left); + if (r) + return r; + +- r = init_child(info, parent, left_index + 1, &right); ++ r = init_child(info, vt, parent, left_index + 1, &right); + if (r) { + exit_child(info, &left); + return r; +@@ -368,7 +361,7 @@ static void __rebalance3(struct dm_btree_info *info, struct btree_node *parent, + } + + static int rebalance3(struct shadow_spine *s, struct dm_btree_info *info, +- unsigned left_index) ++ struct dm_btree_value_type *vt, unsigned left_index) + { + int r; + struct btree_node *parent = dm_block_data(shadow_current(s)); +@@ -377,17 +370,17 @@ static int rebalance3(struct shadow_spine *s, struct dm_btree_info *info, + /* + * FIXME: fill out an array? + */ +- r = init_child(info, parent, left_index, &left); ++ r = init_child(info, vt, parent, left_index, &left); + if (r) + return r; + +- r = init_child(info, parent, left_index + 1, ¢er); ++ r = init_child(info, vt, parent, left_index + 1, ¢er); + if (r) { + exit_child(info, &left); + return r; + } + +- r = init_child(info, parent, left_index + 2, &right); ++ r = init_child(info, vt, parent, left_index + 2, &right); + if (r) { + exit_child(info, &left); + exit_child(info, ¢er); +@@ -434,7 +427,8 @@ static int get_nr_entries(struct dm_transaction_manager *tm, + } + + static int rebalance_children(struct shadow_spine *s, +- struct dm_btree_info *info, uint64_t key) ++ struct dm_btree_info *info, ++ struct dm_btree_value_type *vt, uint64_t key) + { + int i, r, has_left_sibling, has_right_sibling; + uint32_t child_entries; +@@ -472,13 +466,13 @@ static int rebalance_children(struct shadow_spine *s, + has_right_sibling = i < (le32_to_cpu(n->header.nr_entries) - 1); + + if (!has_left_sibling) +- r = rebalance2(s, info, i); ++ r = rebalance2(s, info, vt, i); + + else if (!has_right_sibling) +- r = rebalance2(s, info, i - 1); ++ r = rebalance2(s, info, vt, i - 1); + + else +- r = rebalance3(s, info, i - 1); ++ r = rebalance3(s, info, vt, i - 1); + + return r; + } +@@ -529,7 +523,7 @@ static int remove_raw(struct shadow_spine *s, struct dm_btree_info *info, + if (le32_to_cpu(n->header.flags) & LEAF_NODE) + return do_leaf(n, key, index); + +- r = rebalance_children(s, info, key); ++ r = rebalance_children(s, info, vt, key); + if (r) + break; + +@@ -550,6 +544,14 @@ static int remove_raw(struct shadow_spine *s, struct dm_btree_info *info, + return r; + } + ++static struct dm_btree_value_type le64_type = { ++ .context = NULL, ++ .size = sizeof(__le64), ++ .inc = NULL, ++ .dec = NULL, ++ .equal = NULL ++}; ++ + int dm_btree_remove(struct dm_btree_info *info, dm_block_t root, + uint64_t *keys, dm_block_t *new_root) + { +diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c +index 202ae34..63e3c47 100644 +--- a/drivers/net/bonding/bond_main.c ++++ b/drivers/net/bonding/bond_main.c +@@ -1715,6 +1715,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) + + bond_compute_features(bond); + ++ bond_update_speed_duplex(new_slave); ++ + read_lock(&bond->lock); + + new_slave->last_arp_rx = jiffies; +@@ -1758,8 +1760,6 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) + new_slave->link = BOND_LINK_DOWN; + } + +- bond_update_speed_duplex(new_slave); +- + if (USES_PRIMARY(bond->params.mode) && bond->params.primary[0]) { + /* if there is a primary slave, remember it */ + if (strcmp(bond->params.primary, new_slave->dev->name) == 0) { +@@ -2437,8 +2437,6 @@ static void bond_miimon_commit(struct bonding *bond) + bond_set_backup_slave(slave); + } + +- bond_update_speed_duplex(slave); +- + pr_info("%s: link status definitely up for interface %s, %u Mbps %s duplex.\n", + bond->dev->name, slave->dev->name, + slave->speed, slave->duplex ? "full" : "half"); +diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c +index a6611f1..5d5a05f 100644 +--- a/drivers/net/ethernet/sfc/efx.c ++++ b/drivers/net/ethernet/sfc/efx.c +@@ -650,25 +650,30 @@ static void efx_fini_channels(struct efx_nic *efx) + struct efx_channel *channel; + struct efx_tx_queue *tx_queue; + struct efx_rx_queue *rx_queue; ++ struct pci_dev *dev = efx->pci_dev; + int rc; + + EFX_ASSERT_RESET_SERIALISED(efx); + BUG_ON(efx->port_enabled); + +- rc = efx_nic_flush_queues(efx); +- if (rc && EFX_WORKAROUND_7803(efx)) { +- /* Schedule a reset to recover from the flush failure. The +- * descriptor caches reference memory we're about to free, +- * but falcon_reconfigure_mac_wrapper() won't reconnect +- * the MACs because of the pending reset. */ +- netif_err(efx, drv, efx->net_dev, +- "Resetting to recover from flush failure\n"); +- efx_schedule_reset(efx, RESET_TYPE_ALL); +- } else if (rc) { +- netif_err(efx, drv, efx->net_dev, "failed to flush queues\n"); +- } else { +- netif_dbg(efx, drv, efx->net_dev, +- "successfully flushed all queues\n"); ++ /* Only perform flush if dma is enabled */ ++ if (dev->is_busmaster) { ++ rc = efx_nic_flush_queues(efx); ++ ++ if (rc && EFX_WORKAROUND_7803(efx)) { ++ /* Schedule a reset to recover from the flush failure. The ++ * descriptor caches reference memory we're about to free, ++ * but falcon_reconfigure_mac_wrapper() won't reconnect ++ * the MACs because of the pending reset. */ ++ netif_err(efx, drv, efx->net_dev, ++ "Resetting to recover from flush failure\n"); ++ efx_schedule_reset(efx, RESET_TYPE_ALL); ++ } else if (rc) { ++ netif_err(efx, drv, efx->net_dev, "failed to flush queues\n"); ++ } else { ++ netif_dbg(efx, drv, efx->net_dev, ++ "successfully flushed all queues\n"); ++ } + } + + efx_for_each_channel(channel, efx) { +@@ -714,6 +719,7 @@ efx_realloc_channels(struct efx_nic *efx, u32 rxq_entries, u32 txq_entries) + unsigned i; + int rc; + ++ efx_device_detach_sync(efx); + efx_stop_all(efx); + efx_fini_channels(efx); + +@@ -757,6 +763,7 @@ out: + + efx_init_channels(efx); + efx_start_all(efx); ++ netif_device_attach(efx->net_dev); + return rc; + + rollback: +@@ -1525,8 +1532,12 @@ static void efx_stop_all(struct efx_nic *efx) + /* Flush efx_mac_work(), refill_workqueue, monitor_work */ + efx_flush_all(efx); + +- /* Stop the kernel transmit interface late, so the watchdog +- * timer isn't ticking over the flush */ ++ /* Stop the kernel transmit interface. This is only valid if ++ * the device is stopped or detached; otherwise the watchdog ++ * may fire immediately. ++ */ ++ WARN_ON(netif_running(efx->net_dev) && ++ netif_device_present(efx->net_dev)); + if (efx_dev_registered(efx)) { + netif_tx_stop_all_queues(efx->net_dev); + netif_tx_lock_bh(efx->net_dev); +@@ -1827,10 +1838,11 @@ static int efx_change_mtu(struct net_device *net_dev, int new_mtu) + if (new_mtu > EFX_MAX_MTU) + return -EINVAL; + +- efx_stop_all(efx); +- + netif_dbg(efx, drv, efx->net_dev, "changing MTU to %d\n", new_mtu); + ++ efx_device_detach_sync(efx); ++ efx_stop_all(efx); ++ + efx_fini_channels(efx); + + mutex_lock(&efx->mac_lock); +@@ -1843,6 +1855,7 @@ static int efx_change_mtu(struct net_device *net_dev, int new_mtu) + efx_init_channels(efx); + + efx_start_all(efx); ++ netif_device_attach(efx->net_dev); + return rc; + } + +@@ -2132,7 +2145,7 @@ int efx_reset(struct efx_nic *efx, enum reset_type method) + netif_info(efx, drv, efx->net_dev, "resetting (%s)\n", + RESET_TYPE(method)); + +- netif_device_detach(efx->net_dev); ++ efx_device_detach_sync(efx); + efx_reset_down(efx, method); + + rc = efx->type->reset(efx, method); +@@ -2580,7 +2593,7 @@ static int efx_pm_freeze(struct device *dev) + + efx->state = STATE_FINI; + +- netif_device_detach(efx->net_dev); ++ efx_device_detach_sync(efx); + + efx_stop_all(efx); + efx_fini_channels(efx); +diff --git a/drivers/net/ethernet/sfc/efx.h b/drivers/net/ethernet/sfc/efx.h +index 1355245..9668d29 100644 +--- a/drivers/net/ethernet/sfc/efx.h ++++ b/drivers/net/ethernet/sfc/efx.h +@@ -149,4 +149,17 @@ extern void efx_link_status_changed(struct efx_nic *efx); + extern void efx_link_set_advertising(struct efx_nic *efx, u32); + extern void efx_link_set_wanted_fc(struct efx_nic *efx, u8); + ++static inline void efx_device_detach_sync(struct efx_nic *efx) ++{ ++ struct net_device *dev = efx->net_dev; ++ ++ /* Lock/freeze all TX queues so that we can be sure the ++ * TX scheduler is stopped when we're done and before ++ * netif_device_present() becomes false. ++ */ ++ netif_tx_lock_bh(dev); ++ netif_device_detach(dev); ++ netif_tx_unlock_bh(dev); ++} ++ + #endif /* EFX_EFX_H */ +diff --git a/drivers/net/ethernet/sfc/falcon.c b/drivers/net/ethernet/sfc/falcon.c +index 97b606b..26cd6c0 100644 +--- a/drivers/net/ethernet/sfc/falcon.c ++++ b/drivers/net/ethernet/sfc/falcon.c +@@ -1762,6 +1762,7 @@ const struct efx_nic_type falcon_a1_nic_type = { + .remove_port = falcon_remove_port, + .handle_global_event = falcon_handle_global_event, + .prepare_flush = falcon_prepare_flush, ++ .finish_flush = efx_port_dummy_op_void, + .update_stats = falcon_update_nic_stats, + .start_stats = falcon_start_nic_stats, + .stop_stats = falcon_stop_nic_stats, +@@ -1804,6 +1805,7 @@ const struct efx_nic_type falcon_b0_nic_type = { + .remove_port = falcon_remove_port, + .handle_global_event = falcon_handle_global_event, + .prepare_flush = falcon_prepare_flush, ++ .finish_flush = efx_port_dummy_op_void, + .update_stats = falcon_update_nic_stats, + .start_stats = falcon_start_nic_stats, + .stop_stats = falcon_stop_nic_stats, +diff --git a/drivers/net/ethernet/sfc/mcdi.c b/drivers/net/ethernet/sfc/mcdi.c +index 81a4253..c1000ce 100644 +--- a/drivers/net/ethernet/sfc/mcdi.c ++++ b/drivers/net/ethernet/sfc/mcdi.c +@@ -30,7 +30,7 @@ + #define REBOOT_FLAG_PORT0 0x3f8 + #define REBOOT_FLAG_PORT1 0x3fc + +-#define MCDI_RPC_TIMEOUT 10 /*seconds */ ++#define MCDI_RPC_TIMEOUT (10 * HZ) + + #define MCDI_PDU(efx) \ + (efx_port_num(efx) ? CMD_PDU_PORT1 : CMD_PDU_PORT0) +@@ -120,7 +120,7 @@ static void efx_mcdi_copyout(struct efx_nic *efx, u8 *outbuf, size_t outlen) + static int efx_mcdi_poll(struct efx_nic *efx) + { + struct efx_mcdi_iface *mcdi = efx_mcdi(efx); +- unsigned int time, finish; ++ unsigned long time, finish; + unsigned int respseq, respcmd, error; + unsigned int pdu = FR_CZ_MC_TREG_SMEM + MCDI_PDU(efx); + unsigned int rc, spins; +@@ -136,7 +136,7 @@ static int efx_mcdi_poll(struct efx_nic *efx) + * and poll once a jiffy (approximately) + */ + spins = TICK_USEC; +- finish = get_seconds() + MCDI_RPC_TIMEOUT; ++ finish = jiffies + MCDI_RPC_TIMEOUT; + + while (1) { + if (spins != 0) { +@@ -146,7 +146,7 @@ static int efx_mcdi_poll(struct efx_nic *efx) + schedule_timeout_uninterruptible(1); + } + +- time = get_seconds(); ++ time = jiffies; + + rmb(); + efx_readd(efx, ®, pdu); +@@ -158,7 +158,7 @@ static int efx_mcdi_poll(struct efx_nic *efx) + EFX_DWORD_FIELD(reg, MCDI_HEADER_RESPONSE)) + break; + +- if (time >= finish) ++ if (time_after(time, finish)) + return -ETIMEDOUT; + } + +@@ -250,7 +250,7 @@ static int efx_mcdi_await_completion(struct efx_nic *efx) + if (wait_event_timeout( + mcdi->wq, + atomic_read(&mcdi->state) == MCDI_STATE_COMPLETED, +- msecs_to_jiffies(MCDI_RPC_TIMEOUT * 1000)) == 0) ++ MCDI_RPC_TIMEOUT) == 0) + return -ETIMEDOUT; + + /* Check if efx_mcdi_set_mode() switched us back to polled completions. +@@ -666,9 +666,8 @@ int efx_mcdi_get_board_cfg(struct efx_nic *efx, u8 *mac_address, + u16 *fw_subtype_list) + { + uint8_t outbuf[MC_CMD_GET_BOARD_CFG_OUT_LEN]; +- size_t outlen; ++ size_t outlen, offset, i; + int port_num = efx_port_num(efx); +- int offset; + int rc; + + BUILD_BUG_ON(MC_CMD_GET_BOARD_CFG_IN_LEN != 0); +@@ -688,10 +687,16 @@ int efx_mcdi_get_board_cfg(struct efx_nic *efx, u8 *mac_address, + : MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT0_OFST; + if (mac_address) + memcpy(mac_address, outbuf + offset, ETH_ALEN); +- if (fw_subtype_list) +- memcpy(fw_subtype_list, +- outbuf + MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_OFST, +- MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_LEN); ++ if (fw_subtype_list) { ++ offset = MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_OFST; ++ for (i = 0; ++ i < MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_LEN / 2; ++ i++) { ++ fw_subtype_list[i] = ++ le16_to_cpup((__le16 *)(outbuf + offset)); ++ offset += 2; ++ } ++ } + + return 0; + +diff --git a/drivers/net/ethernet/sfc/mcdi.h b/drivers/net/ethernet/sfc/mcdi.h +index aced2a7..b61eea0 100644 +--- a/drivers/net/ethernet/sfc/mcdi.h ++++ b/drivers/net/ethernet/sfc/mcdi.h +@@ -126,5 +126,6 @@ extern int efx_mcdi_wol_filter_set_magic(struct efx_nic *efx, + extern int efx_mcdi_wol_filter_get_magic(struct efx_nic *efx, int *id_out); + extern int efx_mcdi_wol_filter_remove(struct efx_nic *efx, int id); + extern int efx_mcdi_wol_filter_reset(struct efx_nic *efx); ++extern int efx_mcdi_set_mac(struct efx_nic *efx); + + #endif /* EFX_MCDI_H */ +diff --git a/drivers/net/ethernet/sfc/mcdi_mac.c b/drivers/net/ethernet/sfc/mcdi_mac.c +index 50c2077..da269d7 100644 +--- a/drivers/net/ethernet/sfc/mcdi_mac.c ++++ b/drivers/net/ethernet/sfc/mcdi_mac.c +@@ -13,7 +13,7 @@ + #include "mcdi.h" + #include "mcdi_pcol.h" + +-static int efx_mcdi_set_mac(struct efx_nic *efx) ++int efx_mcdi_set_mac(struct efx_nic *efx) + { + u32 reject, fcntl; + u8 cmdbytes[MC_CMD_SET_MAC_IN_LEN]; +@@ -45,6 +45,8 @@ static int efx_mcdi_set_mac(struct efx_nic *efx) + } + if (efx->wanted_fc & EFX_FC_AUTO) + fcntl = MC_CMD_FCNTL_AUTO; ++ if (efx->fc_disable) ++ fcntl = MC_CMD_FCNTL_OFF; + + MCDI_SET_DWORD(cmdbytes, SET_MAC_IN_FCNTL, fcntl); + +diff --git a/drivers/net/ethernet/sfc/net_driver.h b/drivers/net/ethernet/sfc/net_driver.h +index b8e251a..8bcb8fd 100644 +--- a/drivers/net/ethernet/sfc/net_driver.h ++++ b/drivers/net/ethernet/sfc/net_driver.h +@@ -213,6 +213,7 @@ struct efx_tx_queue { + * If both this and page are %NULL, the buffer slot is currently free. + * @page: The associated page buffer, if any. + * If both this and skb are %NULL, the buffer slot is currently free. ++ * @page_offset: Offset within page. Valid iff @flags & %EFX_RX_BUF_PAGE. + * @len: Buffer length, in bytes. + * @is_page: Indicates if @page is valid. If false, @skb is valid. + */ +@@ -222,7 +223,8 @@ struct efx_rx_buffer { + struct sk_buff *skb; + struct page *page; + } u; +- unsigned int len; ++ u16 page_offset; ++ u16 len; + bool is_page; + }; + +@@ -689,6 +691,9 @@ struct efx_filter_state; + * @promiscuous: Promiscuous flag. Protected by netif_tx_lock. + * @multicast_hash: Multicast hash table + * @wanted_fc: Wanted flow control flags ++ * @fc_disable: When non-zero flow control is disabled. Typically used to ++ * ensure that network back pressure doesn't delay dma queue flushes. ++ * Serialised by the rtnl lock. + * @mac_work: Work item for changing MAC promiscuity and multicast hash + * @loopback_mode: Loopback status + * @loopback_modes: Supported loopback mode bitmask +@@ -782,6 +787,7 @@ struct efx_nic { + bool promiscuous; + union efx_multicast_hash multicast_hash; + u8 wanted_fc; ++ unsigned fc_disable; + + atomic_t rx_reset; + enum efx_loopback_mode loopback_mode; +@@ -835,6 +841,7 @@ static inline unsigned int efx_port_num(struct efx_nic *efx) + * @remove_port: Free resources allocated by probe_port() + * @handle_global_event: Handle a "global" event (may be %NULL) + * @prepare_flush: Prepare the hardware for flushing the DMA queues ++ * @finish_flush: Clean up after flushing the DMA queues + * @update_stats: Update statistics not provided by event handling + * @start_stats: Start the regular fetching of statistics + * @stop_stats: Stop the regular fetching of statistics +@@ -880,6 +887,7 @@ struct efx_nic_type { + void (*remove_port)(struct efx_nic *efx); + bool (*handle_global_event)(struct efx_channel *channel, efx_qword_t *); + void (*prepare_flush)(struct efx_nic *efx); ++ void (*finish_flush)(struct efx_nic *efx); + void (*update_stats)(struct efx_nic *efx); + void (*start_stats)(struct efx_nic *efx); + void (*stop_stats)(struct efx_nic *efx); +diff --git a/drivers/net/ethernet/sfc/nic.c b/drivers/net/ethernet/sfc/nic.c +index 3edfbaf..2e9ca10 100644 +--- a/drivers/net/ethernet/sfc/nic.c ++++ b/drivers/net/ethernet/sfc/nic.c +@@ -371,7 +371,8 @@ efx_may_push_tx_desc(struct efx_tx_queue *tx_queue, unsigned int write_count) + return false; + + tx_queue->empty_read_count = 0; +- return ((empty_read_count ^ write_count) & ~EFX_EMPTY_COUNT_VALID) == 0; ++ return ((empty_read_count ^ write_count) & ~EFX_EMPTY_COUNT_VALID) == 0 ++ && tx_queue->write_count - write_count == 1; + } + + /* For each entry inserted into the software descriptor ring, create a +@@ -1261,13 +1262,27 @@ int efx_nic_flush_queues(struct efx_nic *efx) + } + efx_for_each_possible_channel_tx_queue(tx_queue, channel) { + if (tx_queue->initialised && +- tx_queue->flushed != FLUSH_DONE) +- ++tx_pending; ++ tx_queue->flushed != FLUSH_DONE) { ++ efx_oword_t txd_ptr_tbl; ++ ++ efx_reado_table(efx, &txd_ptr_tbl, ++ FR_BZ_TX_DESC_PTR_TBL, ++ tx_queue->queue); ++ if (EFX_OWORD_FIELD(txd_ptr_tbl, ++ FRF_AZ_TX_DESCQ_FLUSH) || ++ EFX_OWORD_FIELD(txd_ptr_tbl, ++ FRF_AZ_TX_DESCQ_EN)) ++ ++tx_pending; ++ else ++ tx_queue->flushed = FLUSH_DONE; ++ } + } + } + +- if (rx_pending == 0 && tx_pending == 0) ++ if (rx_pending == 0 && tx_pending == 0) { ++ efx->type->finish_flush(efx); + return 0; ++ } + + msleep(EFX_FLUSH_INTERVAL); + efx_poll_flush_events(efx); +@@ -1293,6 +1308,7 @@ int efx_nic_flush_queues(struct efx_nic *efx) + } + } + ++ efx->type->finish_flush(efx); + return -ETIMEDOUT; + } + +diff --git a/drivers/net/ethernet/sfc/nic.h b/drivers/net/ethernet/sfc/nic.h +index 66ece48..58302a2 100644 +--- a/drivers/net/ethernet/sfc/nic.h ++++ b/drivers/net/ethernet/sfc/nic.h +@@ -210,6 +210,8 @@ extern void falcon_irq_ack_a1(struct efx_nic *efx); + + /* Global Resources */ + extern int efx_nic_flush_queues(struct efx_nic *efx); ++extern void siena_prepare_flush(struct efx_nic *efx); ++extern void siena_finish_flush(struct efx_nic *efx); + extern void falcon_start_nic_stats(struct efx_nic *efx); + extern void falcon_stop_nic_stats(struct efx_nic *efx); + extern void falcon_setup_xaui(struct efx_nic *efx); +diff --git a/drivers/net/ethernet/sfc/rx.c b/drivers/net/ethernet/sfc/rx.c +index 5ef4cc0..9ce8665 100644 +--- a/drivers/net/ethernet/sfc/rx.c ++++ b/drivers/net/ethernet/sfc/rx.c +@@ -95,11 +95,7 @@ static unsigned int rx_refill_limit = 95; + static inline unsigned int efx_rx_buf_offset(struct efx_nic *efx, + struct efx_rx_buffer *buf) + { +- /* Offset is always within one page, so we don't need to consider +- * the page order. +- */ +- return (((__force unsigned long) buf->dma_addr & (PAGE_SIZE - 1)) + +- efx->type->rx_buffer_hash_size); ++ return buf->page_offset + efx->type->rx_buffer_hash_size; + } + static inline unsigned int efx_rx_buf_size(struct efx_nic *efx) + { +@@ -194,6 +190,7 @@ static int efx_init_rx_buffers_page(struct efx_rx_queue *rx_queue) + struct efx_rx_buffer *rx_buf; + struct page *page; + void *page_addr; ++ unsigned int page_offset; + struct efx_rx_page_state *state; + dma_addr_t dma_addr; + unsigned index, count; +@@ -220,12 +217,14 @@ static int efx_init_rx_buffers_page(struct efx_rx_queue *rx_queue) + + page_addr += sizeof(struct efx_rx_page_state); + dma_addr += sizeof(struct efx_rx_page_state); ++ page_offset = sizeof(struct efx_rx_page_state); + + split: + index = rx_queue->added_count & rx_queue->ptr_mask; + rx_buf = efx_rx_buffer(rx_queue, index); + rx_buf->dma_addr = dma_addr + EFX_PAGE_IP_ALIGN; + rx_buf->u.page = page; ++ rx_buf->page_offset = page_offset + EFX_PAGE_IP_ALIGN; + rx_buf->len = efx->rx_buffer_len - EFX_PAGE_IP_ALIGN; + rx_buf->is_page = true; + ++rx_queue->added_count; +@@ -237,6 +236,7 @@ static int efx_init_rx_buffers_page(struct efx_rx_queue *rx_queue) + get_page(page); + dma_addr += (PAGE_SIZE >> 1); + page_addr += (PAGE_SIZE >> 1); ++ page_offset += (PAGE_SIZE >> 1); + ++count; + goto split; + } +@@ -246,7 +246,8 @@ static int efx_init_rx_buffers_page(struct efx_rx_queue *rx_queue) + } + + static void efx_unmap_rx_buffer(struct efx_nic *efx, +- struct efx_rx_buffer *rx_buf) ++ struct efx_rx_buffer *rx_buf, ++ unsigned int used_len) + { + if (rx_buf->is_page && rx_buf->u.page) { + struct efx_rx_page_state *state; +@@ -257,6 +258,10 @@ static void efx_unmap_rx_buffer(struct efx_nic *efx, + state->dma_addr, + efx_rx_buf_size(efx), + PCI_DMA_FROMDEVICE); ++ } else if (used_len) { ++ dma_sync_single_for_cpu(&efx->pci_dev->dev, ++ rx_buf->dma_addr, used_len, ++ DMA_FROM_DEVICE); + } + } else if (!rx_buf->is_page && rx_buf->u.skb) { + pci_unmap_single(efx->pci_dev, rx_buf->dma_addr, +@@ -279,7 +284,7 @@ static void efx_free_rx_buffer(struct efx_nic *efx, + static void efx_fini_rx_buffer(struct efx_rx_queue *rx_queue, + struct efx_rx_buffer *rx_buf) + { +- efx_unmap_rx_buffer(rx_queue->efx, rx_buf); ++ efx_unmap_rx_buffer(rx_queue->efx, rx_buf, 0); + efx_free_rx_buffer(rx_queue->efx, rx_buf); + } + +@@ -550,10 +555,10 @@ void efx_rx_packet(struct efx_rx_queue *rx_queue, unsigned int index, + goto out; + } + +- /* Release card resources - assumes all RX buffers consumed in-order +- * per RX queue ++ /* Release and/or sync DMA mapping - assumes all RX buffers ++ * consumed in-order per RX queue + */ +- efx_unmap_rx_buffer(efx, rx_buf); ++ efx_unmap_rx_buffer(efx, rx_buf, len); + + /* Prefetch nice and early so data will (hopefully) be in cache by + * the time we look at it. +diff --git a/drivers/net/ethernet/sfc/selftest.c b/drivers/net/ethernet/sfc/selftest.c +index 822f6c2..4907885 100644 +--- a/drivers/net/ethernet/sfc/selftest.c ++++ b/drivers/net/ethernet/sfc/selftest.c +@@ -698,7 +698,7 @@ int efx_selftest(struct efx_nic *efx, struct efx_self_tests *tests, + /* Detach the device so the kernel doesn't transmit during the + * loopback test and the watchdog timeout doesn't fire. + */ +- netif_device_detach(efx->net_dev); ++ efx_device_detach_sync(efx); + + mutex_lock(&efx->mac_lock); + if (efx->loopback_modes) { +diff --git a/drivers/net/ethernet/sfc/siena.c b/drivers/net/ethernet/sfc/siena.c +index cc2549c..c58b973 100644 +--- a/drivers/net/ethernet/sfc/siena.c ++++ b/drivers/net/ethernet/sfc/siena.c +@@ -137,6 +137,18 @@ static void siena_remove_port(struct efx_nic *efx) + efx_nic_free_buffer(efx, &efx->stats_buffer); + } + ++void siena_prepare_flush(struct efx_nic *efx) ++{ ++ if (efx->fc_disable++ == 0) ++ efx_mcdi_set_mac(efx); ++} ++ ++void siena_finish_flush(struct efx_nic *efx) ++{ ++ if (--efx->fc_disable == 0) ++ efx_mcdi_set_mac(efx); ++} ++ + static const struct efx_nic_register_test siena_register_tests[] = { + { FR_AZ_ADR_REGION, + EFX_OWORD32(0x0003FFFF, 0x0003FFFF, 0x0003FFFF, 0x0003FFFF) }, +@@ -624,7 +636,8 @@ const struct efx_nic_type siena_a0_nic_type = { + .reset = siena_reset_hw, + .probe_port = siena_probe_port, + .remove_port = siena_remove_port, +- .prepare_flush = efx_port_dummy_op_void, ++ .prepare_flush = siena_prepare_flush, ++ .finish_flush = siena_finish_flush, + .update_stats = siena_update_nic_stats, + .start_stats = siena_start_nic_stats, + .stop_stats = siena_stop_nic_stats, +diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c +index 97f342e..544ac06 100644 +--- a/drivers/net/macvlan.c ++++ b/drivers/net/macvlan.c +@@ -585,6 +585,7 @@ void macvlan_common_setup(struct net_device *dev) + ether_setup(dev); + + dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING); ++ dev->priv_flags |= IFF_UNICAST_FLT; + dev->netdev_ops = &macvlan_netdev_ops; + dev->destructor = free_netdev; + dev->header_ops = &macvlan_hard_header_ops, +diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c +index 01b104e..bff6908 100644 +--- a/drivers/net/netconsole.c ++++ b/drivers/net/netconsole.c +@@ -630,6 +630,7 @@ static int netconsole_netdev_event(struct notifier_block *this, + goto done; + + spin_lock_irqsave(&target_list_lock, flags); ++restart: + list_for_each_entry(nt, &target_list, list) { + netconsole_target_get(nt); + if (nt->np.dev == dev) { +@@ -642,20 +643,17 @@ static int netconsole_netdev_event(struct notifier_block *this, + case NETDEV_UNREGISTER: + /* + * rtnl_lock already held ++ * we might sleep in __netpoll_cleanup() + */ +- if (nt->np.dev) { +- spin_unlock_irqrestore( +- &target_list_lock, +- flags); +- __netpoll_cleanup(&nt->np); +- spin_lock_irqsave(&target_list_lock, +- flags); +- dev_put(nt->np.dev); +- nt->np.dev = NULL; +- } ++ spin_unlock_irqrestore(&target_list_lock, flags); ++ __netpoll_cleanup(&nt->np); ++ spin_lock_irqsave(&target_list_lock, flags); ++ dev_put(nt->np.dev); ++ nt->np.dev = NULL; + nt->enabled = 0; + stopped = true; +- break; ++ netconsole_target_put(nt); ++ goto restart; + } + } + netconsole_target_put(nt); +diff --git a/drivers/net/tun.c b/drivers/net/tun.c +index a12c9bf..f4c5de6 100644 +--- a/drivers/net/tun.c ++++ b/drivers/net/tun.c +@@ -417,6 +417,8 @@ static netdev_tx_t tun_net_xmit(struct sk_buff *skb, struct net_device *dev) + * for indefinite time. */ + skb_orphan(skb); + ++ nf_reset(skb); ++ + /* Enqueue packet */ + skb_queue_tail(&tun->socket.sk->sk_receive_queue, skb); + +diff --git a/drivers/net/wireless/mwifiex/join.c b/drivers/net/wireless/mwifiex/join.c +index 62b4c29..d48dfb7 100644 +--- a/drivers/net/wireless/mwifiex/join.c ++++ b/drivers/net/wireless/mwifiex/join.c +@@ -1062,10 +1062,9 @@ mwifiex_cmd_802_11_ad_hoc_join(struct mwifiex_private *priv, + adhoc_join->bss_descriptor.bssid, + adhoc_join->bss_descriptor.ssid); + +- for (i = 0; bss_desc->supported_rates[i] && +- i < MWIFIEX_SUPPORTED_RATES; +- i++) +- ; ++ for (i = 0; i < MWIFIEX_SUPPORTED_RATES && ++ bss_desc->supported_rates[i]; i++) ++ ; + rates_size = i; + + /* Copy Data Rates from the Rates recorded in scan response */ +diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c b/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c +index 814c05d..d3920da 100644 +--- a/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c ++++ b/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c +@@ -1557,74 +1557,57 @@ void rtl92cu_card_disable(struct ieee80211_hw *hw) + + void rtl92cu_set_check_bssid(struct ieee80211_hw *hw, bool check_bssid) + { +- /* dummy routine needed for callback from rtl_op_configure_filter() */ +-} +- +-/*========================================================================== */ +- +-static void _rtl92cu_set_check_bssid(struct ieee80211_hw *hw, +- enum nl80211_iftype type) +-{ + struct rtl_priv *rtlpriv = rtl_priv(hw); +- u32 reg_rcr = rtl_read_dword(rtlpriv, REG_RCR); + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); +- struct rtl_phy *rtlphy = &(rtlpriv->phy); +- u8 filterout_non_associated_bssid = false; ++ u32 reg_rcr = rtl_read_dword(rtlpriv, REG_RCR); + +- switch (type) { +- case NL80211_IFTYPE_ADHOC: +- case NL80211_IFTYPE_STATION: +- filterout_non_associated_bssid = true; +- break; +- case NL80211_IFTYPE_UNSPECIFIED: +- case NL80211_IFTYPE_AP: +- default: +- break; +- } +- if (filterout_non_associated_bssid) { ++ if (rtlpriv->psc.rfpwr_state != ERFON) ++ return; ++ ++ if (check_bssid) { ++ u8 tmp; + if (IS_NORMAL_CHIP(rtlhal->version)) { +- switch (rtlphy->current_io_type) { +- case IO_CMD_RESUME_DM_BY_SCAN: +- reg_rcr |= (RCR_CBSSID_DATA | RCR_CBSSID_BCN); +- rtlpriv->cfg->ops->set_hw_reg(hw, +- HW_VAR_RCR, (u8 *)(®_rcr)); +- /* enable update TSF */ +- _rtl92cu_set_bcn_ctrl_reg(hw, 0, BIT(4)); +- break; +- case IO_CMD_PAUSE_DM_BY_SCAN: +- reg_rcr &= ~(RCR_CBSSID_DATA | RCR_CBSSID_BCN); +- rtlpriv->cfg->ops->set_hw_reg(hw, +- HW_VAR_RCR, (u8 *)(®_rcr)); +- /* disable update TSF */ +- _rtl92cu_set_bcn_ctrl_reg(hw, BIT(4), 0); +- break; +- } ++ reg_rcr |= (RCR_CBSSID_DATA | RCR_CBSSID_BCN); ++ tmp = BIT(4); + } else { +- reg_rcr |= (RCR_CBSSID); +- rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, +- (u8 *)(®_rcr)); +- _rtl92cu_set_bcn_ctrl_reg(hw, 0, (BIT(4)|BIT(5))); ++ reg_rcr |= RCR_CBSSID; ++ tmp = BIT(4) | BIT(5); + } +- } else if (filterout_non_associated_bssid == false) { ++ rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, ++ (u8 *) (®_rcr)); ++ _rtl92cu_set_bcn_ctrl_reg(hw, 0, tmp); ++ } else { ++ u8 tmp; + if (IS_NORMAL_CHIP(rtlhal->version)) { +- reg_rcr &= (~(RCR_CBSSID_DATA | RCR_CBSSID_BCN)); +- rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, +- (u8 *)(®_rcr)); +- _rtl92cu_set_bcn_ctrl_reg(hw, BIT(4), 0); ++ reg_rcr &= ~(RCR_CBSSID_DATA | RCR_CBSSID_BCN); ++ tmp = BIT(4); + } else { +- reg_rcr &= (~RCR_CBSSID); +- rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, +- (u8 *)(®_rcr)); +- _rtl92cu_set_bcn_ctrl_reg(hw, (BIT(4)|BIT(5)), 0); ++ reg_rcr &= ~RCR_CBSSID; ++ tmp = BIT(4) | BIT(5); + } ++ reg_rcr &= (~(RCR_CBSSID_DATA | RCR_CBSSID_BCN)); ++ rtlpriv->cfg->ops->set_hw_reg(hw, ++ HW_VAR_RCR, (u8 *) (®_rcr)); ++ _rtl92cu_set_bcn_ctrl_reg(hw, tmp, 0); + } + } + ++/*========================================================================== */ ++ + int rtl92cu_set_network_type(struct ieee80211_hw *hw, enum nl80211_iftype type) + { ++ struct rtl_priv *rtlpriv = rtl_priv(hw); ++ + if (_rtl92cu_set_media_status(hw, type)) + return -EOPNOTSUPP; +- _rtl92cu_set_check_bssid(hw, type); ++ ++ if (rtlpriv->mac80211.link_state == MAC80211_LINKED) { ++ if (type != NL80211_IFTYPE_AP) ++ rtl92cu_set_check_bssid(hw, true); ++ } else { ++ rtl92cu_set_check_bssid(hw, false); ++ } ++ + return 0; + } + +@@ -2238,8 +2221,6 @@ void rtl92cu_update_hal_rate_table(struct ieee80211_hw *hw, + (shortgi_rate << 4) | (shortgi_rate); + } + rtl_write_dword(rtlpriv, REG_ARFR0 + ratr_index * 4, ratr_value); +- RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, ("%x\n", rtl_read_dword(rtlpriv, +- REG_ARFR0))); + } + + void rtl92cu_update_hal_rate_mask(struct ieee80211_hw *hw, u8 rssi_level) +diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c +index e18604b..d19b879 100644 +--- a/drivers/tty/pty.c ++++ b/drivers/tty/pty.c +@@ -49,7 +49,6 @@ static void pty_close(struct tty_struct *tty, struct file *filp) + tty->packet = 0; + if (!tty->link) + return; +- tty->link->packet = 0; + set_bit(TTY_OTHER_CLOSED, &tty->link->flags); + wake_up_interruptible(&tty->link->read_wait); + wake_up_interruptible(&tty->link->write_wait); +diff --git a/drivers/tty/serial/sunsu.c b/drivers/tty/serial/sunsu.c +index ad0f8f5..2dc4d9b 100644 +--- a/drivers/tty/serial/sunsu.c ++++ b/drivers/tty/serial/sunsu.c +@@ -968,6 +968,7 @@ static struct uart_ops sunsu_pops = { + #define UART_NR 4 + + static struct uart_sunsu_port sunsu_ports[UART_NR]; ++static int nr_inst; /* Number of already registered ports */ + + #ifdef CONFIG_SERIO + +@@ -1337,13 +1338,8 @@ static int __init sunsu_console_setup(struct console *co, char *options) + printk("Console: ttyS%d (SU)\n", + (sunsu_reg.minor - 64) + co->index); + +- /* +- * Check whether an invalid uart number has been specified, and +- * if so, search for the first available port that does have +- * console support. +- */ +- if (co->index >= UART_NR) +- co->index = 0; ++ if (co->index > nr_inst) ++ return -ENODEV; + port = &sunsu_ports[co->index].port; + + /* +@@ -1408,7 +1404,6 @@ static enum su_type __devinit su_get_type(struct device_node *dp) + + static int __devinit su_probe(struct platform_device *op) + { +- static int inst; + struct device_node *dp = op->dev.of_node; + struct uart_sunsu_port *up; + struct resource *rp; +@@ -1418,16 +1413,16 @@ static int __devinit su_probe(struct platform_device *op) + + type = su_get_type(dp); + if (type == SU_PORT_PORT) { +- if (inst >= UART_NR) ++ if (nr_inst >= UART_NR) + return -EINVAL; +- up = &sunsu_ports[inst]; ++ up = &sunsu_ports[nr_inst]; + } else { + up = kzalloc(sizeof(*up), GFP_KERNEL); + if (!up) + return -ENOMEM; + } + +- up->port.line = inst; ++ up->port.line = nr_inst; + + spin_lock_init(&up->port.lock); + +@@ -1461,6 +1456,8 @@ static int __devinit su_probe(struct platform_device *op) + } + dev_set_drvdata(&op->dev, up); + ++ nr_inst++; ++ + return 0; + } + +@@ -1488,7 +1485,7 @@ static int __devinit su_probe(struct platform_device *op) + + dev_set_drvdata(&op->dev, up); + +- inst++; ++ nr_inst++; + + return 0; + +diff --git a/drivers/usb/core/hcd-pci.c b/drivers/usb/core/hcd-pci.c +index 61d08dd..76be3ba 100644 +--- a/drivers/usb/core/hcd-pci.c ++++ b/drivers/usb/core/hcd-pci.c +@@ -173,6 +173,7 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) + struct hc_driver *driver; + struct usb_hcd *hcd; + int retval; ++ int hcd_irq = 0; + + if (usb_disabled()) + return -ENODEV; +@@ -187,15 +188,19 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) + return -ENODEV; + dev->current_state = PCI_D0; + +- /* The xHCI driver supports MSI and MSI-X, +- * so don't fail if the BIOS doesn't provide a legacy IRQ. ++ /* ++ * The xHCI driver has its own irq management ++ * make sure irq setup is not touched for xhci in generic hcd code + */ +- if (!dev->irq && (driver->flags & HCD_MASK) != HCD_USB3) { +- dev_err(&dev->dev, +- "Found HC with no IRQ. Check BIOS/PCI %s setup!\n", +- pci_name(dev)); +- retval = -ENODEV; +- goto disable_pci; ++ if ((driver->flags & HCD_MASK) != HCD_USB3) { ++ if (!dev->irq) { ++ dev_err(&dev->dev, ++ "Found HC with no IRQ. Check BIOS/PCI %s setup!\n", ++ pci_name(dev)); ++ retval = -ENODEV; ++ goto disable_pci; ++ } ++ hcd_irq = dev->irq; + } + + hcd = usb_create_hcd(driver, &dev->dev, pci_name(dev)); +@@ -245,7 +250,7 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) + + pci_set_master(dev); + +- retval = usb_add_hcd(hcd, dev->irq, IRQF_SHARED); ++ retval = usb_add_hcd(hcd, hcd_irq, IRQF_SHARED); + if (retval != 0) + goto unmap_registers; + set_hs_companion(dev, hcd); +diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c +index 901924a..d433fdf 100644 +--- a/drivers/usb/gadget/udc-core.c ++++ b/drivers/usb/gadget/udc-core.c +@@ -213,7 +213,7 @@ static void usb_gadget_remove_driver(struct usb_udc *udc) + udc->driver->disconnect(udc->gadget); + usb_gadget_disconnect(udc->gadget); + udc->driver->unbind(udc->gadget); +- usb_gadget_udc_stop(udc->gadget, udc->driver); ++ usb_gadget_udc_stop(udc->gadget, NULL); + } else { + usb_gadget_stop(udc->gadget, udc->driver); + } +diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c +index 53c8be1..2c0350f 100644 +--- a/drivers/usb/host/xhci.c ++++ b/drivers/usb/host/xhci.c +@@ -342,7 +342,7 @@ static int xhci_try_enable_msi(struct usb_hcd *hcd) + * generate interrupts. Don't even try to enable MSI. + */ + if (xhci->quirks & XHCI_BROKEN_MSI) +- return 0; ++ goto legacy_irq; + + /* unregister the legacy interrupt */ + if (hcd->irq) +@@ -363,6 +363,7 @@ static int xhci_try_enable_msi(struct usb_hcd *hcd) + return -EINVAL; + } + ++ legacy_irq: + /* fall back to legacy interrupt*/ + ret = request_irq(pdev->irq, &usb_hcd_irq, IRQF_SHARED, + hcd->irq_descr, hcd); +diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h +index cc368c2..c519a31 100644 +--- a/drivers/usb/host/xhci.h ++++ b/drivers/usb/host/xhci.h +@@ -206,8 +206,8 @@ struct xhci_op_regs { + /* bits 12:31 are reserved (and should be preserved on writes). */ + + /* IMAN - Interrupt Management Register */ +-#define IMAN_IP (1 << 1) +-#define IMAN_IE (1 << 0) ++#define IMAN_IE (1 << 1) ++#define IMAN_IP (1 << 0) + + /* USBSTS - USB status - status bitmasks */ + /* HC not running - set to 1 when run/stop bit is cleared. */ +diff --git a/drivers/usb/serial/garmin_gps.c b/drivers/usb/serial/garmin_gps.c +index 1a49ca9..e664bac 100644 +--- a/drivers/usb/serial/garmin_gps.c ++++ b/drivers/usb/serial/garmin_gps.c +@@ -973,10 +973,7 @@ static void garmin_close(struct usb_serial_port *port) + if (!serial) + return; + +- mutex_lock(&port->serial->disc_mutex); +- +- if (!port->serial->disconnected) +- garmin_clear(garmin_data_p); ++ garmin_clear(garmin_data_p); + + /* shutdown our urbs */ + usb_kill_urb(port->read_urb); +@@ -985,8 +982,6 @@ static void garmin_close(struct usb_serial_port *port) + /* keep reset state so we know that we must start a new session */ + if (garmin_data_p->state != STATE_RESET) + garmin_data_p->state = STATE_DISCONNECTED; +- +- mutex_unlock(&port->serial->disc_mutex); + } + + +diff --git a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c +index 3de751d..1f145bf 100644 +--- a/drivers/usb/serial/io_ti.c ++++ b/drivers/usb/serial/io_ti.c +@@ -2796,6 +2796,7 @@ static struct usb_serial_driver edgeport_2port_device = { + .set_termios = edge_set_termios, + .tiocmget = edge_tiocmget, + .tiocmset = edge_tiocmset, ++ .get_icount = edge_get_icount, + .write = edge_write, + .write_room = edge_write_room, + .chars_in_buffer = edge_chars_in_buffer, +diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c +index dc1ce62..2482d5e 100644 +--- a/drivers/usb/serial/usb-serial.c ++++ b/drivers/usb/serial/usb-serial.c +@@ -168,6 +168,7 @@ static void destroy_serial(struct kref *kref) + } + } + ++ usb_put_intf(serial->interface); + usb_put_dev(serial->dev); + kfree(serial); + } +@@ -624,7 +625,7 @@ static struct usb_serial *create_serial(struct usb_device *dev, + } + serial->dev = usb_get_dev(dev); + serial->type = driver; +- serial->interface = interface; ++ serial->interface = usb_get_intf(interface); + kref_init(&serial->kref); + mutex_init(&serial->disc_mutex); + serial->minor = SERIAL_TTY_NO_MINOR; +diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h +index fa8a1b2..7b8d564 100644 +--- a/drivers/usb/storage/unusual_devs.h ++++ b/drivers/usb/storage/unusual_devs.h +@@ -488,6 +488,13 @@ UNUSUAL_DEV( 0x04e8, 0x5122, 0x0000, 0x9999, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_MAX_SECTORS_64 | US_FL_BULK_IGNORE_TAG), + ++/* Added by Dmitry Artamonow <mad_soft@inbox.ru> */ ++UNUSUAL_DEV( 0x04e8, 0x5136, 0x0000, 0x9999, ++ "Samsung", ++ "YP-Z3", ++ USB_SC_DEVICE, USB_PR_DEVICE, NULL, ++ US_FL_MAX_SECTORS_64), ++ + /* Entry and supporting patch by Theodore Kilgore <kilgota@auburn.edu>. + * Device uses standards-violating 32-byte Bulk Command Block Wrappers and + * reports itself as "Proprietary SCSI Bulk." Cf. device entry 0x084d:0x0011. +diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c +index b76071e..5c58128 100644 +--- a/drivers/vhost/net.c ++++ b/drivers/vhost/net.c +@@ -234,7 +234,8 @@ static void handle_tx(struct vhost_net *net) + msg.msg_controllen = 0; + ubufs = NULL; + } else { +- struct ubuf_info *ubuf = &vq->ubuf_info[head]; ++ struct ubuf_info *ubuf; ++ ubuf = vq->ubuf_info + vq->upend_idx; + + vq->heads[vq->upend_idx].len = len; + ubuf->callback = vhost_zerocopy_callback; +diff --git a/fs/cifs/asn1.c b/fs/cifs/asn1.c +index cfd1ce3..1d36db1 100644 +--- a/fs/cifs/asn1.c ++++ b/fs/cifs/asn1.c +@@ -614,53 +614,10 @@ decode_negTokenInit(unsigned char *security_blob, int length, + } + } + +- /* mechlistMIC */ +- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { +- /* Check if we have reached the end of the blob, but with +- no mechListMic (e.g. NTLMSSP instead of KRB5) */ +- if (ctx.error == ASN1_ERR_DEC_EMPTY) +- goto decode_negtoken_exit; +- cFYI(1, "Error decoding last part negTokenInit exit3"); +- return 0; +- } else if ((cls != ASN1_CTX) || (con != ASN1_CON)) { +- /* tag = 3 indicating mechListMIC */ +- cFYI(1, "Exit 4 cls = %d con = %d tag = %d end = %p (%d)", +- cls, con, tag, end, *end); +- return 0; +- } +- +- /* sequence */ +- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { +- cFYI(1, "Error decoding last part negTokenInit exit5"); +- return 0; +- } else if ((cls != ASN1_UNI) || (con != ASN1_CON) +- || (tag != ASN1_SEQ)) { +- cFYI(1, "cls = %d con = %d tag = %d end = %p (%d)", +- cls, con, tag, end, *end); +- } +- +- /* sequence of */ +- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { +- cFYI(1, "Error decoding last part negTokenInit exit 7"); +- return 0; +- } else if ((cls != ASN1_CTX) || (con != ASN1_CON)) { +- cFYI(1, "Exit 8 cls = %d con = %d tag = %d end = %p (%d)", +- cls, con, tag, end, *end); +- return 0; +- } +- +- /* general string */ +- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { +- cFYI(1, "Error decoding last part negTokenInit exit9"); +- return 0; +- } else if ((cls != ASN1_UNI) || (con != ASN1_PRI) +- || (tag != ASN1_GENSTR)) { +- cFYI(1, "Exit10 cls = %d con = %d tag = %d end = %p (%d)", +- cls, con, tag, end, *end); +- return 0; +- } +- cFYI(1, "Need to call asn1_octets_decode() function for %s", +- ctx.pointer); /* is this UTF-8 or ASCII? */ +-decode_negtoken_exit: ++ /* ++ * We currently ignore anything at the end of the SPNEGO blob after ++ * the mechTypes have been parsed, since none of that info is ++ * used at the moment. ++ */ + return 1; + } +diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c +index b3a2a40..25bb97f 100644 +--- a/fs/cifs/cifsfs.c ++++ b/fs/cifs/cifsfs.c +@@ -90,6 +90,30 @@ extern mempool_t *cifs_sm_req_poolp; + extern mempool_t *cifs_req_poolp; + extern mempool_t *cifs_mid_poolp; + ++/* ++ * Bumps refcount for cifs super block. ++ * Note that it should be only called if a referece to VFS super block is ++ * already held, e.g. in open-type syscalls context. Otherwise it can race with ++ * atomic_dec_and_test in deactivate_locked_super. ++ */ ++void ++cifs_sb_active(struct super_block *sb) ++{ ++ struct cifs_sb_info *server = CIFS_SB(sb); ++ ++ if (atomic_inc_return(&server->active) == 1) ++ atomic_inc(&sb->s_active); ++} ++ ++void ++cifs_sb_deactive(struct super_block *sb) ++{ ++ struct cifs_sb_info *server = CIFS_SB(sb); ++ ++ if (atomic_dec_and_test(&server->active)) ++ deactivate_super(sb); ++} ++ + static int + cifs_read_super(struct super_block *sb) + { +diff --git a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h +index 30ff560..c91ea81 100644 +--- a/fs/cifs/cifsfs.h ++++ b/fs/cifs/cifsfs.h +@@ -41,6 +41,10 @@ extern struct file_system_type cifs_fs_type; + extern const struct address_space_operations cifs_addr_ops; + extern const struct address_space_operations cifs_addr_ops_smallbuf; + ++/* Functions related to super block operations */ ++extern void cifs_sb_active(struct super_block *sb); ++extern void cifs_sb_deactive(struct super_block *sb); ++ + /* Functions related to inodes */ + extern const struct inode_operations cifs_dir_inode_ops; + extern struct inode *cifs_root_iget(struct super_block *); +diff --git a/fs/cifs/file.c b/fs/cifs/file.c +index 51574d4..c55808e 100644 +--- a/fs/cifs/file.c ++++ b/fs/cifs/file.c +@@ -265,6 +265,8 @@ cifs_new_fileinfo(__u16 fileHandle, struct file *file, + mutex_init(&pCifsFile->fh_mutex); + INIT_WORK(&pCifsFile->oplock_break, cifs_oplock_break); + ++ cifs_sb_active(inode->i_sb); ++ + spin_lock(&cifs_file_list_lock); + list_add(&pCifsFile->tlist, &(tlink_tcon(tlink)->openFileList)); + /* if readable file instance put first in list*/ +@@ -293,7 +295,8 @@ void cifsFileInfo_put(struct cifsFileInfo *cifs_file) + struct inode *inode = cifs_file->dentry->d_inode; + struct cifs_tcon *tcon = tlink_tcon(cifs_file->tlink); + struct cifsInodeInfo *cifsi = CIFS_I(inode); +- struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb); ++ struct super_block *sb = inode->i_sb; ++ struct cifs_sb_info *cifs_sb = CIFS_SB(sb); + struct cifsLockInfo *li, *tmp; + + spin_lock(&cifs_file_list_lock); +@@ -345,6 +348,7 @@ void cifsFileInfo_put(struct cifsFileInfo *cifs_file) + + cifs_put_tlink(cifs_file->tlink); + dput(cifs_file->dentry); ++ cifs_sb_deactive(sb); + kfree(cifs_file); + } + +diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c +index 484ffee..2845a1f 100644 +--- a/fs/ext4/balloc.c ++++ b/fs/ext4/balloc.c +@@ -571,7 +571,7 @@ ext4_fsblk_t ext4_count_free_clusters(struct super_block *sb) + brelse(bitmap_bh); + printk(KERN_DEBUG "ext4_count_free_clusters: stored = %llu" + ", computed = %llu, %llu\n", +- EXT4_B2C(EXT4_SB(sb), ext4_free_blocks_count(es)), ++ EXT4_NUM_B2C(EXT4_SB(sb), ext4_free_blocks_count(es)), + desc_count, bitmap_count); + return bitmap_count; + #else +diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h +index 8cb184c..60b6ca5 100644 +--- a/fs/ext4/ext4.h ++++ b/fs/ext4/ext4.h +@@ -309,9 +309,9 @@ struct ext4_group_desc + */ + + struct flex_groups { +- atomic_t free_inodes; +- atomic_t free_clusters; +- atomic_t used_dirs; ++ atomic64_t free_clusters; ++ atomic_t free_inodes; ++ atomic_t used_dirs; + }; + + #define EXT4_BG_INODE_UNINIT 0x0001 /* Inode table/bitmap not in use */ +diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c +index b48e0dc..ce0bc25 100644 +--- a/fs/ext4/extents.c ++++ b/fs/ext4/extents.c +@@ -2960,6 +2960,7 @@ static int ext4_split_extent(handle_t *handle, + int err = 0; + int uninitialized; + int split_flag1, flags1; ++ int allocated = map->m_len; + + depth = ext_depth(inode); + ex = path[depth].p_ext; +@@ -2979,6 +2980,8 @@ static int ext4_split_extent(handle_t *handle, + map->m_lblk + map->m_len, split_flag1, flags1); + if (err) + goto out; ++ } else { ++ allocated = ee_len - (map->m_lblk - ee_block); + } + + ext4_ext_drop_refs(path); +@@ -3001,7 +3004,7 @@ static int ext4_split_extent(handle_t *handle, + + ext4_ext_show_leaf(inode, path); + out: +- return err ? err : map->m_len; ++ return err ? err : allocated; + } + + #define EXT4_EXT_ZERO_LEN 7 +@@ -3663,6 +3666,7 @@ out: + allocated - map->m_len); + allocated = map->m_len; + } ++ map->m_len = allocated; + + /* + * If we have done fallocate with the offset that is already +diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c +index 6266799..6d1f577 100644 +--- a/fs/ext4/ialloc.c ++++ b/fs/ext4/ialloc.c +@@ -294,8 +294,8 @@ error_return: + } + + struct orlov_stats { ++ __u64 free_clusters; + __u32 free_inodes; +- __u32 free_clusters; + __u32 used_dirs; + }; + +@@ -312,7 +312,7 @@ static void get_orlov_stats(struct super_block *sb, ext4_group_t g, + + if (flex_size > 1) { + stats->free_inodes = atomic_read(&flex_group[g].free_inodes); +- stats->free_clusters = atomic_read(&flex_group[g].free_clusters); ++ stats->free_clusters = atomic64_read(&flex_group[g].free_clusters); + stats->used_dirs = atomic_read(&flex_group[g].used_dirs); + return; + } +diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c +index 4b2bb75..3270ffd 100644 +--- a/fs/ext4/inode.c ++++ b/fs/ext4/inode.c +@@ -142,7 +142,8 @@ void ext4_evict_inode(struct inode *inode) + * don't use page cache. + */ + if (ext4_should_journal_data(inode) && +- (S_ISLNK(inode->i_mode) || S_ISREG(inode->i_mode))) { ++ (S_ISLNK(inode->i_mode) || S_ISREG(inode->i_mode)) && ++ inode->i_ino != EXT4_JOURNAL_INO) { + journal_t *journal = EXT4_SB(inode->i_sb)->s_journal; + tid_t commit_tid = EXT4_I(inode)->i_datasync_tid; + +diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c +index 553ff71..7b18563 100644 +--- a/fs/ext4/mballoc.c ++++ b/fs/ext4/mballoc.c +@@ -2866,8 +2866,8 @@ ext4_mb_mark_diskspace_used(struct ext4_allocation_context *ac, + if (sbi->s_log_groups_per_flex) { + ext4_group_t flex_group = ext4_flex_group(sbi, + ac->ac_b_ex.fe_group); +- atomic_sub(ac->ac_b_ex.fe_len, +- &sbi->s_flex_groups[flex_group].free_clusters); ++ atomic64_sub(ac->ac_b_ex.fe_len, ++ &sbi->s_flex_groups[flex_group].free_clusters); + } + + err = ext4_handle_dirty_metadata(handle, NULL, bitmap_bh); +@@ -3485,7 +3485,7 @@ ext4_mb_new_inode_pa(struct ext4_allocation_context *ac) + win = offs; + + ac->ac_b_ex.fe_logical = ac->ac_o_ex.fe_logical - +- EXT4_B2C(sbi, win); ++ EXT4_NUM_B2C(sbi, win); + BUG_ON(ac->ac_o_ex.fe_logical < ac->ac_b_ex.fe_logical); + BUG_ON(ac->ac_o_ex.fe_len > ac->ac_b_ex.fe_len); + } +@@ -4634,7 +4634,7 @@ do_more: + EXT4_BLOCKS_PER_GROUP(sb); + count -= overflow; + } +- count_clusters = EXT4_B2C(sbi, count); ++ count_clusters = EXT4_NUM_B2C(sbi, count); + bitmap_bh = ext4_read_block_bitmap(sb, block_group); + if (!bitmap_bh) { + err = -EIO; +@@ -4724,8 +4724,8 @@ do_more: + + if (sbi->s_log_groups_per_flex) { + ext4_group_t flex_group = ext4_flex_group(sbi, block_group); +- atomic_add(count_clusters, +- &sbi->s_flex_groups[flex_group].free_clusters); ++ atomic64_add(count_clusters, ++ &sbi->s_flex_groups[flex_group].free_clusters); + } + + ext4_mb_unload_buddy(&e4b); +@@ -4865,12 +4865,12 @@ int ext4_group_add_blocks(handle_t *handle, struct super_block *sb, + desc->bg_checksum = ext4_group_desc_csum(sbi, block_group, desc); + ext4_unlock_group(sb, block_group); + percpu_counter_add(&sbi->s_freeclusters_counter, +- EXT4_B2C(sbi, blocks_freed)); ++ EXT4_NUM_B2C(sbi, blocks_freed)); + + if (sbi->s_log_groups_per_flex) { + ext4_group_t flex_group = ext4_flex_group(sbi, block_group); +- atomic_add(EXT4_B2C(sbi, blocks_freed), +- &sbi->s_flex_groups[flex_group].free_clusters); ++ atomic64_add(EXT4_NUM_B2C(sbi, blocks_freed), ++ &sbi->s_flex_groups[flex_group].free_clusters); + } + + ext4_mb_unload_buddy(&e4b); +diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c +index 33129c0..6e67b97 100644 +--- a/fs/ext4/resize.c ++++ b/fs/ext4/resize.c +@@ -938,7 +938,7 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input) + + /* Update the free space counts */ + percpu_counter_add(&sbi->s_freeclusters_counter, +- EXT4_B2C(sbi, input->free_blocks_count)); ++ EXT4_NUM_B2C(sbi, input->free_blocks_count)); + percpu_counter_add(&sbi->s_freeinodes_counter, + EXT4_INODES_PER_GROUP(sb)); + +@@ -946,8 +946,8 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input) + sbi->s_log_groups_per_flex) { + ext4_group_t flex_group; + flex_group = ext4_flex_group(sbi, input->group); +- atomic_add(EXT4_B2C(sbi, input->free_blocks_count), +- &sbi->s_flex_groups[flex_group].free_clusters); ++ atomic64_add(EXT4_NUM_B2C(sbi, input->free_blocks_count), ++ &sbi->s_flex_groups[flex_group].free_clusters); + atomic_add(EXT4_INODES_PER_GROUP(sb), + &sbi->s_flex_groups[flex_group].free_inodes); + } +diff --git a/fs/ext4/super.c b/fs/ext4/super.c +index 24ac7a2..cc386b2 100644 +--- a/fs/ext4/super.c ++++ b/fs/ext4/super.c +@@ -2047,8 +2047,8 @@ static int ext4_fill_flex_info(struct super_block *sb) + flex_group = ext4_flex_group(sbi, i); + atomic_add(ext4_free_inodes_count(sb, gdp), + &sbi->s_flex_groups[flex_group].free_inodes); +- atomic_add(ext4_free_group_clusters(sb, gdp), +- &sbi->s_flex_groups[flex_group].free_clusters); ++ atomic64_add(ext4_free_group_clusters(sb, gdp), ++ &sbi->s_flex_groups[flex_group].free_clusters); + atomic_add(ext4_used_dirs_count(sb, gdp), + &sbi->s_flex_groups[flex_group].used_dirs); + } +diff --git a/fs/isofs/export.c b/fs/isofs/export.c +index 516eb21..fd88add 100644 +--- a/fs/isofs/export.c ++++ b/fs/isofs/export.c +@@ -135,6 +135,7 @@ isofs_export_encode_fh(struct dentry *dentry, + len = 3; + fh32[0] = ei->i_iget5_block; + fh16[2] = (__u16)ei->i_iget5_offset; /* fh16 [sic] */ ++ fh16[3] = 0; /* avoid leaking uninitialized data */ + fh32[2] = inode->i_generation; + if (connectable && !S_ISDIR(inode->i_mode)) { + struct inode *parent; +diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c +index d7dd774..6ac5bb1 100644 +--- a/fs/jbd2/transaction.c ++++ b/fs/jbd2/transaction.c +@@ -1016,9 +1016,12 @@ out: + void jbd2_journal_set_triggers(struct buffer_head *bh, + struct jbd2_buffer_trigger_type *type) + { +- struct journal_head *jh = bh2jh(bh); ++ struct journal_head *jh = jbd2_journal_grab_journal_head(bh); + ++ if (WARN_ON(!jh)) ++ return; + jh->b_triggers = type; ++ jbd2_journal_put_journal_head(jh); + } + + void jbd2_buffer_frozen_trigger(struct journal_head *jh, void *mapped_data, +@@ -1070,17 +1073,18 @@ int jbd2_journal_dirty_metadata(handle_t *handle, struct buffer_head *bh) + { + transaction_t *transaction = handle->h_transaction; + journal_t *journal = transaction->t_journal; +- struct journal_head *jh = bh2jh(bh); ++ struct journal_head *jh; + int ret = 0; + +- jbd_debug(5, "journal_head %p\n", jh); +- JBUFFER_TRACE(jh, "entry"); + if (is_handle_aborted(handle)) + goto out; +- if (!buffer_jbd(bh)) { ++ jh = jbd2_journal_grab_journal_head(bh); ++ if (!jh) { + ret = -EUCLEAN; + goto out; + } ++ jbd_debug(5, "journal_head %p\n", jh); ++ JBUFFER_TRACE(jh, "entry"); + + jbd_lock_bh_state(bh); + +@@ -1171,6 +1175,7 @@ int jbd2_journal_dirty_metadata(handle_t *handle, struct buffer_head *bh) + spin_unlock(&journal->j_list_lock); + out_unlock_bh: + jbd_unlock_bh_state(bh); ++ jbd2_journal_put_journal_head(jh); + out: + JBUFFER_TRACE(jh, "exit"); + WARN_ON(ret); /* All errors are bugs, so dump the stack */ +diff --git a/fs/proc/inode.c b/fs/proc/inode.c +index 7737c54..00f08b3 100644 +--- a/fs/proc/inode.c ++++ b/fs/proc/inode.c +@@ -427,12 +427,10 @@ static const struct file_operations proc_reg_file_ops_no_compat = { + + struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de) + { +- struct inode * inode; ++ struct inode *inode = new_inode_pseudo(sb); + +- inode = iget_locked(sb, de->low_ino); +- if (!inode) +- return NULL; +- if (inode->i_state & I_NEW) { ++ if (inode) { ++ inode->i_ino = de->low_ino; + inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; + PROC_I(inode)->fd = 0; + PROC_I(inode)->pde = de; +@@ -461,9 +459,7 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de) + inode->i_fop = de->proc_fops; + } + } +- unlock_new_inode(inode); +- } else +- pde_put(de); ++ } + return inode; + } + +diff --git a/fs/udf/namei.c b/fs/udf/namei.c +index 4639e13..71c97fb 100644 +--- a/fs/udf/namei.c ++++ b/fs/udf/namei.c +@@ -1293,6 +1293,7 @@ static int udf_encode_fh(struct dentry *de, __u32 *fh, int *lenp, + *lenp = 3; + fid->udf.block = location.logicalBlockNum; + fid->udf.partref = location.partitionReferenceNum; ++ fid->udf.parent_partref = 0; + fid->udf.generation = inode->i_generation; + + if (connectable && !S_ISDIR(inode->i_mode)) { +diff --git a/include/asm-generic/signal.h b/include/asm-generic/signal.h +index 555c0ae..743f7a5 100644 +--- a/include/asm-generic/signal.h ++++ b/include/asm-generic/signal.h +@@ -99,6 +99,10 @@ typedef unsigned long old_sigset_t; + + #include <asm-generic/signal-defs.h> + ++#ifdef SA_RESTORER ++#define __ARCH_HAS_SA_RESTORER ++#endif ++ + struct sigaction { + __sighandler_t sa_handler; + unsigned long sa_flags; +diff --git a/include/linux/efi.h b/include/linux/efi.h +index ce95a4b..8469f3f 100644 +--- a/include/linux/efi.h ++++ b/include/linux/efi.h +@@ -484,7 +484,8 @@ struct efivars { + * 1) ->list - adds, removals, reads, writes + * 2) ops.[gs]et_variable() calls. + * It must not be held when creating sysfs entries or calling kmalloc. +- * ops.get_next_variable() is only called from register_efivars(), ++ * ops.get_next_variable() is only called from register_efivars() ++ * or efivar_update_sysfs_entries(), + * which is protected by the BKL, so that path is safe. + */ + spinlock_t lock; +diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h +index b669be6..9b9b2aa 100644 +--- a/include/linux/perf_event.h ++++ b/include/linux/perf_event.h +@@ -1186,6 +1186,12 @@ static inline void perf_event_disable(struct perf_event *event) { } + static inline void perf_event_task_tick(void) { } + #endif + ++#if defined(CONFIG_PERF_EVENTS) && defined(CONFIG_CPU_SUP_INTEL) ++extern void perf_restore_debug_store(void); ++#else ++static inline void perf_restore_debug_store(void) { } ++#endif ++ + #define perf_output_put(handle, x) perf_output_copy((handle), &(x), sizeof(x)) + + /* +diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h +index 53dc7e7..da65890 100644 +--- a/include/linux/skbuff.h ++++ b/include/linux/skbuff.h +@@ -455,7 +455,7 @@ struct sk_buff { + union { + __u32 mark; + __u32 dropcount; +- __u32 avail_size; ++ __u32 reserved_tailroom; + }; + + __u16 vlan_tci; +@@ -1332,7 +1332,10 @@ static inline int skb_tailroom(const struct sk_buff *skb) + */ + static inline int skb_availroom(const struct sk_buff *skb) + { +- return skb_is_nonlinear(skb) ? 0 : skb->avail_size - skb->len; ++ if (skb_is_nonlinear(skb)) ++ return 0; ++ ++ return skb->end - skb->tail - skb->reserved_tailroom; + } + + /** +diff --git a/include/net/inet_frag.h b/include/net/inet_frag.h +index 16ff29a..b289bd2 100644 +--- a/include/net/inet_frag.h ++++ b/include/net/inet_frag.h +@@ -33,6 +33,13 @@ struct inet_frag_queue { + + #define INETFRAGS_HASHSZ 64 + ++/* averaged: ++ * max_depth = default ipfrag_high_thresh / INETFRAGS_HASHSZ / ++ * rounded up (SKB_TRUELEN(0) + sizeof(struct ipq or ++ * struct frag_queue)) ++ */ ++#define INETFRAGS_MAXDEPTH 128 ++ + struct inet_frags { + struct hlist_head hash[INETFRAGS_HASHSZ]; + rwlock_t lock; +@@ -64,6 +71,8 @@ int inet_frag_evictor(struct netns_frags *nf, struct inet_frags *f); + struct inet_frag_queue *inet_frag_find(struct netns_frags *nf, + struct inet_frags *f, void *key, unsigned int hash) + __releases(&f->lock); ++void inet_frag_maybe_warn_overflow(struct inet_frag_queue *q, ++ const char *prefix); + + static inline void inet_frag_put(struct inet_frag_queue *q, struct inet_frags *f) + { +diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h +index 10422ef..2124004 100644 +--- a/include/net/ip_fib.h ++++ b/include/net/ip_fib.h +@@ -129,18 +129,16 @@ struct fib_result_nl { + }; + + #ifdef CONFIG_IP_ROUTE_MULTIPATH +- + #define FIB_RES_NH(res) ((res).fi->fib_nh[(res).nh_sel]) +- +-#define FIB_TABLE_HASHSZ 2 +- + #else /* CONFIG_IP_ROUTE_MULTIPATH */ +- + #define FIB_RES_NH(res) ((res).fi->fib_nh[0]) ++#endif /* CONFIG_IP_ROUTE_MULTIPATH */ + ++#ifdef CONFIG_IP_MULTIPLE_TABLES + #define FIB_TABLE_HASHSZ 256 +- +-#endif /* CONFIG_IP_ROUTE_MULTIPATH */ ++#else ++#define FIB_TABLE_HASHSZ 2 ++#endif + + extern __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh); + +diff --git a/kernel/signal.c b/kernel/signal.c +index 71e1816..ea76d30 100644 +--- a/kernel/signal.c ++++ b/kernel/signal.c +@@ -481,7 +481,7 @@ flush_signal_handlers(struct task_struct *t, int force_default) + if (force_default || ka->sa.sa_handler != SIG_IGN) + ka->sa.sa_handler = SIG_DFL; + ka->sa.sa_flags = 0; +-#ifdef SA_RESTORER ++#ifdef __ARCH_HAS_SA_RESTORER + ka->sa.sa_restorer = NULL; + #endif + sigemptyset(&ka->sa.sa_mask); +diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c +index 6c880e8..0943d2a 100644 +--- a/kernel/trace/ftrace.c ++++ b/kernel/trace/ftrace.c +@@ -2725,8 +2725,8 @@ __unregister_ftrace_function_probe(char *glob, struct ftrace_probe_ops *ops, + continue; + } + +- hlist_del(&entry->node); +- call_rcu(&entry->rcu, ftrace_free_entry_rcu); ++ hlist_del_rcu(&entry->node); ++ call_rcu_sched(&entry->rcu, ftrace_free_entry_rcu); + } + } + __disable_ftrace_function_probe(); +diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c +index 5638104..17edb14 100644 +--- a/kernel/trace/trace.c ++++ b/kernel/trace/trace.c +@@ -652,7 +652,7 @@ __update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu) + void + update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu) + { +- struct ring_buffer *buf = tr->buffer; ++ struct ring_buffer *buf; + + if (trace_stop_count) + return; +@@ -664,6 +664,7 @@ update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu) + } + arch_spin_lock(&ftrace_max_lock); + ++ buf = tr->buffer; + tr->buffer = max_tr.buffer; + max_tr.buffer = buf; + +@@ -2635,11 +2636,25 @@ static int set_tracer_option(struct tracer *trace, char *cmp, int neg) + return -EINVAL; + } + +-static void set_tracer_flags(unsigned int mask, int enabled) ++/* Some tracers require overwrite to stay enabled */ ++int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set) ++{ ++ if (tracer->enabled && (mask & TRACE_ITER_OVERWRITE) && !set) ++ return -1; ++ ++ return 0; ++} ++ ++int set_tracer_flag(unsigned int mask, int enabled) + { + /* do nothing if flag is already set */ + if (!!(trace_flags & mask) == !!enabled) +- return; ++ return 0; ++ ++ /* Give the tracer a chance to approve the change */ ++ if (current_trace->flag_changed) ++ if (current_trace->flag_changed(current_trace, mask, !!enabled)) ++ return -EINVAL; + + if (enabled) + trace_flags |= mask; +@@ -2649,8 +2664,14 @@ static void set_tracer_flags(unsigned int mask, int enabled) + if (mask == TRACE_ITER_RECORD_CMD) + trace_event_enable_cmd_record(enabled); + +- if (mask == TRACE_ITER_OVERWRITE) ++ if (mask == TRACE_ITER_OVERWRITE) { + ring_buffer_change_overwrite(global_trace.buffer, enabled); ++#ifdef CONFIG_TRACER_MAX_TRACE ++ ring_buffer_change_overwrite(max_tr.buffer, enabled); ++#endif ++ } ++ ++ return 0; + } + + static ssize_t +@@ -2660,7 +2681,7 @@ tracing_trace_options_write(struct file *filp, const char __user *ubuf, + char buf[64]; + char *cmp; + int neg = 0; +- int ret; ++ int ret = 0; + int i; + + if (cnt >= sizeof(buf)) +@@ -2677,21 +2698,23 @@ tracing_trace_options_write(struct file *filp, const char __user *ubuf, + cmp += 2; + } + ++ mutex_lock(&trace_types_lock); ++ + for (i = 0; trace_options[i]; i++) { + if (strcmp(cmp, trace_options[i]) == 0) { +- set_tracer_flags(1 << i, !neg); ++ ret = set_tracer_flag(1 << i, !neg); + break; + } + } + + /* If no option could be set, test the specific tracer options */ +- if (!trace_options[i]) { +- mutex_lock(&trace_types_lock); ++ if (!trace_options[i]) + ret = set_tracer_option(current_trace, cmp, neg); +- mutex_unlock(&trace_types_lock); +- if (ret) +- return ret; +- } ++ ++ mutex_unlock(&trace_types_lock); ++ ++ if (ret) ++ return ret; + + *ppos += cnt; + +@@ -3015,6 +3038,9 @@ static int tracing_set_tracer(const char *buf) + goto out; + + trace_branch_disable(); ++ ++ current_trace->enabled = false; ++ + if (current_trace && current_trace->reset) + current_trace->reset(tr); + if (current_trace && current_trace->use_max_tr) { +@@ -3044,6 +3070,7 @@ static int tracing_set_tracer(const char *buf) + goto out; + } + ++ current_trace->enabled = true; + trace_branch_enable(tr); + out: + mutex_unlock(&trace_types_lock); +@@ -4378,7 +4405,13 @@ trace_options_core_write(struct file *filp, const char __user *ubuf, size_t cnt, + + if (val != 0 && val != 1) + return -EINVAL; +- set_tracer_flags(1 << index, val); ++ ++ mutex_lock(&trace_types_lock); ++ ret = set_tracer_flag(1 << index, val); ++ mutex_unlock(&trace_types_lock); ++ ++ if (ret < 0) ++ return ret; + + *ppos += cnt; + +diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h +index 092e1f8..c3c3f6b 100644 +--- a/kernel/trace/trace.h ++++ b/kernel/trace/trace.h +@@ -271,10 +271,14 @@ struct tracer { + enum print_line_t (*print_line)(struct trace_iterator *iter); + /* If you handled the flag setting, return 0 */ + int (*set_flag)(u32 old_flags, u32 bit, int set); ++ /* Return 0 if OK with change, else return non-zero */ ++ int (*flag_changed)(struct tracer *tracer, ++ u32 mask, int set); + struct tracer *next; + struct tracer_flags *flags; + int print_max; + int use_max_tr; ++ bool enabled; + }; + + +@@ -815,6 +819,9 @@ extern struct list_head ftrace_events; + extern const char *__start___trace_bprintk_fmt[]; + extern const char *__stop___trace_bprintk_fmt[]; + ++int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set); ++int set_tracer_flag(unsigned int mask, int enabled); ++ + #undef FTRACE_ENTRY + #define FTRACE_ENTRY(call, struct_name, id, tstruct, print) \ + extern struct ftrace_event_call \ +diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c +index 20dad0d..1626e1a 100644 +--- a/kernel/trace/trace_irqsoff.c ++++ b/kernel/trace/trace_irqsoff.c +@@ -32,7 +32,7 @@ enum { + + static int trace_type __read_mostly; + +-static int save_lat_flag; ++static int save_flags; + + static void stop_irqsoff_tracer(struct trace_array *tr, int graph); + static int start_irqsoff_tracer(struct trace_array *tr, int graph); +@@ -546,8 +546,11 @@ static void stop_irqsoff_tracer(struct trace_array *tr, int graph) + + static void __irqsoff_tracer_init(struct trace_array *tr) + { +- save_lat_flag = trace_flags & TRACE_ITER_LATENCY_FMT; +- trace_flags |= TRACE_ITER_LATENCY_FMT; ++ save_flags = trace_flags; ++ ++ /* non overwrite screws up the latency tracers */ ++ set_tracer_flag(TRACE_ITER_OVERWRITE, 1); ++ set_tracer_flag(TRACE_ITER_LATENCY_FMT, 1); + + tracing_max_latency = 0; + irqsoff_trace = tr; +@@ -561,10 +564,13 @@ static void __irqsoff_tracer_init(struct trace_array *tr) + + static void irqsoff_tracer_reset(struct trace_array *tr) + { ++ int lat_flag = save_flags & TRACE_ITER_LATENCY_FMT; ++ int overwrite_flag = save_flags & TRACE_ITER_OVERWRITE; ++ + stop_irqsoff_tracer(tr, is_graph()); + +- if (!save_lat_flag) +- trace_flags &= ~TRACE_ITER_LATENCY_FMT; ++ set_tracer_flag(TRACE_ITER_LATENCY_FMT, lat_flag); ++ set_tracer_flag(TRACE_ITER_OVERWRITE, overwrite_flag); + } + + static void irqsoff_tracer_start(struct trace_array *tr) +@@ -597,6 +603,7 @@ static struct tracer irqsoff_tracer __read_mostly = + .print_line = irqsoff_print_line, + .flags = &tracer_flags, + .set_flag = irqsoff_set_flag, ++ .flag_changed = trace_keep_overwrite, + #ifdef CONFIG_FTRACE_SELFTEST + .selftest = trace_selftest_startup_irqsoff, + #endif +@@ -630,6 +637,7 @@ static struct tracer preemptoff_tracer __read_mostly = + .print_line = irqsoff_print_line, + .flags = &tracer_flags, + .set_flag = irqsoff_set_flag, ++ .flag_changed = trace_keep_overwrite, + #ifdef CONFIG_FTRACE_SELFTEST + .selftest = trace_selftest_startup_preemptoff, + #endif +@@ -665,6 +673,7 @@ static struct tracer preemptirqsoff_tracer __read_mostly = + .print_line = irqsoff_print_line, + .flags = &tracer_flags, + .set_flag = irqsoff_set_flag, ++ .flag_changed = trace_keep_overwrite, + #ifdef CONFIG_FTRACE_SELFTEST + .selftest = trace_selftest_startup_preemptirqsoff, + #endif +diff --git a/kernel/trace/trace_sched_wakeup.c b/kernel/trace/trace_sched_wakeup.c +index e4a70c0..6857e0c 100644 +--- a/kernel/trace/trace_sched_wakeup.c ++++ b/kernel/trace/trace_sched_wakeup.c +@@ -36,7 +36,7 @@ static void __wakeup_reset(struct trace_array *tr); + static int wakeup_graph_entry(struct ftrace_graph_ent *trace); + static void wakeup_graph_return(struct ftrace_graph_ret *trace); + +-static int save_lat_flag; ++static int save_flags; + + #define TRACE_DISPLAY_GRAPH 1 + +@@ -528,8 +528,11 @@ static void stop_wakeup_tracer(struct trace_array *tr) + + static int __wakeup_tracer_init(struct trace_array *tr) + { +- save_lat_flag = trace_flags & TRACE_ITER_LATENCY_FMT; +- trace_flags |= TRACE_ITER_LATENCY_FMT; ++ save_flags = trace_flags; ++ ++ /* non overwrite screws up the latency tracers */ ++ set_tracer_flag(TRACE_ITER_OVERWRITE, 1); ++ set_tracer_flag(TRACE_ITER_LATENCY_FMT, 1); + + tracing_max_latency = 0; + wakeup_trace = tr; +@@ -551,12 +554,15 @@ static int wakeup_rt_tracer_init(struct trace_array *tr) + + static void wakeup_tracer_reset(struct trace_array *tr) + { ++ int lat_flag = save_flags & TRACE_ITER_LATENCY_FMT; ++ int overwrite_flag = save_flags & TRACE_ITER_OVERWRITE; ++ + stop_wakeup_tracer(tr); + /* make sure we put back any tasks we are tracing */ + wakeup_reset(tr); + +- if (!save_lat_flag) +- trace_flags &= ~TRACE_ITER_LATENCY_FMT; ++ set_tracer_flag(TRACE_ITER_LATENCY_FMT, lat_flag); ++ set_tracer_flag(TRACE_ITER_OVERWRITE, overwrite_flag); + } + + static void wakeup_tracer_start(struct trace_array *tr) +@@ -582,6 +588,7 @@ static struct tracer wakeup_tracer __read_mostly = + .print_line = wakeup_print_line, + .flags = &tracer_flags, + .set_flag = wakeup_set_flag, ++ .flag_changed = trace_keep_overwrite, + #ifdef CONFIG_FTRACE_SELFTEST + .selftest = trace_selftest_startup_wakeup, + #endif +@@ -603,6 +610,7 @@ static struct tracer wakeup_rt_tracer __read_mostly = + .print_line = wakeup_print_line, + .flags = &tracer_flags, + .set_flag = wakeup_set_flag, ++ .flag_changed = trace_keep_overwrite, + #ifdef CONFIG_FTRACE_SELFTEST + .selftest = trace_selftest_startup_wakeup, + #endif +diff --git a/mm/hugetlb.c b/mm/hugetlb.c +index d6c0fdf..4c7d42a 100644 +--- a/mm/hugetlb.c ++++ b/mm/hugetlb.c +@@ -2092,8 +2092,12 @@ int hugetlb_report_node_meminfo(int nid, char *buf) + /* Return the number pages of memory we physically have, in PAGE_SIZE units. */ + unsigned long hugetlb_total_pages(void) + { +- struct hstate *h = &default_hstate; +- return h->nr_huge_pages * pages_per_huge_page(h); ++ struct hstate *h; ++ unsigned long nr_total_pages = 0; ++ ++ for_each_hstate(h) ++ nr_total_pages += h->nr_huge_pages * pages_per_huge_page(h); ++ return nr_total_pages; + } + + static int hugetlb_acct_memory(struct hstate *h, long delta) +diff --git a/net/core/dev.c b/net/core/dev.c +index 2aac4ec..b23bbbf 100644 +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -3299,6 +3299,7 @@ ncls: + } + switch (rx_handler(&skb)) { + case RX_HANDLER_CONSUMED: ++ ret = NET_RX_SUCCESS; + goto out; + case RX_HANDLER_ANOTHER: + goto another_round; +diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c +index 5229c7f..3b5e680 100644 +--- a/net/core/rtnetlink.c ++++ b/net/core/rtnetlink.c +@@ -973,6 +973,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev, + * report anything. + */ + ivi.spoofchk = -1; ++ memset(ivi.mac, 0, sizeof(ivi.mac)); + if (dev->netdev_ops->ndo_get_vf_config(dev, i, &ivi)) + break; + vf_mac.vf = +@@ -2041,7 +2042,7 @@ static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) + struct rtattr *attr = (void *)nlh + NLMSG_ALIGN(min_len); + + while (RTA_OK(attr, attrlen)) { +- unsigned flavor = attr->rta_type; ++ unsigned int flavor = attr->rta_type & NLA_TYPE_MASK; + if (flavor) { + if (flavor > rta_max[sz_idx]) + return -EINVAL; +diff --git a/net/dcb/dcbnl.c b/net/dcb/dcbnl.c +index d860530..2f9517d 100644 +--- a/net/dcb/dcbnl.c ++++ b/net/dcb/dcbnl.c +@@ -336,6 +336,7 @@ static int dcbnl_getperm_hwaddr(struct net_device *netdev, struct nlattr **tb, + dcb->dcb_family = AF_UNSPEC; + dcb->cmd = DCB_CMD_GPERM_HWADDR; + ++ memset(perm_addr, 0, sizeof(perm_addr)); + netdev->dcbnl_ops->getpermhwaddr(netdev, perm_addr); + + ret = nla_put(dcbnl_skb, DCB_ATTR_PERM_HWADDR, sizeof(perm_addr), +@@ -1238,6 +1239,7 @@ static int dcbnl_ieee_fill(struct sk_buff *skb, struct net_device *netdev) + + if (ops->ieee_getets) { + struct ieee_ets ets; ++ memset(&ets, 0, sizeof(ets)); + err = ops->ieee_getets(netdev, &ets); + if (!err) + NLA_PUT(skb, DCB_ATTR_IEEE_ETS, sizeof(ets), &ets); +@@ -1245,6 +1247,7 @@ static int dcbnl_ieee_fill(struct sk_buff *skb, struct net_device *netdev) + + if (ops->ieee_getpfc) { + struct ieee_pfc pfc; ++ memset(&pfc, 0, sizeof(pfc)); + err = ops->ieee_getpfc(netdev, &pfc); + if (!err) + NLA_PUT(skb, DCB_ATTR_IEEE_PFC, sizeof(pfc), &pfc); +@@ -1277,6 +1280,7 @@ static int dcbnl_ieee_fill(struct sk_buff *skb, struct net_device *netdev) + /* get peer info if available */ + if (ops->ieee_peer_getets) { + struct ieee_ets ets; ++ memset(&ets, 0, sizeof(ets)); + err = ops->ieee_peer_getets(netdev, &ets); + if (!err) + NLA_PUT(skb, DCB_ATTR_IEEE_PEER_ETS, sizeof(ets), &ets); +@@ -1284,6 +1288,7 @@ static int dcbnl_ieee_fill(struct sk_buff *skb, struct net_device *netdev) + + if (ops->ieee_peer_getpfc) { + struct ieee_pfc pfc; ++ memset(&pfc, 0, sizeof(pfc)); + err = ops->ieee_peer_getpfc(netdev, &pfc); + if (!err) + NLA_PUT(skb, DCB_ATTR_IEEE_PEER_PFC, sizeof(pfc), &pfc); +@@ -1463,6 +1468,7 @@ static int dcbnl_cee_fill(struct sk_buff *skb, struct net_device *netdev) + /* peer info if available */ + if (ops->cee_peer_getpg) { + struct cee_pg pg; ++ memset(&pg, 0, sizeof(pg)); + err = ops->cee_peer_getpg(netdev, &pg); + if (!err) + NLA_PUT(skb, DCB_ATTR_CEE_PEER_PG, sizeof(pg), &pg); +@@ -1470,6 +1476,7 @@ static int dcbnl_cee_fill(struct sk_buff *skb, struct net_device *netdev) + + if (ops->cee_peer_getpfc) { + struct cee_pfc pfc; ++ memset(&pfc, 0, sizeof(pfc)); + err = ops->cee_peer_getpfc(netdev, &pfc); + if (!err) + NLA_PUT(skb, DCB_ATTR_CEE_PEER_PFC, sizeof(pfc), &pfc); +diff --git a/net/ieee802154/6lowpan.h b/net/ieee802154/6lowpan.h +index 5d8cf80..8b0866f 100644 +--- a/net/ieee802154/6lowpan.h ++++ b/net/ieee802154/6lowpan.h +@@ -87,7 +87,7 @@ + (memcmp(addr1, addr2, length >> 3) == 0) + + /* local link, i.e. FE80::/10 */ +-#define is_addr_link_local(a) (((a)->s6_addr16[0]) == 0x80FE) ++#define is_addr_link_local(a) (((a)->s6_addr16[0]) == htons(0xFE80)) + + /* + * check whether we can compress the IID to 16 bits, +diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c +index 5ff2a51..210b710 100644 +--- a/net/ipv4/inet_fragment.c ++++ b/net/ipv4/inet_fragment.c +@@ -21,6 +21,7 @@ + #include <linux/rtnetlink.h> + #include <linux/slab.h> + ++#include <net/sock.h> + #include <net/inet_frag.h> + + static void inet_frag_secret_rebuild(unsigned long dummy) +@@ -271,6 +272,7 @@ struct inet_frag_queue *inet_frag_find(struct netns_frags *nf, + { + struct inet_frag_queue *q; + struct hlist_node *n; ++ int depth = 0; + + hlist_for_each_entry(q, n, &f->hash[hash], list) { + if (q->net == nf && f->match(q, key)) { +@@ -278,9 +280,25 @@ struct inet_frag_queue *inet_frag_find(struct netns_frags *nf, + read_unlock(&f->lock); + return q; + } ++ depth++; + } + read_unlock(&f->lock); + +- return inet_frag_create(nf, f, key); ++ if (depth <= INETFRAGS_MAXDEPTH) ++ return inet_frag_create(nf, f, key); ++ else ++ return ERR_PTR(-ENOBUFS); + } + EXPORT_SYMBOL(inet_frag_find); ++ ++void inet_frag_maybe_warn_overflow(struct inet_frag_queue *q, ++ const char *prefix) ++{ ++ static const char msg[] = "inet_frag_find: Fragment hash bucket" ++ " list length grew over limit " __stringify(INETFRAGS_MAXDEPTH) ++ ". Dropping fragment.\n"; ++ ++ if (PTR_ERR(q) == -ENOBUFS) ++ LIMIT_NETDEBUG(KERN_WARNING "%s%s", prefix, msg); ++} ++EXPORT_SYMBOL(inet_frag_maybe_warn_overflow); +diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c +index a4e7131..b2cfe83 100644 +--- a/net/ipv4/ip_fragment.c ++++ b/net/ipv4/ip_fragment.c +@@ -20,6 +20,8 @@ + * Patrick McHardy : LRU queue of frag heads for evictor. + */ + ++#define pr_fmt(fmt) "IPv4: " fmt ++ + #include <linux/compiler.h> + #include <linux/module.h> + #include <linux/types.h> +@@ -293,14 +295,12 @@ static inline struct ipq *ip_find(struct net *net, struct iphdr *iph, u32 user) + hash = ipqhashfn(iph->id, iph->saddr, iph->daddr, iph->protocol); + + q = inet_frag_find(&net->ipv4.frags, &ip4_frags, &arg, hash); +- if (q == NULL) +- goto out_nomem; ++ if (IS_ERR_OR_NULL(q)) { ++ inet_frag_maybe_warn_overflow(q, pr_fmt()); ++ return NULL; ++ } + + return container_of(q, struct ipq, q); +- +-out_nomem: +- LIMIT_NETDEBUG(KERN_ERR "ip_frag_create: no memory left !\n"); +- return NULL; + } + + /* Is the fragment too far ahead to be part of ipq? */ +diff --git a/net/ipv4/ip_options.c b/net/ipv4/ip_options.c +index 42dd1a9..40eb4fc 100644 +--- a/net/ipv4/ip_options.c ++++ b/net/ipv4/ip_options.c +@@ -358,7 +358,6 @@ int ip_options_compile(struct net *net, + } + switch (optptr[3]&0xF) { + case IPOPT_TS_TSONLY: +- opt->ts = optptr - iph; + if (skb) + timeptr = &optptr[optptr[2]-1]; + opt->ts_needtime = 1; +@@ -369,7 +368,6 @@ int ip_options_compile(struct net *net, + pp_ptr = optptr + 2; + goto error; + } +- opt->ts = optptr - iph; + if (rt) { + memcpy(&optptr[optptr[2]-1], &rt->rt_spec_dst, 4); + timeptr = &optptr[optptr[2]+3]; +@@ -383,7 +381,6 @@ int ip_options_compile(struct net *net, + pp_ptr = optptr + 2; + goto error; + } +- opt->ts = optptr - iph; + { + __be32 addr; + memcpy(&addr, &optptr[optptr[2]-1], 4); +@@ -416,12 +413,12 @@ int ip_options_compile(struct net *net, + pp_ptr = optptr + 3; + goto error; + } +- opt->ts = optptr - iph; + if (skb) { + optptr[3] = (optptr[3]&0xF)|((overflow+1)<<4); + opt->is_changed = 1; + } + } ++ opt->ts = optptr - iph; + break; + case IPOPT_RA: + if (optlen < 4) { +diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c +index 52edbb8..fe381c2 100644 +--- a/net/ipv4/tcp.c ++++ b/net/ipv4/tcp.c +@@ -704,7 +704,7 @@ struct sk_buff *sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp) + * Make sure that we have exactly size bytes + * available to the caller, no more, no less. + */ +- skb->avail_size = size; ++ skb->reserved_tailroom = skb->end - skb->tail - size; + return skb; + } + __kfree_skb(skb); +diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c +index e865ed1..1b1f7af 100644 +--- a/net/ipv4/tcp_input.c ++++ b/net/ipv4/tcp_input.c +@@ -5494,6 +5494,9 @@ int tcp_rcv_established(struct sock *sk, struct sk_buff *skb, + if (tcp_checksum_complete_user(sk, skb)) + goto csum_error; + ++ if ((int)skb->truesize > sk->sk_forward_alloc) ++ goto step5; ++ + /* Predicted packet is in window by definition. + * seq == rcv_nxt and rcv_wup <= rcv_nxt. + * Hence, check seq<=rcv_wup reduces to: +@@ -5505,9 +5508,6 @@ int tcp_rcv_established(struct sock *sk, struct sk_buff *skb, + + tcp_rcv_rtt_measure_ts(sk, skb); + +- if ((int)skb->truesize > sk->sk_forward_alloc) +- goto step5; +- + NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPHPHITS); + + /* Bulk data transfer: receiver */ +diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c +index 921cbac..9bb7400 100644 +--- a/net/ipv4/tcp_output.c ++++ b/net/ipv4/tcp_output.c +@@ -1096,7 +1096,6 @@ static void __pskb_trim_head(struct sk_buff *skb, int len) + eat = min_t(int, len, skb_headlen(skb)); + if (eat) { + __skb_pull(skb, eat); +- skb->avail_size -= eat; + len -= eat; + if (!len) + return; +diff --git a/net/ipv6/ip6_input.c b/net/ipv6/ip6_input.c +index a46c64e..f8d24dd 100644 +--- a/net/ipv6/ip6_input.c ++++ b/net/ipv6/ip6_input.c +@@ -265,7 +265,8 @@ int ip6_mc_input(struct sk_buff *skb) + * IPv6 multicast router mode is now supported ;) + */ + if (dev_net(skb->dev)->ipv6.devconf_all->mc_forwarding && +- !(ipv6_addr_type(&hdr->daddr) & IPV6_ADDR_LINKLOCAL) && ++ !(ipv6_addr_type(&hdr->daddr) & ++ (IPV6_ADDR_LOOPBACK|IPV6_ADDR_LINKLOCAL)) && + likely(!(IP6CB(skb)->flags & IP6SKB_FORWARDED))) { + /* + * Okay, we try to forward - split and duplicate +diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c +index 38f00b0..52e2f65 100644 +--- a/net/ipv6/netfilter/nf_conntrack_reasm.c ++++ b/net/ipv6/netfilter/nf_conntrack_reasm.c +@@ -14,6 +14,8 @@ + * 2 of the License, or (at your option) any later version. + */ + ++#define pr_fmt(fmt) "IPv6-nf: " fmt ++ + #include <linux/errno.h> + #include <linux/types.h> + #include <linux/string.h> +@@ -176,13 +178,12 @@ fq_find(__be32 id, u32 user, struct in6_addr *src, struct in6_addr *dst) + + q = inet_frag_find(&nf_init_frags, &nf_frags, &arg, hash); + local_bh_enable(); +- if (q == NULL) +- goto oom; ++ if (IS_ERR_OR_NULL(q)) { ++ inet_frag_maybe_warn_overflow(q, pr_fmt()); ++ return NULL; ++ } + + return container_of(q, struct nf_ct_frag6_queue, q); +- +-oom: +- return NULL; + } + + +diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c +index dfb164e..2b0a4ca 100644 +--- a/net/ipv6/reassembly.c ++++ b/net/ipv6/reassembly.c +@@ -26,6 +26,9 @@ + * YOSHIFUJI,H. @USAGI Always remove fragment header to + * calculate ICV correctly. + */ ++ ++#define pr_fmt(fmt) "IPv6: " fmt ++ + #include <linux/errno.h> + #include <linux/types.h> + #include <linux/string.h> +@@ -240,9 +243,10 @@ fq_find(struct net *net, __be32 id, const struct in6_addr *src, const struct in6 + hash = inet6_hash_frag(id, src, dst, ip6_frags.rnd); + + q = inet_frag_find(&net->ipv6.frags, &ip6_frags, &arg, hash); +- if (q == NULL) ++ if (IS_ERR_OR_NULL(q)) { ++ inet_frag_maybe_warn_overflow(q, pr_fmt()); + return NULL; +- ++ } + return container_of(q, struct frag_queue, q); + } + +diff --git a/net/ipv6/route.c b/net/ipv6/route.c +index 791c1fa..18ea73c 100644 +--- a/net/ipv6/route.c ++++ b/net/ipv6/route.c +@@ -1920,7 +1920,8 @@ void rt6_purge_dflt_routers(struct net *net) + restart: + read_lock_bh(&table->tb6_lock); + for (rt = table->tb6_root.leaf; rt; rt = rt->dst.rt6_next) { +- if (rt->rt6i_flags & (RTF_DEFAULT | RTF_ADDRCONF)) { ++ if (rt->rt6i_flags & (RTF_DEFAULT | RTF_ADDRCONF) && ++ (!rt->rt6i_idev || rt->rt6i_idev->cnf.accept_ra != 2)) { + dst_hold(&rt->dst); + read_unlock_bh(&table->tb6_lock); + ip6_del_rt(rt); +diff --git a/net/l2tp/l2tp_ppp.c b/net/l2tp/l2tp_ppp.c +index b1bd16f..6f60175 100644 +--- a/net/l2tp/l2tp_ppp.c ++++ b/net/l2tp/l2tp_ppp.c +@@ -360,6 +360,7 @@ static int pppol2tp_sendmsg(struct kiocb *iocb, struct socket *sock, struct msgh + l2tp_xmit_skb(session, skb, session->hdr_len); + + sock_put(ps->tunnel_sock); ++ sock_put(sk); + + return error; + +diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c +index d463f5a..23267b3 100644 +--- a/net/netlabel/netlabel_unlabeled.c ++++ b/net/netlabel/netlabel_unlabeled.c +@@ -1189,8 +1189,6 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb, + struct netlbl_unlhsh_walk_arg cb_arg; + u32 skip_bkt = cb->args[0]; + u32 skip_chain = cb->args[1]; +- u32 skip_addr4 = cb->args[2]; +- u32 skip_addr6 = cb->args[3]; + u32 iter_bkt; + u32 iter_chain = 0, iter_addr4 = 0, iter_addr6 = 0; + struct netlbl_unlhsh_iface *iface; +@@ -1215,7 +1213,7 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb, + continue; + netlbl_af4list_foreach_rcu(addr4, + &iface->addr4_list) { +- if (iter_addr4++ < skip_addr4) ++ if (iter_addr4++ < cb->args[2]) + continue; + if (netlbl_unlabel_staticlist_gen( + NLBL_UNLABEL_C_STATICLIST, +@@ -1231,7 +1229,7 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb, + #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) + netlbl_af6list_foreach_rcu(addr6, + &iface->addr6_list) { +- if (iter_addr6++ < skip_addr6) ++ if (iter_addr6++ < cb->args[3]) + continue; + if (netlbl_unlabel_staticlist_gen( + NLBL_UNLABEL_C_STATICLIST, +@@ -1250,10 +1248,10 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb, + + unlabel_staticlist_return: + rcu_read_unlock(); +- cb->args[0] = skip_bkt; +- cb->args[1] = skip_chain; +- cb->args[2] = skip_addr4; +- cb->args[3] = skip_addr6; ++ cb->args[0] = iter_bkt; ++ cb->args[1] = iter_chain; ++ cb->args[2] = iter_addr4; ++ cb->args[3] = iter_addr6; + return skb->len; + } + +@@ -1273,12 +1271,9 @@ static int netlbl_unlabel_staticlistdef(struct sk_buff *skb, + { + struct netlbl_unlhsh_walk_arg cb_arg; + struct netlbl_unlhsh_iface *iface; +- u32 skip_addr4 = cb->args[0]; +- u32 skip_addr6 = cb->args[1]; +- u32 iter_addr4 = 0; ++ u32 iter_addr4 = 0, iter_addr6 = 0; + struct netlbl_af4list *addr4; + #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) +- u32 iter_addr6 = 0; + struct netlbl_af6list *addr6; + #endif + +@@ -1292,7 +1287,7 @@ static int netlbl_unlabel_staticlistdef(struct sk_buff *skb, + goto unlabel_staticlistdef_return; + + netlbl_af4list_foreach_rcu(addr4, &iface->addr4_list) { +- if (iter_addr4++ < skip_addr4) ++ if (iter_addr4++ < cb->args[0]) + continue; + if (netlbl_unlabel_staticlist_gen(NLBL_UNLABEL_C_STATICLISTDEF, + iface, +@@ -1305,7 +1300,7 @@ static int netlbl_unlabel_staticlistdef(struct sk_buff *skb, + } + #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) + netlbl_af6list_foreach_rcu(addr6, &iface->addr6_list) { +- if (iter_addr6++ < skip_addr6) ++ if (iter_addr6++ < cb->args[1]) + continue; + if (netlbl_unlabel_staticlist_gen(NLBL_UNLABEL_C_STATICLISTDEF, + iface, +@@ -1320,8 +1315,8 @@ static int netlbl_unlabel_staticlistdef(struct sk_buff *skb, + + unlabel_staticlistdef_return: + rcu_read_unlock(); +- cb->args[0] = skip_addr4; +- cb->args[1] = skip_addr6; ++ cb->args[0] = iter_addr4; ++ cb->args[1] = iter_addr6; + return skb->len; + } + +diff --git a/net/rds/message.c b/net/rds/message.c +index f0a4658..aff589c 100644 +--- a/net/rds/message.c ++++ b/net/rds/message.c +@@ -197,6 +197,9 @@ struct rds_message *rds_message_alloc(unsigned int extra_len, gfp_t gfp) + { + struct rds_message *rm; + ++ if (extra_len > KMALLOC_MAX_SIZE - sizeof(struct rds_message)) ++ return NULL; ++ + rm = kzalloc(sizeof(struct rds_message) + extra_len, gfp); + if (!rm) + goto out; +diff --git a/net/sctp/associola.c b/net/sctp/associola.c +index acd2edb..3c04692 100644 +--- a/net/sctp/associola.c ++++ b/net/sctp/associola.c +@@ -1050,7 +1050,7 @@ struct sctp_transport *sctp_assoc_lookup_tsn(struct sctp_association *asoc, + transports) { + + if (transport == active) +- break; ++ continue; + list_for_each_entry(chunk, &transport->transmitted, + transmitted_list) { + if (key == chunk->subh.data_hdr->tsn) { +diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c +index 891f5db..cb1c430 100644 +--- a/net/sctp/sm_statefuns.c ++++ b/net/sctp/sm_statefuns.c +@@ -2044,7 +2044,7 @@ sctp_disposition_t sctp_sf_do_5_2_4_dupcook(const struct sctp_endpoint *ep, + } + + /* Delete the tempory new association. */ +- sctp_add_cmd_sf(commands, SCTP_CMD_NEW_ASOC, SCTP_ASOC(new_asoc)); ++ sctp_add_cmd_sf(commands, SCTP_CMD_SET_ASOC, SCTP_ASOC(new_asoc)); + sctp_add_cmd_sf(commands, SCTP_CMD_DELETE_TCB, SCTP_NULL()); + + /* Restore association pointer to provide SCTP command interpeter +diff --git a/security/selinux/xfrm.c b/security/selinux/xfrm.c +index 48665ec..8ab2951 100644 +--- a/security/selinux/xfrm.c ++++ b/security/selinux/xfrm.c +@@ -310,7 +310,7 @@ int selinux_xfrm_policy_clone(struct xfrm_sec_ctx *old_ctx, + + if (old_ctx) { + new_ctx = kmalloc(sizeof(*old_ctx) + old_ctx->ctx_len, +- GFP_KERNEL); ++ GFP_ATOMIC); + if (!new_ctx) + return -ENOMEM; + +diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c +index b0187e7..7747d26 100644 +--- a/sound/pci/hda/hda_codec.c ++++ b/sound/pci/hda/hda_codec.c +@@ -2771,7 +2771,7 @@ static unsigned int convert_to_spdif_status(unsigned short val) + if (val & AC_DIG1_PROFESSIONAL) + sbits |= IEC958_AES0_PROFESSIONAL; + if (sbits & IEC958_AES0_PROFESSIONAL) { +- if (sbits & AC_DIG1_EMPHASIS) ++ if (val & AC_DIG1_EMPHASIS) + sbits |= IEC958_AES0_PRO_EMPHASIS_5015; + } else { + if (val & AC_DIG1_EMPHASIS) +diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c +index c9269ce..984b5b1 100644 +--- a/sound/pci/hda/patch_conexant.c ++++ b/sound/pci/hda/patch_conexant.c +@@ -1236,7 +1236,7 @@ static int patch_cxt5045(struct hda_codec *codec) + } + + if (spec->beep_amp) +- snd_hda_attach_beep_device(codec, spec->beep_amp); ++ snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); + + return 0; + } +@@ -2027,7 +2027,7 @@ static int patch_cxt5051(struct hda_codec *codec) + } + + if (spec->beep_amp) +- snd_hda_attach_beep_device(codec, spec->beep_amp); ++ snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); + + conexant_init_jacks(codec); + if (spec->auto_mic & AUTO_MIC_PORTB) +@@ -3225,7 +3225,7 @@ static int patch_cxt5066(struct hda_codec *codec) + } + + if (spec->beep_amp) +- snd_hda_attach_beep_device(codec, spec->beep_amp); ++ snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); + + return 0; + } +@@ -4556,7 +4556,7 @@ static int patch_conexant_auto(struct hda_codec *codec) + spec->capture_stream = &cx_auto_pcm_analog_capture; + codec->patch_ops = cx_auto_patch_ops; + if (spec->beep_amp) +- snd_hda_attach_beep_device(codec, spec->beep_amp); ++ snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); + return 0; + } + +diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c +index 9121dee..f4540bf 100644 +--- a/sound/usb/mixer.c ++++ b/sound/usb/mixer.c +@@ -711,8 +711,9 @@ static int check_input_term(struct mixer_build *state, int id, struct usb_audio_ + case UAC2_CLOCK_SELECTOR: { + struct uac_selector_unit_descriptor *d = p1; + /* call recursively to retrieve the channel info */ +- if (check_input_term(state, d->baSourceID[0], term) < 0) +- return -ENODEV; ++ err = check_input_term(state, d->baSourceID[0], term); ++ if (err < 0) ++ return err; + term->type = d->bDescriptorSubtype << 16; /* virtual type */ + term->id = id; + term->name = uac_selector_unit_iSelector(d); +@@ -1263,8 +1264,9 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void + return err; + + /* determine the input source type and name */ +- if (check_input_term(state, hdr->bSourceID, &iterm) < 0) +- return -EINVAL; ++ err = check_input_term(state, hdr->bSourceID, &iterm); ++ if (err < 0) ++ return err; + + master_bits = snd_usb_combine_bytes(bmaControls, csize); + /* master configuration quirks */ +@@ -2018,7 +2020,7 @@ static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer) + state.oterm.type = le16_to_cpu(desc->wTerminalType); + state.oterm.name = desc->iTerminal; + err = parse_audio_unit(&state, desc->bSourceID); +- if (err < 0) ++ if (err < 0 && err != -EINVAL) + return err; + } else { /* UAC_VERSION_2 */ + struct uac2_output_terminal_descriptor *desc = p; +@@ -2030,12 +2032,12 @@ static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer) + state.oterm.type = le16_to_cpu(desc->wTerminalType); + state.oterm.name = desc->iTerminal; + err = parse_audio_unit(&state, desc->bSourceID); +- if (err < 0) ++ if (err < 0 && err != -EINVAL) + return err; + + /* for UAC2, use the same approach to also add the clock selectors */ + err = parse_audio_unit(&state, desc->bCSourceID); +- if (err < 0) ++ if (err < 0 && err != -EINVAL) + return err; + } + } +diff --git a/tools/hv/hv_kvp_daemon.c b/tools/hv/hv_kvp_daemon.c +index 0961d88..5e19410 100644 +--- a/tools/hv/hv_kvp_daemon.c ++++ b/tools/hv/hv_kvp_daemon.c +@@ -393,13 +393,19 @@ int main(void) + len = recvfrom(fd, kvp_recv_buffer, sizeof(kvp_recv_buffer), 0, + addr_p, &addr_l); + +- if (len < 0 || addr.nl_pid) { ++ if (len < 0) { + syslog(LOG_ERR, "recvfrom failed; pid:%u error:%d %s", + addr.nl_pid, errno, strerror(errno)); + close(fd); + return -1; + } + ++ if (addr.nl_pid) { ++ syslog(LOG_WARNING, "Received packet from untrusted pid:%u", ++ addr.nl_pid); ++ continue; ++ } ++ + incoming_msg = (struct nlmsghdr *)kvp_recv_buffer; + incoming_cn_msg = (struct cn_msg *)NLMSG_DATA(incoming_msg); + +diff --git a/tools/perf/util/trace-event-parse.c b/tools/perf/util/trace-event-parse.c +index bf54c48..6c164dc 100644 +--- a/tools/perf/util/trace-event-parse.c ++++ b/tools/perf/util/trace-event-parse.c +@@ -1582,8 +1582,6 @@ process_symbols(struct event *event, struct print_arg *arg, char **tok) + field = malloc_or_die(sizeof(*field)); + + type = process_arg(event, field, &token); +- while (type == EVENT_OP) +- type = process_op(event, field, &token); + if (test_type_token(type, token, EVENT_DELIM, ",")) + goto out_free; + diff --git a/3.2.41/4420_grsecurity-2.9.1-3.2.41-201303252031.patch b/3.2.42/4420_grsecurity-2.9.1-3.2.42-201303292017.patch index 2fc16f1..56f6d3b 100644 --- a/3.2.41/4420_grsecurity-2.9.1-3.2.41-201303252031.patch +++ b/3.2.42/4420_grsecurity-2.9.1-3.2.42-201303292017.patch @@ -1,5 +1,5 @@ diff --git a/Documentation/dontdiff b/Documentation/dontdiff -index dfa6fc6..65f7dbe 100644 +index dfa6fc6..fad9813 100644 --- a/Documentation/dontdiff +++ b/Documentation/dontdiff @@ -2,9 +2,11 @@ @@ -153,17 +153,18 @@ index dfa6fc6..65f7dbe 100644 relocs rlim_names.h rn50_reg_safe.h -@@ -218,7 +238,9 @@ series +@@ -218,7 +238,10 @@ series setup setup.bin setup.elf ++signing_key* +size_overflow_hash.h sImage +slabinfo sm_tbl* split-include syscalltab.h -@@ -229,6 +251,7 @@ tftpboot.img +@@ -229,6 +252,7 @@ tftpboot.img timeconst.h times.h* trix_boot.h @@ -171,7 +172,7 @@ index dfa6fc6..65f7dbe 100644 utsrelease.h* vdso-syms.lds vdso.lds -@@ -246,7 +269,9 @@ vmlinux +@@ -246,7 +270,9 @@ vmlinux vmlinux-* vmlinux.aout vmlinux.bin.all @@ -181,7 +182,7 @@ index dfa6fc6..65f7dbe 100644 vmlinuz voffset.h vsyscall.lds -@@ -254,9 +279,11 @@ vsyscall_32.lds +@@ -254,9 +280,12 @@ vsyscall_32.lds wanxlfw.inc uImage unifdef @@ -189,6 +190,7 @@ index dfa6fc6..65f7dbe 100644 wakeup.bin wakeup.elf wakeup.lds ++x509* zImage* zconf.hash.c +zconf.lex.c @@ -260,7 +262,7 @@ index 88fd7f5..b318a78 100644 ============================================================== diff --git a/Makefile b/Makefile -index 95e6220..deabfc9 100644 +index d44f009..158a4a4 100644 --- a/Makefile +++ b/Makefile @@ -245,8 +245,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ @@ -286,7 +288,7 @@ index 95e6220..deabfc9 100644 $(Q)$(MAKE) $(build)=scripts/basic $(Q)rm -f .tmp_quiet_recordmcount -@@ -564,6 +565,64 @@ else +@@ -564,6 +565,65 @@ else KBUILD_CFLAGS += -O2 endif @@ -297,11 +299,9 @@ index 95e6220..deabfc9 100644 +PLUGINCC := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-plugin.sh "$(HOSTCC)" "$(HOSTCXX)" "$(CC)") +endif +ifneq ($(PLUGINCC),) -+ifndef DISABLE_PAX_CONSTIFY_PLUGIN -+ifndef CONFIG_UML ++ifdef CONFIG_PAX_CONSTIFY_PLUGIN +CONSTIFY_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/constify_plugin.so -DCONSTIFY_PLUGIN +endif -+endif +ifdef CONFIG_PAX_MEMORY_STACKLEAK +STACKLEAK_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/stackleak_plugin.so -DSTACKLEAK_PLUGIN +STACKLEAK_PLUGIN_CFLAGS += -fplugin-arg-stackleak_plugin-track-lowest-sp=100 @@ -326,9 +326,12 @@ index 95e6220..deabfc9 100644 +ifdef CONFIG_PAX_LATENT_ENTROPY +LATENT_ENTROPY_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/latent_entropy_plugin.so -DLATENT_ENTROPY_PLUGIN +endif ++ifdef CONFIG_PAX_MEMORY_STRUCTLEAK ++STRUCTLEAK_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/structleak_plugin.so -DSTRUCTLEAK_PLUGIN ++endif +GCC_PLUGINS_CFLAGS := $(CONSTIFY_PLUGIN_CFLAGS) $(STACKLEAK_PLUGIN_CFLAGS) $(KALLOCSTAT_PLUGIN_CFLAGS) +GCC_PLUGINS_CFLAGS += $(KERNEXEC_PLUGIN_CFLAGS) $(CHECKER_PLUGIN_CFLAGS) $(COLORIZE_PLUGIN_CFLAGS) -+GCC_PLUGINS_CFLAGS += $(SIZE_OVERFLOW_PLUGIN_CFLAGS) $(LATENT_ENTROPY_PLUGIN_CFLAGS) ++GCC_PLUGINS_CFLAGS += $(SIZE_OVERFLOW_PLUGIN_CFLAGS) $(LATENT_ENTROPY_PLUGIN_CFLAGS) $(STRUCTLEAK_PLUGIN_CFLAGS) +GCC_PLUGINS_AFLAGS := $(KERNEXEC_PLUGIN_AFLAGS) +export PLUGINCC CONSTIFY_PLUGIN +ifeq ($(KBUILD_EXTMOD),) @@ -351,7 +354,7 @@ index 95e6220..deabfc9 100644 include $(srctree)/arch/$(SRCARCH)/Makefile ifneq ($(CONFIG_FRAME_WARN),0) -@@ -708,7 +767,7 @@ export mod_strip_cmd +@@ -708,7 +768,7 @@ export mod_strip_cmd ifeq ($(KBUILD_EXTMOD),) @@ -360,7 +363,7 @@ index 95e6220..deabfc9 100644 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ -@@ -932,6 +991,8 @@ vmlinux.o: $(modpost-init) $(vmlinux-main) FORCE +@@ -932,6 +992,8 @@ vmlinux.o: $(modpost-init) $(vmlinux-main) FORCE # The actual objects are generated when descending, # make sure no implicit rule kicks in @@ -369,7 +372,7 @@ index 95e6220..deabfc9 100644 $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ; # Handle descending into subdirectories listed in $(vmlinux-dirs) -@@ -941,7 +1002,7 @@ $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ; +@@ -941,7 +1003,7 @@ $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ; # Error messages still appears in the original language PHONY += $(vmlinux-dirs) @@ -378,7 +381,7 @@ index 95e6220..deabfc9 100644 $(Q)$(MAKE) $(build)=$@ # Store (new) KERNELRELASE string in include/config/kernel.release -@@ -985,6 +1046,7 @@ prepare0: archprepare FORCE +@@ -985,6 +1047,7 @@ prepare0: archprepare FORCE $(Q)$(MAKE) $(build)=. # All the preparing.. @@ -386,7 +389,7 @@ index 95e6220..deabfc9 100644 prepare: prepare0 # Generate some files -@@ -1089,6 +1151,8 @@ all: modules +@@ -1089,6 +1152,8 @@ all: modules # using awk while concatenating to the final file. PHONY += modules @@ -395,7 +398,7 @@ index 95e6220..deabfc9 100644 modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order @$(kecho) ' Building modules, stage 2.'; -@@ -1104,7 +1168,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin) +@@ -1104,7 +1169,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin) # Target to prepare building external modules PHONY += modules_prepare @@ -404,7 +407,7 @@ index 95e6220..deabfc9 100644 # Target to install modules PHONY += modules_install -@@ -1163,7 +1227,7 @@ CLEAN_FILES += vmlinux System.map \ +@@ -1163,7 +1228,7 @@ CLEAN_FILES += vmlinux System.map \ MRPROPER_DIRS += include/config usr/include include/generated \ arch/*/include/generated MRPROPER_FILES += .config .config.old .version .old_version \ @@ -413,7 +416,7 @@ index 95e6220..deabfc9 100644 Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS # clean - Delete most, but leave enough to build external modules -@@ -1201,6 +1265,7 @@ distclean: mrproper +@@ -1201,6 +1266,7 @@ distclean: mrproper \( -name '*.orig' -o -name '*.rej' -o -name '*~' \ -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ -o -name '.*.rej' \ @@ -421,7 +424,7 @@ index 95e6220..deabfc9 100644 -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \ -type f -print | xargs rm -f -@@ -1361,6 +1426,8 @@ PHONY += $(module-dirs) modules +@@ -1361,6 +1427,8 @@ PHONY += $(module-dirs) modules $(module-dirs): crmodverdir $(objtree)/Module.symvers $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@) @@ -430,7 +433,7 @@ index 95e6220..deabfc9 100644 modules: $(module-dirs) @$(kecho) ' Building modules, stage 2.'; $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost -@@ -1487,17 +1554,21 @@ else +@@ -1487,17 +1555,21 @@ else target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@)) endif @@ -456,7 +459,7 @@ index 95e6220..deabfc9 100644 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) %.symtypes: %.c prepare scripts FORCE $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) -@@ -1507,11 +1578,15 @@ endif +@@ -1507,11 +1579,15 @@ endif $(cmd_crmodverdir) $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \ $(build)=$(build-dir) @@ -9611,7 +9614,7 @@ index 95b4eb3..ccdcbb6 100644 CFI_ENDPROC diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c -index f6f5c53..b358b28 100644 +index f6f5c53..8e51d70 100644 --- a/arch/x86/ia32/sys_ia32.c +++ b/arch/x86/ia32/sys_ia32.c @@ -69,8 +69,8 @@ asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low, @@ -9654,7 +9657,14 @@ index f6f5c53..b358b28 100644 set_fs(old_fs); if (put_compat_timespec(&t, interval)) return -EFAULT; -@@ -369,7 +369,7 @@ asmlinkage long sys32_rt_sigpending(compat_sigset_t __user *set, +@@ -363,13 +363,13 @@ asmlinkage long sys32_sched_rr_get_interval(compat_pid_t pid, + asmlinkage long sys32_rt_sigpending(compat_sigset_t __user *set, + compat_size_t sigsetsize) + { +- sigset_t s; ++ sigset_t s = { }; + compat_sigset_t s32; + int ret; mm_segment_t old_fs = get_fs(); set_fs(KERNEL_DS); @@ -10869,6 +10879,19 @@ index 5d3acdf..6447a02 100644 +#define xadd_check_overflow(ptr, inc) __xadd_check_overflow((ptr), (inc), LOCK_PREFIX) + #endif /* ASM_X86_CMPXCHG_H */ +diff --git a/arch/x86/include/asm/compat.h b/arch/x86/include/asm/compat.h +index 30d737e..9830a9b 100644 +--- a/arch/x86/include/asm/compat.h ++++ b/arch/x86/include/asm/compat.h +@@ -194,7 +194,7 @@ typedef struct user_regs_struct32 compat_elf_gregset_t; + * as pointers because the syscall entry code will have + * appropriately converted them already. + */ +-typedef u32 compat_uptr_t; ++typedef u32 __user compat_uptr_t; + + static inline void __user *compat_ptr(compat_uptr_t uptr) + { diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h index 0c3b775..8cadbc6 100644 --- a/arch/x86/include/asm/cpufeature.h @@ -10894,7 +10917,7 @@ index 0c3b775..8cadbc6 100644 "4:\n" ".previous\n" diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h -index 41935fa..3b40db8 100644 +index 41935fa..2be7ac3 100644 --- a/arch/x86/include/asm/desc.h +++ b/arch/x86/include/asm/desc.h @@ -4,6 +4,7 @@ @@ -10999,6 +11022,15 @@ index 41935fa..3b40db8 100644 } #define _LDT_empty(info) \ +@@ -284,7 +297,7 @@ static inline void load_LDT(mm_context_t *pc) + preempt_enable(); + } + +-static inline unsigned long get_desc_base(const struct desc_struct *desc) ++static inline unsigned long __intentional_overflow(-1) get_desc_base(const struct desc_struct *desc) + { + return (unsigned)(desc->base0 | ((desc->base1) << 16) | ((desc->base2) << 24)); + } @@ -307,7 +320,7 @@ static inline void set_desc_limit(struct desc_struct *desc, unsigned long limit) desc->limit = (limit >> 16) & 0xf; } @@ -11092,6 +11124,19 @@ index 278441f..b95a174 100644 }; } __attribute__((packed)); +diff --git a/arch/x86/include/asm/div64.h b/arch/x86/include/asm/div64.h +index 9a2d644..5abb141 100644 +--- a/arch/x86/include/asm/div64.h ++++ b/arch/x86/include/asm/div64.h +@@ -33,7 +33,7 @@ + __mod; \ + }) + +-static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder) ++static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder) + { + union { + u64 v64; diff --git a/arch/x86/include/asm/e820.h b/arch/x86/include/asm/e820.h index 908b969..a1f4eb4 100644 --- a/arch/x86/include/asm/e820.h @@ -11330,10 +11375,40 @@ index a850b4d..1d8dfb7 100644 } /* +diff --git a/arch/x86/include/asm/i8259.h b/arch/x86/include/asm/i8259.h +index a203659..9889f1c 100644 +--- a/arch/x86/include/asm/i8259.h ++++ b/arch/x86/include/asm/i8259.h +@@ -62,7 +62,7 @@ struct legacy_pic { + void (*init)(int auto_eoi); + int (*irq_pending)(unsigned int irq); + void (*make_irq)(unsigned int irq); +-}; ++} __do_const; + + extern struct legacy_pic *legacy_pic; + extern struct legacy_pic null_legacy_pic; diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h -index d8e8eef..15b1179 100644 +index d8e8eef..1765f78 100644 --- a/arch/x86/include/asm/io.h +++ b/arch/x86/include/asm/io.h +@@ -51,12 +51,12 @@ static inline void name(type val, volatile void __iomem *addr) \ + "m" (*(volatile type __force *)addr) barrier); } + + build_mmio_read(readb, "b", unsigned char, "=q", :"memory") +-build_mmio_read(readw, "w", unsigned short, "=r", :"memory") +-build_mmio_read(readl, "l", unsigned int, "=r", :"memory") ++build_mmio_read(__intentional_overflow(-1) readw, "w", unsigned short, "=r", :"memory") ++build_mmio_read(__intentional_overflow(-1) readl, "l", unsigned int, "=r", :"memory") + + build_mmio_read(__readb, "b", unsigned char, "=q", ) +-build_mmio_read(__readw, "w", unsigned short, "=r", ) +-build_mmio_read(__readl, "l", unsigned int, "=r", ) ++build_mmio_read(__intentional_overflow(-1) __readw, "w", unsigned short, "=r", ) ++build_mmio_read(__intentional_overflow(-1) __readl, "l", unsigned int, "=r", ) + + build_mmio_write(writeb, "b", unsigned char, "q", :"memory") + build_mmio_write(writew, "w", unsigned short, "r", :"memory") @@ -184,7 +184,7 @@ static inline void __iomem *ioremap(resource_size_t offset, unsigned long size) return ioremap_nocache(offset, size); } @@ -11879,9 +11954,18 @@ index 7639dbf..e08a58c 100644 extern unsigned long __phys_addr(unsigned long); #define __phys_reloc_hide(x) (x) diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h -index a7d2db9..edb023e 100644 +index a7d2db9..e1f3a6a 100644 --- a/arch/x86/include/asm/paravirt.h +++ b/arch/x86/include/asm/paravirt.h +@@ -601,7 +601,7 @@ static inline pmd_t __pmd(pmdval_t val) + return (pmd_t) { ret }; + } + +-static inline pmdval_t pmd_val(pmd_t pmd) ++static inline __intentional_overflow(-1) pmdval_t pmd_val(pmd_t pmd) + { + pmdval_t ret; + @@ -667,6 +667,18 @@ static inline void set_pgd(pgd_t *pgdp, pgd_t pgd) val); } @@ -14195,18 +14279,9 @@ index bb05228..d763d5b 100644 #endif diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h -index 1971e65..6fa8756 100644 +index 1971e65..1e07354 100644 --- a/arch/x86/include/asm/x86_init.h +++ b/arch/x86/include/asm/x86_init.h -@@ -101,7 +101,7 @@ struct x86_init_timers { - void (*tsc_pre_init)(void); - void (*timer_init)(void); - void (*wallclock_init)(void); --}; -+} __no_const; - - /** - * struct x86_init_iommu - platform specific iommu setup @@ -139,7 +139,7 @@ struct x86_init_ops { struct x86_init_timers timers; struct x86_init_iommu iommu; @@ -14283,6 +14358,28 @@ index c6ce245..aab6adb 100644 "2:\n" ".section .fixup,\"ax\"\n" "3: movl $-1,%[err]\n" +diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c +index 479d03c..2450277 100644 +--- a/arch/x86/kernel/acpi/boot.c ++++ b/arch/x86/kernel/acpi/boot.c +@@ -1345,7 +1345,7 @@ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d) + * If your system is blacklisted here, but you find that acpi=force + * works for you, please contact linux-acpi@vger.kernel.org + */ +-static struct dmi_system_id __initdata acpi_dmi_table[] = { ++static const struct dmi_system_id __initconst acpi_dmi_table[] = { + /* + * Boxes that need ACPI disabled + */ +@@ -1420,7 +1420,7 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = { + }; + + /* second table for DMI checks that should run after early-quirks */ +-static struct dmi_system_id __initdata acpi_dmi_table_late[] = { ++static const struct dmi_system_id __initconst acpi_dmi_table_late[] = { + /* + * HP laptops which use a DSDT reporting as HP/SB400/10000, + * which includes some code which overrides all temperature diff --git a/arch/x86/kernel/acpi/realmode/Makefile b/arch/x86/kernel/acpi/realmode/Makefile index 6a564ac..3f3a3d7 100644 --- a/arch/x86/kernel/acpi/realmode/Makefile @@ -14537,6 +14634,19 @@ index f7a41e4..be25d88 100644 .name = "physical flat", .probe = physflat_probe, +diff --git a/arch/x86/kernel/apic/apic_noop.c b/arch/x86/kernel/apic/apic_noop.c +index 775b82b..841f78b 100644 +--- a/arch/x86/kernel/apic/apic_noop.c ++++ b/arch/x86/kernel/apic/apic_noop.c +@@ -119,7 +119,7 @@ static void noop_apic_write(u32 reg, u32 v) + WARN_ON_ONCE(cpu_has_apic && !disable_apic); + } + +-struct apic apic_noop = { ++struct apic apic_noop __read_only = { + .name = "noop", + .probe = noop_probe, + .acpi_madt_oem_check = NULL, diff --git a/arch/x86/kernel/apic/bigsmp_32.c b/arch/x86/kernel/apic/bigsmp_32.c index 521bead..a724871 100644 --- a/arch/x86/kernel/apic/bigsmp_32.c @@ -14551,7 +14661,7 @@ index 521bead..a724871 100644 .name = "bigsmp", .probe = probe_bigsmp, diff --git a/arch/x86/kernel/apic/es7000_32.c b/arch/x86/kernel/apic/es7000_32.c -index 5d513bc..6c9c1ca 100644 +index 5d513bc..6a51935 100644 --- a/arch/x86/kernel/apic/es7000_32.c +++ b/arch/x86/kernel/apic/es7000_32.c @@ -619,8 +619,7 @@ static int es7000_mps_oem_check_cluster(struct mpc_table *mpc, char *oem, @@ -14569,12 +14679,12 @@ index 5d513bc..6c9c1ca 100644 }; -static struct apic __refdata apic_es7000 = { -+static struct apic __refdata apic_es7000 __read_only = { ++static struct apic apic_es7000 __read_only = { .name = "es7000", .probe = probe_es7000, diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c -index 6d939d7..0697fcc 100644 +index 6d939d7..75d1260 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -1096,7 +1096,7 @@ int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin, @@ -14613,6 +14723,27 @@ index 6d939d7..0697fcc 100644 eoi_ioapic_irq(irq, cfg); } +@@ -2634,13 +2634,16 @@ static void ir_print_prefix(struct irq_data *data, struct seq_file *p) + + static void irq_remap_modify_chip_defaults(struct irq_chip *chip) + { +- chip->irq_print_chip = ir_print_prefix; +- chip->irq_ack = ir_ack_apic_edge; +- chip->irq_eoi = ir_ack_apic_level; ++ pax_open_kernel(); ++ *(void **)&chip->irq_print_chip = ir_print_prefix; ++ *(void **)&chip->irq_ack = ir_ack_apic_edge; ++ *(void **)&chip->irq_eoi = ir_ack_apic_level; + + #ifdef CONFIG_SMP +- chip->irq_set_affinity = ir_ioapic_set_affinity; ++ *(void **)&chip->irq_set_affinity = ir_ioapic_set_affinity; + #endif ++ ++ pax_close_kernel(); + } + #endif /* CONFIG_IRQ_REMAP */ + diff --git a/arch/x86/kernel/apic/numaq_32.c b/arch/x86/kernel/apic/numaq_32.c index c4a61ca..4c63d32 100644 --- a/arch/x86/kernel/apic/numaq_32.c @@ -15118,7 +15249,7 @@ index 0e89635..f0a7525 100644 }; diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c -index 3b67877..e41ede1 100644 +index 3b67877..bf490b9 100644 --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c @@ -42,6 +42,7 @@ @@ -15242,6 +15373,15 @@ index 3b67877..e41ede1 100644 .notifier_call = mce_cpu_callback, }; +@@ -2109,7 +2112,7 @@ static __init void mce_init_banks(void) + + for (i = 0; i < banks; i++) { + struct mce_bank *b = &mce_banks[i]; +- struct sysdev_attribute *a = &b->attr; ++ sysdev_attribute_no_const *a = &b->attr; + + sysfs_attr_init(&a->attr); + a->attr.name = b->attrname; @@ -2177,7 +2180,7 @@ struct dentry *mce_get_debugfs_dir(void) static void mce_reset(void) { @@ -18434,7 +18574,7 @@ index 9c3bd4a..e1d9b35 100644 +EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR); +#endif diff --git a/arch/x86/kernel/i8259.c b/arch/x86/kernel/i8259.c -index 6104852..6114160 100644 +index 6104852..567e2fb 100644 --- a/arch/x86/kernel/i8259.c +++ b/arch/x86/kernel/i8259.c @@ -210,7 +210,7 @@ spurious_8259A_irq: @@ -18446,6 +18586,25 @@ index 6104852..6114160 100644 /* * Theoretically we do not have to handle this IRQ, * but in Linux this does not cause problems and is +@@ -334,14 +334,16 @@ static void init_8259A(int auto_eoi) + /* (slave's support for AEOI in flat mode is to be investigated) */ + outb_pic(SLAVE_ICW4_DEFAULT, PIC_SLAVE_IMR); + ++ pax_open_kernel(); + if (auto_eoi) + /* + * In AEOI mode we just have to mask the interrupt + * when acking. + */ +- i8259A_chip.irq_mask_ack = disable_8259A_irq; ++ *(void **)&i8259A_chip.irq_mask_ack = disable_8259A_irq; + else +- i8259A_chip.irq_mask_ack = mask_and_ack_8259A; ++ *(void **)&i8259A_chip.irq_mask_ack = mask_and_ack_8259A; ++ pax_close_kernel(); + + udelay(100); /* wait for 8259A to initialize */ + diff --git a/arch/x86/kernel/init_task.c b/arch/x86/kernel/init_task.c index 43e9ccf..44ccf6f 100644 --- a/arch/x86/kernel/init_task.c @@ -18468,6 +18627,19 @@ index 43e9ccf..44ccf6f 100644 - +struct tss_struct init_tss[NR_CPUS] ____cacheline_internodealigned_in_smp = { [0 ... NR_CPUS-1] = INIT_TSS }; +EXPORT_SYMBOL(init_tss); +diff --git a/arch/x86/kernel/io_delay.c b/arch/x86/kernel/io_delay.c +index a979b5b..1d6db75 100644 +--- a/arch/x86/kernel/io_delay.c ++++ b/arch/x86/kernel/io_delay.c +@@ -58,7 +58,7 @@ static int __init dmi_io_delay_0xed_port(const struct dmi_system_id *id) + * Quirk table for systems that misbehave (lock up, etc.) if port + * 0x80 is used: + */ +-static struct dmi_system_id __initdata io_delay_0xed_port_dmi_table[] = { ++static const struct dmi_system_id __initconst io_delay_0xed_port_dmi_table[] = { + { + .callback = dmi_io_delay_0xed_port, + .ident = "Compaq Presario V6000", diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c index 8c96897..be66bfa 100644 --- a/arch/x86/kernel/ioport.c @@ -18816,7 +18988,7 @@ index 2f45c4c..3f51a0c 100644 } diff --git a/arch/x86/kernel/kprobes.c b/arch/x86/kernel/kprobes.c -index 7da647d..c828808 100644 +index 7da647d..e88104f 100644 --- a/arch/x86/kernel/kprobes.c +++ b/arch/x86/kernel/kprobes.c @@ -117,9 +117,12 @@ static void __kprobes __synthesize_relative_insn(void *from, void *to, u8 op) @@ -18860,7 +19032,12 @@ index 7da647d..c828808 100644 } insn_get_length(&insn); addr += insn.length; -@@ -317,7 +320,9 @@ static int __kprobes __copy_instruction(u8 *dest, u8 *src, int recover) +@@ -313,11 +316,13 @@ static int __kprobes __copy_instruction(u8 *dest, u8 *src, int recover) + (unsigned long)src); + if (ret) + return 0; +- kernel_insn_init(&insn, buf); ++ kernel_insn_init(&insn, ktva_ktla(buf)); } } insn_get_length(&insn); @@ -18953,6 +19130,15 @@ index 7da647d..c828808 100644 return ret; switch (val) { +@@ -1307,7 +1317,7 @@ static int __kprobes can_optimize(unsigned long paddr) + ret = recover_probed_instruction(buf, addr); + if (ret) + return 0; +- kernel_insn_init(&insn, buf); ++ kernel_insn_init(&insn, ktva_ktla(buf)); + } + insn_get_length(&insn); + /* Recover address */ @@ -1384,7 +1394,7 @@ int __kprobes arch_prepare_optimized_kprobe(struct optimized_kprobe *op) * Verify if the address gap is in 2GB range, because this uses * a relative jump. @@ -19307,9 +19493,30 @@ index f7d1a64..399615a 100644 }; diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c -index e88f37b..1353db6 100644 +index e88f37b..45bb4ff 100644 --- a/arch/x86/kernel/nmi.c +++ b/arch/x86/kernel/nmi.c +@@ -126,9 +126,9 @@ static int __setup_nmi(unsigned int type, struct nmiaction *action) + * event confuses some handlers (kdump uses this flag) + */ + if (action->flags & NMI_FLAG_FIRST) +- list_add_rcu(&action->list, &desc->head); ++ pax_list_add_rcu((struct list_head *)&action->list, &desc->head); + else +- list_add_tail_rcu(&action->list, &desc->head); ++ pax_list_add_tail_rcu((struct list_head *)&action->list, &desc->head); + + spin_unlock_irqrestore(&desc->lock, flags); + return 0; +@@ -150,7 +150,7 @@ static struct nmiaction *__free_nmi(unsigned int type, const char *name) + if (!strcmp(n->name, name)) { + WARN(in_nmi(), + "Trying to free NMI (%s) from NMI context!\n", n->name); +- list_del_rcu(&n->list); ++ pax_list_del_rcu((struct list_head *)&n->list); + break; + } + } @@ -408,6 +408,17 @@ static notrace __kprobes void default_do_nmi(struct pt_regs *regs) dotraplinkage notrace __kprobes void do_nmi(struct pt_regs *regs, long error_code) @@ -20168,7 +20375,7 @@ index b506f41..33e9995 100644 bss_resource.start = virt_to_phys(&__bss_start); bss_resource.end = virt_to_phys(&__bss_stop)-1; diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c -index 5a98aa2..2f9288d 100644 +index 5a98aa2..5aa4ffc 100644 --- a/arch/x86/kernel/setup_percpu.c +++ b/arch/x86/kernel/setup_percpu.c @@ -21,19 +21,17 @@ @@ -20195,6 +20402,15 @@ index 5a98aa2..2f9288d 100644 [0 ... NR_CPUS-1] = BOOT_PERCPU_OFFSET, }; EXPORT_SYMBOL(__per_cpu_offset); +@@ -66,7 +64,7 @@ static bool __init pcpu_need_numa(void) + { + #ifdef CONFIG_NEED_MULTIPLE_NODES + pg_data_t *last = NULL; +- unsigned int cpu; ++ int cpu; + + for_each_possible_cpu(cpu) { + int node = early_cpu_to_node(cpu); @@ -155,10 +153,10 @@ static inline void setup_percpu_segment(int cpu) { #ifdef CONFIG_X86_32 @@ -24836,7 +25052,7 @@ index e218d5d..7d522b8 100644 +EXPORT_SYMBOL(set_fs); +#endif diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c -index b7c2849..17c878da 100644 +index 554b7b5..2f1b9c2 100644 --- a/arch/x86/lib/usercopy_64.c +++ b/arch/x86/lib/usercopy_64.c @@ -42,6 +42,12 @@ long @@ -24917,7 +25133,7 @@ index d0474ad..36e9257 100644 extern u32 pnp_bios_is_utter_crap; pnp_bios_is_utter_crap = 1; diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c -index 7b73c88..070d4b2 100644 +index 7b73c88..a561402 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -13,11 +13,18 @@ @@ -25026,15 +25242,16 @@ index 7b73c88..070d4b2 100644 + pmd_t *ret; +#else list_for_each_entry(page, &pgd_list, lru) { -+ pgd_t *pgd = page_address(page); ++ pgd_t *pgd; spinlock_t *pgt_lock; pmd_t *ret; -@@ -242,8 +295,13 @@ void vmalloc_sync_all(void) +@@ -242,8 +295,14 @@ void vmalloc_sync_all(void) pgt_lock = &pgd_page_get_mm(page)->page_table_lock; spin_lock(pgt_lock); - ret = vmalloc_sync_one(page_address(page), address); ++ pgd = page_address(page); +#endif + + ret = vmalloc_sync_one(pgd, address); @@ -25045,7 +25262,7 @@ index 7b73c88..070d4b2 100644 if (!ret) break; -@@ -277,6 +335,11 @@ static noinline __kprobes int vmalloc_fault(unsigned long address) +@@ -277,6 +336,11 @@ static noinline __kprobes int vmalloc_fault(unsigned long address) * an interrupt in the middle of a task switch.. */ pgd_paddr = read_cr3(); @@ -25057,7 +25274,7 @@ index 7b73c88..070d4b2 100644 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address); if (!pmd_k) return -1; -@@ -372,7 +435,14 @@ static noinline __kprobes int vmalloc_fault(unsigned long address) +@@ -372,7 +436,14 @@ static noinline __kprobes int vmalloc_fault(unsigned long address) * happen within a race in page table update. In the later * case just flush: */ @@ -25072,7 +25289,7 @@ index 7b73c88..070d4b2 100644 pgd_ref = pgd_offset_k(address); if (pgd_none(*pgd_ref)) return -1; -@@ -540,7 +610,7 @@ static int is_errata93(struct pt_regs *regs, unsigned long address) +@@ -540,7 +611,7 @@ static int is_errata93(struct pt_regs *regs, unsigned long address) static int is_errata100(struct pt_regs *regs, unsigned long address) { #ifdef CONFIG_X86_64 @@ -25081,7 +25298,7 @@ index 7b73c88..070d4b2 100644 return 1; #endif return 0; -@@ -567,7 +637,7 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address) +@@ -567,7 +638,7 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address) } static const char nx_warning[] = KERN_CRIT @@ -25090,7 +25307,7 @@ index 7b73c88..070d4b2 100644 static void show_fault_oops(struct pt_regs *regs, unsigned long error_code, -@@ -576,15 +646,26 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code, +@@ -576,15 +647,26 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code, if (!oops_may_print()) return; @@ -25119,10 +25336,11 @@ index 7b73c88..070d4b2 100644 printk(KERN_ALERT "BUG: unable to handle kernel "); if (address < PAGE_SIZE) printk(KERN_CONT "NULL pointer dereference"); -@@ -742,6 +823,25 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code, - if (address >= TASK_SIZE) - error_code |= PF_PROT; - +@@ -738,6 +820,22 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code, + return; + } + #endif ++ +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC) + if (pax_is_fetch_fault(regs, error_code, address)) { + @@ -25138,14 +25356,10 @@ index 7b73c88..070d4b2 100644 + } +#endif + -+ /* Kernel addresses are always protection faults: */ -+ if (address >= TASK_SIZE) -+ error_code |= PF_PROT; -+ - if (likely(show_unhandled_signals)) - show_signal_msg(regs, error_code, address, tsk); - -@@ -837,7 +937,7 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address, + /* Kernel addresses are always protection faults: */ + if (address >= TASK_SIZE) + error_code |= PF_PROT; +@@ -837,7 +935,7 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address, if (fault & (VM_FAULT_HWPOISON|VM_FAULT_HWPOISON_LARGE)) { printk(KERN_ERR "MCE: Killing %s:%d due to hardware memory corruption fault at %lx\n", @@ -25154,7 +25368,7 @@ index 7b73c88..070d4b2 100644 code = BUS_MCEERR_AR; } #endif -@@ -892,6 +992,99 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte) +@@ -892,6 +990,99 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte) return 1; } @@ -25254,7 +25468,7 @@ index 7b73c88..070d4b2 100644 /* * Handle a spurious fault caused by a stale TLB entry. * -@@ -964,6 +1157,9 @@ int show_unhandled_signals = 1; +@@ -964,6 +1155,9 @@ int show_unhandled_signals = 1; static inline int access_error(unsigned long error_code, struct vm_area_struct *vma) { @@ -25264,7 +25478,7 @@ index 7b73c88..070d4b2 100644 if (error_code & PF_WRITE) { /* write, present and write, not present: */ if (unlikely(!(vma->vm_flags & VM_WRITE))) -@@ -997,18 +1193,32 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code) +@@ -997,18 +1191,32 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code) { struct vm_area_struct *vma; struct task_struct *tsk; @@ -25302,7 +25516,7 @@ index 7b73c88..070d4b2 100644 /* * Detect and handle instructions that would cause a page fault for -@@ -1069,7 +1279,7 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code) +@@ -1069,7 +1277,7 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code) * User-mode registers count as a user access even for any * potential system fault or CPU buglet: */ @@ -25311,7 +25525,7 @@ index 7b73c88..070d4b2 100644 local_irq_enable(); error_code |= PF_USER; } else { -@@ -1124,6 +1334,11 @@ retry: +@@ -1124,6 +1332,11 @@ retry: might_sleep(); } @@ -25323,7 +25537,7 @@ index 7b73c88..070d4b2 100644 vma = find_vma(mm, address); if (unlikely(!vma)) { bad_area(regs, error_code, address); -@@ -1135,18 +1350,24 @@ retry: +@@ -1135,18 +1348,24 @@ retry: bad_area(regs, error_code, address); return; } @@ -25359,7 +25573,7 @@ index 7b73c88..070d4b2 100644 if (unlikely(expand_stack(vma, address))) { bad_area(regs, error_code, address); return; -@@ -1201,3 +1422,292 @@ good_area: +@@ -1201,3 +1420,292 @@ good_area: up_read(&mm->mmap_sem); } @@ -26557,7 +26771,7 @@ index 7b179b4..6bd1777 100644 return (void *)vaddr; diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c -index be1ef57..2f2369b 100644 +index be1ef57..406f1c2 100644 --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c @@ -97,7 +97,7 @@ static void __iomem *__ioremap_caller(resource_size_t phys_addr, @@ -26588,7 +26802,17 @@ index be1ef57..2f2369b 100644 return __va(phys); addr = (void __force *)ioremap_cache(start, PAGE_SIZE); -@@ -344,7 +347,7 @@ static int __init early_ioremap_debug_setup(char *str) +@@ -327,6 +330,9 @@ void *xlate_dev_mem_ptr(unsigned long phys) + void unxlate_dev_mem_ptr(unsigned long phys, void *addr) + { + if (page_is_ram(phys >> PAGE_SHIFT)) ++#ifdef CONFIG_HIGHMEM ++ if ((phys >> PAGE_SHIFT) < max_low_pfn) ++#endif + return; + + iounmap((void __iomem *)((unsigned long)addr & PAGE_MASK)); +@@ -344,7 +350,7 @@ static int __init early_ioremap_debug_setup(char *str) early_param("early_ioremap_debug", early_ioremap_debug_setup); static __initdata int after_paging_init; @@ -26597,7 +26821,7 @@ index be1ef57..2f2369b 100644 static inline pmd_t * __init early_ioremap_pmd(unsigned long addr) { -@@ -381,8 +384,7 @@ void __init early_ioremap_init(void) +@@ -381,8 +387,7 @@ void __init early_ioremap_init(void) slot_virt[i] = __fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i); pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN)); @@ -26757,6 +26981,19 @@ index de54b9b..935281f 100644 { might_sleep(); if (is_enabled()) /* recheck and proper locking in *_core() */ +diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c +index fbeaaf4..559063f 100644 +--- a/arch/x86/mm/numa.c ++++ b/arch/x86/mm/numa.c +@@ -494,7 +494,7 @@ static bool __init numa_meminfo_cover_memory(const struct numa_meminfo *mi) + return true; + } + +-static int __init numa_register_memblks(struct numa_meminfo *mi) ++static int __init __intentional_overflow(-1) numa_register_memblks(struct numa_meminfo *mi) + { + unsigned long uninitialized_var(pfn_align); + int i, nid; diff --git a/arch/x86/mm/pageattr-test.c b/arch/x86/mm/pageattr-test.c index b008656..773eac2 100644 --- a/arch/x86/mm/pageattr-test.c @@ -27237,6 +27474,28 @@ index cac7184..09a39fa 100644 /* * It's enough to flush this one mapping. +diff --git a/arch/x86/mm/physaddr.c b/arch/x86/mm/physaddr.c +index d2e2735..5c6586f 100644 +--- a/arch/x86/mm/physaddr.c ++++ b/arch/x86/mm/physaddr.c +@@ -8,7 +8,7 @@ + + #ifdef CONFIG_X86_64 + +-unsigned long __phys_addr(unsigned long x) ++unsigned long __intentional_overflow(-1) __phys_addr(unsigned long x) + { + if (x >= __START_KERNEL_map) { + x -= __START_KERNEL_map; +@@ -45,7 +45,7 @@ EXPORT_SYMBOL(__virt_addr_valid); + #else + + #ifdef CONFIG_DEBUG_VIRTUAL +-unsigned long __phys_addr(unsigned long x) ++unsigned long __intentional_overflow(-1) __phys_addr(unsigned long x) + { + /* VMALLOC_* aren't constants */ + VIRTUAL_BUG_ON(x < PAGE_OFFSET); diff --git a/arch/x86/mm/setup_nx.c b/arch/x86/mm/setup_nx.c index 410531d..0f16030 100644 --- a/arch/x86/mm/setup_nx.c @@ -27703,6 +27962,89 @@ index bff89df..377758a 100644 unsigned long stack = kernel_stack_pointer(regs); if (depth) dump_trace(NULL, regs, (unsigned long *)stack, 0, +diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c +index 6bc0899..13d2579 100644 +--- a/arch/x86/oprofile/nmi_int.c ++++ b/arch/x86/oprofile/nmi_int.c +@@ -23,6 +23,7 @@ + #include <asm/nmi.h> + #include <asm/msr.h> + #include <asm/apic.h> ++#include <asm/pgtable.h> + + #include "op_counter.h" + #include "op_x86_model.h" +@@ -759,8 +760,11 @@ int __init op_nmi_init(struct oprofile_operations *ops) + if (ret) + return ret; + +- if (!model->num_virt_counters) +- model->num_virt_counters = model->num_counters; ++ if (!model->num_virt_counters) { ++ pax_open_kernel(); ++ *(unsigned int *)&model->num_virt_counters = model->num_counters; ++ pax_close_kernel(); ++ } + + mux_init(ops); + +diff --git a/arch/x86/oprofile/op_model_amd.c b/arch/x86/oprofile/op_model_amd.c +index 303f086..d020916 100644 +--- a/arch/x86/oprofile/op_model_amd.c ++++ b/arch/x86/oprofile/op_model_amd.c +@@ -519,9 +519,11 @@ static int op_amd_init(struct oprofile_operations *ops) + num_counters = AMD64_NUM_COUNTERS; + } + +- op_amd_spec.num_counters = num_counters; +- op_amd_spec.num_controls = num_counters; +- op_amd_spec.num_virt_counters = max(num_counters, NUM_VIRT_COUNTERS); ++ pax_open_kernel(); ++ *(unsigned int *)&op_amd_spec.num_counters = num_counters; ++ *(unsigned int *)&op_amd_spec.num_controls = num_counters; ++ *(unsigned int *)&op_amd_spec.num_virt_counters = max(num_counters, NUM_VIRT_COUNTERS); ++ pax_close_kernel(); + + return 0; + } +diff --git a/arch/x86/oprofile/op_model_ppro.c b/arch/x86/oprofile/op_model_ppro.c +index d90528e..0127e2b 100644 +--- a/arch/x86/oprofile/op_model_ppro.c ++++ b/arch/x86/oprofile/op_model_ppro.c +@@ -19,6 +19,7 @@ + #include <asm/msr.h> + #include <asm/apic.h> + #include <asm/nmi.h> ++#include <asm/pgtable.h> + + #include "op_x86_model.h" + #include "op_counter.h" +@@ -221,8 +222,10 @@ static void arch_perfmon_setup_counters(void) + + num_counters = min((int)eax.split.num_counters, OP_MAX_COUNTER); + +- op_arch_perfmon_spec.num_counters = num_counters; +- op_arch_perfmon_spec.num_controls = num_counters; ++ pax_open_kernel(); ++ *(unsigned int *)&op_arch_perfmon_spec.num_counters = num_counters; ++ *(unsigned int *)&op_arch_perfmon_spec.num_controls = num_counters; ++ pax_close_kernel(); + } + + static int arch_perfmon_init(struct oprofile_operations *ignore) +diff --git a/arch/x86/oprofile/op_x86_model.h b/arch/x86/oprofile/op_x86_model.h +index 71e8a67..6a313bb 100644 +--- a/arch/x86/oprofile/op_x86_model.h ++++ b/arch/x86/oprofile/op_x86_model.h +@@ -52,7 +52,7 @@ struct op_x86_model_spec { + void (*switch_ctrl)(struct op_x86_model_spec const *model, + struct op_msrs const * const msrs); + #endif +-}; ++} __do_const; + + struct op_counter_config; + diff --git a/arch/x86/pci/amd_bus.c b/arch/x86/pci/amd_bus.c index 385a940..b11662d 100644 --- a/arch/x86/pci/amd_bus.c @@ -27716,6 +28058,46 @@ index 385a940..b11662d 100644 .notifier_call = amd_cpu_notify, }; +diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c +index 372e9b8..e775a6c 100644 +--- a/arch/x86/pci/irq.c ++++ b/arch/x86/pci/irq.c +@@ -50,7 +50,7 @@ struct irq_router { + struct irq_router_handler { + u16 vendor; + int (*probe)(struct irq_router *r, struct pci_dev *router, u16 device); +-}; ++} __do_const; + + int (*pcibios_enable_irq)(struct pci_dev *dev) = pirq_enable_irq; + void (*pcibios_disable_irq)(struct pci_dev *dev) = NULL; +@@ -794,7 +794,7 @@ static __init int pico_router_probe(struct irq_router *r, struct pci_dev *router + return 0; + } + +-static __initdata struct irq_router_handler pirq_routers[] = { ++static __initconst const struct irq_router_handler pirq_routers[] = { + { PCI_VENDOR_ID_INTEL, intel_router_probe }, + { PCI_VENDOR_ID_AL, ali_router_probe }, + { PCI_VENDOR_ID_ITE, ite_router_probe }, +@@ -821,7 +821,7 @@ static struct pci_dev *pirq_router_dev; + static void __init pirq_find_router(struct irq_router *r) + { + struct irq_routing_table *rt = pirq_table; +- struct irq_router_handler *h; ++ const struct irq_router_handler *h; + + #ifdef CONFIG_PCI_BIOS + if (!rt->signature) { +@@ -1094,7 +1094,7 @@ static int __init fix_acer_tm360_irqrouting(const struct dmi_system_id *d) + return 0; + } + +-static struct dmi_system_id __initdata pciirq_dmi_table[] = { ++static const struct dmi_system_id __initconst pciirq_dmi_table[] = { + { + .callback = fix_broken_hp_bios_irq9, + .ident = "HP Pavilion N5400 Series Laptop", diff --git a/arch/x86/pci/mrst.c b/arch/x86/pci/mrst.c index cb29191..036766d 100644 --- a/arch/x86/pci/mrst.c @@ -28318,10 +28700,10 @@ index d6ee929..3637cb5 100644 .getproplen = olpc_dt_getproplen, .getproperty = olpc_dt_getproperty, diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c -index f10c0af..78a3d87 100644 +index 43c9f6a..2b63a0b 100644 --- a/arch/x86/power/cpu.c +++ b/arch/x86/power/cpu.c -@@ -131,7 +131,7 @@ static void do_fpu_end(void) +@@ -132,7 +132,7 @@ static void do_fpu_end(void) static void fix_processor_context(void) { int cpu = smp_processor_id(); @@ -28330,7 +28712,7 @@ index f10c0af..78a3d87 100644 set_tss_desc(cpu, t); /* * This just modifies memory; should not be -@@ -141,8 +141,6 @@ static void fix_processor_context(void) +@@ -142,8 +142,6 @@ static void fix_processor_context(void) */ #ifdef CONFIG_X86_64 @@ -29280,6 +29662,19 @@ index 5b63b8d..6f46ba0 100644 if (strlen(p->cru_driver_name)) exact = 1; +diff --git a/drivers/acpi/apei/apei-internal.h b/drivers/acpi/apei/apei-internal.h +index f57050e..7ccfc74 100644 +--- a/drivers/acpi/apei/apei-internal.h ++++ b/drivers/acpi/apei/apei-internal.h +@@ -18,7 +18,7 @@ typedef int (*apei_exec_ins_func_t)(struct apei_exec_context *ctx, + struct apei_exec_ins_type { + u32 flags; + apei_exec_ins_func_t run; +-}; ++} __do_const; + + struct apei_exec_context { + u32 ip; diff --git a/drivers/acpi/apei/cper.c b/drivers/acpi/apei/cper.c index 5d41894..22021e4 100644 --- a/drivers/acpi/apei/cper.c @@ -29301,6 +29696,28 @@ index 5d41894..22021e4 100644 } EXPORT_SYMBOL_GPL(cper_next_record_id); +diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c +index cb96296..b81293b 100644 +--- a/drivers/acpi/blacklist.c ++++ b/drivers/acpi/blacklist.c +@@ -52,7 +52,7 @@ struct acpi_blacklist_item { + u32 is_critical_error; + }; + +-static struct dmi_system_id acpi_osi_dmi_table[] __initdata; ++static const struct dmi_system_id acpi_osi_dmi_table[] __initconst; + + /* + * POLICY: If *anything* doesn't work, put it on the blacklist. +@@ -193,7 +193,7 @@ static int __init dmi_disable_osi_win7(const struct dmi_system_id *d) + return 0; + } + +-static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { ++static const struct dmi_system_id acpi_osi_dmi_table[] __initconst = { + { + .callback = dmi_disable_osi_vista, + .ident = "Fujitsu Siemens", diff --git a/drivers/acpi/ec_sys.c b/drivers/acpi/ec_sys.c index 6c47ae9..abfdd63 100644 --- a/drivers/acpi/ec_sys.c @@ -29392,6 +29809,50 @@ index ac28db3..0848b37 100644 /* * Buggy BIOS check +diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c +index de0791c..d6d4ea3 100644 +--- a/drivers/acpi/processor_idle.c ++++ b/drivers/acpi/processor_idle.c +@@ -1036,7 +1036,7 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr) + { + int i, count = CPUIDLE_DRIVER_STATE_START; + struct acpi_processor_cx *cx; +- struct cpuidle_state *state; ++ cpuidle_state_no_const *state; + struct cpuidle_driver *drv = &acpi_idle_driver; + + if (!pr->flags.power_setup_done) +diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c +index 240a244..bc6239e 100644 +--- a/drivers/acpi/sysfs.c ++++ b/drivers/acpi/sysfs.c +@@ -420,11 +420,11 @@ static u32 num_counters; + static struct attribute **all_attrs; + static u32 acpi_gpe_count; + +-static struct attribute_group interrupt_stats_attr_group = { ++static attribute_group_no_const interrupt_stats_attr_group = { + .name = "interrupts", + }; + +-static struct kobj_attribute *counter_attrs; ++static kobj_attribute_no_const *counter_attrs; + + static void delete_gpe_attr_array(void) + { +diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c +index 3c92dbd..008b08b 100644 +--- a/drivers/ata/libahci.c ++++ b/drivers/ata/libahci.c +@@ -1211,7 +1211,7 @@ int ahci_kick_engine(struct ata_port *ap) + } + EXPORT_SYMBOL_GPL(ahci_kick_engine); + +-static int ahci_exec_polled_cmd(struct ata_port *ap, int pmp, ++static int __intentional_overflow(-1) ahci_exec_polled_cmd(struct ata_port *ap, int pmp, + struct ata_taskfile *tf, int is_cmd, u16 flags, + unsigned long timeout_msec) + { diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index c9540c0..963b068 100644 --- a/drivers/ata/libata-core.c @@ -30467,10 +30928,10 @@ index a4760e0..51283cf 100644 printk(KERN_INFO "devtmpfs: error mounting %i\n", err); else diff --git a/drivers/base/node.c b/drivers/base/node.c -index 5693ece..ef7c1f9 100644 +index 5693ece..e39a621 100644 --- a/drivers/base/node.c +++ b/drivers/base/node.c -@@ -587,11 +587,9 @@ static ssize_t print_nodes_state(enum node_states state, char *buf) +@@ -587,18 +587,16 @@ static ssize_t print_nodes_state(enum node_states state, char *buf) { int n; @@ -30485,6 +30946,14 @@ index 5693ece..ef7c1f9 100644 return n; } + struct node_attr { + struct sysdev_class_attribute attr; + enum node_states state; +-}; ++} __do_const; + + static ssize_t show_node_state(struct sysdev_class *class, + struct sysdev_class_attribute *attr, char *buf) diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c index caf995f..6f76697 100644 --- a/drivers/base/power/wakeup.c @@ -30524,6 +30993,28 @@ index caf995f..6f76697 100644 } /** +diff --git a/drivers/base/syscore.c b/drivers/base/syscore.c +index e8d11b6..7b1b36f 100644 +--- a/drivers/base/syscore.c ++++ b/drivers/base/syscore.c +@@ -21,7 +21,7 @@ static DEFINE_MUTEX(syscore_ops_lock); + void register_syscore_ops(struct syscore_ops *ops) + { + mutex_lock(&syscore_ops_lock); +- list_add_tail(&ops->node, &syscore_ops_list); ++ pax_list_add_tail((struct list_head *)&ops->node, &syscore_ops_list); + mutex_unlock(&syscore_ops_lock); + } + EXPORT_SYMBOL_GPL(register_syscore_ops); +@@ -33,7 +33,7 @@ EXPORT_SYMBOL_GPL(register_syscore_ops); + void unregister_syscore_ops(struct syscore_ops *ops) + { + mutex_lock(&syscore_ops_lock); +- list_del(&ops->node); ++ pax_list_del((struct list_head *)&ops->node); + mutex_unlock(&syscore_ops_lock); + } + EXPORT_SYMBOL_GPL(unregister_syscore_ops); diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index b0f553b..77b928b 100644 --- a/drivers/block/cciss.c @@ -30959,7 +31450,7 @@ index af2a250..0fdeb75 100644 cn_reply->len = sizeof(struct drbd_nl_cfg_reply) + (int)((char *)tl - (char *)reply->tag_list); diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c -index 43beaca..4a5b1dd 100644 +index 43beaca..32e74a7 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c @@ -894,7 +894,7 @@ retry: @@ -31038,6 +31529,15 @@ index 43beaca..4a5b1dd 100644 atomic_inc(&e->epoch->active); spin_unlock(&mdev->epoch_lock); +@@ -3638,7 +3638,7 @@ struct data_cmd { + int expect_payload; + size_t pkt_size; + drbd_cmd_handler_f function; +-}; ++} __do_const; + + static struct data_cmd drbd_cmd_handler[] = { + [P_DATA] = { 1, sizeof(struct p_data), receive_Data }, @@ -3885,7 +3885,7 @@ static void drbd_disconnect(struct drbd_conf *mdev) D_ASSERT(list_empty(&mdev->done_ee)); @@ -31047,6 +31547,15 @@ index 43beaca..4a5b1dd 100644 D_ASSERT(list_empty(&mdev->current_epoch->list)); } +@@ -4493,7 +4493,7 @@ static int got_skip(struct drbd_conf *mdev, struct p_header80 *h) + struct asender_cmd { + size_t pkt_size; + int (*process)(struct drbd_conf *mdev, struct p_header80 *h); +-}; ++} __do_const; + + static struct asender_cmd *get_asender_cmd(int cmd) + { diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 8c6787a..b7f4770 100644 --- a/drivers/block/loop.c @@ -31454,7 +31963,7 @@ index da3cfee..a5a6606 100644 *ppos = i; diff --git a/drivers/char/random.c b/drivers/char/random.c -index 8ae9235..c7aab59 100644 +index 8ae9235..ea94cf2 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -269,8 +269,13 @@ @@ -31563,6 +32072,15 @@ index 8ae9235..c7aab59 100644 static int max_write_thresh = INPUT_POOL_WORDS * 32; static char sysctl_bootid[16]; +@@ -1395,7 +1424,7 @@ static char sysctl_bootid[16]; + static int proc_do_uuid(ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) + { +- ctl_table fake_table; ++ ctl_table_no_const fake_table; + unsigned char buf[64], tmp_uuid[16], *uuid; + + uuid = table->data; diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c index 1ee8ce7..b778bef 100644 --- a/drivers/char/sonypi.c @@ -31687,8 +32205,51 @@ index 7795d1e..bc6d80a 100644 } static ssize_t port_fops_write(struct file *filp, const char __user *ubuf, +diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c +index 56c6c6b..99056e6 100644 +--- a/drivers/cpufreq/acpi-cpufreq.c ++++ b/drivers/cpufreq/acpi-cpufreq.c +@@ -533,8 +533,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) + data->acpi_data = per_cpu_ptr(acpi_perf_data, cpu); + per_cpu(acfreq_data, cpu) = data; + +- if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) +- acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS; ++ if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) { ++ pax_open_kernel(); ++ *(u8 *)&acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS; ++ pax_close_kernel(); ++ } + + result = acpi_processor_register_performance(data->acpi_data, cpu); + if (result) +@@ -644,7 +647,9 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) + policy->cur = acpi_cpufreq_guess_freq(data, policy->cpu); + break; + case ACPI_ADR_SPACE_FIXED_HARDWARE: +- acpi_cpufreq_driver.get = get_cur_freq_on_cpu; ++ pax_open_kernel(); ++ *(void **)&acpi_cpufreq_driver.get = get_cur_freq_on_cpu; ++ pax_close_kernel(); + policy->cur = get_cur_freq_on_cpu(cpu); + break; + default: +@@ -655,8 +660,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) + acpi_processor_notify_smm(THIS_MODULE); + + /* Check for APERF/MPERF support in hardware */ +- if (boot_cpu_has(X86_FEATURE_APERFMPERF)) +- acpi_cpufreq_driver.getavg = cpufreq_get_measured_perf; ++ if (boot_cpu_has(X86_FEATURE_APERFMPERF)) { ++ pax_open_kernel(); ++ *(void **)&acpi_cpufreq_driver.getavg = cpufreq_get_measured_perf; ++ pax_close_kernel(); ++ } + + pr_debug("CPU%u - ACPI performance management activated.\n", cpu); + for (i = 0; i < perf->state_count; i++) diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c -index 987a165..4620e42 100644 +index 987a165..d7f2bcd 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -1790,7 +1790,7 @@ static int __cpuinit cpufreq_cpu_callback(struct notifier_block *nfb, @@ -31700,6 +32261,20 @@ index 987a165..4620e42 100644 .notifier_call = cpufreq_cpu_callback, }; +@@ -1819,8 +1819,11 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data) + + pr_debug("trying to register driver %s\n", driver_data->name); + +- if (driver_data->setpolicy) +- driver_data->flags |= CPUFREQ_CONST_LOOPS; ++ if (driver_data->setpolicy) { ++ pax_open_kernel(); ++ *(u8 *)&driver_data->flags |= CPUFREQ_CONST_LOOPS; ++ pax_close_kernel(); ++ } + + spin_lock_irqsave(&cpufreq_driver_lock, flags); + if (cpufreq_driver) { diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c index 4bf374d..b170d80 100644 --- a/drivers/cpufreq/cpufreq_stats.c @@ -31713,6 +32288,122 @@ index 4bf374d..b170d80 100644 .notifier_call = cpufreq_stat_cpu_callback, .priority = 1, }; +diff --git a/drivers/cpufreq/p4-clockmod.c b/drivers/cpufreq/p4-clockmod.c +index 6be3e07..dafe020 100644 +--- a/drivers/cpufreq/p4-clockmod.c ++++ b/drivers/cpufreq/p4-clockmod.c +@@ -166,10 +166,14 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c) + case 0x0F: /* Core Duo */ + case 0x16: /* Celeron Core */ + case 0x1C: /* Atom */ +- p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS; ++ pax_open_kernel(); ++ *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS; ++ pax_close_kernel(); + return speedstep_get_frequency(SPEEDSTEP_CPU_PCORE); + case 0x0D: /* Pentium M (Dothan) */ +- p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS; ++ pax_open_kernel(); ++ *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS; ++ pax_close_kernel(); + /* fall through */ + case 0x09: /* Pentium M (Banias) */ + return speedstep_get_frequency(SPEEDSTEP_CPU_PM); +@@ -181,7 +185,9 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c) + + /* on P-4s, the TSC runs with constant frequency independent whether + * throttling is active or not. */ +- p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS; ++ pax_open_kernel(); ++ *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS; ++ pax_close_kernel(); + + if (speedstep_detect_processor() == SPEEDSTEP_CPU_P4M) { + printk(KERN_WARNING PFX "Warning: Pentium 4-M detected. " +diff --git a/drivers/cpufreq/powernow-k8.c b/drivers/cpufreq/powernow-k8.c +index f6cd315..ce0d3b7 100644 +--- a/drivers/cpufreq/powernow-k8.c ++++ b/drivers/cpufreq/powernow-k8.c +@@ -1341,8 +1341,11 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol) + } + + /* Check for APERF/MPERF support in hardware */ +- if (cpu_has(c, X86_FEATURE_APERFMPERF)) +- cpufreq_amd64_driver.getavg = cpufreq_get_measured_perf; ++ if (cpu_has(c, X86_FEATURE_APERFMPERF)) { ++ pax_open_kernel(); ++ *(void **)&cpufreq_amd64_driver.getavg = cpufreq_get_measured_perf; ++ pax_close_kernel(); ++ } + + cpufreq_frequency_table_get_attr(data->powernow_table, pol->cpu); + +diff --git a/drivers/cpufreq/speedstep-centrino.c b/drivers/cpufreq/speedstep-centrino.c +index 6ea3455..4a1af8f 100644 +--- a/drivers/cpufreq/speedstep-centrino.c ++++ b/drivers/cpufreq/speedstep-centrino.c +@@ -352,8 +352,11 @@ static int centrino_cpu_init(struct cpufreq_policy *policy) + !cpu_has(cpu, X86_FEATURE_EST)) + return -ENODEV; + +- if (cpu_has(cpu, X86_FEATURE_CONSTANT_TSC)) +- centrino_driver.flags |= CPUFREQ_CONST_LOOPS; ++ if (cpu_has(cpu, X86_FEATURE_CONSTANT_TSC)) { ++ pax_open_kernel(); ++ *(u8 *)¢rino_driver.flags |= CPUFREQ_CONST_LOOPS; ++ pax_close_kernel(); ++ } + + if (policy->cpu != 0) + return -ENODEV; +diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c +index 06ce268..1e0d3e4 100644 +--- a/drivers/cpuidle/cpuidle.c ++++ b/drivers/cpuidle/cpuidle.c +@@ -188,7 +188,7 @@ static int poll_idle(struct cpuidle_device *dev, + + static void poll_idle_init(struct cpuidle_driver *drv) + { +- struct cpuidle_state *state = &drv->states[0]; ++ cpuidle_state_no_const *state = &drv->states[0]; + + snprintf(state->name, CPUIDLE_NAME_LEN, "POLL"); + snprintf(state->desc, CPUIDLE_DESC_LEN, "CPUIDLE CORE POLL IDLE"); +diff --git a/drivers/cpuidle/governor.c b/drivers/cpuidle/governor.c +index ea2f8e7..70ac501 100644 +--- a/drivers/cpuidle/governor.c ++++ b/drivers/cpuidle/governor.c +@@ -87,7 +87,7 @@ int cpuidle_register_governor(struct cpuidle_governor *gov) + mutex_lock(&cpuidle_lock); + if (__cpuidle_find_governor(gov->name) == NULL) { + ret = 0; +- list_add_tail(&gov->governor_list, &cpuidle_governors); ++ pax_list_add_tail((struct list_head *)&gov->governor_list, &cpuidle_governors); + if (!cpuidle_curr_governor || + cpuidle_curr_governor->rating < gov->rating) + cpuidle_switch_governor(gov); +@@ -135,7 +135,7 @@ void cpuidle_unregister_governor(struct cpuidle_governor *gov) + new_gov = cpuidle_replace_governor(gov->rating); + cpuidle_switch_governor(new_gov); + } +- list_del(&gov->governor_list); ++ pax_list_del((struct list_head *)&gov->governor_list); + mutex_unlock(&cpuidle_lock); + } + +diff --git a/drivers/cpuidle/sysfs.c b/drivers/cpuidle/sysfs.c +index 1e756e1..6f7ead5 100644 +--- a/drivers/cpuidle/sysfs.c ++++ b/drivers/cpuidle/sysfs.c +@@ -131,7 +131,7 @@ static struct attribute *cpuclass_switch_attrs[] = { + NULL + }; + +-static struct attribute_group cpuclass_attr_group = { ++static attribute_group_no_const cpuclass_attr_group = { + .attrs = cpuclass_default_attrs, + .name = "cpuidle", + }; diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c index eb1d864..39ee5a7 100644 --- a/drivers/dma/dmatest.c @@ -31792,7 +32483,7 @@ index 6ffb6d2..383d8d7 100644 PCI_VEND_DEV(INTEL, 7205_0), PCI_ANY_ID, PCI_ANY_ID, 0, 0, E7205}, diff --git a/drivers/edac/edac_pci_sysfs.c b/drivers/edac/edac_pci_sysfs.c -index 8cc8676..f46ebc8 100644 +index 8cc8676..90b70b9 100644 --- a/drivers/edac/edac_pci_sysfs.c +++ b/drivers/edac/edac_pci_sysfs.c @@ -26,8 +26,8 @@ static int edac_pci_log_pe = 1; /* log PCI parity errors */ @@ -31806,6 +32497,15 @@ index 8cc8676..f46ebc8 100644 static struct kobject *edac_pci_top_main_kobj; static atomic_t edac_pci_sysfs_refcount = ATOMIC_INIT(0); +@@ -236,7 +236,7 @@ struct edac_pci_dev_attribute { + void *value; + ssize_t(*show) (void *, char *); + ssize_t(*store) (void *, const char *, size_t); +-}; ++} __do_const; + + /* Set of show/store abstract level functions for PCI Parity object */ + static ssize_t edac_pci_dev_show(struct kobject *kobj, struct attribute *attr, @@ -582,7 +582,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev) edac_printk(KERN_CRIT, EDAC_PCI, "Signaled System Error on %s\n", @@ -32100,6 +32800,19 @@ index b97d4f0..7578a4d 100644 return -EINVAL; r = kmalloc(sizeof(*r), GFP_KERNEL); +diff --git a/drivers/firewire/core-device.c b/drivers/firewire/core-device.c +index 1f3dd51..1ad071c 100644 +--- a/drivers/firewire/core-device.c ++++ b/drivers/firewire/core-device.c +@@ -232,7 +232,7 @@ EXPORT_SYMBOL(fw_device_enable_phys_dma); + struct config_rom_attribute { + struct device_attribute attr; + u32 key; +-}; ++} __do_const; + + static ssize_t show_immediate(struct device *dev, + struct device_attribute *dattr, char *buf) diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c index 855ab3f..11f4bbd 100644 --- a/drivers/firewire/core-transaction.c @@ -32124,6 +32837,19 @@ index b45be57..5fad18b 100644 void fw_card_initialize(struct fw_card *card, const struct fw_card_driver *driver, struct device *device); +diff --git a/drivers/firmware/dmi-id.c b/drivers/firmware/dmi-id.c +index 94a58a0..f5eba42 100644 +--- a/drivers/firmware/dmi-id.c ++++ b/drivers/firmware/dmi-id.c +@@ -16,7 +16,7 @@ + struct dmi_device_attribute{ + struct device_attribute dev_attr; + int field; +-}; ++} __do_const; + #define to_dmi_dev_attr(_dev_attr) \ + container_of(_dev_attr, struct dmi_device_attribute, dev_attr) + diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c index 4cd392d..4b629e1 100644 --- a/drivers/firmware/dmi_scan.c @@ -32150,18 +32876,42 @@ index 4cd392d..4b629e1 100644 iounmap(buf); return 0; diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c -index 81346ae..b562eff 100644 +index b15c0aa..9a15a68 100644 --- a/drivers/firmware/efivars.c +++ b/drivers/firmware/efivars.c -@@ -1289,7 +1289,7 @@ out: +@@ -1233,7 +1233,7 @@ efivar_create_sysfs_entry(struct efivars *efivars, + static int + create_efivars_bin_attributes(struct efivars *efivars) + { +- struct bin_attribute *attr; ++ bin_attribute_no_const *attr; + int error; + + /* new_var */ +@@ -1425,7 +1425,7 @@ out: + } EXPORT_SYMBOL_GPL(register_efivars); - static struct efivars __efivars; -static struct efivar_operations ops; +static efivar_operations_no_const ops __read_only; /* * For now we register the efi subsystem with the firmware subsystem +diff --git a/drivers/firmware/google/memconsole.c b/drivers/firmware/google/memconsole.c +index 2a90ba6..07f3733 100644 +--- a/drivers/firmware/google/memconsole.c ++++ b/drivers/firmware/google/memconsole.c +@@ -147,7 +147,9 @@ static int __init memconsole_init(void) + if (!found_memconsole()) + return -ENODEV; + +- memconsole_bin_attr.size = memconsole_length; ++ pax_open_kernel(); ++ *(size_t *)&memconsole_bin_attr.size = memconsole_length; ++ pax_close_kernel(); + + ret = sysfs_create_bin_file(firmware_kobj, &memconsole_bin_attr); + diff --git a/drivers/gpio/gpio-vr41xx.c b/drivers/gpio/gpio-vr41xx.c index 98723cb..10ca85b 100644 --- a/drivers/gpio/gpio-vr41xx.c @@ -32285,7 +33035,7 @@ index 11788f7..cd469eb 100644 dev = crtc->dev; diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c -index 40c187c..5746164 100644 +index 40c187c..59da444 100644 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c @@ -308,7 +308,7 @@ module_exit(drm_core_exit); @@ -32297,6 +33047,15 @@ index 40c187c..5746164 100644 { int len; +@@ -378,7 +378,7 @@ long drm_ioctl(struct file *filp, + struct drm_file *file_priv = filp->private_data; + struct drm_device *dev; + struct drm_ioctl_desc *ioctl; +- drm_ioctl_t *func; ++ drm_ioctl_no_const_t func; + unsigned int nr = DRM_IOCTL_NR(cmd); + int retcode = -EINVAL; + char stack_kdata[128]; @@ -387,7 +387,7 @@ long drm_ioctl(struct file *filp, dev = file_priv->minor->dev; @@ -32469,7 +33228,7 @@ index ab1162d..42587b2 100644 #if defined(__i386__) pgprot = pgprot_val(vma->vm_page_prot); diff --git a/drivers/gpu/drm/drm_ioc32.c b/drivers/gpu/drm/drm_ioc32.c -index ddd70db..40321e6 100644 +index ddd70db..d1db604 100644 --- a/drivers/gpu/drm/drm_ioc32.c +++ b/drivers/gpu/drm/drm_ioc32.c @@ -456,7 +456,7 @@ static int compat_drm_infobufs(struct file *file, unsigned int cmd, @@ -32490,6 +33249,36 @@ index ddd70db..40321e6 100644 if (__put_user(count, &request->count) || __put_user(list, &request->list)) +@@ -1015,7 +1015,7 @@ static int compat_drm_wait_vblank(struct file *file, unsigned int cmd, + return 0; + } + +-drm_ioctl_compat_t *drm_compat_ioctls[] = { ++drm_ioctl_compat_t drm_compat_ioctls[] = { + [DRM_IOCTL_NR(DRM_IOCTL_VERSION32)] = compat_drm_version, + [DRM_IOCTL_NR(DRM_IOCTL_GET_UNIQUE32)] = compat_drm_getunique, + [DRM_IOCTL_NR(DRM_IOCTL_GET_MAP32)] = compat_drm_getmap, +@@ -1061,7 +1061,6 @@ drm_ioctl_compat_t *drm_compat_ioctls[] = { + long drm_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) + { + unsigned int nr = DRM_IOCTL_NR(cmd); +- drm_ioctl_compat_t *fn; + int ret; + + /* Assume that ioctls without an explicit compat routine will just +@@ -1071,10 +1070,8 @@ long drm_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) + if (nr >= ARRAY_SIZE(drm_compat_ioctls)) + return drm_ioctl(filp, cmd, arg); + +- fn = drm_compat_ioctls[nr]; +- +- if (fn != NULL) +- ret = (*fn) (filp, cmd, arg); ++ if (drm_compat_ioctls[nr] != NULL) ++ ret = (*drm_compat_ioctls[nr]) (filp, cmd, arg); + else + ret = drm_ioctl(filp, cmd, arg); + diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c index 904d7e9..ab88581 100644 --- a/drivers/gpu/drm/drm_ioctl.c @@ -32567,7 +33356,7 @@ index c9339f4..f5e1b9d 100644 int front_offset; } drm_i810_private_t; diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c -index 5620192..6ca6af4 100644 +index 9b4e5c6..d7ec240 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -500,7 +500,7 @@ static int i915_interrupt_info(struct seq_file *m, void *data) @@ -32633,7 +33422,7 @@ index 012a9d2..3b2267c 100644 return container_of(adapter, struct intel_gmbus, adapter)->force_bit; } diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c -index 878b989..17fe410 100644 +index b1bb734..324ed11 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -189,7 +189,7 @@ i915_gem_object_set_to_gpu_domain(struct drm_i915_gem_object *obj, @@ -32645,7 +33434,7 @@ index 878b989..17fe410 100644 /* The actual obj->write_domain will be updated with * pending_write_domain after we emit the accumulated flush for all -@@ -904,18 +904,23 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec) +@@ -904,9 +904,9 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec) static int validate_exec_list(struct drm_i915_gem_exec_object2 *exec, @@ -32653,28 +33442,54 @@ index 878b989..17fe410 100644 + unsigned int count) { - int i; -- + unsigned int i; -+ int relocs_total = 0; -+ int relocs_max = INT_MAX / sizeof(struct drm_i915_gem_relocation_entry); -+ - for (i = 0; i < count; i++) { - char __user *ptr = (char __user *)(uintptr_t)exec[i].relocs_ptr; - int length; /* limited by fault_in_pages_readable() */ - -- /* First check for malicious input causing overflow */ -- if (exec[i].relocation_count > -- INT_MAX / sizeof(struct drm_i915_gem_relocation_entry)) -+ /* First check for malicious input causing overflow in -+ * the worst case where we need to allocate the entire -+ * relocation tree as a single array. -+ */ -+ if (exec[i].relocation_count > relocs_max - relocs_total) - return -EINVAL; -+ relocs_total += exec[i].relocation_count; + int relocs_total = 0; + int relocs_max = INT_MAX / sizeof(struct drm_i915_gem_relocation_entry); + +@@ -1371,7 +1371,7 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data, + return -ENOMEM; + } + ret = copy_from_user(exec2_list, +- (struct drm_i915_relocation_entry __user *) ++ (struct drm_i915_gem_exec_object2 __user *) + (uintptr_t) args->buffers_ptr, + sizeof(*exec2_list) * args->buffer_count); + if (ret != 0) { +diff --git a/drivers/gpu/drm/i915/i915_ioc32.c b/drivers/gpu/drm/i915/i915_ioc32.c +index 13b0289..5fb9e24 100644 +--- a/drivers/gpu/drm/i915/i915_ioc32.c ++++ b/drivers/gpu/drm/i915/i915_ioc32.c +@@ -181,7 +181,7 @@ static int compat_i915_alloc(struct file *file, unsigned int cmd, + (unsigned long)request); + } + +-drm_ioctl_compat_t *i915_compat_ioctls[] = { ++drm_ioctl_compat_t i915_compat_ioctls[] = { + [DRM_I915_BATCHBUFFER] = compat_i915_batchbuffer, + [DRM_I915_CMDBUFFER] = compat_i915_cmdbuffer, + [DRM_I915_GETPARAM] = compat_i915_getparam, +@@ -201,18 +201,15 @@ drm_ioctl_compat_t *i915_compat_ioctls[] = { + long i915_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) + { + unsigned int nr = DRM_IOCTL_NR(cmd); +- drm_ioctl_compat_t *fn = NULL; + int ret; + + if (nr < DRM_COMMAND_BASE) + return drm_compat_ioctl(filp, cmd, arg); + +- if (nr < DRM_COMMAND_BASE + DRM_ARRAY_SIZE(i915_compat_ioctls)) +- fn = i915_compat_ioctls[nr - DRM_COMMAND_BASE]; +- +- if (fn != NULL) ++ if (nr < DRM_COMMAND_BASE + DRM_ARRAY_SIZE(i915_compat_ioctls)) { ++ drm_ioctl_compat_t fn = i915_compat_ioctls[nr - DRM_COMMAND_BASE]; + ret = (*fn) (filp, cmd, arg); +- else ++ } else + ret = drm_ioctl(filp, cmd, arg); - length = exec[i].relocation_count * - sizeof(struct drm_i915_gem_relocation_entry); + return ret; diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 93e74fb..4a1182d 100644 --- a/drivers/gpu/drm/i915/i915_irq.c @@ -32725,7 +33540,7 @@ index 93e74fb..4a1182d 100644 INIT_WORK(&dev_priv->hotplug_work, i915_hotplug_work_func); INIT_WORK(&dev_priv->error_work, i915_error_work_func); diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 4591582..447bb3b 100644 +index 17961df..8ef9827 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -2214,7 +2214,7 @@ intel_finish_fb(struct drm_framebuffer *old_fb) @@ -32800,6 +33615,15 @@ index 4591582..447bb3b 100644 } drm_crtc_helper_add(&intel_crtc->base, &intel_helper_funcs); +@@ -8836,7 +8845,7 @@ struct intel_quirk { + int subsystem_vendor; + int subsystem_device; + void (*hook)(struct drm_device *dev); +-}; ++} __do_const; + + struct intel_quirk intel_quirks[] = { + /* HP Compaq 2730p needs pipe A force quirk (LP: #291555) */ diff --git a/drivers/gpu/drm/mga/mga_drv.h b/drivers/gpu/drm/mga/mga_drv.h index 54558a0..2d97005 100644 --- a/drivers/gpu/drm/mga/mga_drv.h @@ -32816,6 +33640,41 @@ index 54558a0..2d97005 100644 u32 next_fence_to_post; unsigned int fb_cpp; +diff --git a/drivers/gpu/drm/mga/mga_ioc32.c b/drivers/gpu/drm/mga/mga_ioc32.c +index c1f877b..0ae6960 100644 +--- a/drivers/gpu/drm/mga/mga_ioc32.c ++++ b/drivers/gpu/drm/mga/mga_ioc32.c +@@ -190,7 +190,7 @@ static int compat_mga_dma_bootstrap(struct file *file, unsigned int cmd, + return 0; + } + +-drm_ioctl_compat_t *mga_compat_ioctls[] = { ++drm_ioctl_compat_t mga_compat_ioctls[] = { + [DRM_MGA_INIT] = compat_mga_init, + [DRM_MGA_GETPARAM] = compat_mga_getparam, + [DRM_MGA_DMA_BOOTSTRAP] = compat_mga_dma_bootstrap, +@@ -208,18 +208,15 @@ drm_ioctl_compat_t *mga_compat_ioctls[] = { + long mga_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) + { + unsigned int nr = DRM_IOCTL_NR(cmd); +- drm_ioctl_compat_t *fn = NULL; + int ret; + + if (nr < DRM_COMMAND_BASE) + return drm_compat_ioctl(filp, cmd, arg); + +- if (nr < DRM_COMMAND_BASE + DRM_ARRAY_SIZE(mga_compat_ioctls)) +- fn = mga_compat_ioctls[nr - DRM_COMMAND_BASE]; +- +- if (fn != NULL) ++ if (nr < DRM_COMMAND_BASE + DRM_ARRAY_SIZE(mga_compat_ioctls)) { ++ drm_ioctl_compat_t fn = mga_compat_ioctls[nr - DRM_COMMAND_BASE]; + ret = (*fn) (filp, cmd, arg); +- else ++ } else + ret = drm_ioctl(filp, cmd, arg); + + return ret; diff --git a/drivers/gpu/drm/mga/mga_irq.c b/drivers/gpu/drm/mga/mga_irq.c index 2581202..f230a8d9 100644 --- a/drivers/gpu/drm/mga/mga_irq.c @@ -32879,7 +33738,7 @@ index 5fc201b..7b032b9 100644 #define BIT_TABLE(id, funcid) ((struct bit_table){ id, parse_bit_##funcid##_tbl_entry }) diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h -index 4c0be3a..5757582 100644 +index 4c0be3a..8f2cbb5 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.h +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h @@ -238,7 +238,7 @@ struct nouveau_channel { @@ -32916,15 +33775,6 @@ index 4c0be3a..5757582 100644 struct nouveau_fb_engine { int num_tiles; -@@ -558,7 +558,7 @@ struct nouveau_vram_engine { - void (*put)(struct drm_device *, struct nouveau_mem **); - - bool (*flags_valid)(struct drm_device *, u32 tile_flags); --}; -+} __no_const; - - struct nouveau_engine { - struct nouveau_instmem_engine instmem; @@ -706,7 +706,7 @@ struct drm_nouveau_private { struct drm_global_reference mem_global_ref; struct ttm_bo_global_ref bo_global_ref; @@ -32969,6 +33819,19 @@ index 7ce3fde..cb3ea04 100644 retry: if (++trycnt > 100000) { NV_ERROR(dev, "%s failed and gave up.\n", __func__); +diff --git a/drivers/gpu/drm/nouveau/nouveau_ioc32.c b/drivers/gpu/drm/nouveau/nouveau_ioc32.c +index 475ba81..a6c530c 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_ioc32.c ++++ b/drivers/gpu/drm/nouveau/nouveau_ioc32.c +@@ -51,7 +51,7 @@ long nouveau_compat_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg) + { + unsigned int nr = DRM_IOCTL_NR(cmd); +- drm_ioctl_compat_t *fn = NULL; ++ drm_ioctl_compat_t fn = NULL; + int ret; + + if (nr < DRM_COMMAND_BASE) diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c index 01adcfb..c6726fe 100644 --- a/drivers/gpu/drm/nouveau/nouveau_state.c @@ -33029,6 +33892,41 @@ index 930c71b..499aded 100644 u32 color_fmt; unsigned int front_offset; +diff --git a/drivers/gpu/drm/r128/r128_ioc32.c b/drivers/gpu/drm/r128/r128_ioc32.c +index 51c99fc..8acd411 100644 +--- a/drivers/gpu/drm/r128/r128_ioc32.c ++++ b/drivers/gpu/drm/r128/r128_ioc32.c +@@ -178,7 +178,7 @@ static int compat_r128_getparam(struct file *file, unsigned int cmd, + return drm_ioctl(file, DRM_IOCTL_R128_GETPARAM, (unsigned long)getparam); + } + +-drm_ioctl_compat_t *r128_compat_ioctls[] = { ++drm_ioctl_compat_t r128_compat_ioctls[] = { + [DRM_R128_INIT] = compat_r128_init, + [DRM_R128_DEPTH] = compat_r128_depth, + [DRM_R128_STIPPLE] = compat_r128_stipple, +@@ -197,18 +197,15 @@ drm_ioctl_compat_t *r128_compat_ioctls[] = { + long r128_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) + { + unsigned int nr = DRM_IOCTL_NR(cmd); +- drm_ioctl_compat_t *fn = NULL; + int ret; + + if (nr < DRM_COMMAND_BASE) + return drm_compat_ioctl(filp, cmd, arg); + +- if (nr < DRM_COMMAND_BASE + DRM_ARRAY_SIZE(r128_compat_ioctls)) +- fn = r128_compat_ioctls[nr - DRM_COMMAND_BASE]; +- +- if (fn != NULL) ++ if (nr < DRM_COMMAND_BASE + DRM_ARRAY_SIZE(r128_compat_ioctls)) { ++ drm_ioctl_compat_t fn = r128_compat_ioctls[nr - DRM_COMMAND_BASE]; + ret = (*fn) (filp, cmd, arg); +- else ++ } else + ret = drm_ioctl(filp, cmd, arg); + + return ret; diff --git a/drivers/gpu/drm/r128/r128_irq.c b/drivers/gpu/drm/r128/r128_irq.c index 429d5a0..7e899ed 100644 --- a/drivers/gpu/drm/r128/r128_irq.c @@ -33298,7 +34196,7 @@ index 76ec0e9..6feb1a3 100644 INIT_LIST_HEAD(&rdev->fence_drv.emited); INIT_LIST_HEAD(&rdev->fence_drv.signaled); diff --git a/drivers/gpu/drm/radeon/radeon_ioc32.c b/drivers/gpu/drm/radeon/radeon_ioc32.c -index 48b7cea..342236f 100644 +index 48b7cea..b10b216 100644 --- a/drivers/gpu/drm/radeon/radeon_ioc32.c +++ b/drivers/gpu/drm/radeon/radeon_ioc32.c @@ -359,7 +359,7 @@ static int compat_radeon_cp_setparam(struct file *file, unsigned int cmd, @@ -33310,6 +34208,37 @@ index 48b7cea..342236f 100644 &request->value)) return -EFAULT; +@@ -369,7 +369,7 @@ static int compat_radeon_cp_setparam(struct file *file, unsigned int cmd, + #define compat_radeon_cp_setparam NULL + #endif /* X86_64 || IA64 */ + +-drm_ioctl_compat_t *radeon_compat_ioctls[] = { ++drm_ioctl_compat_t radeon_compat_ioctls[] = { + [DRM_RADEON_CP_INIT] = compat_radeon_cp_init, + [DRM_RADEON_CLEAR] = compat_radeon_cp_clear, + [DRM_RADEON_STIPPLE] = compat_radeon_cp_stipple, +@@ -394,18 +394,15 @@ drm_ioctl_compat_t *radeon_compat_ioctls[] = { + long radeon_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) + { + unsigned int nr = DRM_IOCTL_NR(cmd); +- drm_ioctl_compat_t *fn = NULL; + int ret; + + if (nr < DRM_COMMAND_BASE) + return drm_compat_ioctl(filp, cmd, arg); + +- if (nr < DRM_COMMAND_BASE + DRM_ARRAY_SIZE(radeon_compat_ioctls)) +- fn = radeon_compat_ioctls[nr - DRM_COMMAND_BASE]; +- +- if (fn != NULL) ++ if (nr < DRM_COMMAND_BASE + DRM_ARRAY_SIZE(radeon_compat_ioctls)) { ++ drm_ioctl_compat_t fn = radeon_compat_ioctls[nr - DRM_COMMAND_BASE]; + ret = (*fn) (filp, cmd, arg); +- else ++ } else + ret = drm_ioctl(filp, cmd, arg); + + return ret; diff --git a/drivers/gpu/drm/radeon/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c index 00da384..32f972d 100644 --- a/drivers/gpu/drm/radeon/radeon_irq.c @@ -33334,6 +34263,36 @@ index 00da384..32f972d 100644 DRM_INIT_WAITQUEUE(&dev_priv->swi_queue); dev->max_vblank_count = 0x001fffff; +diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c +index 65be5e8..578b3c2 100644 +--- a/drivers/gpu/drm/radeon/radeon_ring.c ++++ b/drivers/gpu/drm/radeon/radeon_ring.c +@@ -487,16 +487,20 @@ int radeon_debugfs_ib_init(struct radeon_device *rdev) + unsigned i; + int r; + +- radeon_debugfs_ib_bogus_info_list[0].data = rdev; ++ pax_open_kernel(); ++ *(void **)&radeon_debugfs_ib_bogus_info_list[0].data = rdev; ++ pax_close_kernel(); + r = radeon_debugfs_add_files(rdev, radeon_debugfs_ib_bogus_info_list, 1); + if (r) + return r; + for (i = 0; i < RADEON_IB_POOL_SIZE; i++) { + sprintf(radeon_debugfs_ib_names[i], "radeon_ib_%04u", i); +- radeon_debugfs_ib_list[i].name = radeon_debugfs_ib_names[i]; +- radeon_debugfs_ib_list[i].show = &radeon_debugfs_ib_info; +- radeon_debugfs_ib_list[i].driver_features = 0; +- radeon_debugfs_ib_list[i].data = &rdev->ib_pool.ibs[i]; ++ pax_open_kernel(); ++ *(void **)&radeon_debugfs_ib_list[i].name = radeon_debugfs_ib_names[i]; ++ *(void **)&radeon_debugfs_ib_list[i].show = &radeon_debugfs_ib_info; ++ *(u32 *)&radeon_debugfs_ib_list[i].driver_features = 0; ++ *(void **)&radeon_debugfs_ib_list[i].data = &rdev->ib_pool.ibs[i]; ++ pax_close_kernel(); + } + return radeon_debugfs_add_files(rdev, radeon_debugfs_ib_list, + RADEON_IB_POOL_SIZE); diff --git a/drivers/gpu/drm/radeon/radeon_state.c b/drivers/gpu/drm/radeon/radeon_state.c index e8422ae..d22d4a8 100644 --- a/drivers/gpu/drm/radeon/radeon_state.c @@ -33357,7 +34316,7 @@ index e8422ae..d22d4a8 100644 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID); diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c -index 0b5468b..5001296 100644 +index 0b5468b..7ecf242 100644 --- a/drivers/gpu/drm/radeon/radeon_ttm.c +++ b/drivers/gpu/drm/radeon/radeon_ttm.c @@ -631,7 +631,7 @@ void radeon_ttm_set_active_vram_size(struct radeon_device *rdev, u64 size) @@ -33380,6 +34339,41 @@ index 0b5468b..5001296 100644 } vma->vm_ops = &radeon_ttm_vm_ops; return 0; +@@ -829,21 +831,24 @@ static int radeon_ttm_debugfs_init(struct radeon_device *rdev) + sprintf(radeon_mem_types_names[i], "radeon_vram_mm"); + else + sprintf(radeon_mem_types_names[i], "radeon_gtt_mm"); +- radeon_mem_types_list[i].name = radeon_mem_types_names[i]; +- radeon_mem_types_list[i].show = &radeon_mm_dump_table; +- radeon_mem_types_list[i].driver_features = 0; ++ pax_open_kernel(); ++ *(const char **)&radeon_mem_types_list[i].name = radeon_mem_types_names[i]; ++ *(void **)&radeon_mem_types_list[i].show = &radeon_mm_dump_table; ++ *(u32 *)&radeon_mem_types_list[i].driver_features = 0; + if (i == 0) +- radeon_mem_types_list[i].data = rdev->mman.bdev.man[TTM_PL_VRAM].priv; ++ *(void **)&radeon_mem_types_list[i].data = rdev->mman.bdev.man[TTM_PL_VRAM].priv; + else +- radeon_mem_types_list[i].data = rdev->mman.bdev.man[TTM_PL_TT].priv; +- ++ *(void **)&radeon_mem_types_list[i].data = rdev->mman.bdev.man[TTM_PL_TT].priv; ++ pax_close_kernel(); + } + /* Add ttm page pool to debugfs */ + sprintf(radeon_mem_types_names[i], "ttm_page_pool"); +- radeon_mem_types_list[i].name = radeon_mem_types_names[i]; +- radeon_mem_types_list[i].show = &ttm_page_alloc_debugfs; +- radeon_mem_types_list[i].driver_features = 0; +- radeon_mem_types_list[i].data = NULL; ++ pax_open_kernel(); ++ *(const char **)&radeon_mem_types_list[i].name = radeon_mem_types_names[i]; ++ *(void **)&radeon_mem_types_list[i].show = &ttm_page_alloc_debugfs; ++ *(u32 *)&radeon_mem_types_list[i].driver_features = 0; ++ *(void **)&radeon_mem_types_list[i++].data = NULL; ++ pax_close_kernel(); + return radeon_debugfs_add_files(rdev, radeon_mem_types_list, RADEON_DEBUGFS_MEM_TYPES+1); + + #endif diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c index a9049ed..501f284 100644 --- a/drivers/gpu/drm/radeon/rs690.c @@ -33706,9 +34700,18 @@ index d2d0a2a..90b8f4d 100644 child_device_obj->device.bus = &hv_bus; child_device_obj->device.parent = &hv_acpi_dev->dev; diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c -index 66f6729..2d6de0a 100644 +index 66f6729..4de8c4a 100644 --- a/drivers/hwmon/acpi_power_meter.c +++ b/drivers/hwmon/acpi_power_meter.c +@@ -124,7 +124,7 @@ struct rw_sensor_template { + struct device_attribute *devattr, + const char *buf, size_t count); + int index; +-}; ++} __do_const; + + /* Averaging interval */ + static int update_avg_interval(struct acpi_power_meter_resource *resource) @@ -316,8 +316,6 @@ static ssize_t set_trip(struct device *dev, struct device_attribute *devattr, return res; @@ -33718,6 +34721,65 @@ index 66f6729..2d6de0a 100644 mutex_lock(&resource->lock); resource->trip[attr->index - 7] = temp; +@@ -622,7 +620,7 @@ static int register_ro_attrs(struct acpi_power_meter_resource *resource, + struct ro_sensor_template *ro) + { + struct device *dev = &resource->acpi_dev->dev; +- struct sensor_device_attribute *sensors = ++ sensor_device_attribute_no_const *sensors = + &resource->sensors[resource->num_sensors]; + int res = 0; + +@@ -650,7 +648,7 @@ static int register_rw_attrs(struct acpi_power_meter_resource *resource, + struct rw_sensor_template *rw) + { + struct device *dev = &resource->acpi_dev->dev; +- struct sensor_device_attribute *sensors = ++ sensor_device_attribute_no_const *sensors = + &resource->sensors[resource->num_sensors]; + int res = 0; + +diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c +index d99aa84..c977790 100644 +--- a/drivers/hwmon/applesmc.c ++++ b/drivers/hwmon/applesmc.c +@@ -1056,7 +1056,7 @@ static int applesmc_create_nodes(struct applesmc_node_group *groups, int num) + { + struct applesmc_node_group *grp; + struct applesmc_dev_attr *node; +- struct attribute *attr; ++ attribute_no_const *attr; + int ret, i; + + for (grp = groups; grp->format; grp++) { +diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c +index 83d2fbd6..93017f7 100644 +--- a/drivers/hwmon/asus_atk0110.c ++++ b/drivers/hwmon/asus_atk0110.c +@@ -149,10 +149,10 @@ MODULE_DEVICE_TABLE(acpi, atk_ids); + struct atk_sensor_data { + struct list_head list; + struct atk_data *data; +- struct device_attribute label_attr; +- struct device_attribute input_attr; +- struct device_attribute limit1_attr; +- struct device_attribute limit2_attr; ++ device_attribute_no_const label_attr; ++ device_attribute_no_const input_attr; ++ device_attribute_no_const limit1_attr; ++ device_attribute_no_const limit2_attr; + char label_attr_name[ATTR_NAME_SIZE]; + char input_attr_name[ATTR_NAME_SIZE]; + char limit1_attr_name[ATTR_NAME_SIZE]; +@@ -271,7 +271,7 @@ static ssize_t atk_name_show(struct device *dev, + static struct device_attribute atk_name_attr = + __ATTR(name, 0444, atk_name_show, NULL); + +-static void atk_init_attribute(struct device_attribute *attr, char *name, ++static void atk_init_attribute(device_attribute_no_const *attr, char *name, + sysfs_show_func show) + { + sysfs_attr_init(&attr->attr); diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c index 3d630bb..77756d7 100644 --- a/drivers/hwmon/coretemp.c @@ -33731,6 +34793,32 @@ index 3d630bb..77756d7 100644 .notifier_call = coretemp_cpu_callback, }; +diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c +index 6a967d7..7f0f923 100644 +--- a/drivers/hwmon/ibmaem.c ++++ b/drivers/hwmon/ibmaem.c +@@ -924,7 +924,7 @@ static int aem_register_sensors(struct aem_data *data, + struct aem_rw_sensor_template *rw) + { + struct device *dev = &data->pdev->dev; +- struct sensor_device_attribute *sensors = data->sensors; ++ sensor_device_attribute_no_const *sensors = data->sensors; + int err; + + /* Set up read-only sensors */ +diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c +index d89b339..fdb124c 100644 +--- a/drivers/hwmon/pmbus/pmbus_core.c ++++ b/drivers/hwmon/pmbus/pmbus_core.c +@@ -809,7 +809,7 @@ static ssize_t pmbus_show_label(struct device *dev, + + #define PMBUS_ADD_ATTR(data, _name, _idx, _mode, _type, _show, _set) \ + do { \ +- struct sensor_device_attribute *a \ ++ sensor_device_attribute_no_const *a \ + = &data->_type##s[data->num_##_type##s].attribute; \ + BUG_ON(data->num_attributes >= data->max_attributes); \ + sysfs_attr_init(&a->dev_attr.attr); \ diff --git a/drivers/hwmon/sht15.c b/drivers/hwmon/sht15.c index 3e3153e..d445962 100644 --- a/drivers/hwmon/sht15.c @@ -34666,6 +35754,32 @@ index 1f95bba..9530f87 100644 (u64) cmpxchg((u64 *) qp->r_sge.sge.vaddr, sdata, wqe->wr.wr.atomic.swap); goto send_comp; +diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c +index 9d3e5c1..d9afe4a 100644 +--- a/drivers/infiniband/hw/mthca/mthca_cmd.c ++++ b/drivers/infiniband/hw/mthca/mthca_cmd.c +@@ -772,7 +772,7 @@ static void mthca_setup_cmd_doorbells(struct mthca_dev *dev, u64 base) + mthca_dbg(dev, "Mapped doorbell page for posting FW commands\n"); + } + +-int mthca_QUERY_FW(struct mthca_dev *dev) ++int __intentional_overflow(-1) mthca_QUERY_FW(struct mthca_dev *dev) + { + struct mthca_mailbox *mailbox; + u32 *outbox; +diff --git a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c +index ed9a989..e0c5871 100644 +--- a/drivers/infiniband/hw/mthca/mthca_mr.c ++++ b/drivers/infiniband/hw/mthca/mthca_mr.c +@@ -426,7 +426,7 @@ static inline u32 adjust_key(struct mthca_dev *dev, u32 key) + return key; + } + +-int mthca_mr_alloc(struct mthca_dev *dev, u32 pd, int buffer_size_shift, ++int __intentional_overflow(-1) mthca_mr_alloc(struct mthca_dev *dev, u32 pd, int buffer_size_shift, + u64 iova, u64 total_size, u32 access, struct mthca_mr *mr) + { + struct mthca_mailbox *mailbox; diff --git a/drivers/infiniband/hw/nes/nes.c b/drivers/infiniband/hw/nes/nes.c index 5965b3d..16817fb 100644 --- a/drivers/infiniband/hw/nes/nes.c @@ -35168,6 +36282,19 @@ index 2189cbf..05ad609 100644 snprintf(led->name, sizeof(led->name), "xpad%ld", led_no); led->xpad = xpad; +diff --git a/drivers/input/mouse/psmouse.h b/drivers/input/mouse/psmouse.h +index 9b84b0c..027158f 100644 +--- a/drivers/input/mouse/psmouse.h ++++ b/drivers/input/mouse/psmouse.h +@@ -110,7 +110,7 @@ struct psmouse_attribute { + ssize_t (*set)(struct psmouse *psmouse, void *data, + const char *buf, size_t count); + bool protect; +-}; ++} __do_const; + #define to_psmouse_attr(a) container_of((a), struct psmouse_attribute, dattr) + + ssize_t psmouse_attr_show_helper(struct device *dev, struct device_attribute *attr, diff --git a/drivers/input/mousedev.c b/drivers/input/mousedev.c index 0110b5a..d3ad144 100644 --- a/drivers/input/mousedev.c @@ -35417,6 +36544,19 @@ index 1f355bb..43f1fea 100644 return -EFAULT; } else memcpy(msg, buf, count); +diff --git a/drivers/leds/leds-clevo-mail.c b/drivers/leds/leds-clevo-mail.c +index a498135..6a39f48 100644 +--- a/drivers/leds/leds-clevo-mail.c ++++ b/drivers/leds/leds-clevo-mail.c +@@ -39,7 +39,7 @@ static int __init clevo_mail_led_dmi_callback(const struct dmi_system_id *id) + * detected as working, but in reality it is not) as low as + * possible. + */ +-static struct dmi_system_id __initdata mail_led_whitelist[] = { ++static const struct dmi_system_id __initconst mail_led_whitelist[] = { + { + .callback = clevo_mail_led_dmi_callback, + .ident = "Clevo D410J", diff --git a/drivers/leds/leds-mc13783.c b/drivers/leds/leds-mc13783.c index b3393a9..33f6979 100644 --- a/drivers/leds/leds-mc13783.c @@ -35430,6 +36570,19 @@ index b3393a9..33f6979 100644 if (led == NULL) { dev_err(&pdev->dev, "failed to alloc memory\n"); return -ENOMEM; +diff --git a/drivers/leds/leds-ss4200.c b/drivers/leds/leds-ss4200.c +index 614ebeb..ce439fd 100644 +--- a/drivers/leds/leds-ss4200.c ++++ b/drivers/leds/leds-ss4200.c +@@ -92,7 +92,7 @@ MODULE_PARM_DESC(nodetect, "Skip DMI-based hardware detection"); + * detected as working, but in reality it is not) as low as + * possible. + */ +-static struct dmi_system_id __initdata nas_led_whitelist[] = { ++static const struct dmi_system_id __initconst nas_led_whitelist[] = { + { + .callback = ss4200_led_dmi_callback, + .ident = "Intel SS4200-E", diff --git a/drivers/lguest/core.c b/drivers/lguest/core.c index b5fdcb7..5b6c59f 100644 --- a/drivers/lguest/core.c @@ -35461,6 +36614,19 @@ index b5fdcb7..5b6c59f 100644 end_switcher_text - start_switcher_text); printk(KERN_INFO "lguest: mapped switcher at %p\n", +diff --git a/drivers/lguest/page_tables.c b/drivers/lguest/page_tables.c +index 3b62be16..e33134a 100644 +--- a/drivers/lguest/page_tables.c ++++ b/drivers/lguest/page_tables.c +@@ -532,7 +532,7 @@ void pin_page(struct lg_cpu *cpu, unsigned long vaddr) + /*:*/ + + #ifdef CONFIG_X86_PAE +-static void release_pmd(pmd_t *spmd) ++static void __intentional_overflow(-1) release_pmd(pmd_t *spmd) + { + /* If the entry's not present, there's nothing to release. */ + if (pmd_flags(*spmd) & _PAGE_PRESENT) { diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c index 65af42f..530c87a 100644 --- a/drivers/lguest/x86/core.c @@ -36609,6 +37775,70 @@ index 6dad2ef..ef80da6 100644 if (!cnts) return -ENOMEM; +diff --git a/drivers/mfd/twl4030-irq.c b/drivers/mfd/twl4030-irq.c +index 29f11e0..89f0c3d 100644 +--- a/drivers/mfd/twl4030-irq.c ++++ b/drivers/mfd/twl4030-irq.c +@@ -33,6 +33,7 @@ + #include <linux/slab.h> + + #include <linux/i2c/twl.h> ++#include <asm/pgtable.h> + + #include "twl-core.h" + +@@ -713,10 +714,12 @@ int twl4030_init_irq(int irq_num, unsigned irq_base, unsigned irq_end) + /* install an irq handler for each of the SIH modules; + * clone dummy irq_chip since PIH can't *do* anything + */ +- twl4030_irq_chip = dummy_irq_chip; +- twl4030_irq_chip.name = "twl4030"; ++ pax_open_kernel(); ++ memcpy((void *)&twl4030_irq_chip, &dummy_irq_chip, sizeof twl4030_irq_chip); ++ *(const char **)&twl4030_irq_chip.name = "twl4030"; + +- twl4030_sih_irq_chip.irq_ack = dummy_irq_chip.irq_ack; ++ *(void **)&twl4030_sih_irq_chip.irq_ack = dummy_irq_chip.irq_ack; ++ pax_close_kernel(); + + for (i = irq_base; i < irq_end; i++) { + irq_set_chip_and_handler(i, &twl4030_irq_chip, +diff --git a/drivers/mfd/twl6030-irq.c b/drivers/mfd/twl6030-irq.c +index 83f4988..80f7a01 100644 +--- a/drivers/mfd/twl6030-irq.c ++++ b/drivers/mfd/twl6030-irq.c +@@ -376,10 +376,12 @@ int twl6030_init_irq(int irq_num, unsigned irq_base, unsigned irq_end) + /* install an irq handler for each of the modules; + * clone dummy irq_chip since PIH can't *do* anything + */ +- twl6030_irq_chip = dummy_irq_chip; +- twl6030_irq_chip.name = "twl6030"; +- twl6030_irq_chip.irq_set_type = NULL; +- twl6030_irq_chip.irq_set_wake = twl6030_irq_set_wake; ++ pax_open_kernel(); ++ memcpy((void *)&twl6030_irq_chip, &dummy_irq_chip, sizeof twl6030_irq_chip); ++ *(const char **)&twl6030_irq_chip.name = "twl6030"; ++ *(void **)&twl6030_irq_chip.irq_set_type = NULL; ++ *(void **)&twl6030_irq_chip.irq_set_wake = twl6030_irq_set_wake; ++ pax_close_kernel(); + + for (i = irq_base; i < irq_end; i++) { + irq_set_chip_and_handler(i, &twl6030_irq_chip, +diff --git a/drivers/misc/c2port/core.c b/drivers/misc/c2port/core.c +index 19fc7c1..09a4d26 100644 +--- a/drivers/misc/c2port/core.c ++++ b/drivers/misc/c2port/core.c +@@ -924,7 +924,9 @@ struct c2port_device *c2port_device_register(char *name, + mutex_init(&c2dev->mutex); + + /* Create binary file */ +- c2port_bin_attrs.size = ops->blocks_num * ops->block_size; ++ pax_open_kernel(); ++ *(size_t *)&c2port_bin_attrs.size = ops->blocks_num * ops->block_size; ++ pax_close_kernel(); + ret = device_create_bin_file(c2dev->dev, &c2port_bin_attrs); + if (unlikely(ret)) + goto error_device_create_bin_file; diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c index 3aa9a96..59cf685 100644 --- a/drivers/misc/kgdbts.c @@ -37129,6 +38359,32 @@ index ac40925..483b753 100644 #include <linux/mtd/mtd.h> #include <linux/mtd/nand.h> #include <linux/mtd/nftl.h> +diff --git a/drivers/mtd/sm_ftl.c b/drivers/mtd/sm_ftl.c +index a9ff89ff..461d313 100644 +--- a/drivers/mtd/sm_ftl.c ++++ b/drivers/mtd/sm_ftl.c +@@ -56,7 +56,7 @@ ssize_t sm_attr_show(struct device *dev, struct device_attribute *attr, + #define SM_CIS_VENDOR_OFFSET 0x59 + struct attribute_group *sm_create_sysfs_attributes(struct sm_ftl *ftl) + { +- struct attribute_group *attr_group; ++ attribute_group_no_const *attr_group; + struct attribute **attributes; + struct sm_sysfs_attribute *vendor_attribute; + +diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c +index 63e3c47..b32ea7e 100644 +--- a/drivers/net/bonding/bond_main.c ++++ b/drivers/net/bonding/bond_main.c +@@ -4832,7 +4832,7 @@ static int bond_get_tx_queues(struct net *net, struct nlattr *tb[], + return 0; + } + +-static struct rtnl_link_ops bond_link_ops __read_mostly = { ++static struct rtnl_link_ops bond_link_ops = { + .kind = "bond", + .priv_size = sizeof(struct bonding), + .setup = bond_setup, diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c index a03fde9..83254bc 100644 --- a/drivers/net/bonding/bond_sysfs.c @@ -37718,11 +38974,46 @@ index d4d2bc1..14b8672 100644 }; static int stmmac_init_fs(struct net_device *dev) +diff --git a/drivers/net/loopback.c b/drivers/net/loopback.c +index d0893e4..14b0d44 100644 +--- a/drivers/net/loopback.c ++++ b/drivers/net/loopback.c +@@ -216,6 +216,6 @@ out: + } + + /* Registered in net/core/dev.c */ +-struct pernet_operations __net_initdata loopback_net_ops = { ++struct pernet_operations __net_initconst loopback_net_ops = { + .init = loopback_net_init, + }; diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c -index 97f342e..63fee4d 100644 +index 544ac06..0064ab3 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c -@@ -850,7 +850,7 @@ static int macvlan_device_event(struct notifier_block *unused, +@@ -789,13 +789,15 @@ static const struct nla_policy macvlan_policy[IFLA_MACVLAN_MAX + 1] = { + int macvlan_link_register(struct rtnl_link_ops *ops) + { + /* common fields */ +- ops->priv_size = sizeof(struct macvlan_dev); +- ops->validate = macvlan_validate; +- ops->maxtype = IFLA_MACVLAN_MAX; +- ops->policy = macvlan_policy; +- ops->changelink = macvlan_changelink; +- ops->get_size = macvlan_get_size; +- ops->fill_info = macvlan_fill_info; ++ pax_open_kernel(); ++ *(size_t *)&ops->priv_size = sizeof(struct macvlan_dev); ++ *(void **)&ops->validate = macvlan_validate; ++ *(int *)&ops->maxtype = IFLA_MACVLAN_MAX; ++ *(const void **)&ops->policy = macvlan_policy; ++ *(void **)&ops->changelink = macvlan_changelink; ++ *(void **)&ops->get_size = macvlan_get_size; ++ *(void **)&ops->fill_info = macvlan_fill_info; ++ pax_close_kernel(); + + return rtnl_link_register(ops); + }; +@@ -851,7 +853,7 @@ static int macvlan_device_event(struct notifier_block *unused, return NOTIFY_DONE; } @@ -37856,7 +39147,7 @@ index 46db5c5..37c1536 100644 err = platform_driver_register(&sk_isa_driver); if (err) diff --git a/drivers/net/tun.c b/drivers/net/tun.c -index a12c9bf..46dcc39 100644 +index f4c5de6..68c9070 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -359,7 +359,7 @@ static void tun_free_netdev(struct net_device *dev) @@ -37868,7 +39159,7 @@ index a12c9bf..46dcc39 100644 } /* Net device open. */ -@@ -979,10 +979,18 @@ static int tun_recvmsg(struct kiocb *iocb, struct socket *sock, +@@ -981,10 +981,18 @@ static int tun_recvmsg(struct kiocb *iocb, struct socket *sock, return ret; } @@ -37887,7 +39178,7 @@ index a12c9bf..46dcc39 100644 }; static struct proto tun_proto = { -@@ -1109,10 +1117,11 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr) +@@ -1111,10 +1119,11 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr) tun->vnet_hdr_sz = sizeof(struct virtio_net_hdr); err = -ENOMEM; @@ -37900,7 +39191,7 @@ index a12c9bf..46dcc39 100644 tun->socket.wq = &tun->wq; init_waitqueue_head(&tun->wq.wait); tun->socket.ops = &tun_socket_ops; -@@ -1173,7 +1182,7 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr) +@@ -1175,7 +1184,7 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr) return 0; err_free_sk: @@ -37909,7 +39200,7 @@ index a12c9bf..46dcc39 100644 err_free_dev: free_netdev(dev); failed: -@@ -1232,7 +1241,7 @@ static int set_offload(struct tun_struct *tun, unsigned long arg) +@@ -1234,7 +1243,7 @@ static int set_offload(struct tun_struct *tun, unsigned long arg) } static long __tun_chr_ioctl(struct file *file, unsigned int cmd, @@ -37918,7 +39209,7 @@ index a12c9bf..46dcc39 100644 { struct tun_file *tfile = file->private_data; struct tun_struct *tun; -@@ -1243,6 +1252,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd, +@@ -1245,6 +1254,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd, int vnet_hdr_sz; int ret; @@ -38099,6 +39390,19 @@ index e662cbc..8d4a102 100644 return -EINVAL; } +diff --git a/drivers/net/wireless/at76c50x-usb.c b/drivers/net/wireless/at76c50x-usb.c +index 4045e5a..506f1cf 100644 +--- a/drivers/net/wireless/at76c50x-usb.c ++++ b/drivers/net/wireless/at76c50x-usb.c +@@ -353,7 +353,7 @@ static u8 at76_dfu_get_state(struct usb_device *udev, u8 *state) + } + + /* Convert timeout from the DFU status to jiffies */ +-static inline unsigned long at76_get_timeout(struct dfu_status *s) ++static inline unsigned long __intentional_overflow(-1) at76_get_timeout(struct dfu_status *s) + { + return msecs_to_jiffies((s->poll_timeout[2] << 16) + | (s->poll_timeout[1] << 8) diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index b346d04..04436fa 100644 --- a/drivers/net/wireless/ath/ath5k/base.c @@ -38696,6 +40000,19 @@ index f8c752e..28bf4fc 100644 start_switch_worker(); } +diff --git a/drivers/oprofile/oprofile_files.c b/drivers/oprofile/oprofile_files.c +index 84a208d..d61b0a1 100644 +--- a/drivers/oprofile/oprofile_files.c ++++ b/drivers/oprofile/oprofile_files.c +@@ -27,7 +27,7 @@ unsigned long oprofile_time_slice; + + #ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX + +-static ssize_t timeout_read(struct file *file, char __user *buf, ++static ssize_t __intentional_overflow(-1) timeout_read(struct file *file, char __user *buf, + size_t count, loff_t *offset) + { + return oprofilefs_ulong_to_user(jiffies_to_msecs(oprofile_time_slice), diff --git a/drivers/oprofile/oprofile_stats.c b/drivers/oprofile/oprofile_stats.c index 917d28e..d62d981 100644 --- a/drivers/oprofile/oprofile_stats.c @@ -38786,6 +40103,21 @@ index 3f56bc0..707d642 100644 } #endif /* IEEE1284.3 support. */ +diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c +index e525263..ebde92e 100644 +--- a/drivers/pci/hotplug/acpiphp_ibm.c ++++ b/drivers/pci/hotplug/acpiphp_ibm.c +@@ -464,7 +464,9 @@ static int __init ibm_acpiphp_init(void) + goto init_cleanup; + } + +- ibm_apci_table_attr.size = ibm_get_table_from_acpi(NULL); ++ pax_open_kernel(); ++ *(size_t *)&ibm_apci_table_attr.size = ibm_get_table_from_acpi(NULL); ++ pax_close_kernel(); + retval = sysfs_create_bin_file(sysdir, &ibm_apci_table_attr); + + return retval; diff --git a/drivers/pci/hotplug/cpcihp_generic.c b/drivers/pci/hotplug/cpcihp_generic.c index fb3f846..792d643 100644 --- a/drivers/pci/hotplug/cpcihp_generic.c @@ -38880,6 +40212,80 @@ index 76ba8a1..20ca857 100644 dbg("int15 entry = %p\n", compaq_int15_entry_point); /* initialize our int15 lock */ +diff --git a/drivers/pci/hotplug/pci_hotplug_core.c b/drivers/pci/hotplug/pci_hotplug_core.c +index 6d2eea9..4bf3318 100644 +--- a/drivers/pci/hotplug/pci_hotplug_core.c ++++ b/drivers/pci/hotplug/pci_hotplug_core.c +@@ -448,8 +448,10 @@ int __pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus, + return -EINVAL; + } + +- slot->ops->owner = owner; +- slot->ops->mod_name = mod_name; ++ pax_open_kernel(); ++ *(struct module **)&slot->ops->owner = owner; ++ *(const char **)&slot->ops->mod_name = mod_name; ++ pax_close_kernel(); + + mutex_lock(&pci_hp_mutex); + /* +diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c +index 9350af9..68623c4 100644 +--- a/drivers/pci/hotplug/pciehp_core.c ++++ b/drivers/pci/hotplug/pciehp_core.c +@@ -91,7 +91,7 @@ static int init_slot(struct controller *ctrl) + struct slot *slot = ctrl->slot; + struct hotplug_slot *hotplug = NULL; + struct hotplug_slot_info *info = NULL; +- struct hotplug_slot_ops *ops = NULL; ++ hotplug_slot_ops_no_const *ops = NULL; + char name[SLOT_NAME_SIZE]; + int retval = -ENOMEM; + +diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c +index 106be0d..45a52b5 100644 +--- a/drivers/pci/pci-sysfs.c ++++ b/drivers/pci/pci-sysfs.c +@@ -950,7 +950,7 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine) + { + /* allocate attribute structure, piggyback attribute name */ + int name_len = write_combine ? 13 : 10; +- struct bin_attribute *res_attr; ++ bin_attribute_no_const *res_attr; + int retval; + + res_attr = kzalloc(sizeof(*res_attr) + name_len, GFP_ATOMIC); +@@ -1135,7 +1135,7 @@ static struct device_attribute reset_attr = __ATTR(reset, 0200, NULL, reset_stor + static int pci_create_capabilities_sysfs(struct pci_dev *dev) + { + int retval; +- struct bin_attribute *attr; ++ bin_attribute_no_const *attr; + + /* If the device has VPD, try to expose it in sysfs. */ + if (dev->vpd) { +@@ -1182,7 +1182,7 @@ int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev) + { + int retval; + int rom_size = 0; +- struct bin_attribute *attr; ++ bin_attribute_no_const *attr; + + if (!sysfs_initialized) + return -EACCES; +diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h +index b74084e..a9c2922 100644 +--- a/drivers/pci/pci.h ++++ b/drivers/pci/pci.h +@@ -101,7 +101,7 @@ struct pci_vpd_ops { + struct pci_vpd { + unsigned int len; + const struct pci_vpd_ops *ops; +- struct bin_attribute *attr; /* descriptor for sysfs VPD entry */ ++ bin_attribute_no_const *attr; /* descriptor for sysfs VPD entry */ + }; + + extern int pci_vpd_pci22_init(struct pci_dev *dev); diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c index c73ed00..cc3edec 100644 --- a/drivers/pci/pcie/aspm.c @@ -38931,6 +40337,31 @@ index 27911b5..5b6db88 100644 proc_create("devices", 0, proc_bus_pci_dir, &proc_bus_pci_dev_operations); proc_initialized = 1; +diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c +index f204643..9ccea74 100644 +--- a/drivers/platform/x86/msi-laptop.c ++++ b/drivers/platform/x86/msi-laptop.c +@@ -815,12 +815,14 @@ static int __init load_scm_model_init(struct platform_device *sdev) + int result; + + /* allow userland write sysfs file */ +- dev_attr_bluetooth.store = store_bluetooth; +- dev_attr_wlan.store = store_wlan; +- dev_attr_threeg.store = store_threeg; +- dev_attr_bluetooth.attr.mode |= S_IWUSR; +- dev_attr_wlan.attr.mode |= S_IWUSR; +- dev_attr_threeg.attr.mode |= S_IWUSR; ++ pax_open_kernel(); ++ *(void **)&dev_attr_bluetooth.store = store_bluetooth; ++ *(void **)&dev_attr_wlan.store = store_wlan; ++ *(void **)&dev_attr_threeg.store = store_threeg; ++ *(umode_t *)&dev_attr_bluetooth.attr.mode |= S_IWUSR; ++ *(umode_t *)&dev_attr_wlan.attr.mode |= S_IWUSR; ++ *(umode_t *)&dev_attr_threeg.attr.mode |= S_IWUSR; ++ pax_close_kernel(); + + /* disable hardware control by fn key */ + result = ec_read(MSI_STANDARD_EC_SCM_LOAD_ADDRESS, &data); diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c index 7b82868..b9344c9 100644 --- a/drivers/platform/x86/thinkpad_acpi.c @@ -39145,6 +40576,74 @@ index b0ecacb..7c9da2e 100644 return 0; /* check if the resource is reserved */ +diff --git a/drivers/power/power_supply.h b/drivers/power/power_supply.h +index 018de2b..bc8e317 100644 +--- a/drivers/power/power_supply.h ++++ b/drivers/power/power_supply.h +@@ -12,12 +12,12 @@ + + #ifdef CONFIG_SYSFS + +-extern void power_supply_init_attrs(struct device_type *dev_type); ++extern void power_supply_init_attrs(void); + extern int power_supply_uevent(struct device *dev, struct kobj_uevent_env *env); + + #else + +-static inline void power_supply_init_attrs(struct device_type *dev_type) {} ++static inline void power_supply_init_attrs(void) {} + #define power_supply_uevent NULL + + #endif /* CONFIG_SYSFS */ +diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c +index 329b46b..1b17633 100644 +--- a/drivers/power/power_supply_core.c ++++ b/drivers/power/power_supply_core.c +@@ -23,7 +23,10 @@ + struct class *power_supply_class; + EXPORT_SYMBOL_GPL(power_supply_class); + +-static struct device_type power_supply_dev_type; ++extern const struct attribute_group *power_supply_attr_groups[]; ++static struct device_type power_supply_dev_type = { ++ .groups = power_supply_attr_groups, ++}; + + static int __power_supply_changed_work(struct device *dev, void *data) + { +@@ -215,7 +218,7 @@ static int __init power_supply_class_init(void) + return PTR_ERR(power_supply_class); + + power_supply_class->dev_uevent = power_supply_uevent; +- power_supply_init_attrs(&power_supply_dev_type); ++ power_supply_init_attrs(); + + return 0; + } +diff --git a/drivers/power/power_supply_sysfs.c b/drivers/power/power_supply_sysfs.c +index e15d4c9..83cd617 100644 +--- a/drivers/power/power_supply_sysfs.c ++++ b/drivers/power/power_supply_sysfs.c +@@ -208,17 +208,15 @@ static struct attribute_group power_supply_attr_group = { + .is_visible = power_supply_attr_is_visible, + }; + +-static const struct attribute_group *power_supply_attr_groups[] = { ++const struct attribute_group *power_supply_attr_groups[] = { + &power_supply_attr_group, + NULL, + }; + +-void power_supply_init_attrs(struct device_type *dev_type) ++void power_supply_init_attrs(void) + { + int i; + +- dev_type->groups = power_supply_attr_groups; +- + for (i = 0; i < ARRAY_SIZE(power_supply_attrs); i++) + __power_supply_attrs[i] = &power_supply_attrs[i].attr; + } diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c index 33f5d9a..d957d3f 100644 --- a/drivers/regulator/max8660.c @@ -39181,6 +40680,21 @@ index 023d17d..74ef35b 100644 for (i = 0; i < pdata->num_regulators; i++) { init_data = &pdata->regulators[i]; priv->regulators[i] = regulator_register( +diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c +index 05beb6c..6676a62 100644 +--- a/drivers/rtc/rtc-cmos.c ++++ b/drivers/rtc/rtc-cmos.c +@@ -724,7 +724,9 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq) + hpet_rtc_timer_init(); + + /* export at least the first block of NVRAM */ +- nvram.size = address_space - NVRAM_OFFSET; ++ pax_open_kernel(); ++ *(size_t *)&nvram.size = address_space - NVRAM_OFFSET; ++ pax_close_kernel(); + retval = sysfs_create_bin_file(&dev->kobj, &nvram); + if (retval < 0) { + dev_dbg(dev, "can't create nvram file? %d\n", retval); diff --git a/drivers/rtc/rtc-dev.c b/drivers/rtc/rtc-dev.c index cace6d3..f623fda 100644 --- a/drivers/rtc/rtc-dev.c @@ -39202,6 +40716,21 @@ index cace6d3..f623fda 100644 return rtc_set_time(rtc, &tm); case RTC_PIE_ON: +diff --git a/drivers/rtc/rtc-m48t59.c b/drivers/rtc/rtc-m48t59.c +index 2836538..30edf9d 100644 +--- a/drivers/rtc/rtc-m48t59.c ++++ b/drivers/rtc/rtc-m48t59.c +@@ -482,7 +482,9 @@ static int __devinit m48t59_rtc_probe(struct platform_device *pdev) + goto out; + } + +- m48t59_nvram_attr.size = pdata->offset; ++ pax_open_kernel(); ++ *(size_t *)&m48t59_nvram_attr.size = pdata->offset; ++ pax_close_kernel(); + + ret = sysfs_create_bin_file(&pdev->dev.kobj, &m48t59_nvram_attr); + if (ret) { diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index 705e13e..91c873c 100644 --- a/drivers/scsi/aacraid/linit.c @@ -39228,19 +40757,6 @@ index d5ff142..49c0ebb 100644 {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x410),0, 0, 1}, {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x412),0, 0, 1}, {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x416),0, 0, 1}, -diff --git a/drivers/scsi/bfa/bfa.h b/drivers/scsi/bfa/bfa.h -index a796de9..1ef20e1 100644 ---- a/drivers/scsi/bfa/bfa.h -+++ b/drivers/scsi/bfa/bfa.h -@@ -196,7 +196,7 @@ struct bfa_hwif_s { - u32 *end); - int cpe_vec_q0; - int rme_vec_q0; --}; -+} __no_const; - typedef void (*bfa_cb_iocfc_t) (void *cbarg, enum bfa_status status); - - struct bfa_faa_cbfn_s { diff --git a/drivers/scsi/bfa/bfa_fcpim.h b/drivers/scsi/bfa/bfa_fcpim.h index 1080bcb..4a8ddd9 100644 --- a/drivers/scsi/bfa/bfa_fcpim.h @@ -40224,6 +41740,19 @@ index 72d0f3f..ba3ff3c 100644 if (!channels) return -ENOMEM; +diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c +index aec9311..ddc3103 100644 +--- a/drivers/staging/iio/industrialio-core.c ++++ b/drivers/staging/iio/industrialio-core.c +@@ -398,7 +398,7 @@ static ssize_t iio_write_channel_info(struct device *dev, + } + + static +-int __iio_device_attr_init(struct device_attribute *dev_attr, ++int __iio_device_attr_init(device_attribute_no_const *dev_attr, + const char *postfix, + struct iio_chan_spec const *chan, + ssize_t (*readfunc)(struct device *dev, diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c index 8b307b4..a97ac91 100644 --- a/drivers/staging/octeon/ethernet-rx.c @@ -40903,10 +42432,10 @@ index 8481aae..e1a589c 100644 } EXPORT_SYMBOL_GPL(n_tty_inherit_ops); diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c -index e18604b..a7d5a11 100644 +index d19b879..aa288ec 100644 --- a/drivers/tty/pty.c +++ b/drivers/tty/pty.c -@@ -773,8 +773,10 @@ static void __init unix98_pty_init(void) +@@ -772,8 +772,10 @@ static void __init unix98_pty_init(void) register_sysctl_table(pty_root_table); /* Now create the /dev/ptmx special device */ @@ -41436,6 +42965,19 @@ index 032e5a6..bc422e4 100644 if (atomic_read(&urb->reject)) wake_up(&usb_kill_urb_queue); usb_put_urb(urb); +diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c +index ab11ca3c..e9bb990 100644 +--- a/drivers/usb/core/message.c ++++ b/drivers/usb/core/message.c +@@ -129,7 +129,7 @@ static int usb_internal_control_msg(struct usb_device *usb_dev, + * method can wait for it to complete. Since you don't have a handle on the + * URB used, you can't cancel the request. + */ +-int usb_control_msg(struct usb_device *dev, unsigned int pipe, __u8 request, ++int __intentional_overflow(-1) usb_control_msg(struct usb_device *dev, unsigned int pipe, __u8 request, + __u8 requesttype, __u16 value, __u16 index, void *data, + __u16 size, int timeout) + { diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c index 662c0cf..6880fbb 100644 --- a/drivers/usb/core/sysfs.c @@ -41503,6 +43045,63 @@ index 347bb05..63e1b73 100644 return 0; } +diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c +index db2d607..3a25028 100644 +--- a/drivers/usb/gadget/file_storage.c ++++ b/drivers/usb/gadget/file_storage.c +@@ -3329,18 +3329,20 @@ static int __init fsg_bind(struct usb_gadget *gadget) + if ((rc = check_parameters(fsg)) != 0) + goto out; + ++ pax_open_kernel(); + if (mod_data.removable) { // Enable the store_xxx attributes +- dev_attr_file.attr.mode = 0644; +- dev_attr_file.store = fsg_store_file; ++ *(mode_t *)&dev_attr_file.attr.mode = 0644; ++ *(void **)&dev_attr_file.store = fsg_store_file; + if (!mod_data.cdrom) { +- dev_attr_ro.attr.mode = 0644; +- dev_attr_ro.store = fsg_store_ro; ++ *(mode_t *)&dev_attr_ro.attr.mode = 0644; ++ *(void **)&dev_attr_ro.store = fsg_store_ro; + } + } + + /* Only for removable media? */ +- dev_attr_nofua.attr.mode = 0644; +- dev_attr_nofua.store = fsg_store_nofua; ++ *(mode_t *)&dev_attr_nofua.attr.mode = 0644; ++ *(void **)&dev_attr_nofua.store = fsg_store_nofua; ++ pax_close_kernel(); + + /* Find out how many LUNs there should be */ + i = mod_data.nluns; +diff --git a/drivers/usb/storage/realtek_cr.c b/drivers/usb/storage/realtek_cr.c +index e39b188..1fffda8 100644 +--- a/drivers/usb/storage/realtek_cr.c ++++ b/drivers/usb/storage/realtek_cr.c +@@ -430,7 +430,7 @@ static int rts51x_read_status(struct us_data *us, + + buf = kmalloc(len, GFP_NOIO); + if (buf == NULL) +- return USB_STOR_TRANSPORT_ERROR; ++ return -ENOMEM; + + US_DEBUGP("%s, lun = %d\n", __func__, lun); + +diff --git a/drivers/usb/storage/usb.h b/drivers/usb/storage/usb.h +index 75f70f0..d467e1a 100644 +--- a/drivers/usb/storage/usb.h ++++ b/drivers/usb/storage/usb.h +@@ -63,7 +63,7 @@ struct us_unusual_dev { + __u8 useProtocol; + __u8 useTransport; + int (*initFunction)(struct us_data *); +-}; ++} __do_const; + + + /* Dynamic bitflag definitions (us->dflags): used in set_bit() etc. */ diff --git a/drivers/usb/wusbcore/wa-hc.h b/drivers/usb/wusbcore/wa-hc.h index d6bea3e..60b250e 100644 --- a/drivers/usb/wusbcore/wa-hc.h @@ -41564,6 +43163,63 @@ index b0b2ac3..89a4399 100644 "AGP", "PCI", "PRO AGP", +diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c +index 44bdce4..a79c55f 100644 +--- a/drivers/video/aty/atyfb_base.c ++++ b/drivers/video/aty/atyfb_base.c +@@ -1325,10 +1325,14 @@ static int atyfb_set_par(struct fb_info *info) + par->accel_flags = var->accel_flags; /* hack */ + + if (var->accel_flags) { +- info->fbops->fb_sync = atyfb_sync; ++ pax_open_kernel(); ++ *(void **)&info->fbops->fb_sync = atyfb_sync; ++ pax_close_kernel(); + info->flags &= ~FBINFO_HWACCEL_DISABLED; + } else { +- info->fbops->fb_sync = NULL; ++ pax_open_kernel(); ++ *(void **)&info->fbops->fb_sync = NULL; ++ pax_close_kernel(); + info->flags |= FBINFO_HWACCEL_DISABLED; + } + +diff --git a/drivers/video/aty/mach64_cursor.c b/drivers/video/aty/mach64_cursor.c +index 46f72ed..107788d 100644 +--- a/drivers/video/aty/mach64_cursor.c ++++ b/drivers/video/aty/mach64_cursor.c +@@ -7,6 +7,7 @@ + #include <linux/string.h> + + #include <asm/io.h> ++#include <asm/pgtable.h> + + #ifdef __sparc__ + #include <asm/fbio.h> +@@ -208,7 +209,9 @@ int __devinit aty_init_cursor(struct fb_info *info) + info->sprite.buf_align = 16; /* and 64 lines tall. */ + info->sprite.flags = FB_PIXMAP_IO; + +- info->fbops->fb_cursor = atyfb_cursor; ++ pax_open_kernel(); ++ *(void **)&info->fbops->fb_cursor = atyfb_cursor; ++ pax_close_kernel(); + + return 0; + } +diff --git a/drivers/video/backlight/kb3886_bl.c b/drivers/video/backlight/kb3886_bl.c +index 72dd555..5f9bfbe 100644 +--- a/drivers/video/backlight/kb3886_bl.c ++++ b/drivers/video/backlight/kb3886_bl.c +@@ -78,7 +78,7 @@ static struct kb3886bl_machinfo *bl_machinfo; + static unsigned long kb3886bl_flags; + #define KB3886BL_SUSPENDED 0x01 + +-static struct dmi_system_id __initdata kb3886bl_device_table[] = { ++static const struct dmi_system_id __initconst kb3886bl_device_table[] = { + { + .ident = "Sahara Touch-iT", + .matches = { diff --git a/drivers/video/backlight/s6e63m0.c b/drivers/video/backlight/s6e63m0.c index e132157..516db70 100644 --- a/drivers/video/backlight/s6e63m0.c @@ -41590,6 +43246,30 @@ index 9b8bcab..cc61f88 100644 if (!strncmp(options, "scrollback:", 11)) { options += 11; +diff --git a/drivers/video/fb_defio.c b/drivers/video/fb_defio.c +index c27e153..5beb687 100644 +--- a/drivers/video/fb_defio.c ++++ b/drivers/video/fb_defio.c +@@ -200,7 +200,9 @@ void fb_deferred_io_init(struct fb_info *info) + + BUG_ON(!fbdefio); + mutex_init(&fbdefio->lock); +- info->fbops->fb_mmap = fb_deferred_io_mmap; ++ pax_open_kernel(); ++ *(void **)&info->fbops->fb_mmap = fb_deferred_io_mmap; ++ pax_close_kernel(); + INIT_DELAYED_WORK(&info->deferred_work, fb_deferred_io_work); + INIT_LIST_HEAD(&fbdefio->pagelist); + if (fbdefio->delay == 0) /* set a default of 1 s */ +@@ -231,7 +233,7 @@ void fb_deferred_io_cleanup(struct fb_info *info) + page->mapping = NULL; + } + +- info->fbops->fb_mmap = NULL; ++ *(void **)&info->fbops->fb_mmap = NULL; + mutex_destroy(&fbdefio->lock); + } + EXPORT_SYMBOL_GPL(fb_deferred_io_cleanup); diff --git a/drivers/video/fbcmap.c b/drivers/video/fbcmap.c index 5c3960d..15cf8fc 100644 --- a/drivers/video/fbcmap.c @@ -44437,8 +46117,119 @@ index 3c14e43..eafa544 100644 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 +4 4 4 4 4 4 +diff --git a/drivers/video/mb862xx/mb862xxfb_accel.c b/drivers/video/mb862xx/mb862xxfb_accel.c +index fe92eed..106e085 100644 +--- a/drivers/video/mb862xx/mb862xxfb_accel.c ++++ b/drivers/video/mb862xx/mb862xxfb_accel.c +@@ -312,14 +312,18 @@ void mb862xxfb_init_accel(struct fb_info *info, int xres) + struct mb862xxfb_par *par = info->par; + + if (info->var.bits_per_pixel == 32) { +- info->fbops->fb_fillrect = cfb_fillrect; +- info->fbops->fb_copyarea = cfb_copyarea; +- info->fbops->fb_imageblit = cfb_imageblit; ++ pax_open_kernel(); ++ *(void **)&info->fbops->fb_fillrect = cfb_fillrect; ++ *(void **)&info->fbops->fb_copyarea = cfb_copyarea; ++ *(void **)&info->fbops->fb_imageblit = cfb_imageblit; ++ pax_close_kernel(); + } else { + outreg(disp, GC_L0EM, 3); +- info->fbops->fb_fillrect = mb86290fb_fillrect; +- info->fbops->fb_copyarea = mb86290fb_copyarea; +- info->fbops->fb_imageblit = mb86290fb_imageblit; ++ pax_open_kernel(); ++ *(void **)&info->fbops->fb_fillrect = mb86290fb_fillrect; ++ *(void **)&info->fbops->fb_copyarea = mb86290fb_copyarea; ++ *(void **)&info->fbops->fb_imageblit = mb86290fb_imageblit; ++ pax_close_kernel(); + } + outreg(draw, GDC_REG_DRAW_BASE, 0); + outreg(draw, GDC_REG_MODE_MISC, 0x8000); +diff --git a/drivers/video/nvidia/nvidia.c b/drivers/video/nvidia/nvidia.c +index 081dc47..6e20d0b 100644 +--- a/drivers/video/nvidia/nvidia.c ++++ b/drivers/video/nvidia/nvidia.c +@@ -669,19 +669,23 @@ static int nvidiafb_set_par(struct fb_info *info) + info->fix.line_length = (info->var.xres_virtual * + info->var.bits_per_pixel) >> 3; + if (info->var.accel_flags) { +- info->fbops->fb_imageblit = nvidiafb_imageblit; +- info->fbops->fb_fillrect = nvidiafb_fillrect; +- info->fbops->fb_copyarea = nvidiafb_copyarea; +- info->fbops->fb_sync = nvidiafb_sync; ++ pax_open_kernel(); ++ *(void **)&info->fbops->fb_imageblit = nvidiafb_imageblit; ++ *(void **)&info->fbops->fb_fillrect = nvidiafb_fillrect; ++ *(void **)&info->fbops->fb_copyarea = nvidiafb_copyarea; ++ *(void **)&info->fbops->fb_sync = nvidiafb_sync; ++ pax_close_kernel(); + info->pixmap.scan_align = 4; + info->flags &= ~FBINFO_HWACCEL_DISABLED; + info->flags |= FBINFO_READS_FAST; + NVResetGraphics(info); + } else { +- info->fbops->fb_imageblit = cfb_imageblit; +- info->fbops->fb_fillrect = cfb_fillrect; +- info->fbops->fb_copyarea = cfb_copyarea; +- info->fbops->fb_sync = NULL; ++ pax_open_kernel(); ++ *(void **)&info->fbops->fb_imageblit = cfb_imageblit; ++ *(void **)&info->fbops->fb_fillrect = cfb_fillrect; ++ *(void **)&info->fbops->fb_copyarea = cfb_copyarea; ++ *(void **)&info->fbops->fb_sync = NULL; ++ pax_close_kernel(); + info->pixmap.scan_align = 1; + info->flags |= FBINFO_HWACCEL_DISABLED; + info->flags &= ~FBINFO_READS_FAST; +@@ -1173,8 +1177,11 @@ static int __devinit nvidia_set_fbinfo(struct fb_info *info) + info->pixmap.size = 8 * 1024; + info->pixmap.flags = FB_PIXMAP_SYSTEM; + +- if (!hwcur) +- info->fbops->fb_cursor = NULL; ++ if (!hwcur) { ++ pax_open_kernel(); ++ *(void **)&info->fbops->fb_cursor = NULL; ++ pax_close_kernel(); ++ } + + info->var.accel_flags = (!noaccel); + +diff --git a/drivers/video/s1d13xxxfb.c b/drivers/video/s1d13xxxfb.c +index 28b1c6c..b9939d9 100644 +--- a/drivers/video/s1d13xxxfb.c ++++ b/drivers/video/s1d13xxxfb.c +@@ -883,8 +883,10 @@ s1d13xxxfb_probe(struct platform_device *pdev) + + switch(prod_id) { + case S1D13506_PROD_ID: /* activate acceleration */ +- s1d13xxxfb_fbops.fb_fillrect = s1d13xxxfb_bitblt_solidfill; +- s1d13xxxfb_fbops.fb_copyarea = s1d13xxxfb_bitblt_copyarea; ++ pax_open_kernel(); ++ *(void **)&s1d13xxxfb_fbops.fb_fillrect = s1d13xxxfb_bitblt_solidfill; ++ *(void **)&s1d13xxxfb_fbops.fb_copyarea = s1d13xxxfb_bitblt_copyarea; ++ pax_close_kernel(); + info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN | + FBINFO_HWACCEL_FILLRECT | FBINFO_HWACCEL_COPYAREA; + break; +diff --git a/drivers/video/smscufx.c b/drivers/video/smscufx.c +index dd9533a..aff3199 100644 +--- a/drivers/video/smscufx.c ++++ b/drivers/video/smscufx.c +@@ -1172,7 +1172,9 @@ static int ufx_ops_release(struct fb_info *info, int user) + fb_deferred_io_cleanup(info); + kfree(info->fbdefio); + info->fbdefio = NULL; +- info->fbops->fb_mmap = ufx_ops_mmap; ++ pax_open_kernel(); ++ *(void **)&info->fbops->fb_mmap = ufx_ops_mmap; ++ pax_close_kernel(); + } + + pr_debug("released /dev/fb%d user=%d count=%d", diff --git a/drivers/video/udlfb.c b/drivers/video/udlfb.c -index cb5988f..a44fee7 100644 +index cb5988f..439ecb0 100644 --- a/drivers/video/udlfb.c +++ b/drivers/video/udlfb.c @@ -619,11 +619,11 @@ int dlfb_handle_damage(struct dlfb_data *dev, int x, int y, @@ -44473,7 +46264,18 @@ index cb5988f..a44fee7 100644 >> 10)), /* Kcycles */ &dev->cpu_kcycles_used); } -@@ -1368,7 +1368,7 @@ static ssize_t metrics_bytes_rendered_show(struct device *fbdev, +@@ -986,7 +986,9 @@ static int dlfb_ops_release(struct fb_info *info, int user) + fb_deferred_io_cleanup(info); + kfree(info->fbdefio); + info->fbdefio = NULL; +- info->fbops->fb_mmap = dlfb_ops_mmap; ++ pax_open_kernel(); ++ *(void **)&info->fbops->fb_mmap = dlfb_ops_mmap; ++ pax_close_kernel(); + } + + pr_warn("released /dev/fb%d user=%d count=%d\n", +@@ -1368,7 +1370,7 @@ static ssize_t metrics_bytes_rendered_show(struct device *fbdev, struct fb_info *fb_info = dev_get_drvdata(fbdev); struct dlfb_data *dev = fb_info->par; return snprintf(buf, PAGE_SIZE, "%u\n", @@ -44482,7 +46284,7 @@ index cb5988f..a44fee7 100644 } static ssize_t metrics_bytes_identical_show(struct device *fbdev, -@@ -1376,7 +1376,7 @@ static ssize_t metrics_bytes_identical_show(struct device *fbdev, +@@ -1376,7 +1378,7 @@ static ssize_t metrics_bytes_identical_show(struct device *fbdev, struct fb_info *fb_info = dev_get_drvdata(fbdev); struct dlfb_data *dev = fb_info->par; return snprintf(buf, PAGE_SIZE, "%u\n", @@ -44491,7 +46293,7 @@ index cb5988f..a44fee7 100644 } static ssize_t metrics_bytes_sent_show(struct device *fbdev, -@@ -1384,7 +1384,7 @@ static ssize_t metrics_bytes_sent_show(struct device *fbdev, +@@ -1384,7 +1386,7 @@ static ssize_t metrics_bytes_sent_show(struct device *fbdev, struct fb_info *fb_info = dev_get_drvdata(fbdev); struct dlfb_data *dev = fb_info->par; return snprintf(buf, PAGE_SIZE, "%u\n", @@ -44500,7 +46302,7 @@ index cb5988f..a44fee7 100644 } static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev, -@@ -1392,7 +1392,7 @@ static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev, +@@ -1392,7 +1394,7 @@ static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev, struct fb_info *fb_info = dev_get_drvdata(fbdev); struct dlfb_data *dev = fb_info->par; return snprintf(buf, PAGE_SIZE, "%u\n", @@ -44509,7 +46311,7 @@ index cb5988f..a44fee7 100644 } static ssize_t edid_show( -@@ -1449,10 +1449,10 @@ static ssize_t metrics_reset_store(struct device *fbdev, +@@ -1449,10 +1451,10 @@ static ssize_t metrics_reset_store(struct device *fbdev, struct fb_info *fb_info = dev_get_drvdata(fbdev); struct dlfb_data *dev = fb_info->par; @@ -44525,7 +46327,7 @@ index cb5988f..a44fee7 100644 return count; } diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c -index 8813588..7265ef8 100644 +index 8813588..65454ec 100644 --- a/drivers/video/uvesafb.c +++ b/drivers/video/uvesafb.c @@ -19,6 +19,7 @@ @@ -44604,7 +46406,35 @@ index 8813588..7265ef8 100644 } #else /* The protected mode interface is not available on non-x86. */ -@@ -1828,6 +1852,11 @@ out: +@@ -1449,8 +1473,11 @@ static void __devinit uvesafb_init_info(struct fb_info *info, + info->fix.ywrapstep = (par->ypan > 1) ? 1 : 0; + + /* Disable blanking if the user requested so. */ +- if (!blank) +- info->fbops->fb_blank = NULL; ++ if (!blank) { ++ pax_open_kernel(); ++ *(void **)&info->fbops->fb_blank = NULL; ++ pax_close_kernel(); ++ } + + /* + * Find out how much IO memory is required for the mode with +@@ -1526,8 +1553,11 @@ static void __devinit uvesafb_init_info(struct fb_info *info, + info->flags = FBINFO_FLAG_DEFAULT | + (par->ypan ? FBINFO_HWACCEL_YPAN : 0); + +- if (!par->ypan) +- info->fbops->fb_pan_display = NULL; ++ if (!par->ypan) { ++ pax_open_kernel(); ++ *(void **)&info->fbops->fb_pan_display = NULL; ++ pax_close_kernel(); ++ } + } + + static void __devinit uvesafb_init_mtrr(struct fb_info *info) +@@ -1828,6 +1858,11 @@ out: if (par->vbe_modes) kfree(par->vbe_modes); @@ -44616,7 +46446,7 @@ index 8813588..7265ef8 100644 framebuffer_release(info); return err; } -@@ -1854,6 +1883,12 @@ static int uvesafb_remove(struct platform_device *dev) +@@ -1854,6 +1889,12 @@ static int uvesafb_remove(struct platform_device *dev) kfree(par->vbe_state_orig); if (par->vbe_state_saved) kfree(par->vbe_state_saved); @@ -44630,7 +46460,7 @@ index 8813588..7265ef8 100644 framebuffer_release(info); diff --git a/drivers/video/vesafb.c b/drivers/video/vesafb.c -index 501b340..86bd4cf 100644 +index 501b340..d80aa17 100644 --- a/drivers/video/vesafb.c +++ b/drivers/video/vesafb.c @@ -9,6 +9,7 @@ @@ -44723,7 +46553,21 @@ index 501b340..86bd4cf 100644 printk(KERN_INFO "vesafb: pmi: set display start = %p, set palette = %p\n",pmi_start,pmi_pal); if (pmi_base[3]) { printk(KERN_INFO "vesafb: pmi: ports = "); -@@ -488,6 +514,11 @@ static int __init vesafb_probe(struct platform_device *dev) +@@ -472,8 +498,11 @@ static int __init vesafb_probe(struct platform_device *dev) + info->flags = FBINFO_FLAG_DEFAULT | FBINFO_MISC_FIRMWARE | + (ypan ? FBINFO_HWACCEL_YPAN : 0); + +- if (!ypan) +- info->fbops->fb_pan_display = NULL; ++ if (!ypan) { ++ pax_open_kernel(); ++ *(void **)&info->fbops->fb_pan_display = NULL; ++ pax_close_kernel(); ++ } + + if (fb_alloc_cmap(&info->cmap, 256, 0) < 0) { + err = -ENOMEM; +@@ -488,6 +517,11 @@ static int __init vesafb_probe(struct platform_device *dev) info->node, info->fix.id); return 0; err: @@ -44886,6 +46730,28 @@ index e1fbdee..69291a4 100644 else { qstr.len = autofs4_getpath(sbi, dentry, &name); if (!qstr.len) { +diff --git a/fs/befs/endian.h b/fs/befs/endian.h +index 2722387..c8dd2a7 100644 +--- a/fs/befs/endian.h ++++ b/fs/befs/endian.h +@@ -11,7 +11,7 @@ + + #include <asm/byteorder.h> + +-static inline u64 ++static inline u64 __intentional_overflow(-1) + fs64_to_cpu(const struct super_block *sb, fs64 n) + { + if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE) +@@ -29,7 +29,7 @@ cpu_to_fs64(const struct super_block *sb, u64 n) + return (__force fs64)cpu_to_be64(n); + } + +-static inline u32 ++static inline u32 __intentional_overflow(-1) + fs32_to_cpu(const struct super_block *sb, fs32 n) + { + if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE) diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c index 8342ca6..82fd192 100644 --- a/fs/befs/linuxvfs.c @@ -45004,7 +46870,7 @@ index a6395bd..f1e376a 100644 (unsigned long) create_aout_tables((char __user *) bprm->p, bprm); #ifdef __alpha__ diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c -index 8dd615c..0efdaed 100644 +index 8dd615c..69bb24d 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c @@ -32,6 +32,7 @@ @@ -45542,7 +47408,7 @@ index 8dd615c..0efdaed 100644 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT + if ((current->mm->pax_flags & MF_PAX_PAGEEXEC) && !(__supported_pte_mask & _PAGE_NX)) { + current->mm->context.user_cs_limit = PAGE_SIZE; -+ current->mm->def_flags |= VM_PAGEEXEC; ++ current->mm->def_flags |= VM_PAGEEXEC | VM_NOHUGEPAGE; + } +#endif + @@ -45645,7 +47511,7 @@ index 8dd615c..0efdaed 100644 + retval = -ENOMEM; + if (!IS_ERR_VALUE(start) && !find_vma_intersection(current->mm, start, start + size + PAGE_SIZE)) { +// if (current->personality & ADDR_NO_RANDOMIZE) -+// prot = PROT_READ; ++// vm_flags |= VM_READ | VM_MAYREAD; + start = mmap_region(NULL, start, PAGE_ALIGN(size), flags, vm_flags, 0); + retval = IS_ERR_VALUE(start) ? start : 0; + } @@ -46228,69 +48094,6 @@ index 9895400..78a67e7 100644 return ceph_lookup_open(dir, dentry, nd, mode, 1); } -diff --git a/fs/cifs/asn1.c b/fs/cifs/asn1.c -index cfd1ce3..1d36db1 100644 ---- a/fs/cifs/asn1.c -+++ b/fs/cifs/asn1.c -@@ -614,53 +614,10 @@ decode_negTokenInit(unsigned char *security_blob, int length, - } - } - -- /* mechlistMIC */ -- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { -- /* Check if we have reached the end of the blob, but with -- no mechListMic (e.g. NTLMSSP instead of KRB5) */ -- if (ctx.error == ASN1_ERR_DEC_EMPTY) -- goto decode_negtoken_exit; -- cFYI(1, "Error decoding last part negTokenInit exit3"); -- return 0; -- } else if ((cls != ASN1_CTX) || (con != ASN1_CON)) { -- /* tag = 3 indicating mechListMIC */ -- cFYI(1, "Exit 4 cls = %d con = %d tag = %d end = %p (%d)", -- cls, con, tag, end, *end); -- return 0; -- } -- -- /* sequence */ -- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { -- cFYI(1, "Error decoding last part negTokenInit exit5"); -- return 0; -- } else if ((cls != ASN1_UNI) || (con != ASN1_CON) -- || (tag != ASN1_SEQ)) { -- cFYI(1, "cls = %d con = %d tag = %d end = %p (%d)", -- cls, con, tag, end, *end); -- } -- -- /* sequence of */ -- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { -- cFYI(1, "Error decoding last part negTokenInit exit 7"); -- return 0; -- } else if ((cls != ASN1_CTX) || (con != ASN1_CON)) { -- cFYI(1, "Exit 8 cls = %d con = %d tag = %d end = %p (%d)", -- cls, con, tag, end, *end); -- return 0; -- } -- -- /* general string */ -- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { -- cFYI(1, "Error decoding last part negTokenInit exit9"); -- return 0; -- } else if ((cls != ASN1_UNI) || (con != ASN1_PRI) -- || (tag != ASN1_GENSTR)) { -- cFYI(1, "Exit10 cls = %d con = %d tag = %d end = %p (%d)", -- cls, con, tag, end, *end); -- return 0; -- } -- cFYI(1, "Need to call asn1_octets_decode() function for %s", -- ctx.pointer); /* is this UTF-8 or ASCII? */ --decode_negtoken_exit: -+ /* -+ * We currently ignore anything at the end of the SPNEGO blob after -+ * the mechTypes have been parsed, since none of that info is -+ * used at the moment. -+ */ - return 1; - } diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c index 84e8c07..6170d31 100644 --- a/fs/cifs/cifs_debug.c @@ -46425,10 +48228,10 @@ index 84e8c07..6170d31 100644 } } diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c -index b3a2a40..72c6542 100644 +index 25bb97f..e0c51aa 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c -@@ -994,7 +994,7 @@ cifs_init_request_bufs(void) +@@ -1018,7 +1018,7 @@ cifs_init_request_bufs(void) cifs_req_cachep = kmem_cache_create("cifs_request", CIFSMaxBufSize + MAX_CIFS_HDR_SIZE, 0, @@ -46437,7 +48240,7 @@ index b3a2a40..72c6542 100644 if (cifs_req_cachep == NULL) return -ENOMEM; -@@ -1021,7 +1021,7 @@ cifs_init_request_bufs(void) +@@ -1045,7 +1045,7 @@ cifs_init_request_bufs(void) efficient to alloc 1 per page off the slab compared to 17K (5page) alloc of large cifs buffers even when page debugging is on */ cifs_sm_req_cachep = kmem_cache_create("cifs_small_rq", @@ -46446,7 +48249,7 @@ index b3a2a40..72c6542 100644 NULL); if (cifs_sm_req_cachep == NULL) { mempool_destroy(cifs_req_poolp); -@@ -1106,8 +1106,8 @@ init_cifs(void) +@@ -1130,8 +1130,8 @@ init_cifs(void) atomic_set(&bufAllocCount, 0); atomic_set(&smBufAllocCount, 0); #ifdef CONFIG_CIFS_STATS2 @@ -47068,7 +48871,7 @@ index 451b9b8..12e5a03 100644 out_free_fd: diff --git a/fs/exec.c b/fs/exec.c -index 312e297..6fe2fe2 100644 +index 312e297..2573111 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -55,12 +55,34 @@ @@ -47115,6 +48918,26 @@ index 312e297..6fe2fe2 100644 /* The maximal length of core_pattern is also specified in sysctl.c */ +@@ -82,8 +104,8 @@ int __register_binfmt(struct linux_binfmt * fmt, int insert) + if (!fmt) + return -EINVAL; + write_lock(&binfmt_lock); +- insert ? list_add(&fmt->lh, &formats) : +- list_add_tail(&fmt->lh, &formats); ++ insert ? pax_list_add((struct list_head *)&fmt->lh, &formats) : ++ pax_list_add_tail((struct list_head *)&fmt->lh, &formats); + write_unlock(&binfmt_lock); + return 0; + } +@@ -93,7 +115,7 @@ EXPORT_SYMBOL(__register_binfmt); + void unregister_binfmt(struct linux_binfmt * fmt) + { + write_lock(&binfmt_lock); +- list_del(&fmt->lh); ++ pax_list_del((struct list_head *)&fmt->lh); + write_unlock(&binfmt_lock); + } + @@ -188,18 +210,10 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos, int write) { @@ -48043,7 +49866,7 @@ index a203892..4e64db5 100644 } return 1; diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c -index 484ffee..08d7602 100644 +index 2845a1f..f29de63 100644 --- a/fs/ext4/balloc.c +++ b/fs/ext4/balloc.c @@ -441,8 +441,8 @@ static int ext4_has_free_clusters(struct ext4_sb_info *sbi, @@ -48058,7 +49881,7 @@ index 484ffee..08d7602 100644 if (free_clusters >= (nclusters + dirty_clusters)) return 1; diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h -index 8cb184c..09ff6c4 100644 +index 60b6ca5..bfa15a7 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -1206,19 +1206,19 @@ struct ext4_sb_info { @@ -48092,7 +49915,7 @@ index 8cb184c..09ff6c4 100644 /* locality groups */ diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c -index 553ff71..f545238 100644 +index 7b18563..4dc0cd9 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c @@ -1794,7 +1794,7 @@ void ext4_mb_simple_scan_group(struct ext4_allocation_context *ac, @@ -48209,9 +50032,18 @@ index 553ff71..f545238 100644 return 0; diff --git a/fs/ext4/super.c b/fs/ext4/super.c -index 24ac7a2..c596196 100644 +index cc386b2..fe2ab97 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c +@@ -2467,7 +2467,7 @@ struct ext4_attr { + ssize_t (*store)(struct ext4_attr *, struct ext4_sb_info *, + const char *, size_t); + int offset; +-}; ++} __do_const; + + static int parse_strtoul(const char *buf, + unsigned long max, unsigned long *value) @@ -3173,7 +3173,6 @@ int ext4_calculate_overhead(struct super_block *sb) ext4_fsblk_t overhead = 0; char *buf = (char *) get_zeroed_page(GFP_KERNEL); @@ -49944,18 +51776,6 @@ index ee4e66b..9a39f9c 100644 wake_up_bit(&inode->i_state, __I_NEW); spin_unlock(&inode->i_lock); } -diff --git a/fs/isofs/export.c b/fs/isofs/export.c -index 516eb21..fd88add 100644 ---- a/fs/isofs/export.c -+++ b/fs/isofs/export.c -@@ -135,6 +135,7 @@ isofs_export_encode_fh(struct dentry *dentry, - len = 3; - fh32[0] = ei->i_iget5_block; - fh16[2] = (__u16)ei->i_iget5_offset; /* fh16 [sic] */ -+ fh16[3] = 0; /* avoid leaking uninitialized data */ - fh32[2] = inode->i_generation; - if (connectable && !S_ISDIR(inode->i_mode)) { - struct inode *parent; diff --git a/fs/jffs2/erase.c b/fs/jffs2/erase.c index e513f19..2ab1351 100644 --- a/fs/jffs2/erase.c @@ -49985,9 +51805,27 @@ index 464cd76..3a3ed7e 100644 /* diff --git a/fs/jfs/super.c b/fs/jfs/super.c -index a44eff076..462e07d 100644 +index a44eff076..ad896ca 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c +@@ -221,7 +221,7 @@ static const match_table_t tokens = { + static int parse_options(char *options, struct super_block *sb, s64 *newLVSize, + int *flag) + { +- void *nls_map = (void *)-1; /* -1: no change; NULL: none */ ++ const void *nls_map = (const void *)-1; /* -1: no change; NULL: none */ + char *p; + struct jfs_sb_info *sbi = JFS_SBI(sb); + +@@ -249,7 +249,7 @@ static int parse_options(char *options, struct super_block *sb, s64 *newLVSize, + /* Don't do anything ;-) */ + break; + case Opt_iocharset: +- if (nls_map && nls_map != (void *) -1) ++ if (nls_map && nls_map != (const void *) -1) + unload_nls(nls_map); + if (!strcmp(args[0].from, "none")) + nls_map = NULL; @@ -802,7 +802,7 @@ static int __init init_jfs_fs(void) jfs_inode_cachep = @@ -50722,6 +52560,19 @@ index ca4913a..8d4cf9e 100644 get_fs_root(current->fs, &root); error = lock_mount(&old); if (error) +diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c +index 168cb93..20486571 100644 +--- a/fs/nfs/callback_xdr.c ++++ b/fs/nfs/callback_xdr.c +@@ -50,7 +50,7 @@ struct callback_op { + callback_decode_arg_t decode_args; + callback_encode_res_t encode_res; + long res_maxsize; +-}; ++} __do_const; + + static struct callback_op callback_ops[]; + diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 756f4df..8bd49ca 100644 --- a/fs/nfs/dir.c @@ -50778,6 +52629,59 @@ index b78b5b6..c64d84f 100644 } void nfs_fattr_init(struct nfs_fattr *fattr) +diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c +index fe5c5fb..638dac1 100644 +--- a/fs/nfsd/nfs4proc.c ++++ b/fs/nfsd/nfs4proc.c +@@ -1037,7 +1037,7 @@ struct nfsd4_operation { + char *op_name; + /* Try to get response size before operation */ + nfsd4op_rsize op_rsize_bop; +-}; ++} __do_const; + + static struct nfsd4_operation nfsd4_ops[]; + +diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c +index 800c215..a92d930 100644 +--- a/fs/nfsd/nfs4xdr.c ++++ b/fs/nfsd/nfs4xdr.c +@@ -280,7 +280,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval, + iattr->ia_valid |= ATTR_SIZE; + } + if (bmval[0] & FATTR4_WORD0_ACL) { +- int nace; ++ u32 nace; + struct nfs4_ace *ace; + + READ_BUF(4); len += 4; +@@ -1451,7 +1451,7 @@ nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p) + + typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *); + +-static nfsd4_dec nfsd4_dec_ops[] = { ++static const nfsd4_dec nfsd4_dec_ops[] = { + [OP_ACCESS] = (nfsd4_dec)nfsd4_decode_access, + [OP_CLOSE] = (nfsd4_dec)nfsd4_decode_close, + [OP_COMMIT] = (nfsd4_dec)nfsd4_decode_commit, +@@ -1491,7 +1491,7 @@ static nfsd4_dec nfsd4_dec_ops[] = { + [OP_RELEASE_LOCKOWNER] = (nfsd4_dec)nfsd4_decode_release_lockowner, + }; + +-static nfsd4_dec nfsd41_dec_ops[] = { ++static const nfsd4_dec nfsd41_dec_ops[] = { + [OP_ACCESS] = (nfsd4_dec)nfsd4_decode_access, + [OP_CLOSE] = (nfsd4_dec)nfsd4_decode_close, + [OP_COMMIT] = (nfsd4_dec)nfsd4_decode_commit, +@@ -1553,7 +1553,7 @@ static nfsd4_dec nfsd41_dec_ops[] = { + }; + + struct nfsd4_minorversion_ops { +- nfsd4_dec *decoders; ++ const nfsd4_dec *decoders; + int nops; + }; + diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index 1ec1fde..a58f201 100644 --- a/fs/nfsd/vfs.c @@ -50826,6 +52730,89 @@ index 1c98f53..41e6a04 100644 nilfs_set_nsegments(nilfs, le64_to_cpu(sbp->s_nsegments)); nilfs->ns_crc_seed = le32_to_cpu(sbp->s_crc_seed); return 0; +diff --git a/fs/nls/nls_base.c b/fs/nls/nls_base.c +index 0eb059ec..e086089 100644 +--- a/fs/nls/nls_base.c ++++ b/fs/nls/nls_base.c +@@ -234,20 +234,22 @@ EXPORT_SYMBOL(utf16s_to_utf8s); + + int register_nls(struct nls_table * nls) + { +- struct nls_table ** tmp = &tables; ++ struct nls_table *tmp = tables; + + if (nls->next) + return -EBUSY; + + spin_lock(&nls_lock); +- while (*tmp) { +- if (nls == *tmp) { ++ while (tmp) { ++ if (nls == tmp) { + spin_unlock(&nls_lock); + return -EBUSY; + } +- tmp = &(*tmp)->next; ++ tmp = tmp->next; + } +- nls->next = tables; ++ pax_open_kernel(); ++ *(struct nls_table **)&nls->next = tables; ++ pax_close_kernel(); + tables = nls; + spin_unlock(&nls_lock); + return 0; +@@ -255,12 +257,14 @@ int register_nls(struct nls_table * nls) + + int unregister_nls(struct nls_table * nls) + { +- struct nls_table ** tmp = &tables; ++ struct nls_table * const * tmp = &tables; + + spin_lock(&nls_lock); + while (*tmp) { + if (nls == *tmp) { +- *tmp = nls->next; ++ pax_open_kernel(); ++ *(struct nls_table **)tmp = nls->next; ++ pax_close_kernel(); + spin_unlock(&nls_lock); + return 0; + } +diff --git a/fs/nls/nls_euc-jp.c b/fs/nls/nls_euc-jp.c +index 7424929..35f6be5 100644 +--- a/fs/nls/nls_euc-jp.c ++++ b/fs/nls/nls_euc-jp.c +@@ -561,8 +561,10 @@ static int __init init_nls_euc_jp(void) + p_nls = load_nls("cp932"); + + if (p_nls) { +- table.charset2upper = p_nls->charset2upper; +- table.charset2lower = p_nls->charset2lower; ++ pax_open_kernel(); ++ *(const unsigned char **)&table.charset2upper = p_nls->charset2upper; ++ *(const unsigned char **)&table.charset2lower = p_nls->charset2lower; ++ pax_close_kernel(); + return register_nls(&table); + } + +diff --git a/fs/nls/nls_koi8-ru.c b/fs/nls/nls_koi8-ru.c +index e7bc1d7..06bd4bb 100644 +--- a/fs/nls/nls_koi8-ru.c ++++ b/fs/nls/nls_koi8-ru.c +@@ -63,8 +63,10 @@ static int __init init_nls_koi8_ru(void) + p_nls = load_nls("koi8-u"); + + if (p_nls) { +- table.charset2upper = p_nls->charset2upper; +- table.charset2lower = p_nls->charset2lower; ++ pax_open_kernel(); ++ *(const unsigned char **)&table.charset2upper = p_nls->charset2upper; ++ *(const unsigned char **)&table.charset2lower = p_nls->charset2lower; ++ pax_close_kernel(); + return register_nls(&table); + } + diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c index 9fde1c0..14e8827 100644 --- a/fs/notify/fanotify/fanotify_user.c @@ -52113,7 +54100,7 @@ index b143471..bb105e5 100644 } module_init(proc_devices_init); diff --git a/fs/proc/inode.c b/fs/proc/inode.c -index 7737c54..d155c87 100644 +index 00f08b3..2f14f30 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c @@ -18,12 +18,18 @@ @@ -52149,7 +54136,7 @@ index 7737c54..d155c87 100644 } static struct kmem_cache * proc_inode_cachep; -@@ -440,7 +453,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de) +@@ -438,7 +451,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de) if (de->mode) { inode->i_mode = de->mode; inode->i_uid = de->uid; @@ -52273,7 +54260,7 @@ index b1822dd..df622cb 100644 seq_putc(m, '\n'); diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c -index f738024..682f400 100644 +index f738024..226e98e 100644 --- a/fs/proc/proc_net.c +++ b/fs/proc/proc_net.c @@ -23,6 +23,7 @@ @@ -52302,6 +54289,15 @@ index f738024..682f400 100644 rcu_read_lock(); task = pid_task(proc_pid(dir), PIDTYPE_PID); +@@ -228,7 +240,7 @@ static __net_exit void proc_net_ns_exit(struct net *net) + kfree(net->proc_net); + } + +-static struct pernet_operations __net_initdata proc_net_ns_ops = { ++static struct pernet_operations __net_initconst proc_net_ns_ops = { + .init = proc_net_ns_init, + .exit = proc_net_ns_exit, + }; diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c index 0be1aa4..ed25c53 100644 --- a/fs/proc/proc_sysctl.c @@ -53190,6 +55186,32 @@ index a7ac78f..02158e1 100644 if (!IS_ERR(page)) free_page((unsigned long)page); } +diff --git a/fs/sysv/sysv.h b/fs/sysv/sysv.h +index bb55cdb..e9ebb8a 100644 +--- a/fs/sysv/sysv.h ++++ b/fs/sysv/sysv.h +@@ -189,7 +189,7 @@ static inline u32 PDP_swab(u32 x) + #endif + } + +-static inline __u32 fs32_to_cpu(struct sysv_sb_info *sbi, __fs32 n) ++static inline __u32 __intentional_overflow(-1) fs32_to_cpu(struct sysv_sb_info *sbi, __fs32 n) + { + if (sbi->s_bytesex == BYTESEX_PDP) + return PDP_swab((__force __u32)n); +diff --git a/fs/ubifs/io.c b/fs/ubifs/io.c +index 9228950..bbad895 100644 +--- a/fs/ubifs/io.c ++++ b/fs/ubifs/io.c +@@ -156,7 +156,7 @@ int ubifs_leb_change(struct ubifs_info *c, int lnum, const void *buf, int len, + return err; + } + +-int ubifs_leb_unmap(struct ubifs_info *c, int lnum) ++int __intentional_overflow(-1) ubifs_leb_unmap(struct ubifs_info *c, int lnum) + { + int err; + diff --git a/fs/udf/misc.c b/fs/udf/misc.c index c175b4d..8f36a16 100644 --- a/fs/udf/misc.c @@ -53203,18 +55225,28 @@ index c175b4d..8f36a16 100644 u8 checksum = 0; int i; for (i = 0; i < sizeof(struct tag); ++i) -diff --git a/fs/udf/namei.c b/fs/udf/namei.c -index 4639e13..71c97fb 100644 ---- a/fs/udf/namei.c -+++ b/fs/udf/namei.c -@@ -1293,6 +1293,7 @@ static int udf_encode_fh(struct dentry *de, __u32 *fh, int *lenp, - *lenp = 3; - fid->udf.block = location.logicalBlockNum; - fid->udf.partref = location.partitionReferenceNum; -+ fid->udf.parent_partref = 0; - fid->udf.generation = inode->i_generation; - - if (connectable && !S_ISDIR(inode->i_mode)) { +diff --git a/fs/ufs/swab.h b/fs/ufs/swab.h +index 8d974c4..b82f6ec 100644 +--- a/fs/ufs/swab.h ++++ b/fs/ufs/swab.h +@@ -22,7 +22,7 @@ enum { + BYTESEX_BE + }; + +-static inline u64 ++static inline u64 __intentional_overflow(-1) + fs64_to_cpu(struct super_block *sbp, __fs64 n) + { + if (UFS_SB(sbp)->s_bytesex == BYTESEX_LE) +@@ -40,7 +40,7 @@ cpu_to_fs64(struct super_block *sbp, u64 n) + return (__force __fs64)cpu_to_be64(n); + } + +-static inline u32 ++static inline u32 __intentional_overflow(-1) + fs32_to_cpu(struct super_block *sbp, __fs32 n) + { + if (UFS_SB(sbp)->s_bytesex == BYTESEX_LE) diff --git a/fs/utimes.c b/fs/utimes.c index ba653f3..06ea4b1 100644 --- a/fs/utimes.c @@ -64040,7 +66072,7 @@ index ecc721d..029cf5a 100644 struct crypto_instance { struct crypto_alg alg; diff --git a/include/drm/drmP.h b/include/drm/drmP.h -index bf4b2dc..2d0762f 100644 +index bf4b2dc..2df6e61 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -72,6 +72,7 @@ @@ -64051,7 +66083,43 @@ index bf4b2dc..2d0762f 100644 #include "drm.h" #include <linux/idr.h> -@@ -1038,7 +1039,7 @@ struct drm_device { +@@ -284,10 +285,12 @@ do { \ + * \param cmd command. + * \param arg argument. + */ +-typedef int drm_ioctl_t(struct drm_device *dev, void *data, ++typedef int (* const drm_ioctl_t)(struct drm_device *dev, void *data, ++ struct drm_file *file_priv); ++typedef int (* drm_ioctl_no_const_t)(struct drm_device *dev, void *data, + struct drm_file *file_priv); + +-typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd, ++typedef int (* const drm_ioctl_compat_t)(struct file *filp, unsigned int cmd, + unsigned long arg); + + #define DRM_IOCTL_NR(n) _IOC_NR(n) +@@ -302,9 +305,9 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd, + struct drm_ioctl_desc { + unsigned int cmd; + int flags; +- drm_ioctl_t *func; ++ drm_ioctl_t func; + unsigned int cmd_drv; +-}; ++} __do_const; + + /** + * Creates a driver or general drm_ioctl_desc array entry for the given +@@ -965,7 +968,7 @@ struct drm_info_list { + int (*show)(struct seq_file*, void*); /** show callback */ + u32 driver_features; /**< Required driver features for this entry */ + void *data; +-}; ++} __do_const; + + /** + * debugfs node structure. This structure represents a debugfs file. +@@ -1038,7 +1041,7 @@ struct drm_device { /** \name Usage Counters */ /*@{ */ @@ -64060,7 +66128,7 @@ index bf4b2dc..2d0762f 100644 atomic_t ioctl_count; /**< Outstanding IOCTLs pending */ atomic_t vma_count; /**< Outstanding vma areas open */ int buf_use; /**< Buffers in use -- cannot alloc */ -@@ -1049,7 +1050,7 @@ struct drm_device { +@@ -1049,7 +1052,7 @@ struct drm_device { /*@{ */ unsigned long counters; enum drm_stat_type types[15]; @@ -64115,7 +66183,7 @@ index e86dfca..40cc55f 100644 #define N_MAGIC(exec) ((exec).a_info & 0xffff) #endif diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h -index 49a83ca..df96b54 100644 +index 49a83ca..d0a847e 100644 --- a/include/linux/atmdev.h +++ b/include/linux/atmdev.h @@ -237,7 +237,7 @@ struct compat_atm_iobuf { @@ -64127,8 +66195,17 @@ index 49a83ca..df96b54 100644 __AAL_STAT_ITEMS #undef __HANDLE_ITEM }; +@@ -406,7 +406,7 @@ struct atmdev_ops { /* only send is required */ + int (*change_qos)(struct atm_vcc *vcc,struct atm_qos *qos,int flags); + int (*proc_read)(struct atm_dev *dev,loff_t *pos,char *page); + struct module *owner; +-}; ++} __do_const ; + + struct atmphy_ops { + int (*start)(struct atm_dev *dev); diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h -index acd8d4b..44cf309 100644 +index acd8d4b..15d2eab 100644 --- a/include/linux/binfmts.h +++ b/include/linux/binfmts.h @@ -18,7 +18,7 @@ struct pt_regs; @@ -64148,13 +66225,16 @@ index acd8d4b..44cf309 100644 }; #define BINPRM_FLAGS_ENFORCE_NONDUMP_BIT 0 -@@ -86,6 +87,7 @@ struct linux_binfmt { +@@ -86,8 +87,9 @@ struct linux_binfmt { int (*load_binary)(struct linux_binprm *, struct pt_regs * regs); int (*load_shlib)(struct file *); int (*core_dump)(struct coredump_params *cprm); + void (*handle_mprotect)(struct vm_area_struct *vma, unsigned long newflags); unsigned long min_coredump; /* minimal dump size */ - }; +-}; ++} __do_const; + + extern int __register_binfmt(struct linux_binfmt *fmt, int insert); diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index ff039f0..cdf89ae 100644 @@ -64183,7 +66263,7 @@ index 4d1a074..88f929a 100644 extern int blk_trace_ioctl(struct block_device *, unsigned, char __user *); diff --git a/include/linux/byteorder/little_endian.h b/include/linux/byteorder/little_endian.h -index 83195fb..0b0f77d 100644 +index 83195fb..46fe38f 100644 --- a/include/linux/byteorder/little_endian.h +++ b/include/linux/byteorder/little_endian.h @@ -42,51 +42,51 @@ @@ -64193,7 +66273,8 @@ index 83195fb..0b0f77d 100644 - return (__force __le64)*p; + return (__force const __le64)*p; } - static inline __u64 __le64_to_cpup(const __le64 *p) +-static inline __u64 __le64_to_cpup(const __le64 *p) ++static inline __u64 __intentional_overflow(-1) __le64_to_cpup(const __le64 *p) { - return (__force __u64)*p; + return (__force const __u64)*p; @@ -64233,7 +66314,8 @@ index 83195fb..0b0f77d 100644 - return (__force __be32)__swab32p(p); + return (__force const __be32)__swab32p(p); } - static inline __u32 __be32_to_cpup(const __be32 *p) +-static inline __u32 __be32_to_cpup(const __be32 *p) ++static inline __u32 __intentional_overflow(-1) __be32_to_cpup(const __be32 *p) { - return __swab32p((__u32 *)p); + return __swab32p((const __u32 *)p); @@ -64312,9 +66394,18 @@ index 04ffb2e..6799180 100644 extern struct cleancache_ops cleancache_register_ops(struct cleancache_ops *ops); diff --git a/include/linux/compat.h b/include/linux/compat.h -index d42bd48..af682d2 100644 +index d42bd48..554dcd5 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h +@@ -240,7 +240,7 @@ long compat_sys_msgrcv(int first, int second, int msgtyp, int third, + int version, void __user *uptr); + long compat_sys_msgctl(int first, int second, void __user *uptr); + long compat_sys_shmat(int first, int second, compat_uptr_t third, int version, +- void __user *uptr); ++ void __user *uptr) __intentional_overflow(0); + long compat_sys_shmctl(int first, int second, void __user *uptr); + long compat_sys_semtimedop(int semid, struct sembuf __user *tsems, + unsigned nsems, const struct compat_timespec __user *timeout); @@ -334,7 +334,7 @@ extern int compat_ptrace_request(struct task_struct *child, extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request, compat_ulong_t addr, compat_ulong_t data); @@ -64363,10 +66454,10 @@ index dfadc96..23c5182 100644 #if __GNUC_MINOR__ > 0 diff --git a/include/linux/compiler.h b/include/linux/compiler.h -index 320d6c9..89f1e77 100644 +index 320d6c9..df26a76 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h -@@ -5,31 +5,62 @@ +@@ -5,31 +5,51 @@ #ifdef __CHECKER__ # define __user __attribute__((noderef, address_space(1))) @@ -64394,33 +66485,24 @@ index 320d6c9..89f1e77 100644 #endif extern void __chk_user_ptr(const volatile void __user *); extern void __chk_io_ptr(const volatile void __iomem *); -+#elif defined(CHECKER_PLUGIN) -+//# define __user -+//# define __force_user -+//# define __kernel -+//# define __force_kernel -+# define __safe -+# define __force -+# define __nocast -+# define __iomem -+# define __force_iomem -+# define __chk_user_ptr(x) (void)0 -+# define __chk_io_ptr(x) (void)0 -+# define __builtin_warning(x, y...) (1) -+# define __acquires(x) -+# define __releases(x) -+# define __acquire(x) (void)0 -+# define __release(x) (void)0 -+# define __cond_lock(x,c) (c) -+# define __percpu -+# define __force_percpu -+# define __rcu -+# define __force_rcu #else - # define __user -+# define __force_user - # define __kernel -+# define __force_kernel +-# define __user +-# define __kernel ++# ifdef CHECKER_PLUGIN ++//# define __user ++//# define __force_user ++//# define __kernel ++//# define __force_kernel ++# else ++# ifdef STRUCTLEAK_PLUGIN ++# define __user __attribute__((user)) ++# else ++# define __user ++# endif ++# define __force_user ++# define __kernel ++# define __force_kernel ++# endif # define __safe # define __force # define __nocast @@ -64429,7 +66511,7 @@ index 320d6c9..89f1e77 100644 # define __chk_user_ptr(x) (void)0 # define __chk_io_ptr(x) (void)0 # define __builtin_warning(x, y...) (1) -@@ -39,7 +70,9 @@ extern void __chk_io_ptr(const volatile void __iomem *); +@@ -39,7 +59,9 @@ extern void __chk_io_ptr(const volatile void __iomem *); # define __release(x) (void)0 # define __cond_lock(x,c) (c) # define __percpu @@ -64439,7 +66521,7 @@ index 320d6c9..89f1e77 100644 #endif #ifdef __KERNEL__ -@@ -264,6 +297,22 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); +@@ -264,6 +286,22 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); # define __attribute_const__ /* unimplemented */ #endif @@ -64462,7 +66544,7 @@ index 320d6c9..89f1e77 100644 /* * Tell gcc if a function is cold. The compiler will assume any path * directly leading to the call is unlikely. -@@ -273,6 +322,22 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); +@@ -273,6 +311,22 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); #define __cold #endif @@ -64485,7 +66567,7 @@ index 320d6c9..89f1e77 100644 /* Simple shorthand for a section definition */ #ifndef __section # define __section(S) __attribute__ ((__section__(#S))) -@@ -294,6 +359,14 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); +@@ -294,6 +348,14 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); # define __compiletime_error(message) #endif @@ -64500,7 +66582,7 @@ index 320d6c9..89f1e77 100644 /* * Prevent the compiler from merging or refetching accesses. The compiler * is also forbidden from reordering successive instances of ACCESS_ONCE(), -@@ -306,6 +379,7 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); +@@ -306,6 +368,7 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); * use is to mediate communication between process-level code and irq/NMI * handlers, all running on the same CPU. */ @@ -64509,6 +66591,40 @@ index 320d6c9..89f1e77 100644 +#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x)) #endif /* __LINUX_COMPILER_H */ +diff --git a/include/linux/completion.h b/include/linux/completion.h +index 51494e6..0fd1b61 100644 +--- a/include/linux/completion.h ++++ b/include/linux/completion.h +@@ -78,13 +78,13 @@ static inline void init_completion(struct completion *x) + + extern void wait_for_completion(struct completion *); + extern int wait_for_completion_interruptible(struct completion *x); +-extern int wait_for_completion_killable(struct completion *x); ++extern int wait_for_completion_killable(struct completion *x) __intentional_overflow(-1); + extern unsigned long wait_for_completion_timeout(struct completion *x, + unsigned long timeout); + extern long wait_for_completion_interruptible_timeout( +- struct completion *x, unsigned long timeout); ++ struct completion *x, unsigned long timeout) __intentional_overflow(-1); + extern long wait_for_completion_killable_timeout( +- struct completion *x, unsigned long timeout); ++ struct completion *x, unsigned long timeout) __intentional_overflow(-1); + extern bool try_wait_for_completion(struct completion *x); + extern bool completion_done(struct completion *x); + +diff --git a/include/linux/configfs.h b/include/linux/configfs.h +index 3081c58..7714c00 100644 +--- a/include/linux/configfs.h ++++ b/include/linux/configfs.h +@@ -125,7 +125,7 @@ struct configfs_attribute { + const char *ca_name; + struct module *ca_owner; + mode_t ca_mode; +-}; ++} __do_const; + + /* + * Users often need to create attribute structures for their configurable diff --git a/include/linux/cpu.h b/include/linux/cpu.h index c692acc..95bcc75 100644 --- a/include/linux/cpu.h @@ -64522,6 +66638,102 @@ index c692acc..95bcc75 100644 { .notifier_call = fn, .priority = pri }; \ register_cpu_notifier(&fn##_nb); \ } +diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h +index 6216115..68bf1d0 100644 +--- a/include/linux/cpufreq.h ++++ b/include/linux/cpufreq.h +@@ -236,7 +236,7 @@ struct cpufreq_driver { + int (*suspend) (struct cpufreq_policy *policy); + int (*resume) (struct cpufreq_policy *policy); + struct freq_attr **attr; +-}; ++} __do_const; + + /* flags */ + +@@ -295,6 +295,7 @@ struct global_attr { + ssize_t (*store)(struct kobject *a, struct attribute *b, + const char *c, size_t count); + }; ++typedef struct global_attr __no_const global_attr_no_const; + + #define define_one_global_ro(_name) \ + static struct global_attr _name = \ +diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h +index 7408af8..8d6f9dd 100644 +--- a/include/linux/cpuidle.h ++++ b/include/linux/cpuidle.h +@@ -49,7 +49,8 @@ struct cpuidle_state { + int (*enter) (struct cpuidle_device *dev, + struct cpuidle_driver *drv, + int index); +-}; ++} __do_const; ++typedef struct cpuidle_state __no_const cpuidle_state_no_const; + + /* Idle State Flags */ + #define CPUIDLE_FLAG_TIME_VALID (0x01) /* is residency time measurable? */ +@@ -181,7 +182,7 @@ struct cpuidle_governor { + void (*reflect) (struct cpuidle_device *dev, int index); + + struct module *owner; +-}; ++} __do_const; + + #ifdef CONFIG_CPU_IDLE + +diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h +index 4f7a632..b9e6f95 100644 +--- a/include/linux/cpumask.h ++++ b/include/linux/cpumask.h +@@ -117,17 +117,17 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp) + } + + /* Valid inputs for n are -1 and 0. */ +-static inline unsigned int cpumask_next(int n, const struct cpumask *srcp) ++static inline unsigned int __intentional_overflow(-1) cpumask_next(int n, const struct cpumask *srcp) + { + return n+1; + } + +-static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp) ++static inline unsigned int __intentional_overflow(-1) cpumask_next_zero(int n, const struct cpumask *srcp) + { + return n+1; + } + +-static inline unsigned int cpumask_next_and(int n, ++static inline unsigned int __intentional_overflow(-1) cpumask_next_and(int n, + const struct cpumask *srcp, + const struct cpumask *andp) + { +@@ -166,7 +166,7 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp) + * + * Returns >= nr_cpu_ids if no further cpus set. + */ +-static inline unsigned int cpumask_next(int n, const struct cpumask *srcp) ++static inline unsigned int __intentional_overflow(-1) cpumask_next(int n, const struct cpumask *srcp) + { + /* -1 is a legal arg here. */ + if (n != -1) +@@ -181,7 +181,7 @@ static inline unsigned int cpumask_next(int n, const struct cpumask *srcp) + * + * Returns >= nr_cpu_ids if no further cpus unset. + */ +-static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp) ++static inline unsigned int __intentional_overflow(-1) cpumask_next_zero(int n, const struct cpumask *srcp) + { + /* -1 is a legal arg here. */ + if (n != -1) +@@ -189,7 +189,7 @@ static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp) + return find_next_zero_bit(cpumask_bits(srcp), nr_cpumask_bits, n+1); + } + +-int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *); ++int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *) __intentional_overflow(-1); + int cpumask_any_but(const struct cpumask *mask, unsigned int cpu); + + /** diff --git a/include/linux/crash_dump.h b/include/linux/crash_dump.h index b936763..48685ee 100644 --- a/include/linux/crash_dump.h @@ -64578,6 +66790,19 @@ index 8a94217..15d49e3 100644 #define crt_ablkcipher crt_u.ablkcipher #define crt_aead crt_u.aead +diff --git a/include/linux/ctype.h b/include/linux/ctype.h +index 8acfe31..6ffccd63 100644 +--- a/include/linux/ctype.h ++++ b/include/linux/ctype.h +@@ -56,7 +56,7 @@ static inline unsigned char __toupper(unsigned char c) + * Fast implementation of tolower() for internal usage. Do not use in your + * code. + */ +-static inline char _tolower(const char c) ++static inline unsigned char _tolower(const unsigned char c) + { + return c | 0x20; + } diff --git a/include/linux/decompress/mm.h b/include/linux/decompress/mm.h index 7925bf0..d5143d2 100644 --- a/include/linux/decompress/mm.h @@ -64591,6 +66816,40 @@ index 7925bf0..d5143d2 100644 #define free(a) kfree(a) #define large_malloc(a) vmalloc(a) +diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h +index 98ce812..9afa76d 100644 +--- a/include/linux/devfreq.h ++++ b/include/linux/devfreq.h +@@ -100,7 +100,7 @@ struct devfreq_governor { + int (*init)(struct devfreq *this); + void (*exit)(struct devfreq *this); + const bool no_central_polling; +-}; ++} __do_const; + + /** + * struct devfreq - Device devfreq structure +diff --git a/include/linux/device.h b/include/linux/device.h +index 3136ede..9a589c5 100644 +--- a/include/linux/device.h ++++ b/include/linux/device.h +@@ -427,7 +427,7 @@ struct device_type { + void (*release)(struct device *dev); + + const struct dev_pm_ops *pm; +-}; ++} __do_const; + + /* interface for exporting device attributes */ + struct device_attribute { +@@ -437,6 +437,7 @@ struct device_attribute { + ssize_t (*store)(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count); + }; ++typedef struct device_attribute __no_const device_attribute_no_const; + + #define DEVICE_ATTR(_name, _mode, _show, _store) \ + struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store) diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index e13117c..e9fc938 100644 --- a/include/linux/dma-mapping.h @@ -64621,7 +66880,7 @@ index 75f53f8..5c7972d 100644 unsigned int offset, size_t len); diff --git a/include/linux/efi.h b/include/linux/efi.h -index ce95a4b..04ab4c8 100644 +index 8469f3f..41618bb 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -477,6 +477,7 @@ struct efivar_operations { @@ -64708,6 +66967,38 @@ index 31f0508..5421c01 100644 #endif +diff --git a/include/linux/err.h b/include/linux/err.h +index f2edce2..cc2082c 100644 +--- a/include/linux/err.h ++++ b/include/linux/err.h +@@ -19,12 +19,12 @@ + + #define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO) + +-static inline void * __must_check ERR_PTR(long error) ++static inline void * __must_check __intentional_overflow(-1) ERR_PTR(long error) + { + return (void *) error; + } + +-static inline long __must_check PTR_ERR(const void *ptr) ++static inline long __must_check __intentional_overflow(-1) PTR_ERR(const void *ptr) + { + return (long) ptr; + } +diff --git a/include/linux/fb.h b/include/linux/fb.h +index 73845ce..e5678a7 100644 +--- a/include/linux/fb.h ++++ b/include/linux/fb.h +@@ -691,7 +691,7 @@ struct fb_ops { + /* called at KDB enter and leave time to prepare the console */ + int (*fb_debug_enter)(struct fb_info *info); + int (*fb_debug_leave)(struct fb_info *info); +-}; ++} __do_const; + + #ifdef CONFIG_FB_TILEBLITTING + #define FB_TILE_CURSOR_NONE 0 diff --git a/include/linux/filter.h b/include/linux/filter.h index 8eeb205..d59bfa2 100644 --- a/include/linux/filter.h @@ -64795,6 +67086,19 @@ index ce31408..b1ad003 100644 op->processor = processor; op->release = release; INIT_LIST_HEAD(&op->pend_link); +diff --git a/include/linux/fscache.h b/include/linux/fscache.h +index 9ec20de..8007b8a 100644 +--- a/include/linux/fscache.h ++++ b/include/linux/fscache.h +@@ -152,7 +152,7 @@ struct fscache_cookie_def { + * - this is mandatory for any object that may have data + */ + void (*now_uncached)(void *cookie_netfs_data); +-}; ++} __do_const; + + /* + * fscache cached network filesystem type diff --git a/include/linux/fsnotify.h b/include/linux/fsnotify.h index 2a53f10..e3cd3e0 100644 --- a/include/linux/fsnotify.h @@ -66004,6 +68308,29 @@ index 52e9620..26c34b1 100644 static inline void zero_user_segments(struct page *page, unsigned start1, unsigned end1, unsigned start2, unsigned end2) +diff --git a/include/linux/hwmon-sysfs.h b/include/linux/hwmon-sysfs.h +index a90c09d..15f7933 100644 +--- a/include/linux/hwmon-sysfs.h ++++ b/include/linux/hwmon-sysfs.h +@@ -23,7 +23,8 @@ + struct sensor_device_attribute{ + struct device_attribute dev_attr; + int index; +-}; ++} __do_const; ++typedef struct sensor_device_attribute __no_const sensor_device_attribute_no_const; + #define to_sensor_dev_attr(_dev_attr) \ + container_of(_dev_attr, struct sensor_device_attribute, dev_attr) + +@@ -39,7 +40,7 @@ struct sensor_device_attribute_2 { + struct device_attribute dev_attr; + u8 index; + u8 nr; +-}; ++} __do_const; + #define to_sensor_dev_attr_2(_dev_attr) \ + container_of(_dev_attr, struct sensor_device_attribute_2, dev_attr) + diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 07d103a..04ec65b 100644 --- a/include/linux/i2c.h @@ -66165,6 +68492,19 @@ index a64b00e..2ef3855f 100644 extern void softirq_init(void); static inline void __raise_softirq_irqoff(unsigned int nr) { +diff --git a/include/linux/irq.h b/include/linux/irq.h +index bff29c5..7437762 100644 +--- a/include/linux/irq.h ++++ b/include/linux/irq.h +@@ -328,7 +328,7 @@ struct irq_chip { + #ifdef CONFIG_IRQ_RELEASE_METHOD + void (*release)(unsigned int irq, void *dev_id); + #endif +-}; ++} __do_const; + + /* + * irq_chip specific flags diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h index 3875719..4cd454c 100644 --- a/include/linux/kallsyms.h @@ -66196,6 +68536,19 @@ index 3875719..4cd454c 100644 /* This macro allows us to keep printk typechecking */ static __printf(1, 2) +diff --git a/include/linux/key-type.h b/include/linux/key-type.h +index 9efd081..19f989c 100644 +--- a/include/linux/key-type.h ++++ b/include/linux/key-type.h +@@ -92,7 +92,7 @@ struct key_type { + + /* internal fields */ + struct list_head link; /* link in types list */ +-}; ++} __do_const; + + extern struct key_type key_type_keyring; + diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h index c4d2fc1..5df9c19 100644 --- a/include/linux/kgdb.h @@ -66241,7 +68594,7 @@ index f8d4b27..269f55a 100644 #define request_module_nowait(mod...) __request_module(false, mod) #define try_then_request_module(x, mod...) \ diff --git a/include/linux/kobject.h b/include/linux/kobject.h -index 445f978..925605f 100644 +index 445f978..3a02264 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h @@ -111,7 +111,7 @@ struct kobj_type { @@ -66253,6 +68606,27 @@ index 445f978..925605f 100644 struct kobj_uevent_env { char *envp[UEVENT_NUM_ENVP]; +@@ -134,6 +134,7 @@ struct kobj_attribute { + ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr, + const char *buf, size_t count); + }; ++typedef struct kobj_attribute __no_const kobj_attribute_no_const; + + extern const struct sysfs_ops kobj_sysfs_ops; + +diff --git a/include/linux/kobject_ns.h b/include/linux/kobject_ns.h +index f66b065..c2c29b4 100644 +--- a/include/linux/kobject_ns.h ++++ b/include/linux/kobject_ns.h +@@ -43,7 +43,7 @@ struct kobj_ns_type_operations { + const void *(*netlink_ns)(struct sock *sk); + const void *(*initial_ns)(void); + void (*drop_ns)(void *); +-}; ++} __do_const; + + int kobj_ns_type_register(const struct kobj_ns_type_operations *ops); + int kobj_ns_type_registered(enum kobj_ns_type type); diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index 6136821..b3ba6ba 100644 --- a/include/linux/kvm_host.h @@ -66325,19 +68699,69 @@ index cafc09a..d7e7829 100644 struct ata_port_info { unsigned long flags; diff --git a/include/linux/list.h b/include/linux/list.h -index cc6d2aa..71febca 100644 +index cc6d2aa..c10ee83 100644 --- a/include/linux/list.h +++ b/include/linux/list.h -@@ -112,6 +112,9 @@ extern void __list_del_entry(struct list_head *entry); +@@ -112,6 +112,19 @@ extern void __list_del_entry(struct list_head *entry); extern void list_del(struct list_head *entry); #endif -+extern void pax_list_add_tail(struct list_head *new, struct list_head *head); ++extern void __pax_list_add(struct list_head *new, ++ struct list_head *prev, ++ struct list_head *next); ++static inline void pax_list_add(struct list_head *new, struct list_head *head) ++{ ++ __pax_list_add(new, head, head->next); ++} ++static inline void pax_list_add_tail(struct list_head *new, struct list_head *head) ++{ ++ __pax_list_add(new, head->prev, head); ++} +extern void pax_list_del(struct list_head *entry); + /** * list_replace - replace old entry by new one * @old : the element to be replaced +@@ -145,6 +158,8 @@ static inline void list_del_init(struct list_head *entry) + INIT_LIST_HEAD(entry); + } + ++extern void pax_list_del_init(struct list_head *entry); ++ + /** + * list_move - delete from one list and add as another's head + * @list: the entry to move +diff --git a/include/linux/math64.h b/include/linux/math64.h +index b8ba855..0148090 100644 +--- a/include/linux/math64.h ++++ b/include/linux/math64.h +@@ -14,7 +14,7 @@ + * This is commonly provided by 32bit archs to provide an optimized 64bit + * divide. + */ +-static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder) ++static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder) + { + *remainder = dividend % divisor; + return dividend / divisor; +@@ -50,7 +50,7 @@ static inline s64 div64_s64(s64 dividend, s64 divisor) + #define div64_long(x,y) div_s64((x),(y)) + + #ifndef div_u64_rem +-static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder) ++static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder) + { + *remainder = do_div(dividend, divisor); + return dividend; +@@ -79,7 +79,7 @@ extern s64 div64_s64(s64 dividend, s64 divisor); + * divide. + */ + #ifndef div_u64 +-static inline u64 div_u64(u64 dividend, u32 divisor) ++static inline u64 __intentional_overflow(-1) div_u64(u64 dividend, u32 divisor) + { + u32 remainder; + return div_u64_rem(dividend, divisor, &remainder); diff --git a/include/linux/mca.h b/include/linux/mca.h index 3797270..7765ede 100644 --- a/include/linux/mca.h @@ -66352,7 +68776,7 @@ index 3797270..7765ede 100644 struct mca_bus { u64 default_dma_mask; diff --git a/include/linux/mm.h b/include/linux/mm.h -index 4baadd1..8745271 100644 +index 4baadd1..77a7311 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -115,7 +115,14 @@ extern unsigned int kobjsize(const void *objp); @@ -66520,10 +68944,11 @@ index 4baadd1..8745271 100644 struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr); int remap_pfn_range(struct vm_area_struct *, unsigned long addr, unsigned long pfn, unsigned long size, pgprot_t); -@@ -1534,6 +1545,11 @@ void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long); +@@ -1534,6 +1545,12 @@ void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long); static inline void vm_stat_account(struct mm_struct *mm, unsigned long flags, struct file *file, long pages) { ++ +#ifdef CONFIG_PAX_RANDMMAP + if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC))) +#endif @@ -66532,7 +68957,7 @@ index 4baadd1..8745271 100644 } #endif /* CONFIG_PROC_FS */ -@@ -1614,7 +1630,7 @@ extern int unpoison_memory(unsigned long pfn); +@@ -1614,7 +1631,7 @@ extern int unpoison_memory(unsigned long pfn); extern int sysctl_memory_failure_early_kill; extern int sysctl_memory_failure_recovery; extern void shake_page(struct page *p, int access); @@ -66541,7 +68966,7 @@ index 4baadd1..8745271 100644 extern int soft_offline_page(struct page *page, int flags); extern void dump_page(struct page *page); -@@ -1628,5 +1644,11 @@ extern void copy_user_huge_page(struct page *dst, struct page *src, +@@ -1628,5 +1645,11 @@ extern void copy_user_huge_page(struct page *dst, struct page *src, unsigned int pages_per_huge_page); #endif /* CONFIG_TRANSPARENT_HUGEPAGE || CONFIG_HUGETLBFS */ @@ -66647,7 +69072,7 @@ index 25842b6..6e42df8 100644 /* * The target ratio of ACTIVE_ANON to INACTIVE_ANON pages on diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h -index 468819c..17b9db3 100644 +index 468819c..c02b63b 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h @@ -12,7 +12,7 @@ @@ -66668,8 +69093,17 @@ index 468819c..17b9db3 100644 struct hid_device_id { __u16 bus; +@@ -479,7 +479,7 @@ struct dmi_system_id { + const char *ident; + struct dmi_strmatch matches[4]; + void *driver_data; +-}; ++} __do_const; + /* + * struct dmi_device_id appears during expansion of + * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it diff --git a/include/linux/module.h b/include/linux/module.h -index 3cb7839..dcb1974 100644 +index 3cb7839..56d41ff 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -17,9 +17,11 @@ @@ -66684,7 +69118,31 @@ index 3cb7839..dcb1974 100644 #include <trace/events/module.h> -@@ -261,19 +263,16 @@ struct module +@@ -53,12 +55,13 @@ struct module_attribute { + int (*test)(struct module *); + void (*free)(struct module *); + }; ++typedef struct module_attribute __no_const module_attribute_no_const; + + struct module_version_attribute { + struct module_attribute mattr; + const char *module_name; + const char *version; +-} __attribute__ ((__aligned__(sizeof(void *)))); ++} __do_const __attribute__ ((__aligned__(sizeof(void *)))); + + extern ssize_t __modver_version_show(struct module_attribute *, + struct module_kobject *, char *); +@@ -217,7 +220,7 @@ struct module + + /* Sysfs stuff. */ + struct module_kobject mkobj; +- struct module_attribute *modinfo_attrs; ++ module_attribute_no_const *modinfo_attrs; + const char *version; + const char *srcversion; + struct kobject *holders_dir; +@@ -261,19 +264,16 @@ struct module int (*init)(void); /* If this is non-NULL, vfree after init() returns */ @@ -66708,7 +69166,7 @@ index 3cb7839..dcb1974 100644 /* Arch-specific module values */ struct mod_arch_specific arch; -@@ -329,6 +328,10 @@ struct module +@@ -329,6 +329,10 @@ struct module #ifdef CONFIG_EVENT_TRACING struct ftrace_event_call **trace_events; unsigned int num_trace_events; @@ -66719,7 +69177,7 @@ index 3cb7839..dcb1974 100644 #endif #ifdef CONFIG_FTRACE_MCOUNT_RECORD unsigned int num_ftrace_callsites; -@@ -379,16 +382,46 @@ bool is_module_address(unsigned long addr); +@@ -379,16 +383,46 @@ bool is_module_address(unsigned long addr); bool is_module_percpu_address(unsigned long addr); bool is_module_text_address(unsigned long addr); @@ -66849,8 +69307,21 @@ index ffc0213..2c1f2cb 100644 { return nd->saved_names[nd->depth]; } +diff --git a/include/linux/net.h b/include/linux/net.h +index b299230..4915063 100644 +--- a/include/linux/net.h ++++ b/include/linux/net.h +@@ -216,7 +216,7 @@ struct net_proto_family { + int (*create)(struct net *net, struct socket *sock, + int protocol, int kern); + struct module *owner; +-}; ++} __do_const; + + struct iovec; + struct kvec; diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h -index 00ca32b..1f8accc 100644 +index 00ca32b..60cc3a6 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -949,6 +949,7 @@ struct net_device_ops { @@ -66870,6 +69341,28 @@ index 00ca32b..1f8accc 100644 * Do not use this in drivers. */ +@@ -2585,7 +2586,7 @@ static inline int netif_is_bond_slave(struct net_device *dev) + return dev->flags & IFF_SLAVE && dev->priv_flags & IFF_BONDING; + } + +-extern struct pernet_operations __net_initdata loopback_net_ops; ++extern struct pernet_operations __net_initconst loopback_net_ops; + + static inline u32 dev_ethtool_get_rx_csum(struct net_device *dev) + { +diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h +index 857f502..350a113 100644 +--- a/include/linux/netfilter.h ++++ b/include/linux/netfilter.h +@@ -141,7 +141,7 @@ struct nf_sockopt_ops { + #endif + /* Use the module struct to lock set/get code in place */ + struct module *owner; +-}; ++} __do_const; + + /* Function to register/unregister hook points. */ + int nf_register_hook(struct nf_hook_ops *reg); diff --git a/include/linux/netfilter/ipset/ip_set.h b/include/linux/netfilter/ipset/ip_set.h index 3540c6e..83adb6c 100644 --- a/include/linux/netfilter/ipset/ip_set.h @@ -66911,6 +69404,19 @@ index 0000000..33f4af8 +}; + +#endif +diff --git a/include/linux/nls.h b/include/linux/nls.h +index 5dc635f..35f5e11 100644 +--- a/include/linux/nls.h ++++ b/include/linux/nls.h +@@ -31,7 +31,7 @@ struct nls_table { + const unsigned char *charset2upper; + struct module *owner; + struct nls_table *next; +-}; ++} __do_const; + + /* this value hold the maximum octet of charset */ + #define NLS_MAX_CHARSET_SIZE 6 /* for UTF-8 */ diff --git a/include/linux/notifier.h b/include/linux/notifier.h index d65746e..62e72c2 100644 --- a/include/linux/notifier.h @@ -66963,8 +69469,22 @@ index 4633b2f..988bc08 100644 atomic_t reorder_objects; atomic_t refcnt; unsigned int max_seq_nr; +diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h +index 45fc162..01a4068 100644 +--- a/include/linux/pci_hotplug.h ++++ b/include/linux/pci_hotplug.h +@@ -80,7 +80,8 @@ struct hotplug_slot_ops { + int (*get_attention_status) (struct hotplug_slot *slot, u8 *value); + int (*get_latch_status) (struct hotplug_slot *slot, u8 *value); + int (*get_adapter_status) (struct hotplug_slot *slot, u8 *value); +-}; ++} __do_const; ++typedef struct hotplug_slot_ops __no_const hotplug_slot_ops_no_const; + + /** + * struct hotplug_slot_info - used to notify the hotplug pci core of the state of the slot diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h -index b669be6..22773f5 100644 +index 9b9b2aa..6a25301 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -748,8 +748,8 @@ struct perf_event { @@ -66989,7 +69509,7 @@ index b669be6..22773f5 100644 /* * Protect attach/detach and child_list: -@@ -1193,7 +1193,7 @@ static inline void perf_event_task_tick(void) { } +@@ -1199,7 +1199,7 @@ static inline void perf_restore_debug_store(void) { } */ #define perf_cpu_notifier(fn) \ do { \ @@ -67040,6 +69560,19 @@ index d3085e7..fd01052 100644 } #else /* !CONFIG_PM_RUNTIME */ +diff --git a/include/linux/pnp.h b/include/linux/pnp.h +index 195aafc..49a7bc2 100644 +--- a/include/linux/pnp.h ++++ b/include/linux/pnp.h +@@ -297,7 +297,7 @@ static inline void pnp_set_drvdata(struct pnp_dev *pdev, void *data) + struct pnp_fixup { + char id[7]; + void (*quirk_function) (struct pnp_dev * dev); /* fixup function */ +-}; ++} __do_const; + + /* config parameters */ + #define PNP_CONFIG_NORMAL 0x0001 diff --git a/include/linux/poison.h b/include/linux/poison.h index 79159de..f1233a9 100644 --- a/include/linux/poison.h @@ -67055,6 +69588,19 @@ index 79159de..f1233a9 100644 /********** include/linux/timer.h **********/ /* +diff --git a/include/linux/ppp-comp.h b/include/linux/ppp-comp.h +index b8d4ddd..bb59d8b 100644 +--- a/include/linux/ppp-comp.h ++++ b/include/linux/ppp-comp.h +@@ -111,7 +111,7 @@ struct compressor { + struct module *owner; + /* Extra skb space needed by the compressor algorithm */ + unsigned int comp_extra; +-}; ++} __do_const; + + /* + * The return value from decompress routine is the length of the diff --git a/include/linux/printk.h b/include/linux/printk.h index f0e22f7..82dd544 100644 --- a/include/linux/printk.h @@ -67077,7 +69623,7 @@ index f0e22f7..82dd544 100644 void log_buf_kexec_setup(void); void __init setup_log_buf(int early); diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h -index 643b96c..afeaad5 100644 +index 643b96c..9544c71 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h @@ -155,6 +155,19 @@ static inline struct proc_dir_entry *proc_create(const char *name, mode_t mode, @@ -67100,6 +69646,15 @@ index 643b96c..afeaad5 100644 static inline struct proc_dir_entry *create_proc_read_entry(const char *name, mode_t mode, struct proc_dir_entry *base, read_proc_t *read_proc, void * data) +@@ -247,7 +260,7 @@ struct proc_ns_operations { + void *(*get)(struct task_struct *task); + void (*put)(void *ns); + int (*install)(struct nsproxy *nsproxy, void *ns); +-}; ++} __do_const; + extern const struct proc_ns_operations netns_operations; + extern const struct proc_ns_operations utsns_operations; + extern const struct proc_ns_operations ipcns_operations; diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h index 800f113..12c82ec 100644 --- a/include/linux/ptrace.h @@ -67155,6 +69710,54 @@ index 29e217a..1dee1dd 100644 } /** +diff --git a/include/linux/rculist.h b/include/linux/rculist.h +index d079290..fa711cb 100644 +--- a/include/linux/rculist.h ++++ b/include/linux/rculist.h +@@ -39,6 +39,9 @@ static inline void __list_add_rcu(struct list_head *new, + next->prev = new; + } + ++extern void __pax_list_add_rcu(struct list_head *new, ++ struct list_head *prev, struct list_head *next); ++ + /** + * list_add_rcu - add a new entry to rcu-protected list + * @new: new entry to be added +@@ -60,6 +63,11 @@ static inline void list_add_rcu(struct list_head *new, struct list_head *head) + __list_add_rcu(new, head, head->next); + } + ++static inline void pax_list_add_rcu(struct list_head *new, struct list_head *head) ++{ ++ __pax_list_add_rcu(new, head, head->next); ++} ++ + /** + * list_add_tail_rcu - add a new entry to rcu-protected list + * @new: new entry to be added +@@ -82,6 +90,12 @@ static inline void list_add_tail_rcu(struct list_head *new, + __list_add_rcu(new, head->prev, head); + } + ++static inline void pax_list_add_tail_rcu(struct list_head *new, ++ struct list_head *head) ++{ ++ __pax_list_add_rcu(new, head->prev, head); ++} ++ + /** + * list_del_rcu - deletes entry from list without re-initialization + * @entry: the element to delete from the list. +@@ -112,6 +126,8 @@ static inline void list_del_rcu(struct list_head *entry) + entry->prev = LIST_POISON2; + } + ++extern void pax_list_del_rcu(struct list_head *entry); ++ + /** + * hlist_del_init_rcu - deletes entry from hash list with re-initialization + * @n: the element to delete from the hash list. diff --git a/include/linux/reboot.h b/include/linux/reboot.h index e0879a7..a12f962 100644 --- a/include/linux/reboot.h @@ -67276,7 +69879,7 @@ index 2148b12..519b820 100644 static inline void anon_vma_merge(struct vm_area_struct *vma, diff --git a/include/linux/sched.h b/include/linux/sched.h -index 8204898..bcc2c30 100644 +index 8204898..7e2119f 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -101,6 +101,7 @@ struct bio_list; @@ -67287,6 +69890,15 @@ index 8204898..bcc2c30 100644 /* * List of flags we want to share for kernel threads, +@@ -355,7 +356,7 @@ extern char __sched_text_start[], __sched_text_end[]; + extern int in_sched_functions(unsigned long addr); + + #define MAX_SCHEDULE_TIMEOUT LONG_MAX +-extern signed long schedule_timeout(signed long timeout); ++extern signed long schedule_timeout(signed long timeout) __intentional_overflow(-1); + extern signed long schedule_timeout_interruptible(signed long timeout); + extern signed long schedule_timeout_killable(signed long timeout); + extern signed long schedule_timeout_uninterruptible(signed long timeout); @@ -381,10 +382,23 @@ struct user_namespace; #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN) @@ -67353,6 +69965,15 @@ index 8204898..bcc2c30 100644 /* Hash table maintenance information */ struct hlist_node uidhash_node; uid_t uid; +@@ -1125,7 +1160,7 @@ struct sched_class { + #ifdef CONFIG_FAIR_GROUP_SCHED + void (*task_move_group) (struct task_struct *p, int on_rq); + #endif +-}; ++} __do_const; + + struct load_weight { + unsigned long weight, inv_weight; @@ -1341,8 +1376,8 @@ struct task_struct { struct list_head thread_group; @@ -67625,7 +70246,7 @@ index 92808b8..c28cac4 100644 /* shm_mode upper byte flags */ diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h -index 53dc7e7..e353d6b 100644 +index da65890..108f60f 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -538,7 +538,7 @@ extern void consume_skb(struct sk_buff *skb); @@ -67664,7 +70285,7 @@ index 53dc7e7..e353d6b 100644 } /** -@@ -1543,7 +1543,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len) +@@ -1546,7 +1546,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len) * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8) */ #ifndef NET_SKB_PAD @@ -67673,7 +70294,7 @@ index 53dc7e7..e353d6b 100644 #endif extern int ___pskb_trim(struct sk_buff *skb, unsigned int len); -@@ -2082,7 +2082,7 @@ extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, +@@ -2085,7 +2085,7 @@ extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, int noblock, int *err); extern unsigned int datagram_poll(struct file *file, struct socket *sock, struct poll_table_struct *wait); @@ -67979,9 +70600,18 @@ index 6a40c76..1747b67 100644 enum { false = 0, diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h -index 3d8f9c4..69f1c0a 100644 +index 3d8f9c4..349a695 100644 --- a/include/linux/sunrpc/clnt.h +++ b/include/linux/sunrpc/clnt.h +@@ -98,7 +98,7 @@ struct rpc_procinfo { + unsigned int p_timer; /* Which RTT timer to use */ + u32 p_statidx; /* Which procedure to account */ + char * p_name; /* name of procedure */ +-}; ++} __do_const; + + #ifdef __KERNEL__ + @@ -172,9 +172,9 @@ static inline unsigned short rpc_get_port(const struct sockaddr *sap) { switch (sap->sa_family) { @@ -68012,6 +70642,19 @@ index 3d8f9c4..69f1c0a 100644 } #endif /* __KERNEL__ */ +diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h +index 35b37b1..c39eab4 100644 +--- a/include/linux/sunrpc/svc.h ++++ b/include/linux/sunrpc/svc.h +@@ -408,7 +408,7 @@ struct svc_procedure { + unsigned int pc_count; /* call count */ + unsigned int pc_cachetype; /* cache info (NFS) */ + unsigned int pc_xdrressize; /* maximum size of XDR reply */ +-}; ++} __do_const; + + /* + * Function prototypes. diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h index c14fe86..393245e 100644 --- a/include/linux/sunrpc/svc_rdma.h @@ -68041,8 +70684,78 @@ index c14fe86..393245e 100644 #define RPCRDMA_VERSION 1 +diff --git a/include/linux/sunrpc/svcauth.h b/include/linux/sunrpc/svcauth.h +index 25d333c..a722ca0 100644 +--- a/include/linux/sunrpc/svcauth.h ++++ b/include/linux/sunrpc/svcauth.h +@@ -100,7 +100,7 @@ struct auth_ops { + int (*release)(struct svc_rqst *rq); + void (*domain_release)(struct auth_domain *); + int (*set_client)(struct svc_rqst *rq); +-}; ++} __do_const; + + #define SVC_GARBAGE 1 + #define SVC_SYSERR 2 +diff --git a/include/linux/swab.h b/include/linux/swab.h +index ea0c02f..0eed39d 100644 +--- a/include/linux/swab.h ++++ b/include/linux/swab.h +@@ -43,7 +43,7 @@ + * ___swab16, ___swab32, ___swab64, ___swahw32, ___swahb32 + */ + +-static inline __attribute_const__ __u16 __fswab16(__u16 val) ++static inline __intentional_overflow(-1) __attribute_const__ __u16 __fswab16(__u16 val) + { + #ifdef __arch_swab16 + return __arch_swab16(val); +@@ -52,7 +52,7 @@ static inline __attribute_const__ __u16 __fswab16(__u16 val) + #endif + } + +-static inline __attribute_const__ __u32 __fswab32(__u32 val) ++static inline __intentional_overflow(-1) __attribute_const__ __u32 __fswab32(__u32 val) + { + #ifdef __arch_swab32 + return __arch_swab32(val); +@@ -61,7 +61,7 @@ static inline __attribute_const__ __u32 __fswab32(__u32 val) + #endif + } + +-static inline __attribute_const__ __u64 __fswab64(__u64 val) ++static inline __intentional_overflow(-1) __attribute_const__ __u64 __fswab64(__u64 val) + { + #ifdef __arch_swab64 + return __arch_swab64(val); +diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h +index 86a24b1..5991c65 100644 +--- a/include/linux/syscalls.h ++++ b/include/linux/syscalls.h +@@ -608,7 +608,7 @@ asmlinkage long sys_getsockname(int, struct sockaddr __user *, int __user *); + asmlinkage long sys_getpeername(int, struct sockaddr __user *, int __user *); + asmlinkage long sys_send(int, void __user *, size_t, unsigned); + asmlinkage long sys_sendto(int, void __user *, size_t, unsigned, +- struct sockaddr __user *, int); ++ struct sockaddr __user *, int) __intentional_overflow(0); + asmlinkage long sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags); + asmlinkage long sys_sendmmsg(int fd, struct mmsghdr __user *msg, + unsigned int vlen, unsigned flags); +diff --git a/include/linux/syscore_ops.h b/include/linux/syscore_ops.h +index 27b3b0b..e093dd9 100644 +--- a/include/linux/syscore_ops.h ++++ b/include/linux/syscore_ops.h +@@ -16,7 +16,7 @@ struct syscore_ops { + int (*suspend)(void); + void (*resume)(void); + void (*shutdown)(void); +-}; ++} __do_const; + + extern void register_syscore_ops(struct syscore_ops *ops); + extern void unregister_syscore_ops(struct syscore_ops *ops); diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h -index 703cfa33..0b8ca72ac 100644 +index 703cfa33..dff53c0 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h @@ -155,7 +155,11 @@ enum @@ -68058,7 +70771,14 @@ index 703cfa33..0b8ca72ac 100644 /* CTL_VM names: */ enum -@@ -968,6 +972,8 @@ typedef int proc_handler (struct ctl_table *ctl, int write, +@@ -961,13 +965,13 @@ extern void sysctl_head_finish(struct ctl_table_header *prev); + extern int sysctl_perm(struct ctl_table_root *root, + struct ctl_table *table, int op); + +-typedef struct ctl_table ctl_table; +- + typedef int proc_handler (struct ctl_table *ctl, int write, + void __user *buffer, size_t *lenp, loff_t *ppos); extern int proc_dostring(struct ctl_table *, int, void __user *, size_t *, loff_t *); @@ -68067,19 +70787,80 @@ index 703cfa33..0b8ca72ac 100644 extern int proc_dointvec(struct ctl_table *, int, void __user *, size_t *, loff_t *); extern int proc_dointvec_minmax(struct ctl_table *, int, +@@ -1045,7 +1049,9 @@ struct ctl_table + struct ctl_table_poll *poll; + void *extra1; + void *extra2; +-}; ++} __do_const; ++typedef struct ctl_table __no_const ctl_table_no_const; ++typedef struct ctl_table ctl_table; + + struct ctl_table_root { + struct list_head root_list; +diff --git a/include/linux/sysdev.h b/include/linux/sysdev.h +index 20f63d3..fdd3cbb 100644 +--- a/include/linux/sysdev.h ++++ b/include/linux/sysdev.h +@@ -98,7 +98,7 @@ struct sysdev_attribute { + ssize_t (*store)(struct sys_device *, struct sysdev_attribute *, + const char *, size_t); + }; +- ++typedef struct sysdev_attribute __no_const sysdev_attribute_no_const; + + #define _SYSDEV_ATTR(_name, _mode, _show, _store) \ + { \ +diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h +index dac0859..4ea79a9 100644 +--- a/include/linux/sysfs.h ++++ b/include/linux/sysfs.h +@@ -30,7 +30,8 @@ struct attribute { + struct lock_class_key *key; + struct lock_class_key skey; + #endif +-}; ++} __do_const; ++typedef struct attribute __no_const attribute_no_const; + + /** + * sysfs_attr_init - initialize a dynamically allocated sysfs attribute +@@ -58,8 +59,8 @@ struct attribute_group { + mode_t (*is_visible)(struct kobject *, + struct attribute *, int); + struct attribute **attrs; +-}; +- ++} __do_const; ++typedef struct attribute_group __no_const attribute_group_no_const; + + + /** +@@ -95,7 +96,8 @@ struct bin_attribute { + char *, loff_t, size_t); + int (*mmap)(struct file *, struct kobject *, struct bin_attribute *attr, + struct vm_area_struct *vma); +-}; ++} __do_const; ++typedef struct bin_attribute __no_const bin_attribute_no_const; + + /** + * sysfs_bin_attr_init - initialize a dynamically allocated bin_attribute diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h -index 7faf933..c1ad32c 100644 +index 7faf933..4657127 100644 --- a/include/linux/sysrq.h +++ b/include/linux/sysrq.h -@@ -15,6 +15,7 @@ +@@ -15,7 +15,9 @@ #define _LINUX_SYSRQ_H #include <linux/errno.h> +#include <linux/compiler.h> #include <linux/types.h> ++#include <linux/compiler.h> /* Enable/disable SYSRQ support by default (0==no, 1==yes). */ -@@ -36,7 +37,7 @@ struct sysrq_key_op { + #define SYSRQ_DEFAULT_ENABLE 1 +@@ -36,7 +38,7 @@ struct sysrq_key_op { char *help_msg; char *action_msg; int enable_mask; @@ -68230,42 +71011,50 @@ index 5ca0951..53a2fff 100644 #endif /* __LINUX_UACCESS_H__ */ diff --git a/include/linux/unaligned/access_ok.h b/include/linux/unaligned/access_ok.h -index 99c1b4d..bb94261 100644 +index 99c1b4d..562e6f3 100644 --- a/include/linux/unaligned/access_ok.h +++ b/include/linux/unaligned/access_ok.h -@@ -6,32 +6,32 @@ +@@ -4,34 +4,34 @@ + #include <linux/kernel.h> + #include <asm/byteorder.h> - static inline u16 get_unaligned_le16(const void *p) +-static inline u16 get_unaligned_le16(const void *p) ++static inline u16 __intentional_overflow(-1) get_unaligned_le16(const void *p) { - return le16_to_cpup((__le16 *)p); + return le16_to_cpup((const __le16 *)p); } - static inline u32 get_unaligned_le32(const void *p) +-static inline u32 get_unaligned_le32(const void *p) ++static inline u32 __intentional_overflow(-1) get_unaligned_le32(const void *p) { - return le32_to_cpup((__le32 *)p); + return le32_to_cpup((const __le32 *)p); } - static inline u64 get_unaligned_le64(const void *p) +-static inline u64 get_unaligned_le64(const void *p) ++static inline u64 __intentional_overflow(-1) get_unaligned_le64(const void *p) { - return le64_to_cpup((__le64 *)p); + return le64_to_cpup((const __le64 *)p); } - static inline u16 get_unaligned_be16(const void *p) +-static inline u16 get_unaligned_be16(const void *p) ++static inline u16 __intentional_overflow(-1) get_unaligned_be16(const void *p) { - return be16_to_cpup((__be16 *)p); + return be16_to_cpup((const __be16 *)p); } - static inline u32 get_unaligned_be32(const void *p) +-static inline u32 get_unaligned_be32(const void *p) ++static inline u32 __intentional_overflow(-1) get_unaligned_be32(const void *p) { - return be32_to_cpup((__be32 *)p); + return be32_to_cpup((const __be32 *)p); } - static inline u64 get_unaligned_be64(const void *p) +-static inline u64 get_unaligned_be64(const void *p) ++static inline u64 __intentional_overflow(-1) get_unaligned_be64(const void *p) { - return be64_to_cpup((__be64 *)p); + return be64_to_cpup((const __be64 *)p); @@ -68273,7 +71062,7 @@ index 99c1b4d..bb94261 100644 static inline void put_unaligned_le16(u16 val, void *p) diff --git a/include/linux/usb.h b/include/linux/usb.h -index 93629fc..0c97651 100644 +index 93629fc..be16802 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h @@ -497,7 +497,7 @@ struct usb_device { @@ -68285,6 +71074,15 @@ index 93629fc..0c97651 100644 unsigned long active_duration; +@@ -1442,7 +1442,7 @@ void usb_buffer_unmap_sg(const struct usb_device *dev, int is_in, + + extern int usb_control_msg(struct usb_device *dev, unsigned int pipe, + __u8 request, __u8 requesttype, __u16 value, __u16 index, +- void *data, __u16 size, int timeout); ++ void *data, __u16 size, int timeout) __intentional_overflow(-1); + extern int usb_interrupt_msg(struct usb_device *usb_dev, unsigned int pipe, + void *data, int len, int *actual_length, int timeout); + extern int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe, diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h index e5a40c3..d75f068 100644 --- a/include/linux/usb/renesas_usbhs.h @@ -68484,7 +71282,7 @@ index 65efb92..137adbb 100644 static inline void __dec_zone_page_state(struct page *page, diff --git a/include/linux/xattr.h b/include/linux/xattr.h -index e5d1220..ef6e406 100644 +index e5d1220..7ed3f9c 100644 --- a/include/linux/xattr.h +++ b/include/linux/xattr.h @@ -57,6 +57,11 @@ @@ -68499,6 +71297,36 @@ index e5d1220..ef6e406 100644 #ifdef __KERNEL__ #include <linux/types.h> +@@ -73,7 +78,7 @@ struct xattr_handler { + size_t size, int handler_flags); + int (*set)(struct dentry *dentry, const char *name, const void *buffer, + size_t size, int flags, int handler_flags); +-}; ++} __do_const; + + struct xattr { + char *name; +diff --git a/include/linux/zlib.h b/include/linux/zlib.h +index 9c5a6b4..09c9438 100644 +--- a/include/linux/zlib.h ++++ b/include/linux/zlib.h +@@ -31,6 +31,7 @@ + #define _ZLIB_H + + #include <linux/zconf.h> ++#include <linux/compiler.h> + + /* zlib deflate based on ZLIB_VERSION "1.1.3" */ + /* zlib inflate based on ZLIB_VERSION "1.2.3" */ +@@ -179,7 +180,7 @@ typedef z_stream *z_streamp; + + /* basic functions */ + +-extern int zlib_deflate_workspacesize (int windowBits, int memLevel); ++extern int zlib_deflate_workspacesize (int windowBits, int memLevel) __intentional_overflow(0); + /* + Returns the number of bytes that needs to be allocated for a per- + stream workspace with the specified parameters. A pointer to this diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h index c7c40f1..5c31482 100644 --- a/include/media/v4l2-dev.h @@ -68524,6 +71352,32 @@ index 4d1c74a..8e58054 100644 /* v4l debugging and diagnostics */ /* Debug bitmask flags to be used on V4L2 */ +diff --git a/include/net/9p/transport.h b/include/net/9p/transport.h +index adcbb20..62c2559 100644 +--- a/include/net/9p/transport.h ++++ b/include/net/9p/transport.h +@@ -57,7 +57,7 @@ struct p9_trans_module { + int (*cancel) (struct p9_client *, struct p9_req_t *req); + int (*zc_request)(struct p9_client *, struct p9_req_t *, + char *, char *, int , int, int, int); +-}; ++} __do_const; + + void v9fs_register_trans(struct p9_trans_module *m); + void v9fs_unregister_trans(struct p9_trans_module *m); +diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h +index 6cc18f3..b0df15a 100644 +--- a/include/net/bluetooth/l2cap.h ++++ b/include/net/bluetooth/l2cap.h +@@ -387,7 +387,7 @@ struct l2cap_ops { + int (*recv) (void *data, struct sk_buff *skb); + void (*close) (void *data); + void (*state_change) (void *data, int state); +-}; ++} __do_const; + + struct l2cap_conn { + struct hci_conn *hcon; diff --git a/include/net/caif/cfctrl.h b/include/net/caif/cfctrl.h index 9e5425b..8136ffc 100644 --- a/include/net/caif/cfctrl.h @@ -68560,6 +71414,19 @@ index 2a7eefd..3250f3b 100644 +extern atomic_unchecked_t flow_cache_genid; #endif +diff --git a/include/net/genetlink.h b/include/net/genetlink.h +index 82d8d09..d1e04ff 100644 +--- a/include/net/genetlink.h ++++ b/include/net/genetlink.h +@@ -116,7 +116,7 @@ struct genl_ops { + struct netlink_callback *cb); + int (*done)(struct netlink_callback *cb); + struct list_head ops_list; +-}; ++} __do_const; + + extern int genl_register_family(struct genl_family *family); + extern int genl_register_family_with_ops(struct genl_family *family, diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h index ca2755f..85ec88c 100644 --- a/include/net/inet_connection_sock.h @@ -68602,11 +71469,24 @@ index e9ff3fc..9d3e5c7 100644 return new; } +diff --git a/include/net/ip.h b/include/net/ip.h +index eca0ef7..88118cb 100644 +--- a/include/net/ip.h ++++ b/include/net/ip.h +@@ -214,7 +214,7 @@ extern struct local_ports { + } sysctl_local_ports; + extern void inet_get_local_port_range(int *low, int *high); + +-extern unsigned long *sysctl_local_reserved_ports; ++extern unsigned long sysctl_local_reserved_ports[65536 / 8 / sizeof(unsigned long)]; + static inline int inet_is_reserved_local_port(int port) + { + return test_bit(port, sysctl_local_reserved_ports); diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h -index 10422ef..662570f 100644 +index 2124004..3713897 100644 --- a/include/net/ip_fib.h +++ b/include/net/ip_fib.h -@@ -146,7 +146,7 @@ extern __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh); +@@ -144,7 +144,7 @@ extern __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh); #define FIB_RES_SADDR(net, res) \ ((FIB_RES_NH(res).nh_saddr_genid == \ @@ -68616,7 +71496,7 @@ index 10422ef..662570f 100644 fib_info_update_nh_saddr((net), &FIB_RES_NH(res))) #define FIB_RES_GW(res) (FIB_RES_NH(res).nh_gw) diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h -index 416dcb0..dc75cc1 100644 +index 416dcb0..e203877 100644 --- a/include/net/ip_vs.h +++ b/include/net/ip_vs.h @@ -509,7 +509,7 @@ struct ip_vs_conn { @@ -68637,6 +71517,20 @@ index 416dcb0..dc75cc1 100644 atomic_t weight; /* server weight */ atomic_t refcnt; /* reference counter */ +@@ -878,11 +878,11 @@ struct netns_ipvs { + /* ip_vs_lblc */ + int sysctl_lblc_expiration; + struct ctl_table_header *lblc_ctl_header; +- struct ctl_table *lblc_ctl_table; ++ ctl_table_no_const *lblc_ctl_table; + /* ip_vs_lblcr */ + int sysctl_lblcr_expiration; + struct ctl_table_header *lblcr_ctl_header; +- struct ctl_table *lblcr_ctl_table; ++ ctl_table_no_const *lblcr_ctl_table; + /* ip_vs_est */ + struct list_head est_list; /* estimator list */ + spinlock_t est_lock; diff --git a/include/net/irda/ircomm_tty.h b/include/net/irda/ircomm_tty.h index 59ba38bc..d515662 100644 --- a/include/net/irda/ircomm_tty.h @@ -68673,6 +71567,86 @@ index f2419cf..473679f 100644 }; unsigned int iucv_sock_poll(struct file *file, struct socket *sock, +diff --git a/include/net/llc_c_ac.h b/include/net/llc_c_ac.h +index df83f69..9b640b8 100644 +--- a/include/net/llc_c_ac.h ++++ b/include/net/llc_c_ac.h +@@ -87,7 +87,7 @@ + #define LLC_CONN_AC_STOP_SENDACK_TMR 70 + #define LLC_CONN_AC_START_SENDACK_TMR_IF_NOT_RUNNING 71 + +-typedef int (*llc_conn_action_t)(struct sock *sk, struct sk_buff *skb); ++typedef int (* const llc_conn_action_t)(struct sock *sk, struct sk_buff *skb); + + extern int llc_conn_ac_clear_remote_busy(struct sock *sk, struct sk_buff *skb); + extern int llc_conn_ac_conn_ind(struct sock *sk, struct sk_buff *skb); +diff --git a/include/net/llc_c_ev.h b/include/net/llc_c_ev.h +index 23a4093..6d106df 100644 +--- a/include/net/llc_c_ev.h ++++ b/include/net/llc_c_ev.h +@@ -125,8 +125,8 @@ static __inline__ struct llc_conn_state_ev *llc_conn_ev(struct sk_buff *skb) + return (struct llc_conn_state_ev *)skb->cb; + } + +-typedef int (*llc_conn_ev_t)(struct sock *sk, struct sk_buff *skb); +-typedef int (*llc_conn_ev_qfyr_t)(struct sock *sk, struct sk_buff *skb); ++typedef int (* const llc_conn_ev_t)(struct sock *sk, struct sk_buff *skb); ++typedef int (* const llc_conn_ev_qfyr_t)(struct sock *sk, struct sk_buff *skb); + + extern int llc_conn_ev_conn_req(struct sock *sk, struct sk_buff *skb); + extern int llc_conn_ev_data_req(struct sock *sk, struct sk_buff *skb); +diff --git a/include/net/llc_c_st.h b/include/net/llc_c_st.h +index 0e79cfb..f46db31 100644 +--- a/include/net/llc_c_st.h ++++ b/include/net/llc_c_st.h +@@ -37,7 +37,7 @@ struct llc_conn_state_trans { + u8 next_state; + llc_conn_ev_qfyr_t *ev_qualifiers; + llc_conn_action_t *ev_actions; +-}; ++} __do_const; + + struct llc_conn_state { + u8 current_state; +diff --git a/include/net/llc_s_ac.h b/include/net/llc_s_ac.h +index 37a3bbd..55a4241 100644 +--- a/include/net/llc_s_ac.h ++++ b/include/net/llc_s_ac.h +@@ -23,7 +23,7 @@ + #define SAP_ACT_TEST_IND 9 + + /* All action functions must look like this */ +-typedef int (*llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb); ++typedef int (* const llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb); + + extern int llc_sap_action_unitdata_ind(struct llc_sap *sap, + struct sk_buff *skb); +diff --git a/include/net/llc_s_st.h b/include/net/llc_s_st.h +index 567c681..cd73ac0 100644 +--- a/include/net/llc_s_st.h ++++ b/include/net/llc_s_st.h +@@ -20,7 +20,7 @@ struct llc_sap_state_trans { + llc_sap_ev_t ev; + u8 next_state; + llc_sap_action_t *ev_actions; +-}; ++} __do_const; + + struct llc_sap_state { + u8 curr_state; +diff --git a/include/net/mac80211.h b/include/net/mac80211.h +index 1a6201a..66d9531 100644 +--- a/include/net/mac80211.h ++++ b/include/net/mac80211.h +@@ -3529,7 +3529,7 @@ struct rate_control_ops { + void (*add_sta_debugfs)(void *priv, void *priv_sta, + struct dentry *dir); + void (*remove_sta_debugfs)(void *priv, void *priv_sta); +-}; ++} __do_const; + + static inline int rate_supported(struct ieee80211_sta *sta, + enum ieee80211_band band, diff --git a/include/net/neighbour.h b/include/net/neighbour.h index 2720884..3aa5c25 100644 --- a/include/net/neighbour.h @@ -68686,6 +71660,32 @@ index 2720884..3aa5c25 100644 struct pneigh_entry { struct pneigh_entry *next; +diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h +index 3bb6fa0..41bbe86 100644 +--- a/include/net/net_namespace.h ++++ b/include/net/net_namespace.h +@@ -240,10 +240,12 @@ static inline struct net *read_pnet(struct net * const *pnet) + #define __net_init + #define __net_exit + #define __net_initdata ++#define __net_initconst + #else + #define __net_init __init + #define __net_exit __exit_refok + #define __net_initdata __initdata ++#define __net_initconst __initconst + #endif + + struct pernet_operations { +@@ -253,7 +255,7 @@ struct pernet_operations { + void (*exit_batch)(struct list_head *net_exit_list); + int *id; + size_t size; +-}; ++} __do_const; + + /* + * Use these carefully. If you implement a network device and it diff --git a/include/net/netdma.h b/include/net/netdma.h index 8ba8ce2..99b7fff 100644 --- a/include/net/netdma.h @@ -68762,6 +71762,19 @@ index 6f7eb80..f9838be 100644 #define INET6_PROTO_NOPOLICY 0x1 #define INET6_PROTO_FINAL 0x2 +diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h +index 3702939..cf9e78e 100644 +--- a/include/net/rtnetlink.h ++++ b/include/net/rtnetlink.h +@@ -78,7 +78,7 @@ struct rtnl_link_ops { + int (*get_tx_queues)(struct net *net, struct nlattr *tb[], + unsigned int *tx_queues, + unsigned int *real_tx_queues); +-}; ++} __do_const; + + extern int __rtnl_link_register(struct rtnl_link_ops *ops); + extern void __rtnl_link_unregister(struct rtnl_link_ops *ops); diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h index ad03988..0c5a964 100644 --- a/include/net/sctp/sctp.h @@ -68779,19 +71792,32 @@ index ad03988..0c5a964 100644 #define SCTP_ENABLE_DEBUG #define SCTP_DISABLE_DEBUG #define SCTP_ASSERT(expr, str, func) +diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h +index 9148632..be3c5ac 100644 +--- a/include/net/sctp/sm.h ++++ b/include/net/sctp/sm.h +@@ -86,7 +86,7 @@ typedef void (sctp_timer_event_t) (unsigned long); + typedef struct { + sctp_state_fn_t *fn; + const char *name; +-} sctp_sm_table_entry_t; ++} __do_const sctp_sm_table_entry_t; + + /* A naming convention of "sctp_sf_xxx" applies to all the state functions + * currently in use. +@@ -295,7 +295,7 @@ __u32 sctp_generate_tag(const struct sctp_endpoint *); + __u32 sctp_generate_tsn(const struct sctp_endpoint *); + + /* Extern declarations for major data structures. */ +-extern sctp_timer_event_t *sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES]; ++extern sctp_timer_event_t * const sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES]; + + + /* Get the size of a DATA chunk payload. */ diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h -index a15432da..6e7d872 100644 +index a15432da..9459dcc 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h -@@ -624,7 +624,7 @@ struct sctp_af { - int sockaddr_len; - sa_family_t sa_family; - struct list_head list; --}; -+} __do_const; - - struct sctp_af *sctp_get_af_specific(sa_family_t); - int sctp_register_af(struct sctp_af *); @@ -644,7 +644,7 @@ struct sctp_pf { struct sctp_association *asoc); void (*addr_v4map) (struct sctp_sock *, union sctp_addr *); @@ -68866,9 +71892,27 @@ index 0768715..3fedeb4 100644 #define TCP_SKB_CB(__skb) ((struct tcp_skb_cb *)&((__skb)->cb[0])) diff --git a/include/net/xfrm.h b/include/net/xfrm.h -index 921f627..91461fe 100644 +index 921f627..4ec32de 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h +@@ -298,7 +298,7 @@ struct xfrm_policy_afinfo { + struct net_device *dev, + const struct flowi *fl); + struct dst_entry *(*blackhole_route)(struct net *net, struct dst_entry *orig); +-}; ++} __do_const; + + extern int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo); + extern int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo); +@@ -334,7 +334,7 @@ struct xfrm_state_afinfo { + struct sk_buff *skb); + int (*transport_finish)(struct sk_buff *skb, + int async); +-}; ++} __do_const; + + extern int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo); + extern int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo); @@ -417,7 +417,7 @@ struct xfrm_mode { struct module *owner; unsigned int encap; @@ -69605,6 +72649,77 @@ index 5d0eb1d..b462edb 100644 /* * Ok, we have completed the initial bootup, and * we're essentially up and running. Get rid of the +diff --git a/ipc/ipc_sysctl.c b/ipc/ipc_sysctl.c +index 00fba2b..9afd545 100644 +--- a/ipc/ipc_sysctl.c ++++ b/ipc/ipc_sysctl.c +@@ -30,7 +30,7 @@ static void *get_ipc(ctl_table *table) + static int proc_ipc_dointvec(ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) + { +- struct ctl_table ipc_table; ++ ctl_table_no_const ipc_table; + + memcpy(&ipc_table, table, sizeof(ipc_table)); + ipc_table.data = get_ipc(table); +@@ -41,7 +41,7 @@ static int proc_ipc_dointvec(ctl_table *table, int write, + static int proc_ipc_dointvec_minmax(ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) + { +- struct ctl_table ipc_table; ++ ctl_table_no_const ipc_table; + + memcpy(&ipc_table, table, sizeof(ipc_table)); + ipc_table.data = get_ipc(table); +@@ -65,7 +65,7 @@ static int proc_ipc_dointvec_minmax_orphans(ctl_table *table, int write, + static int proc_ipc_callback_dointvec(ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) + { +- struct ctl_table ipc_table; ++ ctl_table_no_const ipc_table; + size_t lenp_bef = *lenp; + int rc; + +@@ -88,7 +88,7 @@ static int proc_ipc_callback_dointvec(ctl_table *table, int write, + static int proc_ipc_doulongvec_minmax(ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) + { +- struct ctl_table ipc_table; ++ ctl_table_no_const ipc_table; + memcpy(&ipc_table, table, sizeof(ipc_table)); + ipc_table.data = get_ipc(table); + +@@ -122,7 +122,7 @@ static void ipc_auto_callback(int val) + static int proc_ipcauto_dointvec_minmax(ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) + { +- struct ctl_table ipc_table; ++ ctl_table_no_const ipc_table; + size_t lenp_bef = *lenp; + int oldval; + int rc; +diff --git a/ipc/mq_sysctl.c b/ipc/mq_sysctl.c +index 0c09366..c81a8ec 100644 +--- a/ipc/mq_sysctl.c ++++ b/ipc/mq_sysctl.c +@@ -34,7 +34,7 @@ static void *get_mq(ctl_table *table) + static int proc_mq_dointvec(ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) + { +- struct ctl_table mq_table; ++ ctl_table_no_const mq_table; + memcpy(&mq_table, table, sizeof(mq_table)); + mq_table.data = get_mq(table); + +@@ -44,7 +44,7 @@ static int proc_mq_dointvec(ctl_table *table, int write, + static int proc_mq_dointvec_minmax(ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) + { +- struct ctl_table mq_table; ++ ctl_table_no_const mq_table; + memcpy(&mq_table, table, sizeof(mq_table)); + mq_table.data = get_mq(table); + diff --git a/ipc/mqueue.c b/ipc/mqueue.c index 5b4293d..f179875 100644 --- a/ipc/mqueue.c @@ -70529,7 +73644,7 @@ index 234e152..0ae0243 100644 { struct signal_struct *sig = current->signal; diff --git a/kernel/fork.c b/kernel/fork.c -index ce0c182..2d6bd03 100644 +index ce0c182..8adf56a 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -270,19 +270,24 @@ static struct task_struct *dup_task_struct(struct task_struct *orig) @@ -70664,7 +73779,7 @@ index ce0c182..2d6bd03 100644 - mm->total_vm -= pages; vm_stat_account(mm, mpnt->vm_flags, mpnt->vm_file, - -pages); -+ -vma_pages(mpnt)); ++ -vma_pages(mpnt)); continue; } - charge = 0; @@ -70921,6 +74036,19 @@ index 77bccfc..f2b5e1f 100644 for (i = 0; i < ARRAY_SIZE(futex_queues); i++) { plist_head_init(&futex_queues[i].chain); +diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c +index a9642d5..51eb98c 100644 +--- a/kernel/futex_compat.c ++++ b/kernel/futex_compat.c +@@ -31,7 +31,7 @@ fetch_robust_entry(compat_uptr_t *uentry, struct robust_list __user **entry, + return 0; + } + +-static void __user *futex_uaddr(struct robust_list __user *entry, ++static void __user __intentional_overflow(-1) *futex_uaddr(struct robust_list __user *entry, + compat_long_t futex_offset) + { + compat_uptr_t base = ptr_to_compat(entry); diff --git a/kernel/gcov/base.c b/kernel/gcov/base.c index 9b22d03..6295b62 100644 --- a/kernel/gcov/base.c @@ -71132,7 +74260,7 @@ index dc7bc08..4601964 100644 /* Don't allow clients that don't understand the native diff --git a/kernel/kmod.c b/kernel/kmod.c -index d6fe08a..ece0f1a 100644 +index d6fe08a..9fa6730 100644 --- a/kernel/kmod.c +++ b/kernel/kmod.c @@ -64,7 +64,7 @@ static void free_modprobe_argv(struct subprocess_info *info) @@ -71260,6 +74388,15 @@ index d6fe08a..ece0f1a 100644 /* * If ret is 0, either ____call_usermodehelper failed and the +@@ -507,7 +560,7 @@ EXPORT_SYMBOL(call_usermodehelper_exec); + static int proc_cap_handler(struct ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) + { +- struct ctl_table t; ++ ctl_table_no_const t; + unsigned long cap_array[_KERNEL_CAPABILITY_U32S]; + kernel_cap_t new_cap; + int err, i; diff --git a/kernel/kprobes.c b/kernel/kprobes.c index bc90b87..6fc810d 100644 --- a/kernel/kprobes.c @@ -71324,7 +74461,7 @@ index bc90b87..6fc810d 100644 buf_size = min(count, (sizeof(buf)-1)); if (copy_from_user(buf, user_buf, buf_size)) diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c -index 4e316e1..5501eef 100644 +index 4e316e1..a2879b6 100644 --- a/kernel/ksysfs.c +++ b/kernel/ksysfs.c @@ -47,6 +47,8 @@ static ssize_t uevent_helper_store(struct kobject *kobj, @@ -71336,6 +74473,15 @@ index 4e316e1..5501eef 100644 memcpy(uevent_helper, buf, count); uevent_helper[count] = '\0'; if (count && uevent_helper[count-1] == '\n') +@@ -156,7 +158,7 @@ static ssize_t notes_read(struct file *filp, struct kobject *kobj, + return count; + } + +-static struct bin_attribute notes_attr = { ++static bin_attribute_no_const notes_attr __read_only = { + .attr = { + .name = "notes", + .mode = S_IRUGO, diff --git a/kernel/lockdep.c b/kernel/lockdep.c index b2e08c9..01d8049 100644 --- a/kernel/lockdep.c @@ -71427,7 +74573,7 @@ index 91c32a0..7b88d63 100644 seq_printf(m, "%40s %14lu %29s %pS\n", name, stats->contending_point[i], diff --git a/kernel/module.c b/kernel/module.c -index 65362d9..8b1ca82 100644 +index 65362d9..96ac6ba 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -58,6 +58,7 @@ @@ -71484,6 +74630,24 @@ index 65362d9..8b1ca82 100644 static inline bool sect_empty(const Elf_Shdr *sect) { return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0; +@@ -1323,7 +1325,7 @@ static void add_notes_attrs(struct module *mod, const struct load_info *info) + { + unsigned int notes, loaded, i; + struct module_notes_attrs *notes_attrs; +- struct bin_attribute *nattr; ++ bin_attribute_no_const *nattr; + + /* failed to create section attributes, so can't create notes */ + if (!mod->sect_attrs) +@@ -1435,7 +1437,7 @@ static void del_usage_links(struct module *mod) + static int module_add_modinfo_attrs(struct module *mod) + { + struct module_attribute *attr; +- struct module_attribute *temp_attr; ++ module_attribute_no_const *temp_attr; + int error = 0; + int i; + @@ -1649,21 +1651,21 @@ static void set_section_ro_nx(void *base, static void unset_module_core_ro_nx(struct module *mod) @@ -73398,9 +76562,36 @@ index 3d9f31c..7fefc9e 100644 default: diff --git a/kernel/sched.c b/kernel/sched.c -index eeeec4e..403ccf3 100644 +index eeeec4e..9240d2d 100644 --- a/kernel/sched.c +++ b/kernel/sched.c +@@ -5044,7 +5044,7 @@ EXPORT_SYMBOL(wait_for_completion_interruptible); + * The return value is -ERESTARTSYS if interrupted, 0 if timed out, + * positive (at least 1, or number of jiffies left till timeout) if completed. + */ +-long __sched ++long __sched __intentional_overflow(-1) + wait_for_completion_interruptible_timeout(struct completion *x, + unsigned long timeout) + { +@@ -5061,7 +5061,7 @@ EXPORT_SYMBOL(wait_for_completion_interruptible_timeout); + * + * The return value is -ERESTARTSYS if interrupted, 0 if completed. + */ +-int __sched wait_for_completion_killable(struct completion *x) ++int __sched __intentional_overflow(-1) wait_for_completion_killable(struct completion *x) + { + long t = wait_for_common(x, MAX_SCHEDULE_TIMEOUT, TASK_KILLABLE); + if (t == -ERESTARTSYS) +@@ -5082,7 +5082,7 @@ EXPORT_SYMBOL(wait_for_completion_killable); + * The return value is -ERESTARTSYS if interrupted, 0 if timed out, + * positive (at least 1, or number of jiffies left till timeout) if completed. + */ +-long __sched ++long __sched __intentional_overflow(-1) + wait_for_completion_killable_timeout(struct completion *x, + unsigned long timeout) + { @@ -5291,6 +5291,8 @@ int can_nice(const struct task_struct *p, const int nice) /* convert nice value [19,-20] to rlimit style value [1,40] */ int nice_rlim = 20 - nice; @@ -73428,7 +76619,118 @@ index eeeec4e..403ccf3 100644 /* can't set/change the rt policy */ if (policy != p->policy && !rlim_rtprio) return -EPERM; -@@ -6875,7 +6879,7 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu) +@@ -6624,7 +6628,7 @@ static void migrate_tasks(unsigned int dead_cpu) + + #if defined(CONFIG_SCHED_DEBUG) && defined(CONFIG_SYSCTL) + +-static struct ctl_table sd_ctl_dir[] = { ++static ctl_table_no_const sd_ctl_dir[] __read_only = { + { + .procname = "sched_domain", + .mode = 0555, +@@ -6641,17 +6645,17 @@ static struct ctl_table sd_ctl_root[] = { + {} + }; + +-static struct ctl_table *sd_alloc_ctl_entry(int n) ++static ctl_table_no_const *sd_alloc_ctl_entry(int n) + { +- struct ctl_table *entry = ++ ctl_table_no_const *entry = + kcalloc(n, sizeof(struct ctl_table), GFP_KERNEL); + + return entry; + } + +-static void sd_free_ctl_entry(struct ctl_table **tablep) ++static void sd_free_ctl_entry(ctl_table_no_const *tablep) + { +- struct ctl_table *entry; ++ ctl_table_no_const *entry; + + /* + * In the intermediate directories, both the child directory and +@@ -6659,19 +6663,22 @@ static void sd_free_ctl_entry(struct ctl_table **tablep) + * will always be set. In the lowest directory the names are + * static strings and all have proc handlers. + */ +- for (entry = *tablep; entry->mode; entry++) { +- if (entry->child) +- sd_free_ctl_entry(&entry->child); ++ for (entry = tablep; entry->mode; entry++) { ++ if (entry->child) { ++ sd_free_ctl_entry(entry->child); ++ pax_open_kernel(); ++ entry->child = NULL; ++ pax_close_kernel(); ++ } + if (entry->proc_handler == NULL) + kfree(entry->procname); + } + +- kfree(*tablep); +- *tablep = NULL; ++ kfree(tablep); + } + + static void +-set_table_entry(struct ctl_table *entry, ++set_table_entry(ctl_table_no_const *entry, + const char *procname, void *data, int maxlen, + mode_t mode, proc_handler *proc_handler) + { +@@ -6685,7 +6692,7 @@ set_table_entry(struct ctl_table *entry, + static struct ctl_table * + sd_alloc_ctl_domain_table(struct sched_domain *sd) + { +- struct ctl_table *table = sd_alloc_ctl_entry(13); ++ ctl_table_no_const *table = sd_alloc_ctl_entry(13); + + if (table == NULL) + return NULL; +@@ -6720,9 +6727,9 @@ sd_alloc_ctl_domain_table(struct sched_domain *sd) + return table; + } + +-static ctl_table *sd_alloc_ctl_cpu_table(int cpu) ++static ctl_table_no_const *sd_alloc_ctl_cpu_table(int cpu) + { +- struct ctl_table *entry, *table; ++ ctl_table_no_const *entry, *table; + struct sched_domain *sd; + int domain_num = 0, i; + char buf[32]; +@@ -6749,11 +6756,13 @@ static struct ctl_table_header *sd_sysctl_header; + static void register_sched_domain_sysctl(void) + { + int i, cpu_num = num_possible_cpus(); +- struct ctl_table *entry = sd_alloc_ctl_entry(cpu_num + 1); ++ ctl_table_no_const *entry = sd_alloc_ctl_entry(cpu_num + 1); + char buf[32]; + + WARN_ON(sd_ctl_dir[0].child); ++ pax_open_kernel(); + sd_ctl_dir[0].child = entry; ++ pax_close_kernel(); + + if (entry == NULL) + return; +@@ -6776,8 +6785,12 @@ static void unregister_sched_domain_sysctl(void) + if (sd_sysctl_header) + unregister_sysctl_table(sd_sysctl_header); + sd_sysctl_header = NULL; +- if (sd_ctl_dir[0].child) +- sd_free_ctl_entry(&sd_ctl_dir[0].child); ++ if (sd_ctl_dir[0].child) { ++ sd_free_ctl_entry(sd_ctl_dir[0].child); ++ pax_open_kernel(); ++ sd_ctl_dir[0].child = NULL; ++ pax_close_kernel(); ++ } + } + #else + static void register_sched_domain_sysctl(void) +@@ -6875,7 +6888,7 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu) * happens before everything else. This has to be lower priority than * the notifier in the perf_event subsystem, though. */ @@ -73473,7 +76775,7 @@ index 66e4576..d05c6d5 100644 int this_cpu = smp_processor_id(); struct rq *this_rq = cpu_rq(this_cpu); diff --git a/kernel/signal.c b/kernel/signal.c -index 71e1816..5725e4f 100644 +index ea76d30..353258a 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -45,12 +45,12 @@ static struct kmem_cache *sigqueue_cachep; @@ -73884,7 +77186,7 @@ index f5939c2..110dc5d 100644 break; } diff --git a/kernel/sysctl.c b/kernel/sysctl.c -index ea7ec7f..23d4094 100644 +index ea7ec7f..3ead220 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -86,6 +86,13 @@ @@ -74050,7 +77352,37 @@ index ea7ec7f..23d4094 100644 if (root->permissions) mode = root->permissions(root, current->nsproxy, table); -@@ -2124,6 +2187,16 @@ int proc_dostring(struct ctl_table *table, int write, +@@ -1732,7 +1795,9 @@ int sysctl_perm(struct ctl_table_root *root, struct ctl_table *table, int op) + static void sysctl_set_parent(struct ctl_table *parent, struct ctl_table *table) + { + for (; table->procname; table++) { +- table->parent = parent; ++ pax_open_kernel(); ++ *(void **)&table->parent = (ctl_table_no_const *)parent; ++ pax_close_kernel(); + if (table->child) + sysctl_set_parent(table, table->child); + } +@@ -1856,7 +1921,8 @@ struct ctl_table_header *__register_sysctl_paths( + const struct ctl_path *path, struct ctl_table *table) + { + struct ctl_table_header *header; +- struct ctl_table *new, **prevp; ++ struct ctl_table **prevp; ++ ctl_table_no_const *new; + unsigned int n, npath; + struct ctl_table_set *set; + +@@ -1877,7 +1943,7 @@ struct ctl_table_header *__register_sysctl_paths( + if (!header) + return NULL; + +- new = (struct ctl_table *) (header + 1); ++ new = (ctl_table_no_const *) (header + 1); + + /* Now connect the dots */ + prevp = &header->ctl_table; +@@ -2124,6 +2190,16 @@ int proc_dostring(struct ctl_table *table, int write, buffer, lenp, ppos); } @@ -74067,7 +77399,7 @@ index ea7ec7f..23d4094 100644 static size_t proc_skip_spaces(char **buf) { size_t ret; -@@ -2229,6 +2302,8 @@ static int proc_put_long(void __user **buf, size_t *size, unsigned long val, +@@ -2229,6 +2305,8 @@ static int proc_put_long(void __user **buf, size_t *size, unsigned long val, len = strlen(tmp); if (len > *size) len = *size; @@ -74076,7 +77408,16 @@ index ea7ec7f..23d4094 100644 if (copy_to_user(*buf, tmp, len)) return -EFAULT; *size -= len; -@@ -2421,7 +2496,6 @@ static int proc_taint(struct ctl_table *table, int write, +@@ -2393,7 +2471,7 @@ int proc_dointvec(struct ctl_table *table, int write, + static int proc_taint(struct ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) + { +- struct ctl_table t; ++ ctl_table_no_const t; + unsigned long tmptaint = get_taint(); + int err; + +@@ -2421,7 +2499,6 @@ static int proc_taint(struct ctl_table *table, int write, return err; } @@ -74084,7 +77425,7 @@ index ea7ec7f..23d4094 100644 static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write, void __user *buffer, size_t *lenp, loff_t *ppos) { -@@ -2430,7 +2504,6 @@ static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write, +@@ -2430,7 +2507,6 @@ static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write, return proc_dointvec_minmax(table, write, buffer, lenp, ppos); } @@ -74092,7 +77433,7 @@ index ea7ec7f..23d4094 100644 struct do_proc_dointvec_minmax_conv_param { int *min; -@@ -2488,6 +2561,34 @@ int proc_dointvec_minmax(struct ctl_table *table, int write, +@@ -2488,6 +2564,34 @@ int proc_dointvec_minmax(struct ctl_table *table, int write, do_proc_dointvec_minmax_conv, ¶m); } @@ -74127,7 +77468,7 @@ index ea7ec7f..23d4094 100644 static int __do_proc_doulongvec_minmax(void *data, struct ctl_table *table, int write, void __user *buffer, size_t *lenp, loff_t *ppos, -@@ -2545,8 +2646,11 @@ static int __do_proc_doulongvec_minmax(void *data, struct ctl_table *table, int +@@ -2545,8 +2649,11 @@ static int __do_proc_doulongvec_minmax(void *data, struct ctl_table *table, int *i = val; } else { val = convdiv * (*i) / convmul; @@ -74140,7 +77481,7 @@ index ea7ec7f..23d4094 100644 err = proc_put_long(&buffer, &left, val, false); if (err) break; -@@ -2941,6 +3045,12 @@ int proc_dostring(struct ctl_table *table, int write, +@@ -2941,6 +3048,12 @@ int proc_dostring(struct ctl_table *table, int write, return -ENOSYS; } @@ -74153,7 +77494,7 @@ index ea7ec7f..23d4094 100644 int proc_dointvec(struct ctl_table *table, int write, void __user *buffer, size_t *lenp, loff_t *ppos) { -@@ -2997,6 +3107,7 @@ EXPORT_SYMBOL(proc_dointvec_minmax); +@@ -2997,6 +3110,7 @@ EXPORT_SYMBOL(proc_dointvec_minmax); EXPORT_SYMBOL(proc_dointvec_userhz_jiffies); EXPORT_SYMBOL(proc_dointvec_ms_jiffies); EXPORT_SYMBOL(proc_dostring); @@ -74268,7 +77609,7 @@ index e660464..c8b9e67 100644 return cmd_attr_register_cpumask(info); else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK]) diff --git a/kernel/time.c b/kernel/time.c -index 73e416d..cfc6f69 100644 +index 73e416d..71905c5 100644 --- a/kernel/time.c +++ b/kernel/time.c @@ -163,6 +163,11 @@ int do_sys_settimeofday(const struct timespec *tv, const struct timezone *tz) @@ -74283,6 +77624,15 @@ index 73e416d..cfc6f69 100644 /* SMP safe, global irq locking makes it work. */ sys_tz = *tz; update_vsyscall_tz(); +@@ -499,7 +504,7 @@ EXPORT_SYMBOL(usecs_to_jiffies); + * The >> (NSEC_JIFFIE_SC - SEC_JIFFIE_SC) converts the scaled nsec + * value to a scaled second value. + */ +-unsigned long ++unsigned long __intentional_overflow(-1) + timespec_to_jiffies(const struct timespec *value) + { + unsigned long sec = value->tv_sec; diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c index 8a46f5d..bbe6f9c 100644 --- a/kernel/time/alarmtimer.c @@ -74449,7 +77799,7 @@ index 0b537f2..40d6c20 100644 return -ENOMEM; return 0; diff --git a/kernel/timer.c b/kernel/timer.c -index c219db6..90f3084 100644 +index c219db6..894cecb 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -1306,7 +1306,7 @@ void update_process_times(int user_tick) @@ -74461,6 +77811,15 @@ index c219db6..90f3084 100644 { struct tvec_base *base = __this_cpu_read(tvec_bases); +@@ -1433,7 +1433,7 @@ static void process_timeout(unsigned long __data) + * + * In all cases the return value is guaranteed to be non-negative. + */ +-signed long __sched schedule_timeout(signed long timeout) ++signed long __sched __intentional_overflow(-1) schedule_timeout(signed long timeout) + { + struct timer_list timer; + unsigned long expire; @@ -1725,7 +1725,7 @@ static int __cpuinit timer_cpu_notify(struct notifier_block *self, return NOTIFY_OK; } @@ -74502,7 +77861,7 @@ index 16fc34a..efd8bb8 100644 ret = -EIO; bt->dropped_file = debugfs_create_file("dropped", 0444, dir, bt, diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c -index 6c880e8..1f2d08b 100644 +index 0943d2a..76cb5bc 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -1587,12 +1587,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec) @@ -74835,10 +78194,10 @@ index 6fdc629..55739fe 100644 *data_page = bpage; diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 5638104..f047453 100644 +index 17edb14..a73e6fc 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -4209,10 +4209,9 @@ static const struct file_operations tracing_dyn_info_fops = { +@@ -4236,10 +4236,9 @@ static const struct file_operations tracing_dyn_info_fops = { }; #endif @@ -74850,7 +78209,7 @@ index 5638104..f047453 100644 static int once; if (d_tracer) -@@ -4232,10 +4231,9 @@ struct dentry *tracing_init_dentry(void) +@@ -4259,10 +4258,9 @@ struct dentry *tracing_init_dentry(void) return d_tracer; } @@ -75070,6 +78429,19 @@ index 209b379..7f76423 100644 tsk->comm); put_task_struct(tsk); } +diff --git a/kernel/utsname_sysctl.c b/kernel/utsname_sysctl.c +index 63da38c..639904e 100644 +--- a/kernel/utsname_sysctl.c ++++ b/kernel/utsname_sysctl.c +@@ -46,7 +46,7 @@ static void put_uts(ctl_table *table, int write, void *which) + static int proc_do_uts_string(ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) + { +- struct ctl_table uts_table; ++ ctl_table_no_const uts_table; + int r; + memcpy(&uts_table, table, sizeof(uts_table)); + uts_table.data = get_uts(table, write); diff --git a/kernel/watchdog.c b/kernel/watchdog.c index a8bc4d9..eae8357 100644 --- a/kernel/watchdog.c @@ -75097,9 +78469,36 @@ index 0ad2420..64da53b 100644 /* queue rebind_work, wq doesn't matter, use the default one */ if (test_and_set_bit(WORK_STRUCT_PENDING_BIT, diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug -index 82928f5..34320a0 100644 +index 82928f5..a3c7bb1 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug +@@ -510,7 +510,7 @@ config DEBUG_MUTEXES + + config DEBUG_LOCK_ALLOC + bool "Lock debugging: detect incorrect freeing of live locks" +- depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT ++ depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN + select DEBUG_SPINLOCK + select DEBUG_MUTEXES + select LOCKDEP +@@ -524,7 +524,7 @@ config DEBUG_LOCK_ALLOC + + config PROVE_LOCKING + bool "Lock debugging: prove locking correctness" +- depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT ++ depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN + select LOCKDEP + select DEBUG_SPINLOCK + select DEBUG_MUTEXES +@@ -616,7 +616,7 @@ config LOCKDEP + + config LOCK_STAT + bool "Lock usage statistics" +- depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT ++ depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN + select LOCKDEP + select DEBUG_SPINLOCK + select DEBUG_MUTEXES @@ -1103,6 +1103,7 @@ config LATENCYTOP depends on DEBUG_KERNEL depends on STACKTRACE_SUPPORT @@ -75242,6 +78641,28 @@ index 7c0e953..f642b5c 100644 } EXPORT_SYMBOL(devm_ioport_unmap); +diff --git a/lib/div64.c b/lib/div64.c +index 5b49191..d84e6fc 100644 +--- a/lib/div64.c ++++ b/lib/div64.c +@@ -58,7 +58,7 @@ uint32_t __attribute__((weak)) __div64_32(uint64_t *n, uint32_t base) + EXPORT_SYMBOL(__div64_32); + + #ifndef div_s64_rem +-s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder) ++s64 __intentional_overflow(-1) div_s64_rem(s64 dividend, s32 divisor, s32 *remainder) + { + u64 quotient; + +@@ -89,7 +89,7 @@ EXPORT_SYMBOL(div_s64_rem); + * 'http://www.hackersdelight.org/HDcode/newCode/divDouble.c' + */ + #ifndef div64_u64 +-u64 div64_u64(u64 dividend, u64 divisor) ++u64 __intentional_overflow(-1) div64_u64(u64 dividend, u64 divisor) + { + u32 high = divisor >> 32; + u64 quot; diff --git a/lib/dma-debug.c b/lib/dma-debug.c index fea790a..3bdd6b4 100644 --- a/lib/dma-debug.c @@ -75336,6 +78757,22 @@ index bd2bea9..6b3c95e 100644 if (atomic_read(&task->signal->live) != 1) return false; +diff --git a/lib/kobject.c b/lib/kobject.c +index 640bd98..306b7ab 100644 +--- a/lib/kobject.c ++++ b/lib/kobject.c +@@ -891,9 +891,9 @@ EXPORT_SYMBOL_GPL(kset_create_and_add); + + + static DEFINE_SPINLOCK(kobj_ns_type_lock); +-static const struct kobj_ns_type_operations *kobj_ns_ops_tbl[KOBJ_NS_TYPES]; ++static const struct kobj_ns_type_operations *kobj_ns_ops_tbl[KOBJ_NS_TYPES] __read_only; + +-int kobj_ns_type_register(const struct kobj_ns_type_operations *ops) ++int __init kobj_ns_type_register(const struct kobj_ns_type_operations *ops) + { + enum kobj_ns_type type = ops->type; + int error; diff --git a/lib/kref.c b/lib/kref.c index 3efb882..8492f4c 100644 --- a/lib/kref.c @@ -75350,7 +78787,7 @@ index 3efb882..8492f4c 100644 if (atomic_dec_and_test(&kref->refcount)) { diff --git a/lib/list_debug.c b/lib/list_debug.c -index b8029a5..111353c 100644 +index b8029a5..a72c207 100644 --- a/lib/list_debug.c +++ b/lib/list_debug.c @@ -8,7 +8,9 @@ @@ -75363,7 +78800,7 @@ index b8029a5..111353c 100644 /* * Insert a new entry between two known consecutive entries. * -@@ -16,18 +18,31 @@ +@@ -16,18 +18,32 @@ * the prev/next entries already! */ @@ -75387,7 +78824,7 @@ index b8029a5..111353c 100644 - next, prev->next, prev); + next, prev->next, prev) || + WARN(new == prev || new == next, -+ "list_add double add: new=%p, prev=%p, next=%p.\n", ++ "list_add double add: new=%p, prev=%p, next=%p.\n", + new, prev, next)) + return false; + return true; @@ -75399,10 +78836,11 @@ index b8029a5..111353c 100644 +{ + if (!__list_add_debug(new, prev, next)) + return; ++ next->prev = new; new->next = next; new->prev = prev; -@@ -35,7 +50,7 @@ void __list_add(struct list_head *new, +@@ -35,7 +51,7 @@ void __list_add(struct list_head *new, } EXPORT_SYMBOL(__list_add); @@ -75411,7 +78849,7 @@ index b8029a5..111353c 100644 { struct list_head *prev, *next; -@@ -54,9 +69,16 @@ void __list_del_entry(struct list_head *entry) +@@ -54,9 +70,16 @@ void __list_del_entry(struct list_head *entry) WARN(next->prev != entry, "list_del corruption. next->prev should be %p, " "but was %p\n", entry, next->prev)) @@ -75429,19 +78867,14 @@ index b8029a5..111353c 100644 } EXPORT_SYMBOL(__list_del_entry); -@@ -73,3 +95,40 @@ void list_del(struct list_head *entry) +@@ -73,3 +96,76 @@ void list_del(struct list_head *entry) entry->prev = LIST_POISON2; } EXPORT_SYMBOL(list_del); +#endif + -+void pax_list_add_tail(struct list_head *new, struct list_head *head) ++void __pax_list_add(struct list_head *new, struct list_head *prev, struct list_head *next) +{ -+ struct list_head *prev, *next; -+ -+ prev = head->prev; -+ next = head; -+ +#ifdef CONFIG_DEBUG_LIST + if (!__list_add_debug(new, prev, next)) + return; @@ -75454,7 +78887,7 @@ index b8029a5..111353c 100644 + prev->next = new; + pax_close_kernel(); +} -+EXPORT_SYMBOL(pax_list_add_tail); ++EXPORT_SYMBOL(__pax_list_add); + +void pax_list_del(struct list_head *entry) +{ @@ -75470,6 +78903,47 @@ index b8029a5..111353c 100644 + pax_close_kernel(); +} +EXPORT_SYMBOL(pax_list_del); ++ ++void pax_list_del_init(struct list_head *entry) ++{ ++ pax_open_kernel(); ++ __list_del(entry->prev, entry->next); ++ INIT_LIST_HEAD(entry); ++ pax_close_kernel(); ++} ++EXPORT_SYMBOL(pax_list_del_init); ++ ++void __pax_list_add_rcu(struct list_head *new, ++ struct list_head *prev, struct list_head *next) ++{ ++#ifdef CONFIG_DEBUG_LIST ++ if (!__list_add_debug(new, prev, next)) ++ return; ++#endif ++ ++ pax_open_kernel(); ++ new->next = next; ++ new->prev = prev; ++ rcu_assign_pointer(list_next_rcu(prev), new); ++ next->prev = new; ++ pax_close_kernel(); ++} ++EXPORT_SYMBOL(__pax_list_add_rcu); ++ ++void pax_list_del_rcu(struct list_head *entry) ++{ ++#ifdef CONFIG_DEBUG_LIST ++ if (!__list_del_entry_debug(entry)) ++ return; ++#endif ++ ++ pax_open_kernel(); ++ __list_del(entry->prev, entry->next); ++ entry->next = LIST_POISON1; ++ entry->prev = LIST_POISON2; ++ pax_close_kernel(); ++} ++EXPORT_SYMBOL(pax_list_del_rcu); diff --git a/lib/radix-tree.c b/lib/radix-tree.c index d9df745..e73c2fe 100644 --- a/lib/radix-tree.c @@ -75737,10 +79211,52 @@ index 470cbb4..8d01b5a 100644 /* if an huge pmd materialized from under us just retry later */ if (unlikely(pmd_trans_huge(*pmd))) diff --git a/mm/hugetlb.c b/mm/hugetlb.c -index d6c0fdf..e87d21d 100644 +index 4c7d42a..6d2f988 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c -@@ -2461,6 +2461,27 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma, +@@ -1973,15 +1973,17 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy, + struct hstate *h = &default_hstate; + unsigned long tmp; + int ret; ++ ctl_table_no_const hugetlb_table; + + tmp = h->max_huge_pages; + + if (write && h->order >= MAX_ORDER) + return -EINVAL; + +- table->data = &tmp; +- table->maxlen = sizeof(unsigned long); +- ret = proc_doulongvec_minmax(table, write, buffer, length, ppos); ++ hugetlb_table = *table; ++ hugetlb_table.data = &tmp; ++ hugetlb_table.maxlen = sizeof(unsigned long); ++ ret = proc_doulongvec_minmax(&hugetlb_table, write, buffer, length, ppos); + if (ret) + goto out; + +@@ -2038,15 +2040,17 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write, + struct hstate *h = &default_hstate; + unsigned long tmp; + int ret; ++ ctl_table_no_const hugetlb_table; + + tmp = h->nr_overcommit_huge_pages; + + if (write && h->order >= MAX_ORDER) + return -EINVAL; + +- table->data = &tmp; +- table->maxlen = sizeof(unsigned long); +- ret = proc_doulongvec_minmax(table, write, buffer, length, ppos); ++ hugetlb_table = *table; ++ hugetlb_table.data = &tmp; ++ hugetlb_table.maxlen = sizeof(unsigned long); ++ ret = proc_doulongvec_minmax(&hugetlb_table, write, buffer, length, ppos); + if (ret) + goto out; + +@@ -2465,6 +2469,27 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma, return 1; } @@ -75768,7 +79284,7 @@ index d6c0fdf..e87d21d 100644 /* * Hugetlb_cow() should be called with page lock of the original hugepage held. */ -@@ -2563,6 +2584,11 @@ retry_avoidcopy: +@@ -2567,6 +2592,11 @@ retry_avoidcopy: make_huge_pte(vma, new_page, 1)); page_remove_rmap(old_page); hugepage_add_new_anon_rmap(new_page, vma, address); @@ -75780,7 +79296,7 @@ index d6c0fdf..e87d21d 100644 /* Make the old page be freed below */ new_page = old_page; mmu_notifier_invalidate_range_end(mm, -@@ -2714,6 +2740,10 @@ retry: +@@ -2718,6 +2748,10 @@ retry: && (vma->vm_flags & VM_SHARED))); set_huge_pte_at(mm, address, ptep, new_pte); @@ -75791,7 +79307,7 @@ index d6c0fdf..e87d21d 100644 if ((flags & FAULT_FLAG_WRITE) && !(vma->vm_flags & VM_SHARED)) { /* Optimization, do the COW without a second fault */ ret = hugetlb_cow(mm, vma, address, ptep, new_pte, page); -@@ -2743,6 +2773,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, +@@ -2747,6 +2781,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, static DEFINE_MUTEX(hugetlb_instantiation_mutex); struct hstate *h = hstate_vma(vma); @@ -75802,7 +79318,7 @@ index d6c0fdf..e87d21d 100644 ptep = huge_pte_offset(mm, address); if (ptep) { entry = huge_ptep_get(ptep); -@@ -2754,6 +2788,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, +@@ -2758,6 +2796,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, VM_FAULT_SET_HINDEX(h - hstates); } @@ -75966,7 +79482,7 @@ index 23d3a6b..e10d35a 100644 if (end == start) goto out; diff --git a/mm/memory-failure.c b/mm/memory-failure.c -index 1b03878..de5405e 100644 +index 1b03878..d62c02b 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -61,7 +61,7 @@ int sysctl_memory_failure_early_kill __read_mostly = 0; @@ -75987,6 +79503,15 @@ index 1b03878..de5405e 100644 #ifdef __ARCH_SI_TRAPNO si.si_trapno = trapno; #endif +@@ -750,7 +750,7 @@ static struct page_state { + unsigned long res; + char *msg; + int (*action)(struct page *p, unsigned long pfn); +-} error_states[] = { ++} __do_const error_states[] = { + { reserved, reserved, "reserved kernel", me_kernel }, + /* + * free pages are specially detected outside this table: @@ -1010,7 +1010,7 @@ int __memory_failure(unsigned long pfn, int trapno, int flags) } @@ -78744,9 +82269,18 @@ index f59e170..34e2a2b 100644 new->vm_region = region; diff --git a/mm/page-writeback.c b/mm/page-writeback.c -index 50f0824..97710b4 100644 +index 50f0824..0ade43a 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c +@@ -522,7 +522,7 @@ unsigned long bdi_dirty_limit(struct backing_dev_info *bdi, unsigned long dirty) + * card's bdi_dirty may rush to many times higher than bdi_setpoint. + * - the bdi dirty thresh drops quickly due to change of JBOD workload + */ +-static unsigned long bdi_position_ratio(struct backing_dev_info *bdi, ++static unsigned long __intentional_overflow(-1) bdi_position_ratio(struct backing_dev_info *bdi, + unsigned long thresh, + unsigned long bg_thresh, + unsigned long dirty, @@ -1380,7 +1380,7 @@ ratelimit_handler(struct notifier_block *self, unsigned long u, void *v) return NOTIFY_DONE; } @@ -78757,7 +82291,7 @@ index 50f0824..97710b4 100644 .next = NULL, }; diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 5c028e2..501e1e9 100644 +index 5c028e2..83e69ea 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -57,6 +57,7 @@ @@ -78821,28 +82355,27 @@ index 5c028e2..501e1e9 100644 /* * permit the bootmem allocator to evade page validation on high-order frees */ -@@ -715,6 +739,20 @@ void __meminit __free_pages_bootmem(struct page *page, unsigned int order) +@@ -715,6 +739,19 @@ void __meminit __free_pages_bootmem(struct page *page, unsigned int order) set_page_count(p, 0); } +#ifdef CONFIG_PAX_LATENT_ENTROPY -+ if (extra_latent_entropy && !PageHighMem(page) && page_to_pfn(page) < 0x100000) { -+ unsigned int nr_pages = 1 << order; -+ u64 hash = 0; -+ size_t index, end = PAGE_SIZE * nr_pages / sizeof hash; -+ const u64 *data = lowmem_page_address(page); -+ -+ for (index = 0; index < end; index++) -+ hash ^= hash + data[index]; -+ latent_entropy ^= hash; -+ add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy)); -+ } ++ if (extra_latent_entropy && !PageHighMem(page) && page_to_pfn(page) < 0x100000) { ++ u64 hash = 0; ++ size_t index, end = PAGE_SIZE * (1UL << order) / sizeof hash; ++ const u64 *data = lowmem_page_address(page); ++ ++ for (index = 0; index < end; index++) ++ hash ^= hash + data[index]; ++ latent_entropy ^= hash; ++ add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy)); ++ } +#endif + set_page_refcounted(page); __free_pages(page, order); } -@@ -784,8 +822,10 @@ static int prep_new_page(struct page *page, int order, gfp_t gfp_flags) +@@ -784,8 +821,10 @@ static int prep_new_page(struct page *page, int order, gfp_t gfp_flags) arch_alloc_page(page, order); kernel_map_pages(page, 1 << order, 1); @@ -78853,7 +82386,7 @@ index 5c028e2..501e1e9 100644 if (order && (gfp_flags & __GFP_COMP)) prep_compound_page(page, order); -@@ -3395,7 +3435,13 @@ static int pageblock_is_reserved(unsigned long start_pfn, unsigned long end_pfn) +@@ -3395,7 +3434,13 @@ static int pageblock_is_reserved(unsigned long start_pfn, unsigned long end_pfn) unsigned long pfn; for (pfn = start_pfn; pfn < end_pfn; pfn++) { @@ -79107,7 +82640,7 @@ index a78acf0..a31df98 100644 return -ENOMEM; diff --git a/mm/slab.c b/mm/slab.c -index 4c3b671..40fa2eb 100644 +index 4c3b671..020b6bb 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -151,7 +151,7 @@ @@ -79243,7 +82776,15 @@ index 4c3b671..40fa2eb 100644 sizes++; names++; } -@@ -4325,10 +4342,10 @@ static int s_show(struct seq_file *m, void *p) +@@ -3879,6 +3896,7 @@ void kfree(const void *objp) + + if (unlikely(ZERO_OR_NULL_PTR(objp))) + return; ++ VM_BUG_ON(!virt_addr_valid(objp)); + local_irq_save(flags); + kfree_debugcheck(objp); + c = virt_to_cache(objp); +@@ -4325,10 +4343,10 @@ static int s_show(struct seq_file *m, void *p) } /* cpu stats */ { @@ -79258,7 +82799,7 @@ index 4c3b671..40fa2eb 100644 seq_printf(m, " : cpustat %6lu %6lu %6lu %6lu", allochit, allocmiss, freehit, freemiss); -@@ -4587,13 +4604,71 @@ static int __init slab_proc_init(void) +@@ -4587,13 +4605,71 @@ static int __init slab_proc_init(void) { proc_create("slabinfo",S_IWUSR|S_IRUSR,NULL,&proc_slabinfo_operations); #ifdef CONFIG_DEBUG_SLAB_LEAK @@ -79332,7 +82873,7 @@ index 4c3b671..40fa2eb 100644 * ksize - get the actual amount of memory allocated for a given object * @objp: Pointer to the object diff --git a/mm/slob.c b/mm/slob.c -index 8105be4..8d6cd07 100644 +index 8105be4..e1af823 100644 --- a/mm/slob.c +++ b/mm/slob.c @@ -29,7 +29,7 @@ @@ -79484,7 +83025,11 @@ index 8105be4..8d6cd07 100644 return ret; } EXPORT_SYMBOL(__kmalloc_node); -@@ -533,13 +545,88 @@ void kfree(const void *block) +@@ -530,16 +542,92 @@ void kfree(const void *block) + return; + kmemleak_free(block); + ++ VM_BUG_ON(!virt_addr_valid(block)); sp = slob_page(block); if (is_slob_page(sp)) { int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); @@ -79576,7 +83121,7 @@ index 8105be4..8d6cd07 100644 /* can't use ksize for kmem_cache_alloc memory, only kmalloc */ size_t ksize(const void *block) { -@@ -552,10 +639,10 @@ size_t ksize(const void *block) +@@ -552,10 +640,10 @@ size_t ksize(const void *block) sp = slob_page(block); if (is_slob_page(sp)) { int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); @@ -79590,7 +83135,7 @@ index 8105be4..8d6cd07 100644 } EXPORT_SYMBOL(ksize); -@@ -571,8 +658,13 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size, +@@ -571,8 +659,13 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size, { struct kmem_cache *c; @@ -79604,7 +83149,7 @@ index 8105be4..8d6cd07 100644 if (c) { c->name = name; -@@ -614,17 +706,25 @@ void *kmem_cache_alloc_node(struct kmem_cache *c, gfp_t flags, int node) +@@ -614,17 +707,25 @@ void *kmem_cache_alloc_node(struct kmem_cache *c, gfp_t flags, int node) lockdep_trace_alloc(flags); @@ -79630,7 +83175,7 @@ index 8105be4..8d6cd07 100644 if (c->ctor) c->ctor(b); -@@ -636,10 +736,16 @@ EXPORT_SYMBOL(kmem_cache_alloc_node); +@@ -636,10 +737,16 @@ EXPORT_SYMBOL(kmem_cache_alloc_node); static void __kmem_cache_free(void *b, int size) { @@ -79649,7 +83194,7 @@ index 8105be4..8d6cd07 100644 } static void kmem_rcu_free(struct rcu_head *head) -@@ -652,17 +758,31 @@ static void kmem_rcu_free(struct rcu_head *head) +@@ -652,17 +759,31 @@ static void kmem_rcu_free(struct rcu_head *head) void kmem_cache_free(struct kmem_cache *c, void *b) { @@ -79685,9 +83230,18 @@ index 8105be4..8d6cd07 100644 EXPORT_SYMBOL(kmem_cache_free); diff --git a/mm/slub.c b/mm/slub.c -index 5710788..dbb5d49 100644 +index 5710788..431fdf8 100644 --- a/mm/slub.c +++ b/mm/slub.c +@@ -186,7 +186,7 @@ static enum { + PARTIAL, /* Kmem_cache_node works */ + UP, /* Everything works but does not show up in sysfs */ + SYSFS /* Sysfs up */ +-} slab_state = DOWN; ++} slab_state __read_only = DOWN; + + /* A list of all slab caches on the system */ + static DECLARE_RWSEM(slub_lock); @@ -208,7 +208,7 @@ struct track { enum track_item { TRACK_ALLOC, TRACK_FREE }; @@ -79828,7 +83382,15 @@ index 5710788..dbb5d49 100644 size_t ksize(const void *object) { struct page *page; -@@ -3645,7 +3710,7 @@ static void __init kmem_cache_bootstrap_fixup(struct kmem_cache *s) +@@ -3435,6 +3500,7 @@ void kfree(const void *x) + if (unlikely(ZERO_OR_NULL_PTR(x))) + return; + ++ VM_BUG_ON(!virt_addr_valid(x)); + page = virt_to_head_page(x); + if (unlikely(!PageSlab(page))) { + BUG_ON(!PageCompound(page)); +@@ -3645,7 +3711,7 @@ static void __init kmem_cache_bootstrap_fixup(struct kmem_cache *s) int node; list_add(&s->list, &slab_caches); @@ -79837,7 +83399,7 @@ index 5710788..dbb5d49 100644 for_each_node_state(node, N_NORMAL_MEMORY) { struct kmem_cache_node *n = get_node(s, node); -@@ -3762,17 +3827,17 @@ void __init kmem_cache_init(void) +@@ -3762,17 +3828,17 @@ void __init kmem_cache_init(void) /* Caches that are not of the two-to-the-power-of size */ if (KMALLOC_MIN_SIZE <= 32) { @@ -79858,7 +83420,7 @@ index 5710788..dbb5d49 100644 caches++; } -@@ -3814,6 +3879,22 @@ void __init kmem_cache_init(void) +@@ -3814,6 +3880,22 @@ void __init kmem_cache_init(void) } } #endif @@ -79881,7 +83443,7 @@ index 5710788..dbb5d49 100644 printk(KERN_INFO "SLUB: Genslabs=%d, HWalign=%d, Order=%d-%d, MinObjects=%d," " CPUs=%d, Nodes=%d\n", -@@ -3840,7 +3921,7 @@ static int slab_unmergeable(struct kmem_cache *s) +@@ -3840,7 +3922,7 @@ static int slab_unmergeable(struct kmem_cache *s) /* * We may have set a slab to be unmergeable during bootstrap. */ @@ -79890,7 +83452,7 @@ index 5710788..dbb5d49 100644 return 1; return 0; -@@ -3899,7 +3980,7 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size, +@@ -3899,7 +3981,7 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size, down_write(&slub_lock); s = find_mergeable(size, align, flags, name, ctor); if (s) { @@ -79899,7 +83461,7 @@ index 5710788..dbb5d49 100644 /* * Adjust the object sizes so that we clear * the complete object on kzalloc. -@@ -3908,7 +3989,7 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size, +@@ -3908,7 +3990,7 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size, s->inuse = max_t(int, s->inuse, ALIGN(size, sizeof(void *))); if (sysfs_slab_alias(s, name)) { @@ -79908,7 +83470,7 @@ index 5710788..dbb5d49 100644 goto err; } up_write(&slub_lock); -@@ -3979,7 +4060,7 @@ static int __cpuinit slab_cpuup_callback(struct notifier_block *nfb, +@@ -3979,7 +4061,7 @@ static int __cpuinit slab_cpuup_callback(struct notifier_block *nfb, return NOTIFY_OK; } @@ -79917,7 +83479,7 @@ index 5710788..dbb5d49 100644 .notifier_call = slab_cpuup_callback }; -@@ -4037,7 +4118,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags, +@@ -4037,7 +4119,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags, } #endif @@ -79926,7 +83488,7 @@ index 5710788..dbb5d49 100644 static int count_inuse(struct page *page) { return page->inuse; -@@ -4424,12 +4505,12 @@ static void resiliency_test(void) +@@ -4424,12 +4506,12 @@ static void resiliency_test(void) validate_slab_cache(kmalloc_caches[9]); } #else @@ -79941,7 +83503,7 @@ index 5710788..dbb5d49 100644 enum slab_stat_type { SL_ALL, /* All slabs */ SL_PARTIAL, /* Only partially allocated slabs */ -@@ -4670,7 +4751,7 @@ SLAB_ATTR_RO(ctor); +@@ -4670,7 +4752,7 @@ SLAB_ATTR_RO(ctor); static ssize_t aliases_show(struct kmem_cache *s, char *buf) { @@ -79950,7 +83512,7 @@ index 5710788..dbb5d49 100644 } SLAB_ATTR_RO(aliases); -@@ -5237,6 +5318,7 @@ static char *create_unique_id(struct kmem_cache *s) +@@ -5237,6 +5319,7 @@ static char *create_unique_id(struct kmem_cache *s) return name; } @@ -79958,7 +83520,7 @@ index 5710788..dbb5d49 100644 static int sysfs_slab_add(struct kmem_cache *s) { int err; -@@ -5299,6 +5381,7 @@ static void sysfs_slab_remove(struct kmem_cache *s) +@@ -5299,6 +5382,7 @@ static void sysfs_slab_remove(struct kmem_cache *s) kobject_del(&s->kobj); kobject_put(&s->kobj); } @@ -79966,7 +83528,7 @@ index 5710788..dbb5d49 100644 /* * Need to buffer aliases during bootup until sysfs becomes -@@ -5312,6 +5395,7 @@ struct saved_alias { +@@ -5312,6 +5396,7 @@ struct saved_alias { static struct saved_alias *alias_list; @@ -79974,7 +83536,7 @@ index 5710788..dbb5d49 100644 static int sysfs_slab_alias(struct kmem_cache *s, const char *name) { struct saved_alias *al; -@@ -5334,6 +5418,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name) +@@ -5334,6 +5419,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name) alias_list = al; return 0; } @@ -80395,6 +83957,28 @@ index 5471628..3bd1bf5 100644 struct vlan_net *vn; vn = net_generic(net, vlan_net_id); +diff --git a/net/9p/mod.c b/net/9p/mod.c +index 2664d12..b2803fe 100644 +--- a/net/9p/mod.c ++++ b/net/9p/mod.c +@@ -57,7 +57,7 @@ static LIST_HEAD(v9fs_trans_list); + void v9fs_register_trans(struct p9_trans_module *m) + { + spin_lock(&v9fs_trans_lock); +- list_add_tail(&m->list, &v9fs_trans_list); ++ pax_list_add_tail((struct list_head *)&m->list, &v9fs_trans_list); + spin_unlock(&v9fs_trans_lock); + } + EXPORT_SYMBOL(v9fs_register_trans); +@@ -70,7 +70,7 @@ EXPORT_SYMBOL(v9fs_register_trans); + void v9fs_unregister_trans(struct p9_trans_module *m) + { + spin_lock(&v9fs_trans_lock); +- list_del_init(&m->list); ++ pax_list_del_init((struct list_head *)&m->list); + spin_unlock(&v9fs_trans_lock); + } + EXPORT_SYMBOL(v9fs_unregister_trans); diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c index fdfdb57..38d368c 100644 --- a/net/9p/trans_fd.c @@ -80500,6 +84084,28 @@ index 23f45ce..c748f1a 100644 __AAL_STAT_ITEMS #undef __HANDLE_ITEM } +diff --git a/net/ax25/sysctl_net_ax25.c b/net/ax25/sysctl_net_ax25.c +index ebe0ef3..d5b0a8e 100644 +--- a/net/ax25/sysctl_net_ax25.c ++++ b/net/ax25/sysctl_net_ax25.c +@@ -31,7 +31,7 @@ static int min_ds_timeout[1], max_ds_timeout[] = {65535000}; + + static struct ctl_table_header *ax25_table_header; + +-static ctl_table *ax25_table; ++static ctl_table_no_const *ax25_table; + static int ax25_table_size; + + static struct ctl_path ax25_path[] = { +@@ -174,7 +174,7 @@ void ax25_register_sysctl(void) + } + + for (n = 0, ax25_dev = ax25_dev_list; ax25_dev != NULL; ax25_dev = ax25_dev->next) { +- struct ctl_table *child = kmemdup(ax25_param_table, ++ ctl_table_no_const *child = kmemdup(ax25_param_table, + sizeof(ax25_param_table), + GFP_ATOMIC); + if (!child) { diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c index 3512e25..2b33401 100644 --- a/net/batman-adv/bat_iv_ogm.c @@ -81243,7 +84849,7 @@ index 68bbf9f..5ef0d12 100644 return err; diff --git a/net/core/dev.c b/net/core/dev.c -index 2aac4ec..2f9871c 100644 +index b23bbbf..1e6a604 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1142,10 +1142,14 @@ void dev_load(struct net *net, const char *name) @@ -81306,7 +84912,7 @@ index 2aac4ec..2f9871c 100644 { struct softnet_data *sd = &__get_cpu_var(softnet_data); -@@ -3332,7 +3336,7 @@ ncls: +@@ -3333,7 +3337,7 @@ ncls: if (pt_prev) { ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev); } else { @@ -81315,7 +84921,7 @@ index 2aac4ec..2f9871c 100644 kfree_skb(skb); /* Jamal, now you will not able to escape explaining * me how you were going to use this. :-) -@@ -3897,7 +3901,7 @@ void netif_napi_del(struct napi_struct *napi) +@@ -3898,7 +3902,7 @@ void netif_napi_del(struct napi_struct *napi) } EXPORT_SYMBOL(netif_napi_del); @@ -81324,7 +84930,7 @@ index 2aac4ec..2f9871c 100644 { struct softnet_data *sd = &__get_cpu_var(softnet_data); unsigned long time_limit = jiffies + 2; -@@ -4367,8 +4371,13 @@ static int ptype_seq_show(struct seq_file *seq, void *v) +@@ -4368,8 +4372,13 @@ static int ptype_seq_show(struct seq_file *seq, void *v) else seq_printf(seq, "%04x", ntohs(pt->type)); @@ -81338,7 +84944,16 @@ index 2aac4ec..2f9871c 100644 } return 0; -@@ -5925,7 +5934,7 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev, +@@ -4431,7 +4440,7 @@ static void __net_exit dev_proc_net_exit(struct net *net) + proc_net_remove(net, "dev"); + } + +-static struct pernet_operations __net_initdata dev_proc_ops = { ++static struct pernet_operations __net_initconst dev_proc_ops = { + .init = dev_proc_net_init, + .exit = dev_proc_net_exit, + }; +@@ -5926,7 +5935,7 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev, } else { netdev_stats_to_stats64(storage, &dev->stats); } @@ -81347,6 +84962,37 @@ index 2aac4ec..2f9871c 100644 return storage; } EXPORT_SYMBOL(dev_get_stats); +@@ -6505,7 +6514,7 @@ static void __net_exit netdev_exit(struct net *net) + kfree(net->dev_index_head); + } + +-static struct pernet_operations __net_initdata netdev_net_ops = { ++static struct pernet_operations __net_initconst netdev_net_ops = { + .init = netdev_init, + .exit = netdev_exit, + }; +@@ -6567,7 +6576,7 @@ static void __net_exit default_device_exit_batch(struct list_head *net_list) + rtnl_unlock(); + } + +-static struct pernet_operations __net_initdata default_device_ops = { ++static struct pernet_operations __net_initconst default_device_ops = { + .exit = default_device_exit, + .exit_batch = default_device_exit_batch, + }; +diff --git a/net/core/dev_addr_lists.c b/net/core/dev_addr_lists.c +index 0387da0..dbfe3a0 100644 +--- a/net/core/dev_addr_lists.c ++++ b/net/core/dev_addr_lists.c +@@ -723,7 +723,7 @@ static void __net_exit dev_mc_net_exit(struct net *net) + proc_net_remove(net, "dev_mcast"); + } + +-static struct pernet_operations __net_initdata dev_mc_net_ops = { ++static struct pernet_operations __net_initconst dev_mc_net_ops = { + .init = dev_mc_net_init, + .exit = dev_mc_net_exit, + }; diff --git a/net/core/flow.c b/net/core/flow.c index e318c7e..168b1d0 100644 --- a/net/core/flow.c @@ -81409,8 +85055,61 @@ index c40f27e..7f49254 100644 return -EFAULT; m->msg_iov = iov; +diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c +index 0329404..ab4e13a 100644 +--- a/net/core/net-sysfs.c ++++ b/net/core/net-sysfs.c +@@ -1334,7 +1334,7 @@ void netdev_class_remove_file(struct class_attribute *class_attr) + } + EXPORT_SYMBOL(netdev_class_remove_file); + +-int netdev_kobject_init(void) ++int __init netdev_kobject_init(void) + { + kobj_ns_type_register(&net_ns_type_operations); + return class_register(&net_class); +diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c +index dd00b71..74d1779 100644 +--- a/net/core/net_namespace.c ++++ b/net/core/net_namespace.c +@@ -422,7 +422,7 @@ static int __register_pernet_operations(struct list_head *list, + int error; + LIST_HEAD(net_exit_list); + +- list_add_tail(&ops->list, list); ++ pax_list_add_tail((struct list_head *)&ops->list, list); + if (ops->init || (ops->id && ops->size)) { + for_each_net(net) { + error = ops_init(ops, net); +@@ -435,7 +435,7 @@ static int __register_pernet_operations(struct list_head *list, + + out_undo: + /* If I have an error cleanup all namespaces I initialized */ +- list_del(&ops->list); ++ pax_list_del((struct list_head *)&ops->list); + ops_exit_list(ops, &net_exit_list); + ops_free_list(ops, &net_exit_list); + return error; +@@ -446,7 +446,7 @@ static void __unregister_pernet_operations(struct pernet_operations *ops) + struct net *net; + LIST_HEAD(net_exit_list); + +- list_del(&ops->list); ++ pax_list_del((struct list_head *)&ops->list); + for_each_net(net) + list_add_tail(&net->exit_list, &net_exit_list); + ops_exit_list(ops, &net_exit_list); +@@ -580,7 +580,7 @@ int register_pernet_device(struct pernet_operations *ops) + mutex_lock(&net_mutex); + error = register_pernet_operations(&pernet_list, ops); + if (!error && (first_device == &pernet_list)) +- first_device = &ops->list; ++ first_device = (struct list_head *)&ops->list; + mutex_unlock(&net_mutex); + return error; + } diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c -index 5229c7f..d5c2289 100644 +index 3b5e680..d9180cb 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -57,7 +57,7 @@ struct rtnl_link { @@ -81422,14 +85121,32 @@ index 5229c7f..d5c2289 100644 static DEFINE_MUTEX(rtnl_mutex); -@@ -973,6 +973,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev, - * report anything. - */ - ivi.spoofchk = -1; -+ memset(ivi.mac, 0, sizeof(ivi.mac)); - if (dev->netdev_ops->ndo_get_vf_config(dev, i, &ivi)) - break; - vf_mac.vf = +@@ -284,10 +284,13 @@ static LIST_HEAD(link_ops); + */ + int __rtnl_link_register(struct rtnl_link_ops *ops) + { +- if (!ops->dellink) +- ops->dellink = unregister_netdevice_queue; ++ if (!ops->dellink) { ++ pax_open_kernel(); ++ *(void **)&ops->dellink = unregister_netdevice_queue; ++ pax_close_kernel(); ++ } + +- list_add_tail(&ops->list, &link_ops); ++ pax_list_add_tail((struct list_head *)&ops->list, &link_ops); + return 0; + } + EXPORT_SYMBOL_GPL(__rtnl_link_register); +@@ -334,7 +337,7 @@ void __rtnl_link_unregister(struct rtnl_link_ops *ops) + for_each_net(net) { + __rtnl_kill_links(net, ops); + } +- list_del(&ops->list); ++ pax_list_del((struct list_head *)&ops->list); + } + EXPORT_SYMBOL_GPL(__rtnl_link_unregister); + diff --git a/net/core/scm.c b/net/core/scm.c index ff52ad0..aff1c0f 100644 --- a/net/core/scm.c @@ -81471,7 +85188,7 @@ index ff52ad0..aff1c0f 100644 { int new_fd; diff --git a/net/core/sock.c b/net/core/sock.c -index 1e8a882..af175b4 100644 +index 1e8a882..5439005 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -289,7 +289,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb) @@ -81519,6 +85236,24 @@ index 1e8a882..af175b4 100644 goto discard_and_relse; } +@@ -406,7 +406,7 @@ struct dst_entry *sk_dst_check(struct sock *sk, u32 cookie) + } + EXPORT_SYMBOL(sk_dst_check); + +-static int sock_bindtodevice(struct sock *sk, char __user *optval, int optlen) ++static int sock_bindtodevice(struct sock *sk, char __user *optval, unsigned int optlen) + { + int ret = -ENOPROTOOPT; + #ifdef CONFIG_NETDEVICES +@@ -420,7 +420,7 @@ static int sock_bindtodevice(struct sock *sk, char __user *optval, int optlen) + goto out; + + ret = -EINVAL; +- if (optlen < 0) ++ if (optlen > INT_MAX) + goto out; + + /* Bind this socket to a particular device like "eth0", @@ -772,12 +772,12 @@ int sock_getsockopt(struct socket *sock, int level, int optname, struct timeval tm; } v; @@ -81575,66 +85310,73 @@ index 1e8a882..af175b4 100644 } EXPORT_SYMBOL(sock_init_data); -diff --git a/net/dcb/dcbnl.c b/net/dcb/dcbnl.c -index d860530..2f9517d 100644 ---- a/net/dcb/dcbnl.c -+++ b/net/dcb/dcbnl.c -@@ -336,6 +336,7 @@ static int dcbnl_getperm_hwaddr(struct net_device *netdev, struct nlattr **tb, - dcb->dcb_family = AF_UNSPEC; - dcb->cmd = DCB_CMD_GPERM_HWADDR; +@@ -2562,7 +2562,7 @@ static __net_exit void proto_exit_net(struct net *net) + } -+ memset(perm_addr, 0, sizeof(perm_addr)); - netdev->dcbnl_ops->getpermhwaddr(netdev, perm_addr); - ret = nla_put(dcbnl_skb, DCB_ATTR_PERM_HWADDR, sizeof(perm_addr), -@@ -1238,6 +1239,7 @@ static int dcbnl_ieee_fill(struct sk_buff *skb, struct net_device *netdev) +-static __net_initdata struct pernet_operations proto_net_ops = { ++static __net_initconst struct pernet_operations proto_net_ops = { + .init = proto_init_net, + .exit = proto_exit_net, + }; +diff --git a/net/core/sysctl_net_core.c b/net/core/sysctl_net_core.c +index 77a65f0..ebd69a8 100644 +--- a/net/core/sysctl_net_core.c ++++ b/net/core/sysctl_net_core.c +@@ -25,7 +25,7 @@ static int rps_sock_flow_sysctl(ctl_table *table, int write, + { + unsigned int orig_size, size; + int ret, i; +- ctl_table tmp = { ++ ctl_table_no_const tmp = { + .data = &size, + .maxlen = sizeof(size), + .mode = table->mode +@@ -205,29 +205,27 @@ __net_initdata struct ctl_path net_core_path[] = { - if (ops->ieee_getets) { - struct ieee_ets ets; -+ memset(&ets, 0, sizeof(ets)); - err = ops->ieee_getets(netdev, &ets); - if (!err) - NLA_PUT(skb, DCB_ATTR_IEEE_ETS, sizeof(ets), &ets); -@@ -1245,6 +1247,7 @@ static int dcbnl_ieee_fill(struct sk_buff *skb, struct net_device *netdev) + static __net_init int sysctl_core_net_init(struct net *net) + { +- struct ctl_table *tbl; ++ ctl_table_no_const *tbl = NULL; - if (ops->ieee_getpfc) { - struct ieee_pfc pfc; -+ memset(&pfc, 0, sizeof(pfc)); - err = ops->ieee_getpfc(netdev, &pfc); - if (!err) - NLA_PUT(skb, DCB_ATTR_IEEE_PFC, sizeof(pfc), &pfc); -@@ -1277,6 +1280,7 @@ static int dcbnl_ieee_fill(struct sk_buff *skb, struct net_device *netdev) - /* get peer info if available */ - if (ops->ieee_peer_getets) { - struct ieee_ets ets; -+ memset(&ets, 0, sizeof(ets)); - err = ops->ieee_peer_getets(netdev, &ets); - if (!err) - NLA_PUT(skb, DCB_ATTR_IEEE_PEER_ETS, sizeof(ets), &ets); -@@ -1284,6 +1288,7 @@ static int dcbnl_ieee_fill(struct sk_buff *skb, struct net_device *netdev) + net->core.sysctl_somaxconn = SOMAXCONN; - if (ops->ieee_peer_getpfc) { - struct ieee_pfc pfc; -+ memset(&pfc, 0, sizeof(pfc)); - err = ops->ieee_peer_getpfc(netdev, &pfc); - if (!err) - NLA_PUT(skb, DCB_ATTR_IEEE_PEER_PFC, sizeof(pfc), &pfc); -@@ -1463,6 +1468,7 @@ static int dcbnl_cee_fill(struct sk_buff *skb, struct net_device *netdev) - /* peer info if available */ - if (ops->cee_peer_getpg) { - struct cee_pg pg; -+ memset(&pg, 0, sizeof(pg)); - err = ops->cee_peer_getpg(netdev, &pg); - if (!err) - NLA_PUT(skb, DCB_ATTR_CEE_PEER_PG, sizeof(pg), &pg); -@@ -1470,6 +1476,7 @@ static int dcbnl_cee_fill(struct sk_buff *skb, struct net_device *netdev) +- tbl = netns_core_table; + if (!net_eq(net, &init_net)) { +- tbl = kmemdup(tbl, sizeof(netns_core_table), GFP_KERNEL); ++ tbl = kmemdup(netns_core_table, sizeof(netns_core_table), GFP_KERNEL); + if (tbl == NULL) + goto err_dup; - if (ops->cee_peer_getpfc) { - struct cee_pfc pfc; -+ memset(&pfc, 0, sizeof(pfc)); - err = ops->cee_peer_getpfc(netdev, &pfc); - if (!err) - NLA_PUT(skb, DCB_ATTR_CEE_PEER_PFC, sizeof(pfc), &pfc); + tbl[0].data = &net->core.sysctl_somaxconn; +- } ++ net->core.sysctl_hdr = register_net_sysctl_table(net, net_core_path, tbl); ++ } else ++ net->core.sysctl_hdr = register_net_sysctl_table(net, net_core_path, netns_core_table); + +- net->core.sysctl_hdr = register_net_sysctl_table(net, +- net_core_path, tbl); + if (net->core.sysctl_hdr == NULL) + goto err_reg; + + return 0; + + err_reg: +- if (tbl != netns_core_table) +- kfree(tbl); ++ kfree(tbl); + err_dup: + return -ENOMEM; + } +@@ -242,7 +240,7 @@ static __net_exit void sysctl_core_net_exit(struct net *net) + kfree(tbl); + } + +-static __net_initdata struct pernet_operations sysctl_core_ops = { ++static __net_initconst struct pernet_operations sysctl_core_ops = { + .init = sysctl_core_net_init, + .exit = sysctl_core_net_exit, + }; diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c index 16fbf8c..ff4b0fc 100644 --- a/net/decnet/af_decnet.c @@ -81682,6 +85424,43 @@ index 39a2d29..f39c0fe 100644 ---help--- Econet is a fairly old and slow networking protocol mainly used by Acorn computers to access file and print servers. It uses native +diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c +index 5d228de..27dfa3c 100644 +--- a/net/ipv4/af_inet.c ++++ b/net/ipv4/af_inet.c +@@ -1612,7 +1612,7 @@ static __net_exit void ipv4_mib_exit_net(struct net *net) + snmp_mib_free((void __percpu **)net->mib.tcp_statistics); + } + +-static __net_initdata struct pernet_operations ipv4_mib_ops = { ++static __net_initconst struct pernet_operations ipv4_mib_ops = { + .init = ipv4_mib_init_net, + .exit = ipv4_mib_exit_net, + }; +@@ -1646,13 +1646,9 @@ static int __init inet_init(void) + + BUILD_BUG_ON(sizeof(struct inet_skb_parm) > sizeof(dummy_skb->cb)); + +- sysctl_local_reserved_ports = kzalloc(65536 / 8, GFP_KERNEL); +- if (!sysctl_local_reserved_ports) +- goto out; +- + rc = proto_register(&tcp_prot, 1); + if (rc) +- goto out_free_reserved_ports; ++ goto out; + + rc = proto_register(&udp_prot, 1); + if (rc) +@@ -1759,8 +1755,6 @@ out_unregister_udp_proto: + proto_unregister(&udp_prot); + out_unregister_tcp_proto: + proto_unregister(&tcp_prot); +-out_free_reserved_ports: +- kfree(sysctl_local_reserved_ports); + goto out; + } + diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c index 59a7041..060976d 100644 --- a/net/ipv4/arp.c @@ -81724,7 +85503,7 @@ index 59a7041..060976d 100644 return NF_HOOK(NFPROTO_ARP, NF_ARP_IN, skb, dev, NULL, arp_process); diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c -index e41c40f..26d7e03 100644 +index e41c40f..fbed7a7 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c @@ -827,9 +827,9 @@ int devinet_ioctl(struct net *net, unsigned int cmd, void __user *arg) @@ -81739,6 +85518,64 @@ index e41c40f..26d7e03 100644 if (colon) memcpy(ifa->ifa_label, ifr.ifr_name, IFNAMSIZ); else +@@ -1584,7 +1584,7 @@ static int ipv4_doint_and_flush(ctl_table *ctl, int write, + #define DEVINET_SYSCTL_FLUSHING_ENTRY(attr, name) \ + DEVINET_SYSCTL_COMPLEX_ENTRY(attr, name, ipv4_doint_and_flush) + +-static struct devinet_sysctl_table { ++static const struct devinet_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table devinet_vars[__IPV4_DEVCONF_MAX]; + char *dev_name; +@@ -1729,7 +1729,7 @@ static __net_init int devinet_init_net(struct net *net) + int err; + struct ipv4_devconf *all, *dflt; + #ifdef CONFIG_SYSCTL +- struct ctl_table *tbl = ctl_forward_entry; ++ ctl_table_no_const *tbl = NULL; + struct ctl_table_header *forw_hdr; + #endif + +@@ -1747,7 +1747,7 @@ static __net_init int devinet_init_net(struct net *net) + goto err_alloc_dflt; + + #ifdef CONFIG_SYSCTL +- tbl = kmemdup(tbl, sizeof(ctl_forward_entry), GFP_KERNEL); ++ tbl = kmemdup(ctl_forward_entry, sizeof(ctl_forward_entry), GFP_KERNEL); + if (tbl == NULL) + goto err_alloc_ctl; + +@@ -1767,7 +1767,10 @@ static __net_init int devinet_init_net(struct net *net) + goto err_reg_dflt; + + err = -ENOMEM; +- forw_hdr = register_net_sysctl_table(net, net_ipv4_path, tbl); ++ if (!net_eq(net, &init_net)) ++ forw_hdr = register_net_sysctl_table(net, net_ipv4_path, tbl); ++ else ++ forw_hdr = register_net_sysctl_table(net, net_ipv4_path, ctl_forward_entry); + if (forw_hdr == NULL) + goto err_reg_ctl; + net->ipv4.forw_hdr = forw_hdr; +@@ -1783,8 +1786,7 @@ err_reg_ctl: + err_reg_dflt: + __devinet_sysctl_unregister(all); + err_reg_all: +- if (tbl != ctl_forward_entry) +- kfree(tbl); ++ kfree(tbl); + err_alloc_ctl: + #endif + if (dflt != &ipv4_devconf_dflt) +@@ -1811,7 +1813,7 @@ static __net_exit void devinet_exit_net(struct net *net) + kfree(net->ipv4.devconf_all); + } + +-static __net_initdata struct pernet_operations devinet_ops = { ++static __net_initconst struct pernet_operations devinet_ops = { + .init = devinet_init_net, + .exit = devinet_exit_net, + }; diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c index 92fc5f6..b790d91 100644 --- a/net/ipv4/fib_frontend.c @@ -81780,6 +85617,32 @@ index d01f9c6..284c56c 100644 return nh->nh_saddr; } +diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c +index ab188ae..662585c 100644 +--- a/net/ipv4/icmp.c ++++ b/net/ipv4/icmp.c +@@ -1195,7 +1195,7 @@ fail: + return err; + } + +-static struct pernet_operations __net_initdata icmp_sk_ops = { ++static struct pernet_operations __net_initconst icmp_sk_ops = { + .init = icmp_sk_init, + .exit = icmp_sk_exit, + }; +diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c +index 907ef2c..eba7111 100644 +--- a/net/ipv4/inet_connection_sock.c ++++ b/net/ipv4/inet_connection_sock.c +@@ -37,7 +37,7 @@ struct local_ports sysctl_local_ports __read_mostly = { + .range = { 32768, 61000 }, + }; + +-unsigned long *sysctl_local_reserved_ports; ++unsigned long sysctl_local_reserved_ports[65536 / 8 / sizeof(unsigned long)]; + EXPORT_SYMBOL(sysctl_local_reserved_ports); + + void inet_get_local_port_range(int *low, int *high) diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c index ccee270..db23c3c 100644 --- a/net/ipv4/inet_diag.c @@ -81890,7 +85753,7 @@ index 86f13c67..59a35b5 100644 secure_ip_id(daddr->addr.a4) : secure_ipv6_id(daddr->addr.a6)); diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c -index a4e7131..fe66a18f 100644 +index b2cfe83..e1fa733 100644 --- a/net/ipv4/ip_fragment.c +++ b/net/ipv4/ip_fragment.c @@ -316,7 +316,7 @@ static inline int ip_frag_too_far(struct ipq *qp) @@ -81902,6 +85765,74 @@ index a4e7131..fe66a18f 100644 qp->rid = end; rc = qp->q.fragments && (end - start) > max; +@@ -766,21 +766,21 @@ static struct ctl_table ip4_frags_ctl_table[] = { + + static int __net_init ip4_frags_ns_ctl_register(struct net *net) + { +- struct ctl_table *table; ++ ctl_table_no_const *table = NULL; + struct ctl_table_header *hdr; + +- table = ip4_frags_ns_ctl_table; + if (!net_eq(net, &init_net)) { +- table = kmemdup(table, sizeof(ip4_frags_ns_ctl_table), GFP_KERNEL); ++ table = kmemdup(ip4_frags_ns_ctl_table, sizeof(ip4_frags_ns_ctl_table), GFP_KERNEL); + if (table == NULL) + goto err_alloc; + + table[0].data = &net->ipv4.frags.high_thresh; + table[1].data = &net->ipv4.frags.low_thresh; + table[2].data = &net->ipv4.frags.timeout; +- } ++ hdr = register_net_sysctl_table(net, net_ipv4_ctl_path, table); ++ } else ++ hdr = register_net_sysctl_table(net, net_ipv4_ctl_path, ip4_frags_ns_ctl_table); + +- hdr = register_net_sysctl_table(net, net_ipv4_ctl_path, table); + if (hdr == NULL) + goto err_reg; + +@@ -788,8 +788,7 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net) + return 0; + + err_reg: +- if (!net_eq(net, &init_net)) +- kfree(table); ++ kfree(table); + err_alloc: + return -ENOMEM; + } +diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c +index d55110e..7e0739d 100644 +--- a/net/ipv4/ip_gre.c ++++ b/net/ipv4/ip_gre.c +@@ -118,7 +118,7 @@ + Alexey Kuznetsov. + */ + +-static struct rtnl_link_ops ipgre_link_ops __read_mostly; ++static struct rtnl_link_ops ipgre_link_ops; + static int ipgre_tunnel_init(struct net_device *dev); + static void ipgre_tunnel_setup(struct net_device *dev); + static int ipgre_tunnel_bind_dev(struct net_device *dev); +@@ -1669,7 +1669,7 @@ static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = { + [IFLA_GRE_PMTUDISC] = { .type = NLA_U8 }, + }; + +-static struct rtnl_link_ops ipgre_link_ops __read_mostly = { ++static struct rtnl_link_ops ipgre_link_ops = { + .kind = "gre", + .maxtype = IFLA_GRE_MAX, + .policy = ipgre_policy, +@@ -1682,7 +1682,7 @@ static struct rtnl_link_ops ipgre_link_ops __read_mostly = { + .fill_info = ipgre_fill_info, + }; + +-static struct rtnl_link_ops ipgre_tap_ops __read_mostly = { ++static struct rtnl_link_ops ipgre_tap_ops = { + .kind = "gretap", + .maxtype = IFLA_GRE_MAX, + .policy = ipgre_policy, diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c index 3b36002..27e6634 100644 --- a/net/ipv4/ip_sockglue.c @@ -82082,8 +86013,21 @@ index 294a380..885a292 100644 } static int ping_seq_show(struct seq_file *seq, void *v) +diff --git a/net/ipv4/proc.c b/net/ipv4/proc.c +index f7fdbe9..63740b7 100644 +--- a/net/ipv4/proc.c ++++ b/net/ipv4/proc.c +@@ -487,7 +487,7 @@ static __net_exit void ip_proc_exit_net(struct net *net) + proc_net_remove(net, "sockstat"); + } + +-static __net_initdata struct pernet_operations ip_proc_ops = { ++static __net_initconst struct pernet_operations ip_proc_ops = { + .init = ip_proc_init_net, + .exit = ip_proc_exit_net, + }; diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c -index e1d4f30..d7a97b3 100644 +index e1d4f30..5e8918e 100644 --- a/net/ipv4/raw.c +++ b/net/ipv4/raw.c @@ -305,7 +305,7 @@ static int raw_rcv_skb(struct sock * sk, struct sk_buff * skb) @@ -82143,8 +86087,17 @@ index e1d4f30..d7a97b3 100644 } static int raw_seq_show(struct seq_file *seq, void *v) +@@ -1051,7 +1061,7 @@ static __net_exit void raw_exit_net(struct net *net) + proc_net_remove(net, "raw"); + } + +-static __net_initdata struct pernet_operations raw_net_ops = { ++static __net_initconst struct pernet_operations raw_net_ops = { + .init = raw_init_net, + .exit = raw_exit_net, + }; diff --git a/net/ipv4/route.c b/net/ipv4/route.c -index 94cdbc5..0cb0063 100644 +index 94cdbc5..01d3a77 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -313,7 +313,7 @@ static inline unsigned int rt_hash(__be32 daddr, __be32 saddr, int idx, @@ -82156,6 +86109,15 @@ index 94cdbc5..0cb0063 100644 } #ifdef CONFIG_PROC_FS +@@ -641,7 +641,7 @@ static void __net_exit ip_rt_do_proc_exit(struct net *net) + #endif + } + +-static struct pernet_operations ip_rt_proc_ops __net_initdata = { ++static struct pernet_operations ip_rt_proc_ops __net_initconst = { + .init = ip_rt_do_proc_init, + .exit = ip_rt_do_proc_exit, + }; @@ -937,7 +937,7 @@ static void rt_cache_invalidate(struct net *net) unsigned char shuffle; @@ -82174,8 +86136,196 @@ index 94cdbc5..0cb0063 100644 if (peer->tcp_ts_stamp) { ts = peer->tcp_ts; tsage = get_seconds() - peer->tcp_ts_stamp; +@@ -3221,7 +3221,7 @@ static int ipv4_sysctl_rtcache_flush(ctl_table *__ctl, int write, + { + if (write) { + int flush_delay; +- ctl_table ctl; ++ ctl_table_no_const ctl; + struct net *net; + + memcpy(&ctl, __ctl, sizeof(ctl)); +@@ -3370,6 +3370,7 @@ static struct ctl_table ipv4_route_flush_table[] = { + .maxlen = sizeof(int), + .mode = 0200, + .proc_handler = ipv4_sysctl_rtcache_flush, ++ .extra1 = &init_net, + }, + { }, + }; +@@ -3383,25 +3384,23 @@ static __net_initdata struct ctl_path ipv4_route_path[] = { + + static __net_init int sysctl_route_net_init(struct net *net) + { +- struct ctl_table *tbl; ++ ctl_table_no_const *tbl = NULL; + +- tbl = ipv4_route_flush_table; + if (!net_eq(net, &init_net)) { +- tbl = kmemdup(tbl, sizeof(ipv4_route_flush_table), GFP_KERNEL); ++ tbl = kmemdup(ipv4_route_flush_table, sizeof(ipv4_route_flush_table), GFP_KERNEL); + if (tbl == NULL) + goto err_dup; +- } +- tbl[0].extra1 = net; + +- net->ipv4.route_hdr = +- register_net_sysctl_table(net, ipv4_route_path, tbl); ++ net->ipv4.route_hdr = register_net_sysctl_table(net, ipv4_route_path, tbl); ++ } else ++ net->ipv4.route_hdr = register_net_sysctl_table(net, ipv4_route_path, ipv4_route_flush_table); ++ + if (net->ipv4.route_hdr == NULL) + goto err_reg; + return 0; + + err_reg: +- if (tbl != ipv4_route_flush_table) +- kfree(tbl); ++ kfree(tbl); + err_dup: + return -ENOMEM; + } +@@ -3416,7 +3415,7 @@ static __net_exit void sysctl_route_net_exit(struct net *net) + kfree(tbl); + } + +-static __net_initdata struct pernet_operations sysctl_route_ops = { ++static __net_initconst struct pernet_operations sysctl_route_ops = { + .init = sysctl_route_net_init, + .exit = sysctl_route_net_exit, + }; +@@ -3431,7 +3430,7 @@ static __net_init int rt_genid_init(struct net *net) + return 0; + } + +-static __net_initdata struct pernet_operations rt_genid_ops = { ++static __net_initconst struct pernet_operations rt_genid_ops = { + .init = rt_genid_init, + }; + +diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c +index 5485077..7e37374 100644 +--- a/net/ipv4/sysctl_net_ipv4.c ++++ b/net/ipv4/sysctl_net_ipv4.c +@@ -51,7 +51,7 @@ static int ipv4_local_port_range(ctl_table *table, int write, + { + int ret; + int range[2]; +- ctl_table tmp = { ++ ctl_table_no_const tmp = { + .data = &range, + .maxlen = sizeof(range), + .mode = table->mode, +@@ -102,7 +102,7 @@ static int ipv4_ping_group_range(ctl_table *table, int write, + { + int ret; + gid_t range[2]; +- ctl_table tmp = { ++ ctl_table_no_const tmp = { + .data = &range, + .maxlen = sizeof(range), + .mode = table->mode, +@@ -123,7 +123,7 @@ static int proc_tcp_congestion_control(ctl_table *ctl, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) + { + char val[TCP_CA_NAME_MAX]; +- ctl_table tbl = { ++ ctl_table_no_const tbl = { + .data = val, + .maxlen = TCP_CA_NAME_MAX, + }; +@@ -142,7 +142,7 @@ static int proc_tcp_available_congestion_control(ctl_table *ctl, + void __user *buffer, size_t *lenp, + loff_t *ppos) + { +- ctl_table tbl = { .maxlen = TCP_CA_BUF_MAX, }; ++ ctl_table_no_const tbl = { .maxlen = TCP_CA_BUF_MAX, }; + int ret; + + tbl.data = kmalloc(tbl.maxlen, GFP_USER); +@@ -159,7 +159,7 @@ static int proc_allowed_congestion_control(ctl_table *ctl, + void __user *buffer, size_t *lenp, + loff_t *ppos) + { +- ctl_table tbl = { .maxlen = TCP_CA_BUF_MAX }; ++ ctl_table_no_const tbl = { .maxlen = TCP_CA_BUF_MAX }; + int ret; + + tbl.data = kmalloc(tbl.maxlen, GFP_USER); +@@ -357,7 +357,7 @@ static struct ctl_table ipv4_table[] = { + }, + { + .procname = "ip_local_reserved_ports", +- .data = NULL, /* initialized in sysctl_ipv4_init */ ++ .data = sysctl_local_reserved_ports, + .maxlen = 65536, + .mode = 0644, + .proc_handler = proc_do_large_bitmap, +@@ -740,11 +740,10 @@ EXPORT_SYMBOL_GPL(net_ipv4_ctl_path); + + static __net_init int ipv4_sysctl_init_net(struct net *net) + { +- struct ctl_table *table; ++ ctl_table_no_const *table = NULL; + +- table = ipv4_net_table; + if (!net_eq(net, &init_net)) { +- table = kmemdup(table, sizeof(ipv4_net_table), GFP_KERNEL); ++ table = kmemdup(ipv4_net_table, sizeof(ipv4_net_table), GFP_KERNEL); + if (table == NULL) + goto err_alloc; + +@@ -776,16 +775,17 @@ static __net_init int ipv4_sysctl_init_net(struct net *net) + + net->ipv4.sysctl_rt_cache_rebuild_count = 4; + +- net->ipv4.ipv4_hdr = register_net_sysctl_table(net, +- net_ipv4_ctl_path, table); ++ if (!net_eq(net, &init_net)) ++ net->ipv4.ipv4_hdr = register_net_sysctl_table(net, net_ipv4_ctl_path, table); ++ else ++ net->ipv4.ipv4_hdr = register_net_sysctl_table(net, net_ipv4_ctl_path, ipv4_net_table); + if (net->ipv4.ipv4_hdr == NULL) + goto err_reg; + + return 0; + + err_reg: +- if (!net_eq(net, &init_net)) +- kfree(table); ++ kfree(table); + err_alloc: + return -ENOMEM; + } +@@ -799,7 +799,7 @@ static __net_exit void ipv4_sysctl_exit_net(struct net *net) + kfree(table); + } + +-static __net_initdata struct pernet_operations ipv4_sysctl_ops = { ++static __net_initconst struct pernet_operations ipv4_sysctl_ops = { + .init = ipv4_sysctl_init_net, + .exit = ipv4_sysctl_exit_net, + }; +@@ -807,16 +807,6 @@ static __net_initdata struct pernet_operations ipv4_sysctl_ops = { + static __init int sysctl_ipv4_init(void) + { + struct ctl_table_header *hdr; +- struct ctl_table *i; +- +- for (i = ipv4_table; i->procname; i++) { +- if (strcmp(i->procname, "ip_local_reserved_ports") == 0) { +- i->data = sysctl_local_reserved_ports; +- break; +- } +- } +- if (!i->procname) +- return -EINVAL; + + hdr = register_sysctl_paths(net_ipv4_ctl_path, ipv4_table); + if (hdr == NULL) diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c -index e865ed1..457805b 100644 +index 1b1f7af..911f274 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -4732,7 +4732,7 @@ static struct sk_buff *tcp_collapse_one(struct sock *sk, struct sk_buff *skb, @@ -82258,7 +86408,7 @@ index e865ed1..457805b 100644 /* ts_recent update must be made after we are sure that the packet * is in window. diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c -index a97c9ad..6c2166f 100644 +index a97c9ad..640d986 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -87,6 +87,9 @@ int sysctl_tcp_tw_reuse __read_mostly; @@ -82356,6 +86506,15 @@ index a97c9ad..6c2166f 100644 } #define TMPSZ 150 +@@ -2662,7 +2694,7 @@ static void __net_exit tcp_sk_exit_batch(struct list_head *net_exit_list) + inet_twsk_purge(&tcp_hashinfo, &tcp_death_row, AF_INET); + } + +-static struct pernet_operations __net_initdata tcp_sk_ops = { ++static struct pernet_operations __net_initconst tcp_sk_ops = { + .init = tcp_sk_init, + .exit = tcp_sk_exit, + .exit_batch = tcp_sk_exit_batch, diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index 66363b6..b0654a3 100644 --- a/net/ipv4/tcp_minisocks.c @@ -82578,6 +86737,19 @@ index 65dd543..df67080 100644 seqhi = esp_tmp_seqhi(tmp); iv = esp_tmp_iv(aead, tmp, seqhilen); +diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c +index 90868fb..7aeff1e 100644 +--- a/net/ipv6/icmp.c ++++ b/net/ipv6/icmp.c +@@ -961,7 +961,7 @@ ctl_table ipv6_icmp_table_template[] = { + + struct ctl_table * __net_init ipv6_icmp_sysctl_init(struct net *net) + { +- struct ctl_table *table; ++ ctl_table_no_const *table; + + table = kmemdup(ipv6_icmp_table_template, + sizeof(ipv6_icmp_table_template), diff --git a/net/ipv6/inet6_connection_sock.c b/net/ipv6/inet6_connection_sock.c index 1567fb1..29af910 100644 --- a/net/ipv6/inet6_connection_sock.c @@ -82752,6 +86924,73 @@ index 6e6c2c4..942cebf 100644 } static int raw6_seq_show(struct seq_file *seq, void *v) +diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c +index 2b0a4ca..40ad0d9 100644 +--- a/net/ipv6/reassembly.c ++++ b/net/ipv6/reassembly.c +@@ -637,21 +637,21 @@ static struct ctl_table ip6_frags_ctl_table[] = { + + static int __net_init ip6_frags_ns_sysctl_register(struct net *net) + { +- struct ctl_table *table; ++ ctl_table_no_const *table = NULL; + struct ctl_table_header *hdr; + +- table = ip6_frags_ns_ctl_table; + if (!net_eq(net, &init_net)) { +- table = kmemdup(table, sizeof(ip6_frags_ns_ctl_table), GFP_KERNEL); ++ table = kmemdup(ip6_frags_ns_ctl_table, sizeof(ip6_frags_ns_ctl_table), GFP_KERNEL); + if (table == NULL) + goto err_alloc; + + table[0].data = &net->ipv6.frags.high_thresh; + table[1].data = &net->ipv6.frags.low_thresh; + table[2].data = &net->ipv6.frags.timeout; +- } ++ hdr = register_net_sysctl_table(net, net_ipv6_ctl_path, table); ++ } else ++ hdr = register_net_sysctl_table(net, net_ipv6_ctl_path, ip6_frags_ns_ctl_table); + +- hdr = register_net_sysctl_table(net, net_ipv6_ctl_path, table); + if (hdr == NULL) + goto err_reg; + +@@ -659,8 +659,7 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net) + return 0; + + err_reg: +- if (!net_eq(net, &init_net)) +- kfree(table); ++ kfree(table); + err_alloc: + return -ENOMEM; + } +diff --git a/net/ipv6/route.c b/net/ipv6/route.c +index 18ea73c..b0b7be2 100644 +--- a/net/ipv6/route.c ++++ b/net/ipv6/route.c +@@ -2806,7 +2806,7 @@ ctl_table ipv6_route_table_template[] = { + + struct ctl_table * __net_init ipv6_route_sysctl_init(struct net *net) + { +- struct ctl_table *table; ++ ctl_table_no_const *table; + + table = kmemdup(ipv6_route_table_template, + sizeof(ipv6_route_table_template), +diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c +index 166a57c..dc4e6b8 100644 +--- a/net/ipv6/sysctl_net_ipv6.c ++++ b/net/ipv6/sysctl_net_ipv6.c +@@ -71,7 +71,7 @@ EXPORT_SYMBOL_GPL(net_ipv6_ctl_path); + + static int __net_init ipv6_sysctl_net_init(struct net *net) + { +- struct ctl_table *ipv6_table; ++ ctl_table_no_const *ipv6_table; + struct ctl_table *ipv6_route_table; + struct ctl_table *ipv6_icmp_table; + int err; diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index db10805..42998ba 100644 --- a/net/ipv6/tcp_ipv6.c @@ -83180,18 +87419,6 @@ index 93a41a0..d4b4edb 100644 NLA_PUT_U32(skb, L2TP_ATTR_CONN_ID, tunnel->tunnel_id); NLA_PUT_U32(skb, L2TP_ATTR_SESSION_ID, session->session_id); -diff --git a/net/l2tp/l2tp_ppp.c b/net/l2tp/l2tp_ppp.c -index b1bd16f..6f60175 100644 ---- a/net/l2tp/l2tp_ppp.c -+++ b/net/l2tp/l2tp_ppp.c -@@ -360,6 +360,7 @@ static int pppol2tp_sendmsg(struct kiocb *iocb, struct socket *sock, struct msgh - l2tp_xmit_skb(session, skb, session->hdr_len); - - sock_put(ps->tunnel_sock); -+ sock_put(sk); - - return error; - diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 73495f1..ad51356 100644 --- a/net/mac80211/ieee80211_i.h @@ -83387,6 +87614,19 @@ index 1a02853..5d8c22e 100644 obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o +diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c +index 86137b5..c12e721 100644 +--- a/net/netfilter/ipset/ip_set_core.c ++++ b/net/netfilter/ipset/ip_set_core.c +@@ -1679,7 +1679,7 @@ done: + return ret; + } + +-static struct nf_sockopt_ops so_set __read_mostly = { ++static struct nf_sockopt_ops so_set = { + .pf = PF_INET, + .get_optmin = SO_IP_SET, + .get_optmax = SO_IP_SET + 1, diff --git a/net/netfilter/ipset/ip_set_hash_netiface.c b/net/netfilter/ipset/ip_set_hash_netiface.c index e13095d..6617217 100644 --- a/net/netfilter/ipset/ip_set_hash_netiface.c @@ -83454,7 +87694,7 @@ index 6dc7d7d..e45913a 100644 if ((ipvs->sync_state & IP_VS_STATE_MASTER) && cp->protocol == IPPROTO_SCTP) { diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c -index 72f4253..2772ca6 100644 +index 72f4253..f5222ae 100644 --- a/net/netfilter/ipvs/ip_vs_ctl.c +++ b/net/netfilter/ipvs/ip_vs_ctl.c @@ -788,7 +788,7 @@ __ip_vs_update_dest(struct ip_vs_service *svc, struct ip_vs_dest *dest, @@ -83466,6 +87706,15 @@ index 72f4253..2772ca6 100644 /* bind the service */ if (!dest->svc) { +@@ -1666,7 +1666,7 @@ proc_do_sync_mode(ctl_table *table, int write, + * align with netns init in ip_vs_control_net_init() + */ + +-static struct ctl_table vs_vars[] = { ++static ctl_table_no_const vs_vars[] __read_only = { + { + .procname = "amemthresh", + .maxlen = sizeof(int), @@ -2028,7 +2028,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v) " %-7s %-6d %-10d %-10d\n", &dest->addr.in6, @@ -83502,6 +87751,41 @@ index 72f4253..2772ca6 100644 NLA_PUT_U32(skb, IPVS_DEST_ATTR_WEIGHT, atomic_read(&dest->weight)); NLA_PUT_U32(skb, IPVS_DEST_ATTR_U_THRESH, dest->u_threshold); NLA_PUT_U32(skb, IPVS_DEST_ATTR_L_THRESH, dest->l_threshold); +@@ -3626,7 +3626,7 @@ int __net_init ip_vs_control_net_init_sysctl(struct net *net) + { + int idx; + struct netns_ipvs *ipvs = net_ipvs(net); +- struct ctl_table *tbl; ++ ctl_table_no_const *tbl; + + atomic_set(&ipvs->dropentry, 0); + spin_lock_init(&ipvs->dropentry_lock); +diff --git a/net/netfilter/ipvs/ip_vs_lblc.c b/net/netfilter/ipvs/ip_vs_lblc.c +index 0f16283..9ec4d21 100644 +--- a/net/netfilter/ipvs/ip_vs_lblc.c ++++ b/net/netfilter/ipvs/ip_vs_lblc.c +@@ -115,7 +115,7 @@ struct ip_vs_lblc_table { + * IPVS LBLC sysctl table + */ + #ifdef CONFIG_SYSCTL +-static ctl_table vs_vars_table[] = { ++static ctl_table_no_const vs_vars_table[] __read_only = { + { + .procname = "lblc_expiration", + .data = NULL, +diff --git a/net/netfilter/ipvs/ip_vs_lblcr.c b/net/netfilter/ipvs/ip_vs_lblcr.c +index eec797f..6f3ec56 100644 +--- a/net/netfilter/ipvs/ip_vs_lblcr.c ++++ b/net/netfilter/ipvs/ip_vs_lblcr.c +@@ -288,7 +288,7 @@ struct ip_vs_lblcr_table { + * IPVS LBLCR sysctl table + */ + +-static ctl_table vs_vars_table[] = { ++static ctl_table_no_const vs_vars_table[] __read_only = { + { + .procname = "lblcr_expiration", + .data = NULL, diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c index 2b6678c0..aaa41fc 100644 --- a/net/netfilter/ipvs/ip_vs_sync.c @@ -83546,6 +87830,19 @@ index aa2d720..d8aa111 100644 goto out; } +diff --git a/net/netfilter/nf_conntrack_acct.c b/net/netfilter/nf_conntrack_acct.c +index 369df3f..b660190 100644 +--- a/net/netfilter/nf_conntrack_acct.c ++++ b/net/netfilter/nf_conntrack_acct.c +@@ -60,7 +60,7 @@ static struct nf_ct_ext_type acct_extend __read_mostly = { + #ifdef CONFIG_SYSCTL + static int nf_conntrack_acct_init_sysctl(struct net *net) + { +- struct ctl_table *table; ++ ctl_table_no_const *table; + + table = kmemdup(acct_sysctl_table, sizeof(acct_sysctl_table), + GFP_KERNEL); diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c index 7489bd3..5f4df88 100644 --- a/net/netfilter/nf_conntrack_core.c @@ -83573,6 +87870,113 @@ index 7489bd3..5f4df88 100644 if (!net->ct.slabname) { ret = -ENOMEM; goto err_slabname; +diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c +index 14af632..9914188 100644 +--- a/net/netfilter/nf_conntrack_ecache.c ++++ b/net/netfilter/nf_conntrack_ecache.c +@@ -185,7 +185,7 @@ static struct nf_ct_ext_type event_extend __read_mostly = { + #ifdef CONFIG_SYSCTL + static int nf_conntrack_event_init_sysctl(struct net *net) + { +- struct ctl_table *table; ++ ctl_table_no_const *table; + + table = kmemdup(event_sysctl_table, sizeof(event_sysctl_table), + GFP_KERNEL); +diff --git a/net/netfilter/nf_conntrack_proto_dccp.c b/net/netfilter/nf_conntrack_proto_dccp.c +index 2e664a6..0c3e635 100644 +--- a/net/netfilter/nf_conntrack_proto_dccp.c ++++ b/net/netfilter/nf_conntrack_proto_dccp.c +@@ -391,7 +391,7 @@ struct dccp_net { + unsigned int dccp_timeout[CT_DCCP_MAX + 1]; + #ifdef CONFIG_SYSCTL + struct ctl_table_header *sysctl_header; +- struct ctl_table *sysctl_table; ++ ctl_table_no_const *sysctl_table; + #endif + }; + +diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c +index 05e9feb..3b519f3 100644 +--- a/net/netfilter/nf_conntrack_standalone.c ++++ b/net/netfilter/nf_conntrack_standalone.c +@@ -475,7 +475,7 @@ static struct ctl_path nf_ct_path[] = { + + static int nf_conntrack_standalone_init_sysctl(struct net *net) + { +- struct ctl_table *table; ++ ctl_table_no_const *table; + + if (net_eq(net, &init_net)) { + nf_ct_netfilter_header = +diff --git a/net/netfilter/nf_conntrack_timestamp.c b/net/netfilter/nf_conntrack_timestamp.c +index af7dd31..7535cd7 100644 +--- a/net/netfilter/nf_conntrack_timestamp.c ++++ b/net/netfilter/nf_conntrack_timestamp.c +@@ -42,7 +42,7 @@ static struct nf_ct_ext_type tstamp_extend __read_mostly = { + #ifdef CONFIG_SYSCTL + static int nf_conntrack_tstamp_init_sysctl(struct net *net) + { +- struct ctl_table *table; ++ ctl_table_no_const *table; + + table = kmemdup(tstamp_sysctl_table, sizeof(tstamp_sysctl_table), + GFP_KERNEL); +diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c +index 957374a..dcbce7a 100644 +--- a/net/netfilter/nf_log.c ++++ b/net/netfilter/nf_log.c +@@ -222,7 +222,7 @@ static struct ctl_path nf_log_sysctl_path[] = { + }; + + static char nf_log_sysctl_fnames[NFPROTO_NUMPROTO-NFPROTO_UNSPEC][3]; +-static struct ctl_table nf_log_sysctl_table[NFPROTO_NUMPROTO+1]; ++static ctl_table_no_const nf_log_sysctl_table[NFPROTO_NUMPROTO+1] __read_only; + static struct ctl_table_header *nf_log_dir_header; + + static int nf_log_proc_dostring(ctl_table *table, int write, +@@ -253,14 +253,16 @@ static int nf_log_proc_dostring(ctl_table *table, int write, + rcu_assign_pointer(nf_loggers[tindex], logger); + mutex_unlock(&nf_log_mutex); + } else { ++ ctl_table_no_const nf_log_table = *table; ++ + mutex_lock(&nf_log_mutex); + logger = rcu_dereference_protected(nf_loggers[tindex], + lockdep_is_held(&nf_log_mutex)); + if (!logger) +- table->data = "NONE"; ++ nf_log_table.data = "NONE"; + else +- table->data = logger->name; +- r = proc_dostring(table, write, buffer, lenp, ppos); ++ nf_log_table.data = logger->name; ++ r = proc_dostring(&nf_log_table, write, buffer, lenp, ppos); + mutex_unlock(&nf_log_mutex); + } + +diff --git a/net/netfilter/nf_sockopt.c b/net/netfilter/nf_sockopt.c +index f042ae5..30ea486 100644 +--- a/net/netfilter/nf_sockopt.c ++++ b/net/netfilter/nf_sockopt.c +@@ -45,7 +45,7 @@ int nf_register_sockopt(struct nf_sockopt_ops *reg) + } + } + +- list_add(®->list, &nf_sockopts); ++ pax_list_add((struct list_head *)®->list, &nf_sockopts); + out: + mutex_unlock(&nf_sockopt_mutex); + return ret; +@@ -55,7 +55,7 @@ EXPORT_SYMBOL(nf_register_sockopt); + void nf_unregister_sockopt(struct nf_sockopt_ops *reg) + { + mutex_lock(&nf_sockopt_mutex); +- list_del(®->list); ++ pax_list_del((struct list_head *)®->list); + mutex_unlock(&nf_sockopt_mutex); + } + EXPORT_SYMBOL(nf_unregister_sockopt); diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c index 66b2c54..c7884e3 100644 --- a/net/netfilter/nfnetlink_log.c @@ -83687,7 +88091,7 @@ index 4fe4fb4..87a89e5 100644 return 0; } diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c -index 3d1d55d..2a0b8cc 100644 +index 3d1d55d..1ee2a18 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -753,7 +753,7 @@ static void netlink_overrun(struct sock *sk) @@ -83708,6 +88112,57 @@ index 3d1d55d..2a0b8cc 100644 sock_i_ino(s) ); +@@ -2120,7 +2120,7 @@ static void __init netlink_add_usersock_entry(void) + netlink_table_ungrab(); + } + +-static struct pernet_operations __net_initdata netlink_net_ops = { ++static struct pernet_operations __net_initconst netlink_net_ops = { + .init = netlink_net_init, + .exit = netlink_net_exit, + }; +diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c +index 482fa57..818ca98 100644 +--- a/net/netlink/genetlink.c ++++ b/net/netlink/genetlink.c +@@ -287,18 +287,20 @@ int genl_register_ops(struct genl_family *family, struct genl_ops *ops) + goto errout; + } + ++ pax_open_kernel(); + if (ops->dumpit) +- ops->flags |= GENL_CMD_CAP_DUMP; ++ *(unsigned int *)&ops->flags |= GENL_CMD_CAP_DUMP; + if (ops->doit) +- ops->flags |= GENL_CMD_CAP_DO; ++ *(unsigned int *)&ops->flags |= GENL_CMD_CAP_DO; + if (ops->policy) +- ops->flags |= GENL_CMD_CAP_HASPOL; ++ *(unsigned int *)&ops->flags |= GENL_CMD_CAP_HASPOL; ++ pax_close_kernel(); + + genl_lock(); +- list_add_tail(&ops->ops_list, &family->ops_list); ++ pax_list_add_tail((struct list_head *)&ops->ops_list, &family->ops_list); + genl_unlock(); + +- genl_ctrl_event(CTRL_CMD_NEWOPS, ops); ++ genl_ctrl_event(CTRL_CMD_NEWOPS, (void *)ops); + err = 0; + errout: + return err; +@@ -328,9 +330,9 @@ int genl_unregister_ops(struct genl_family *family, struct genl_ops *ops) + genl_lock(); + list_for_each_entry(rc, &family->ops_list, ops_list) { + if (rc == ops) { +- list_del(&ops->ops_list); ++ pax_list_del((struct list_head *)&ops->ops_list); + genl_unlock(); +- genl_ctrl_event(CTRL_CMD_DELOPS, ops); ++ genl_ctrl_event(CTRL_CMD_DELOPS, (void *)ops); + return 0; + } + } diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c index f156382..95ce7ba 100644 --- a/net/netrom/af_netrom.c @@ -83864,6 +88319,19 @@ index 4c7eff3..59c727f 100644 } seq_printf(seq, "%*s\n", 127 - len, ""); return 0; +diff --git a/net/phonet/sysctl.c b/net/phonet/sysctl.c +index cea1c7d..e74ee16 100644 +--- a/net/phonet/sysctl.c ++++ b/net/phonet/sysctl.c +@@ -62,7 +62,7 @@ static int proc_local_port_range(ctl_table *table, int write, + { + int ret; + int range[2] = {local_port_range[0], local_port_range[1]}; +- ctl_table tmp = { ++ ctl_table_no_const tmp = { + .data = &range, + .maxlen = sizeof(range), + .mode = table->mode, diff --git a/net/rds/cong.c b/net/rds/cong.c index e5b65ac..f3b6fb7 100644 --- a/net/rds/cong.c @@ -83991,20 +88459,19 @@ index 5e57347..3916042 100644 } #endif -diff --git a/net/rds/message.c b/net/rds/message.c -index f0a4658..aff589c 100644 ---- a/net/rds/message.c -+++ b/net/rds/message.c -@@ -197,6 +197,9 @@ struct rds_message *rds_message_alloc(unsigned int extra_len, gfp_t gfp) - { - struct rds_message *rm; +diff --git a/net/rds/rds.h b/net/rds/rds.h +index 7eaba18..a3c303f 100644 +--- a/net/rds/rds.h ++++ b/net/rds/rds.h +@@ -449,7 +449,7 @@ struct rds_transport { + void (*sync_mr)(void *trans_private, int direction); + void (*free_mr)(void *trans_private, int invalidate); + void (*flush_mrs)(void); +-}; ++} __do_const; -+ if (extra_len > KMALLOC_MAX_SIZE - sizeof(struct rds_message)) -+ return NULL; -+ - rm = kzalloc(sizeof(struct rds_message) + extra_len, gfp); - if (!rm) - goto out; + struct rds_sock { + struct sock rs_sk; diff --git a/net/rds/tcp.c b/net/rds/tcp.c index edac9ef..16bcb98 100644 --- a/net/rds/tcp.c @@ -84327,15 +88794,33 @@ index bf81204..333926d 100644 } } diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c -index 8104278..631330b 100644 +index 8104278..300d89d 100644 --- a/net/sctp/ipv6.c +++ b/net/sctp/ipv6.c +@@ -977,7 +977,7 @@ static const struct inet6_protocol sctpv6_protocol = { + .flags = INET6_PROTO_NOPOLICY | INET6_PROTO_FINAL, + }; + +-static struct sctp_af sctp_af_inet6 = { ++static struct sctp_af sctp_af_inet6 __read_only = { + .sa_family = AF_INET6, + .sctp_xmit = sctp_v6_xmit, + .setsockopt = ipv6_setsockopt, +@@ -1009,7 +1009,7 @@ static struct sctp_af sctp_af_inet6 = { + #endif + }; + +-static struct sctp_pf sctp_pf_inet6 = { ++static struct sctp_pf sctp_pf_inet6 __read_only = { + .event_msgname = sctp_inet6_event_msgname, + .skb_msgname = sctp_inet6_skb_msgname, + .af_supported = sctp_inet6_af_supported, @@ -1034,7 +1034,7 @@ void sctp_v6_pf_init(void) void sctp_v6_pf_exit(void) { - list_del(&sctp_af_inet6.list); -+ pax_list_del((struct list_head *)&sctp_af_inet6.list); ++ pax_list_del(&sctp_af_inet6.list); } /* Initialize IPv6 support and register with socket layer. */ @@ -84354,36 +88839,135 @@ index 1e2eee8..ce3967e 100644 assoc->assoc_id, assoc->sndbuf_used, diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c -index 6f6ad86..f80bd85 100644 +index 6f6ad86..d52dc47 100644 --- a/net/sctp/protocol.c +++ b/net/sctp/protocol.c @@ -862,8 +862,10 @@ int sctp_register_af(struct sctp_af *af) return 0; } -- INIT_LIST_HEAD(&af->list); -- list_add_tail(&af->list, &sctp_address_families); + pax_open_kernel(); -+ INIT_LIST_HEAD((struct list_head *)&af->list); + INIT_LIST_HEAD(&af->list); +- list_add_tail(&af->list, &sctp_address_families); + pax_close_kernel(); -+ pax_list_add_tail((struct list_head *)&af->list, &sctp_address_families); ++ pax_list_add_tail(&af->list, &sctp_address_families); return 1; } +@@ -994,7 +996,7 @@ static inline int sctp_v4_xmit(struct sk_buff *skb, + + static struct sctp_af sctp_af_inet; + +-static struct sctp_pf sctp_pf_inet = { ++static struct sctp_pf sctp_pf_inet __read_only = { + .event_msgname = sctp_inet_event_msgname, + .skb_msgname = sctp_inet_skb_msgname, + .af_supported = sctp_inet_af_supported, +@@ -1064,7 +1066,7 @@ static const struct net_protocol sctp_protocol = { + }; + + /* IPv4 address related functions. */ +-static struct sctp_af sctp_af_inet = { ++static struct sctp_af sctp_af_inet __read_only = { + .sa_family = AF_INET, + .sctp_xmit = sctp_v4_xmit, + .setsockopt = ip_setsockopt, @@ -1149,7 +1151,7 @@ static void sctp_v4_pf_init(void) static void sctp_v4_pf_exit(void) { - list_del(&sctp_af_inet.list); -+ pax_list_del((struct list_head *)&sctp_af_inet.list); ++ pax_list_del(&sctp_af_inet.list); } static int sctp_v4_protosw_init(void) +diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c +index 9032d50..49eb875 100644 +--- a/net/sctp/sm_sideeffect.c ++++ b/net/sctp/sm_sideeffect.c +@@ -441,7 +441,7 @@ static void sctp_generate_sack_event(unsigned long data) + sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_SACK); + } + +-sctp_timer_event_t *sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES] = { ++sctp_timer_event_t * const sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES] = { + NULL, + sctp_generate_t1_cookie_event, + sctp_generate_t1_init_event, diff --git a/net/sctp/socket.c b/net/sctp/socket.c -index 5e0d86e..8633998 100644 +index 5e0d86e..e2a4da1 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c -@@ -4583,6 +4583,8 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len, +@@ -2157,11 +2157,13 @@ static int sctp_setsockopt_events(struct sock *sk, char __user *optval, + { + struct sctp_association *asoc; + struct sctp_ulpevent *event; ++ struct sctp_event_subscribe subscribe; + + if (optlen > sizeof(struct sctp_event_subscribe)) + return -EINVAL; +- if (copy_from_user(&sctp_sk(sk)->subscribe, optval, optlen)) ++ if (copy_from_user(&subscribe, optval, optlen)) + return -EFAULT; ++ sctp_sk(sk)->subscribe = subscribe; + + /* + * At the time when a user app subscribes to SCTP_SENDER_DRY_EVENT, +@@ -4141,13 +4143,16 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len, + static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval, + int __user *optlen) + { ++ struct sctp_event_subscribe subscribe; ++ + if (len <= 0) + return -EINVAL; + if (len > sizeof(struct sctp_event_subscribe)) + len = sizeof(struct sctp_event_subscribe); + if (put_user(len, optlen)) + return -EFAULT; +- if (copy_to_user(optval, &sctp_sk(sk)->subscribe, len)) ++ subscribe = sctp_sk(sk)->subscribe; ++ if (copy_to_user(optval, &subscribe, len)) + return -EFAULT; + return 0; + } +@@ -4165,6 +4170,8 @@ static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval, + */ + static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optval, int __user *optlen) + { ++ __u32 autoclose; ++ + /* Applicable to UDP-style socket only */ + if (sctp_style(sk, TCP)) + return -EOPNOTSUPP; +@@ -4173,7 +4180,8 @@ static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optv + len = sizeof(int); + if (put_user(len, optlen)) + return -EFAULT; +- if (copy_to_user(optval, &sctp_sk(sk)->autoclose, sizeof(int))) ++ autoclose = sctp_sk(sk)->autoclose; ++ if (copy_to_user(optval, &autoclose, sizeof(int))) + return -EFAULT; + return 0; + } +@@ -4537,12 +4545,15 @@ static int sctp_getsockopt_delayed_ack(struct sock *sk, int len, + */ + static int sctp_getsockopt_initmsg(struct sock *sk, int len, char __user *optval, int __user *optlen) + { ++ struct sctp_initmsg initmsg; ++ + if (len < sizeof(struct sctp_initmsg)) + return -EINVAL; + len = sizeof(struct sctp_initmsg); + if (put_user(len, optlen)) + return -EFAULT; +- if (copy_to_user(optval, &sctp_sk(sk)->initmsg, len)) ++ initmsg = sctp_sk(sk)->initmsg; ++ if (copy_to_user(optval, &initmsg, len)) + return -EFAULT; + return 0; + } +@@ -4583,6 +4594,8 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len, addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len; if (space_left < addrlen) return -ENOMEM; @@ -84446,7 +89030,7 @@ index 8da4481..d02565e 100644 + (rtt >> sctp_rto_alpha); } else { diff --git a/net/socket.c b/net/socket.c -index 68879db..ed22cd4 100644 +index 68879db..1187d18 100644 --- a/net/socket.c +++ b/net/socket.c @@ -88,6 +88,7 @@ @@ -84599,7 +89183,16 @@ index 68879db..ed22cd4 100644 err = security_socket_connect(sock, (struct sockaddr *)&address, addrlen); if (err) -@@ -1950,7 +2010,7 @@ static int __sys_sendmsg(struct socket *sock, struct msghdr __user *msg, +@@ -1670,6 +1730,8 @@ SYSCALL_DEFINE3(getpeername, int, fd, struct sockaddr __user *, usockaddr, + * the protocol. + */ + ++asmlinkage long sys_sendto(int, void *, size_t, unsigned, struct sockaddr *, int); ++ + SYSCALL_DEFINE6(sendto, int, fd, void __user *, buff, size_t, len, + unsigned, flags, struct sockaddr __user *, addr, + int, addr_len) +@@ -1950,7 +2012,7 @@ static int __sys_sendmsg(struct socket *sock, struct msghdr __user *msg, * checking falls down on this. */ if (copy_from_user(ctl_buf, @@ -84608,7 +89201,16 @@ index 68879db..ed22cd4 100644 ctl_len)) goto out_freectl; msg_sys->msg_control = ctl_buf; -@@ -2120,7 +2180,7 @@ static int __sys_recvmsg(struct socket *sock, struct msghdr __user *msg, +@@ -2090,7 +2152,7 @@ static int __sys_recvmsg(struct socket *sock, struct msghdr __user *msg, + int err, iov_size, total_len, len; + + /* kernel mode address */ +- struct sockaddr_storage addr; ++ struct sockaddr_storage addr = { }; + + /* user mode address pointers */ + struct sockaddr __user *uaddr; +@@ -2120,7 +2182,7 @@ static int __sys_recvmsg(struct socket *sock, struct msghdr __user *msg, * kernel msghdr to use the kernel address space) */ @@ -84617,7 +89219,7 @@ index 68879db..ed22cd4 100644 uaddr_len = COMPAT_NAMELEN(msg); if (MSG_CMSG_COMPAT & flags) { err = verify_compat_iovec(msg_sys, iov, -@@ -2749,7 +2809,7 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32) +@@ -2749,7 +2811,7 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32) } ifr = compat_alloc_user_space(buf_size); @@ -84626,7 +89228,7 @@ index 68879db..ed22cd4 100644 if (copy_in_user(&ifr->ifr_name, &ifr32->ifr_name, IFNAMSIZ)) return -EFAULT; -@@ -2773,12 +2833,12 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32) +@@ -2773,12 +2835,12 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32) offsetof(struct ethtool_rxnfc, fs.ring_cookie)); if (copy_in_user(rxnfc, compat_rxnfc, @@ -84643,7 +89245,7 @@ index 68879db..ed22cd4 100644 copy_in_user(&rxnfc->rule_cnt, &compat_rxnfc->rule_cnt, sizeof(rxnfc->rule_cnt))) return -EFAULT; -@@ -2790,12 +2850,12 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32) +@@ -2790,12 +2852,12 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32) if (convert_out) { if (copy_in_user(compat_rxnfc, rxnfc, @@ -84660,7 +89262,7 @@ index 68879db..ed22cd4 100644 copy_in_user(&compat_rxnfc->rule_cnt, &rxnfc->rule_cnt, sizeof(rxnfc->rule_cnt))) return -EFAULT; -@@ -2865,7 +2925,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd, +@@ -2865,7 +2927,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd, old_fs = get_fs(); set_fs(KERNEL_DS); err = dev_ioctl(net, cmd, @@ -84669,7 +89271,7 @@ index 68879db..ed22cd4 100644 set_fs(old_fs); return err; -@@ -2974,7 +3034,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd, +@@ -2974,7 +3036,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd, old_fs = get_fs(); set_fs(KERNEL_DS); @@ -84678,7 +89280,7 @@ index 68879db..ed22cd4 100644 set_fs(old_fs); if (cmd == SIOCGIFMAP && !err) { -@@ -3079,7 +3139,7 @@ static int routing_ioctl(struct net *net, struct socket *sock, +@@ -3079,7 +3141,7 @@ static int routing_ioctl(struct net *net, struct socket *sock, ret |= __get_user(rtdev, &(ur4->rt_dev)); if (rtdev) { ret |= copy_from_user(devname, compat_ptr(rtdev), 15); @@ -84687,7 +89289,7 @@ index 68879db..ed22cd4 100644 devname[15] = 0; } else r4.rt_dev = NULL; -@@ -3319,8 +3379,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname, +@@ -3319,8 +3381,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname, int __user *uoptlen; int err; @@ -84698,7 +89300,7 @@ index 68879db..ed22cd4 100644 set_fs(KERNEL_DS); if (level == SOL_SOCKET) -@@ -3340,7 +3400,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname, +@@ -3340,7 +3402,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname, char __user *uoptval; int err; @@ -84707,6 +89309,21 @@ index 68879db..ed22cd4 100644 set_fs(KERNEL_DS); if (level == SOL_SOCKET) +diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c +index b2250da..6cabe9c 100644 +--- a/net/sunrpc/clnt.c ++++ b/net/sunrpc/clnt.c +@@ -903,7 +903,9 @@ call_start(struct rpc_task *task) + (RPC_IS_ASYNC(task) ? "async" : "sync")); + + /* Increment call count */ +- task->tk_msg.rpc_proc->p_count++; ++ pax_open_kernel(); ++ (*(unsigned int *)&task->tk_msg.rpc_proc->p_count)++; ++ pax_close_kernel(); + clnt->cl_stats->rpccnt++; + task->tk_action = call_reserve; + } diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index 18c5a50..775f9f9 100644 --- a/net/sunrpc/sched.c @@ -84723,6 +89340,21 @@ index 18c5a50..775f9f9 100644 } #else static inline void rpc_task_set_debuginfo(struct rpc_task *task) +diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c +index c80c162..8bf128b 100644 +--- a/net/sunrpc/svc.c ++++ b/net/sunrpc/svc.c +@@ -1145,7 +1145,9 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv) + svc_putnl(resv, RPC_SUCCESS); + + /* Bump per-procedure stats counter */ +- procp->pc_count++; ++ pax_open_kernel(); ++ (*(unsigned int *)&procp->pc_count)++; ++ pax_close_kernel(); + + /* Initialize storage for argp and resp */ + memset(rqstp->rq_argp, 0, procp->pc_argsize); diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c index 296192c..5a95b93 100644 --- a/net/sunrpc/svcsock.c @@ -85121,6 +89753,19 @@ index 317bfe3..342dd43 100644 seq_putc(seq, '\n'); } +diff --git a/net/unix/sysctl_net_unix.c b/net/unix/sysctl_net_unix.c +index 397cffe..405fdb1 100644 +--- a/net/unix/sysctl_net_unix.c ++++ b/net/unix/sysctl_net_unix.c +@@ -34,7 +34,7 @@ static struct ctl_path unix_path[] = { + + int __net_init unix_sysctl_register(struct net *net) + { +- struct ctl_table *table; ++ ctl_table_no_const *table; + + table = kmemdup(unix_table, sizeof(unix_table), GFP_KERNEL); + if (table == NULL) diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c index 0af7f54..c916d2f 100644 --- a/net/wireless/wext-core.c @@ -85159,7 +89804,7 @@ index 0af7f54..c916d2f 100644 iwp->length += essid_compat; diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c -index 113d20e..a8da249 100644 +index 113d20e..16d8f04 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -299,7 +299,7 @@ static void xfrm_policy_kill(struct xfrm_policy *policy) @@ -85225,7 +89870,41 @@ index 113d20e..a8da249 100644 return 0; mtu = dst_mtu(dst->child); -@@ -2885,7 +2885,7 @@ static int xfrm_policy_migrate(struct xfrm_policy *pol, +@@ -2434,8 +2434,11 @@ int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo) + dst_ops->link_failure = xfrm_link_failure; + if (likely(dst_ops->neigh_lookup == NULL)) + dst_ops->neigh_lookup = xfrm_neigh_lookup; +- if (likely(afinfo->garbage_collect == NULL)) +- afinfo->garbage_collect = xfrm_garbage_collect_deferred; ++ if (likely(afinfo->garbage_collect == NULL)) { ++ pax_open_kernel(); ++ *(void **)&afinfo->garbage_collect = xfrm_garbage_collect_deferred; ++ pax_close_kernel(); ++ } + xfrm_policy_afinfo[afinfo->family] = afinfo; + } + write_unlock_bh(&xfrm_policy_afinfo_lock); +@@ -2482,7 +2485,9 @@ int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo) + dst_ops->check = NULL; + dst_ops->negative_advice = NULL; + dst_ops->link_failure = NULL; +- afinfo->garbage_collect = NULL; ++ pax_open_kernel(); ++ *(void **)&afinfo->garbage_collect = NULL; ++ pax_close_kernel(); + } + } + write_unlock_bh(&xfrm_policy_afinfo_lock); +@@ -2692,7 +2697,7 @@ static void __net_exit xfrm_net_exit(struct net *net) + xfrm_statistics_fini(net); + } + +-static struct pernet_operations __net_initdata xfrm_net_ops = { ++static struct pernet_operations __net_initconst xfrm_net_ops = { + .init = xfrm_net_init, + .exit = xfrm_net_exit, + }; +@@ -2885,7 +2890,7 @@ static int xfrm_policy_migrate(struct xfrm_policy *pol, sizeof(pol->xfrm_vec[i].saddr)); pol->xfrm_vec[i].encap_family = mp->new_family; /* flush bundles */ @@ -85235,21 +89914,98 @@ index 113d20e..a8da249 100644 } diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c -index 9414b9c..5139a22 100644 +index 9414b9c..8b3547c 100644 --- a/net/xfrm/xfrm_state.c +++ b/net/xfrm/xfrm_state.c -@@ -278,7 +278,9 @@ int xfrm_register_mode(struct xfrm_mode *mode, int family) +@@ -194,11 +194,13 @@ int xfrm_register_type(const struct xfrm_type *type, unsigned short family) + + if (unlikely(afinfo == NULL)) + return -EAFNOSUPPORT; +- typemap = afinfo->type_map; ++ typemap = (const struct xfrm_type **)afinfo->type_map; + +- if (likely(typemap[type->proto] == NULL)) ++ if (likely(typemap[type->proto] == NULL)) { ++ pax_open_kernel(); + typemap[type->proto] = type; +- else ++ pax_close_kernel(); ++ } else + err = -EEXIST; + xfrm_state_unlock_afinfo(afinfo); + return err; +@@ -213,12 +215,15 @@ int xfrm_unregister_type(const struct xfrm_type *type, unsigned short family) + + if (unlikely(afinfo == NULL)) + return -EAFNOSUPPORT; +- typemap = afinfo->type_map; ++ typemap = (const struct xfrm_type **)afinfo->type_map; + + if (unlikely(typemap[type->proto] != type)) + err = -ENOENT; +- else ++ else { ++ pax_open_kernel(); + typemap[type->proto] = NULL; ++ pax_close_kernel(); ++ } + xfrm_state_unlock_afinfo(afinfo); + return err; + } +@@ -227,7 +232,6 @@ EXPORT_SYMBOL(xfrm_unregister_type); + static const struct xfrm_type *xfrm_get_type(u8 proto, unsigned short family) + { + struct xfrm_state_afinfo *afinfo; +- const struct xfrm_type **typemap; + const struct xfrm_type *type; + int modload_attempted = 0; + +@@ -235,9 +239,8 @@ retry: + afinfo = xfrm_state_get_afinfo(family); + if (unlikely(afinfo == NULL)) + return NULL; +- typemap = afinfo->type_map; + +- type = typemap[proto]; ++ type = afinfo->type_map[proto]; + if (unlikely(type && !try_module_get(type->owner))) + type = NULL; + if (!type && !modload_attempted) { +@@ -270,7 +273,7 @@ int xfrm_register_mode(struct xfrm_mode *mode, int family) + return -EAFNOSUPPORT; + + err = -EEXIST; +- modemap = afinfo->mode_map; ++ modemap = (struct xfrm_mode **)afinfo->mode_map; + if (modemap[mode->encap]) + goto out; + +@@ -278,8 +281,10 @@ int xfrm_register_mode(struct xfrm_mode *mode, int family) if (!try_module_get(afinfo->owner)) goto out; - mode->afinfo = afinfo; + pax_open_kernel(); -+ *(void **)&mode->afinfo = afinfo; -+ pax_close_kernel(); ++ *(const void **)&mode->afinfo = afinfo; modemap[mode->encap] = mode; ++ pax_close_kernel(); err = 0; -@@ -1985,8 +1987,10 @@ int __xfrm_init_state(struct xfrm_state *x, bool init_replay) + out: +@@ -302,9 +307,11 @@ int xfrm_unregister_mode(struct xfrm_mode *mode, int family) + return -EAFNOSUPPORT; + + err = -ENOENT; +- modemap = afinfo->mode_map; ++ modemap = (struct xfrm_mode **)afinfo->mode_map; + if (likely(modemap[mode->encap] == mode)) { ++ pax_open_kernel(); + modemap[mode->encap] = NULL; ++ pax_close_kernel(); + module_put(mode->afinfo->owner); + err = 0; + } +@@ -1985,8 +1992,10 @@ int __xfrm_init_state(struct xfrm_state *x, bool init_replay) goto error; x->outer_mode = xfrm_get_mode(x->props.mode, family); @@ -85261,6 +90017,19 @@ index 9414b9c..5139a22 100644 if (init_replay) { err = xfrm_init_replay(x); +diff --git a/net/xfrm/xfrm_sysctl.c b/net/xfrm/xfrm_sysctl.c +index 05640bc..b67eaaa 100644 +--- a/net/xfrm/xfrm_sysctl.c ++++ b/net/xfrm/xfrm_sysctl.c +@@ -42,7 +42,7 @@ static struct ctl_table xfrm_table[] = { + + int __net_init xfrm_sysctl_init(struct net *net) + { +- struct ctl_table *table; ++ ctl_table_no_const *table; + + __xfrm_sysctl_init(net); + diff --git a/scripts/Makefile.build b/scripts/Makefile.build index d2b366c..2d5a6f8 100644 --- a/scripts/Makefile.build @@ -85654,6 +90423,18 @@ index 9dfcd6d..099068e 100644 warn("writing sum in %s failed: %s\n", filename, strerror(errno)); goto out; +diff --git a/scripts/package/builddeb b/scripts/package/builddeb +index 3c6c0b1..3e4dbf3 100644 +--- a/scripts/package/builddeb ++++ b/scripts/package/builddeb +@@ -241,6 +241,7 @@ fi + (cd $srctree; find . -name Makefile -o -name Kconfig\* -o -name \*.pl > "$objtree/debian/hdrsrcfiles") + (cd $srctree; find arch/$SRCARCH/include include scripts -type f >> "$objtree/debian/hdrsrcfiles") + (cd $objtree; find .config Module.symvers include scripts -type f >> "$objtree/debian/hdrobjfiles") ++(cd $objtree; find tools/gcc -name \*.so >> "$objtree/debian/hdrobjfiles") + destdir=$kernel_headers_dir/usr/src/linux-headers-$version + mkdir -p "$destdir" + (cd $srctree; tar -c -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -) diff --git a/scripts/pnmtologo.c b/scripts/pnmtologo.c index 5c11312..72742b5 100644 --- a/scripts/pnmtologo.c @@ -85698,10 +90479,10 @@ index 38f6617..e70b72b 100755 exuberant() diff --git a/security/Kconfig b/security/Kconfig -index 51bd5a0..cedcdeb 100644 +index 51bd5a0..14ae375 100644 --- a/security/Kconfig +++ b/security/Kconfig -@@ -4,6 +4,907 @@ +@@ -4,6 +4,944 @@ menu "Security options" @@ -85875,15 +90656,17 @@ index 51bd5a0..cedcdeb 100644 + help + Choose this option if performance is of highest priority for this deployment + of grsecurity. Features like UDEREF on a 64bit kernel, kernel stack clearing, -+ and freed memory sanitizing will be disabled. ++ clearing of structures intended for userland, and freed memory sanitizing will ++ be disabled. + +config GRKERNSEC_CONFIG_PRIORITY_SECURITY + bool "Security" + help + Choose this option if security is of highest priority for this deployment of -+ grsecurity. UDEREF, kernel stack clearing, and freed memory sanitizing will -+ be enabled for this kernel. In a worst-case scenario, these features can -+ introduce a 20% performance hit (UDEREF on x64 contributing half of this hit). ++ grsecurity. UDEREF, kernel stack clearing, clearing of structures intended ++ for userland, and freed memory sanitizing will be enabled for this kernel. ++ In a worst-case scenario, these features can introduce a 20% performance hit ++ (UDEREF on x64 contributing half of this hit). + +endchoice + @@ -86479,6 +91262,23 @@ index 51bd5a0..cedcdeb 100644 + frames may leave uninitialized memory behind that may be exposed + to a later syscall leaking the stack. + ++config PAX_MEMORY_STRUCTLEAK ++ bool "Forcibly initialize local variables copied to userland" ++ default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY) ++ help ++ By saying Y here the kernel will zero initialize some local ++ variables that are going to be copied to userland. This in ++ turn prevents unintended information leakage from the kernel ++ stack should later code forget to explicitly set all parts of ++ the copied variable. ++ ++ The tradeoff is less performance impact than PAX_MEMORY_STACKLEAK ++ at a much smaller coverage. ++ ++ Note that the implementation requires a gcc with plugin support, ++ i.e., gcc 4.5 or newer. You may need to install the supporting ++ headers explicitly in addition to the normal gcc package. ++ +config PAX_MEMORY_UDEREF + bool "Prevent invalid userland pointer dereference" + default y if GRKERNSEC_CONFIG_AUTO && (X86_32 || (X86_64 && GRKERNSEC_CONFIG_PRIORITY_SECURITY)) && (GRKERNSEC_CONFIG_VIRT_NONE || GRKERNSEC_CONFIG_VIRT_EPT) @@ -86550,12 +91350,30 @@ index 51bd5a0..cedcdeb 100644 + Since this has a negligible performance impact, you should enable + this feature. + -+ +config PAX_USERCOPY_DEBUG + bool + depends on X86 && PAX_USERCOPY + default n + ++config PAX_CONSTIFY_PLUGIN ++ bool "Automatically constify eligible structures" ++ default y if GRKERNSEC_CONFIG_AUTO ++ depends on !UML ++ help ++ By saying Y here the compiler will automatically constify a class ++ of types that contain only function pointers. This reduces the ++ kernel's attack surface and also produces a better memory layout. ++ ++ Note that the implementation requires a gcc with plugin support, ++ i.e., gcc 4.5 or newer. You may need to install the supporting ++ headers explicitly in addition to the normal gcc package ++ ++ Note that if some code really has to modify constified variables ++ then the source code will have to be patched to allow it. Examples ++ can be found in PaX itself (the no_const attribute) and for some ++ out-of-tree modules at http://www.grsecurity.net/~paxguy1/ . ++ ++ +config PAX_SIZE_OVERFLOW + bool "Prevent various integer overflows in function size parameters" + default y if GRKERNSEC_CONFIG_AUTO @@ -86609,7 +91427,7 @@ index 51bd5a0..cedcdeb 100644 config KEYS bool "Enable access key retention support" help -@@ -169,7 +1070,7 @@ config INTEL_TXT +@@ -169,7 +1107,7 @@ config INTEL_TXT config LSM_MMAP_MIN_ADDR int "Low address space for LSM to protect from user allocation" depends on SECURITY && SECURITY_SELINUX @@ -86800,6 +91618,41 @@ index 1b0b7bf..9476b92 100644 err: if (iov != iovstack) kfree(iov); +diff --git a/security/keys/key.c b/security/keys/key.c +index 4414abd..bb89c73 100644 +--- a/security/keys/key.c ++++ b/security/keys/key.c +@@ -956,7 +956,7 @@ int register_key_type(struct key_type *ktype) + } + + /* store the type */ +- list_add(&ktype->link, &key_types_list); ++ pax_list_add((struct list_head *)&ktype->link, &key_types_list); + ret = 0; + + out: +@@ -976,7 +976,7 @@ EXPORT_SYMBOL(register_key_type); + void unregister_key_type(struct key_type *ktype) + { + down_write(&key_types_sem); +- list_del_init(&ktype->link); ++ pax_list_del_init((struct list_head *)&ktype->link); + downgrade_write(&key_types_sem); + key_gc_keytype(ktype); + up_read(&key_types_sem); +@@ -993,9 +993,9 @@ void __init key_init(void) + 0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); + + /* add the special key types */ +- list_add_tail(&key_type_keyring.link, &key_types_list); +- list_add_tail(&key_type_dead.link, &key_types_list); +- list_add_tail(&key_type_user.link, &key_types_list); ++ pax_list_add_tail((struct list_head *)&key_type_keyring.link, &key_types_list); ++ pax_list_add_tail((struct list_head *)&key_type_dead.link, &key_types_list); ++ pax_list_add_tail((struct list_head *)&key_type_user.link, &key_types_list); + + /* record the root user tracking */ + rb_link_node(&root_key_user.node, diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c index 0b3f5d7..892c8a6 100644 --- a/security/keys/keyctl.c @@ -87005,19 +91858,6 @@ index b43813c..74be837 100644 } #else static inline int selinux_xfrm_enabled(void) -diff --git a/security/selinux/xfrm.c b/security/selinux/xfrm.c -index 48665ec..8ab2951 100644 ---- a/security/selinux/xfrm.c -+++ b/security/selinux/xfrm.c -@@ -310,7 +310,7 @@ int selinux_xfrm_policy_clone(struct xfrm_sec_ctx *old_ctx, - - if (old_ctx) { - new_ctx = kmalloc(sizeof(*old_ctx) + old_ctx->ctx_len, -- GFP_KERNEL); -+ GFP_ATOMIC); - if (!new_ctx) - return -ENOMEM; - diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c index 7db62b4..ee4d949 100644 --- a/security/smack/smack_lsm.c @@ -87559,10 +92399,10 @@ index 0000000..50f2f2f +size_overflow_hash.h diff --git a/tools/gcc/Makefile b/tools/gcc/Makefile new file mode 100644 -index 0000000..1d09b7e +index 0000000..144dbee --- /dev/null +++ b/tools/gcc/Makefile -@@ -0,0 +1,43 @@ +@@ -0,0 +1,45 @@ +#CC := gcc +#PLUGIN_SOURCE_FILES := pax_plugin.c +#PLUGIN_OBJECT_FILES := $(patsubst %.c,%.o,$(PLUGIN_SOURCE_FILES)) @@ -87571,13 +92411,13 @@ index 0000000..1d09b7e + +ifeq ($(PLUGINCC),$(HOSTCC)) +HOSTLIBS := hostlibs -+HOST_EXTRACFLAGS += -I$(GCCPLUGINS_DIR)/include -I$(GCCPLUGINS_DIR)/include/c-family -std=gnu99 -ggdb ++HOST_EXTRACFLAGS += -I$(GCCPLUGINS_DIR)/include -std=gnu99 -ggdb +else +HOSTLIBS := hostcxxlibs -+HOST_EXTRACXXFLAGS += -I$(GCCPLUGINS_DIR)/include -I$(GCCPLUGINS_DIR)/include/c-family -std=gnu++98 -ggdb -Wno-unused-parameter ++HOST_EXTRACXXFLAGS += -I$(GCCPLUGINS_DIR)/include -std=gnu++98 -ggdb -Wno-unused-parameter +endif + -+$(HOSTLIBS)-y := constify_plugin.so ++$(HOSTLIBS)-$(CONFIG_PAX_CONSTIFY_PLUGIN) := constify_plugin.so +$(HOSTLIBS)-$(CONFIG_PAX_MEMORY_STACKLEAK) += stackleak_plugin.so +$(HOSTLIBS)-$(CONFIG_KALLOCSTAT_PLUGIN) += kallocstat_plugin.so +$(HOSTLIBS)-$(CONFIG_PAX_KERNEXEC_PLUGIN) += kernexec_plugin.so @@ -87585,6 +92425,7 @@ index 0000000..1d09b7e +$(HOSTLIBS)-y += colorize_plugin.so +$(HOSTLIBS)-$(CONFIG_PAX_SIZE_OVERFLOW) += size_overflow_plugin.so +$(HOSTLIBS)-$(CONFIG_PAX_LATENT_ENTROPY) += latent_entropy_plugin.so ++$(HOSTLIBS)-$(CONFIG_PAX_MEMORY_STRUCTLEAK) += structleak_plugin.so + +always := $($(HOSTLIBS)-y) + @@ -87596,6 +92437,7 @@ index 0000000..1d09b7e +colorize_plugin-objs := colorize_plugin.o +size_overflow_plugin-objs := size_overflow_plugin.o +latent_entropy_plugin-objs := latent_entropy_plugin.o ++structleak_plugin-objs := structleak_plugin.o + +$(obj)/size_overflow_plugin.o: $(objtree)/$(obj)/size_overflow_hash.h + @@ -87942,10 +92784,10 @@ index 0000000..414fe5e +} diff --git a/tools/gcc/constify_plugin.c b/tools/gcc/constify_plugin.c new file mode 100644 -index 0000000..c415c9d +index 0000000..bee0acb --- /dev/null +++ b/tools/gcc/constify_plugin.c -@@ -0,0 +1,359 @@ +@@ -0,0 +1,518 @@ +/* + * Copyright 2011 by Emese Revfy <re.emese@gmail.com> + * Copyright 2011-2013 by PaX Team <pageexec@freemail.hu> @@ -87980,36 +92822,137 @@ index 0000000..c415c9d +#include "rtl.h" +#include "emit-rtl.h" +#include "tree-flow.h" ++#include "target.h" ++#include "langhooks.h" + ++// should come from c-tree.h if only it were installed for gcc 4.5... +#define C_TYPE_FIELDS_READONLY(TYPE) TREE_LANG_FLAG_1(TYPE) + ++// unused type flag in all versions 4.5-4.8 ++#define TYPE_CONSTIFY_VISITED(TYPE) TYPE_LANG_FLAG_4(TYPE) ++ +int plugin_is_GPL_compatible; + +static struct plugin_info const_plugin_info = { -+ .version = "201302112000", ++ .version = "201303270300", + .help = "no-constify\tturn off constification\n", +}; + -+static tree get_field_type(tree field) ++typedef struct { ++ bool has_fptr_field; ++ bool has_writable_field; ++ bool has_do_const_field; ++ bool has_no_const_field; ++} constify_info; ++ ++static const_tree get_field_type(const_tree field) +{ + return strip_array_types(TREE_TYPE(field)); +} + -+static bool walk_struct(tree node); ++static bool is_fptr(const_tree field) ++{ ++ const_tree ptr = get_field_type(field); ++ ++ if (TREE_CODE(ptr) != POINTER_TYPE) ++ return false; ++ ++ return TREE_CODE(TREE_TYPE(ptr)) == FUNCTION_TYPE; ++} ++ ++/* ++ * determine whether the given structure type meets the requirements for automatic constification, ++ * including the constification attributes on nested structure types ++ */ ++static void constifiable(const_tree node, constify_info *cinfo) ++{ ++ const_tree field; ++ ++ gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE); ++ ++ // e.g., pointer to structure fields while still constructing the structure type ++ if (TYPE_FIELDS(node) == NULL_TREE) ++ return; ++ ++ for (field = TYPE_FIELDS(node); field; field = TREE_CHAIN(field)) { ++ const_tree type = get_field_type(field); ++ enum tree_code code = TREE_CODE(type); ++ ++ if (node == type) ++ continue; ++ ++ if (is_fptr(field)) ++ cinfo->has_fptr_field = true; ++ else if (!TREE_READONLY(field)) ++ cinfo->has_writable_field = true; ++ ++ if (code == RECORD_TYPE || code == UNION_TYPE) { ++ if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) ++ cinfo->has_do_const_field = true; ++ else if (lookup_attribute("no_const", TYPE_ATTRIBUTES(type))) ++ cinfo->has_no_const_field = true; ++ else ++ constifiable(type, cinfo); ++ } ++ } ++} ++ ++static bool constified(const_tree node) ++{ ++ constify_info cinfo = { ++ .has_fptr_field = false, ++ .has_writable_field = false, ++ .has_do_const_field = false, ++ .has_no_const_field = false ++ }; ++ ++ gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE); ++ ++ if (lookup_attribute("no_const", TYPE_ATTRIBUTES(node))) { ++ gcc_assert(!TYPE_READONLY(node)); ++ return false; ++ } ++ ++ if (lookup_attribute("do_const", TYPE_ATTRIBUTES(node))) { ++ gcc_assert(TYPE_READONLY(node)); ++ return true; ++ } ++ ++ constifiable(node, &cinfo); ++ if ((!cinfo.has_fptr_field || cinfo.has_writable_field) && !cinfo.has_do_const_field) ++ return false; ++ ++ return TYPE_READONLY(node); ++} ++ +static void deconstify_tree(tree node); + +static void deconstify_type(tree type) +{ + tree field; + ++ gcc_assert(TREE_CODE(type) == RECORD_TYPE || TREE_CODE(type) == UNION_TYPE); ++ + for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) { -+ tree fieldtype = get_field_type(field); ++ const_tree fieldtype = get_field_type(field); + -+ if (TREE_CODE(fieldtype) != RECORD_TYPE && TREE_CODE(fieldtype) != UNION_TYPE) ++ // special case handling of simple ptr-to-same-array-type members ++ if (TREE_CODE(TREE_TYPE(field)) == POINTER_TYPE) { ++ const_tree ptrtype = TREE_TYPE(TREE_TYPE(field)); ++ ++ if (TREE_CODE(ptrtype) != RECORD_TYPE && TREE_CODE(ptrtype) != UNION_TYPE) ++ continue; ++ if (TREE_TYPE(TREE_TYPE(field)) == type) ++ continue; ++ if (TYPE_MAIN_VARIANT(ptrtype) == TYPE_MAIN_VARIANT(type)) { ++ TREE_TYPE(field) = copy_node(TREE_TYPE(field)); ++ TREE_TYPE(TREE_TYPE(field)) = type; ++ } + continue; -+ if (!TYPE_READONLY(fieldtype)) ++ } ++ if (TREE_CODE(fieldtype) != RECORD_TYPE && TREE_CODE(fieldtype) != UNION_TYPE) + continue; -+ if (!walk_struct(fieldtype)) ++ if (!constified(fieldtype)) + continue; + + deconstify_tree(field); @@ -88017,16 +92960,17 @@ index 0000000..c415c9d + } + TYPE_READONLY(type) = 0; + C_TYPE_FIELDS_READONLY(type) = 0; ++ if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) ++ TYPE_ATTRIBUTES(type) = remove_attribute("do_const", TYPE_ATTRIBUTES(type)); +} + +static void deconstify_tree(tree node) +{ + tree old_type, new_type, field; + -+// TREE_READONLY(node) = 0; + old_type = TREE_TYPE(node); + while (TREE_CODE(old_type) == ARRAY_TYPE && TREE_CODE(TREE_TYPE(old_type)) != ARRAY_TYPE) { -+ node = old_type; ++ node = TREE_TYPE(node) = copy_node(old_type); + old_type = TREE_TYPE(old_type); + } + @@ -88046,6 +92990,12 @@ index 0000000..c415c9d +static tree handle_no_const_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs) +{ + tree type; ++ constify_info cinfo = { ++ .has_fptr_field = false, ++ .has_writable_field = false, ++ .has_do_const_field = false, ++ .has_no_const_field = false ++ }; + + *no_add_attrs = true; + if (TREE_CODE(*node) == FUNCTION_DECL) { @@ -88053,21 +93003,24 @@ index 0000000..c415c9d + return NULL_TREE; + } + ++ if (TREE_CODE(*node) == PARM_DECL) { ++ error("%qE attribute does not apply to function parameters", name); ++ return NULL_TREE; ++ } ++ + if (TREE_CODE(*node) == VAR_DECL) { + error("%qE attribute does not apply to variables", name); + return NULL_TREE; + } + + if (TYPE_P(*node)) { -+ if (TREE_CODE(*node) == RECORD_TYPE || TREE_CODE(*node) == UNION_TYPE) -+ *no_add_attrs = false; -+ else -+ error("%qE attribute applies to struct and union types only", name); -+ return NULL_TREE; ++ *no_add_attrs = false; ++ type = *node; ++ } else { ++ gcc_assert(TREE_CODE(*node) == TYPE_DECL); ++ type = TREE_TYPE(*node); + } + -+ type = TREE_TYPE(*node); -+ + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE) { + error("%qE attribute applies to struct and union types only", name); + return NULL_TREE; @@ -88078,16 +93031,20 @@ index 0000000..c415c9d + return NULL_TREE; + } + -+ if (TREE_CODE(*node) == TYPE_DECL && !TYPE_READONLY(type)) { -+ error("%qE attribute used on type that is not constified", name); ++ if (TYPE_P(*node)) { ++ if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) ++ error("%qE attribute is incompatible with 'do_const'", name); + return NULL_TREE; + } + -+ if (TREE_CODE(*node) == TYPE_DECL) { ++ constifiable(type, &cinfo); ++ if ((cinfo.has_fptr_field && !cinfo.has_writable_field) || lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) { + deconstify_tree(*node); ++ TYPE_CONSTIFY_VISITED(TREE_TYPE(*node)) = 1; + return NULL_TREE; + } + ++ error("%qE attribute used on type that is not constified", name); + return NULL_TREE; +} + @@ -88095,6 +93052,8 @@ index 0000000..c415c9d +{ + TYPE_READONLY(type) = 1; + C_TYPE_FIELDS_READONLY(type) = 1; ++ TYPE_CONSTIFY_VISITED(type) = 1; ++// TYPE_ATTRIBUTES(type) = tree_cons(get_identifier("do_const"), NULL_TREE, TYPE_ATTRIBUTES(type)); +} + +static tree handle_do_const_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs) @@ -88110,8 +93069,17 @@ index 0000000..c415c9d + return NULL_TREE; + } + ++ if (lookup_attribute(IDENTIFIER_POINTER(name), TYPE_ATTRIBUTES(*node))) { ++ error("%qE attribute is already applied to the type", name); ++ return NULL_TREE; ++ } ++ ++ if (lookup_attribute("no_const", TYPE_ATTRIBUTES(*node))) { ++ error("%qE attribute is incompatible with 'no_const'", name); ++ return NULL_TREE; ++ } ++ + *no_add_attrs = false; -+ constify_type(*node); + return NULL_TREE; +} + @@ -88147,61 +93115,54 @@ index 0000000..c415c9d + register_attribute(&do_const_attr); +} + -+static bool is_fptr(tree field) ++static void finish_type(void *event_data, void *data) +{ -+ tree ptr = get_field_type(field); -+ -+ if (TREE_CODE(ptr) != POINTER_TYPE) -+ return false; -+ -+ return TREE_CODE(TREE_TYPE(ptr)) == FUNCTION_TYPE; -+} ++ tree type = (tree)event_data; ++ constify_info cinfo = { ++ .has_fptr_field = false, ++ .has_writable_field = false, ++ .has_do_const_field = false, ++ .has_no_const_field = false ++ }; + -+static bool walk_struct(tree node) -+{ -+ tree field; ++ if (type == NULL_TREE || type == error_mark_node) ++ return; + -+ if (TYPE_FIELDS(node) == NULL_TREE) -+ return false; ++ if (TYPE_FIELDS(type) == NULL_TREE || TYPE_CONSTIFY_VISITED(type)) ++ return; + -+ if (lookup_attribute("do_const", TYPE_ATTRIBUTES(node))) -+ return true; ++ constifiable(type, &cinfo); + -+ if (lookup_attribute("no_const", TYPE_ATTRIBUTES(node))) { -+ gcc_assert(!TYPE_READONLY(node)); -+ deconstify_type(node); -+ return false; ++ if (TYPE_READONLY(type) && C_TYPE_FIELDS_READONLY(type)) { ++ if (!lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) ++ return; ++ if (cinfo.has_writable_field) ++ return; ++ error("'do_const' attribute used on type that is%sconstified", cinfo.has_fptr_field ? " " : " not "); ++ return; + } + -+ for (field = TYPE_FIELDS(node); field; field = TREE_CHAIN(field)) { -+ tree type = get_field_type(field); -+ enum tree_code code = TREE_CODE(type); -+ -+ if (node == type) -+ return false; -+ if (code == RECORD_TYPE || code == UNION_TYPE) { -+ if (!(walk_struct(type))) -+ return false; -+ } else if (!is_fptr(field) && !TREE_READONLY(field)) -+ return false; ++ if (lookup_attribute("no_const", TYPE_ATTRIBUTES(type))) { ++ if ((cinfo.has_fptr_field && !cinfo.has_writable_field) || cinfo.has_do_const_field) { ++ deconstify_type(type); ++ TYPE_CONSTIFY_VISITED(type) = 1; ++ } else ++ error("'no_const' attribute used on type that is not constified"); ++ return; + } -+ return true; -+} + -+static void finish_type(void *event_data, void *data) -+{ -+ tree type = (tree)event_data; -+ -+ if (type == NULL_TREE || type == error_mark_node) ++ if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) { ++ constify_type(type); + return; ++ } + -+ if (TYPE_READONLY(type)) ++ if (cinfo.has_fptr_field && !cinfo.has_writable_field) { ++ constify_type(type); + return; ++ } + -+ if (walk_struct(type)) -+ constify_type(type); -+ else -+ deconstify_type(type); ++ deconstify_type(type); ++ TYPE_CONSTIFY_VISITED(type) = 1; +} + +static unsigned int check_local_variables(void) @@ -88230,24 +93191,19 @@ index 0000000..c415c9d + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE) + continue; + -+ if (!TYPE_READONLY(type)) ++ if (!TYPE_READONLY(type) || !C_TYPE_FIELDS_READONLY(type)) + continue; + -+// if (lookup_attribute("no_const", DECL_ATTRIBUTES(var))) -+// continue; -+ -+ if (lookup_attribute("no_const", TYPE_ATTRIBUTES(type))) ++ if (!TYPE_CONSTIFY_VISITED(type)) + continue; + -+ if (walk_struct(type)) { -+ error_at(DECL_SOURCE_LOCATION(var), "constified variable %qE cannot be local", var); -+ ret = 1; -+ } ++ error_at(DECL_SOURCE_LOCATION(var), "constified variable %qE cannot be local", var); ++ ret = 1; + } + return ret; +} + -+struct gimple_opt_pass pass_local_variable = { ++static struct gimple_opt_pass pass_local_variable = { + { + .type = GIMPLE_PASS, + .name = "check_local_variables", @@ -88268,6 +93224,45 @@ index 0000000..c415c9d + } +}; + ++static struct { ++ const char *name; ++ const char *asm_op; ++} sections[] = { ++ {".init.rodata", "\t.section\t.init.rodata,\"a\""}, ++ {".ref.rodata", "\t.section\t.ref.rodata,\"a\""}, ++ {".devinit.rodata", "\t.section\t.devinit.rodata,\"a\""}, ++ {".devexit.rodata", "\t.section\t.devexit.rodata,\"a\""}, ++ {".cpuinit.rodata", "\t.section\t.cpuinit.rodata,\"a\""}, ++ {".cpuexit.rodata", "\t.section\t.cpuexit.rodata,\"a\""}, ++ {".meminit.rodata", "\t.section\t.meminit.rodata,\"a\""}, ++ {".memexit.rodata", "\t.section\t.memexit.rodata,\"a\""}, ++ {".data..read_only", "\t.section\t.data..read_only,\"a\""}, ++}; ++ ++static unsigned int (*old_section_type_flags)(tree decl, const char *name, int reloc); ++ ++static unsigned int constify_section_type_flags(tree decl, const char *name, int reloc) ++{ ++ size_t i; ++ ++ for (i = 0; i < ARRAY_SIZE(sections); i++) ++ if (!strcmp(sections[i].name, name)) ++ return 0; ++ return old_section_type_flags(decl, name, reloc); ++} ++ ++static void constify_start_unit(void *gcc_data, void *user_data) ++{ ++// size_t i; ++ ++// for (i = 0; i < ARRAY_SIZE(sections); i++) ++// sections[i].section = get_unnamed_section(0, output_section_asm_op, sections[i].asm_op); ++// sections[i].section = get_section(sections[i].name, 0, NULL); ++ ++ old_section_type_flags = targetm.section_type_flags; ++ targetm.section_type_flags = constify_section_type_flags; ++} ++ +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version) +{ + const char * const plugin_name = plugin_info->base_name; @@ -88296,10 +93291,16 @@ index 0000000..c415c9d + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key); + } + ++ if (strcmp(lang_hooks.name, "GNU C")) { ++ inform(UNKNOWN_LOCATION, G_("%s supports C only"), plugin_name); ++ constify = false; ++ } ++ + register_callback(plugin_name, PLUGIN_INFO, NULL, &const_plugin_info); + if (constify) { + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL); + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &local_variable_pass_info); ++ register_callback(plugin_name, PLUGIN_START_UNIT, constify_start_unit, NULL); + } + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL); + @@ -89387,3402 +94388,4786 @@ index 0000000..b5395ba +} diff --git a/tools/gcc/size_overflow_hash.data b/tools/gcc/size_overflow_hash.data new file mode 100644 -index 0000000..a8203dd +index 0000000..1e116f6 --- /dev/null +++ b/tools/gcc/size_overflow_hash.data -@@ -0,0 +1,3386 @@ +@@ -0,0 +1,4770 @@ +intel_fake_agp_alloc_by_type_1 intel_fake_agp_alloc_by_type 1 1 NULL -+ipwireless_tty_received_49154 ipwireless_tty_received 3 49154 NULL -+ath6kl_wmi_startscan_cmd_24580 ath6kl_wmi_startscan_cmd 7 24580 NULL -+ipw_queue_tx_init_49161 ipw_queue_tx_init 3 49161 NULL -+scsi_nl_send_vendor_msg_16394 scsi_nl_send_vendor_msg 5 16394 NULL -+xfs_efd_init_5463 xfs_efd_init 3 5463 NULL -+recent_mt_proc_write_8206 recent_mt_proc_write 3 8206 NULL -+alloc_trdev_16399 alloc_trdev 1 16399 NULL -+rds_sendmsg_40976 rds_sendmsg 4 40976 NULL -+econet_recvmsg_40978 econet_recvmsg 4 40978 NULL -+rt2x00debug_write_bbp_8212 rt2x00debug_write_bbp 3 8212 NULL +storvsc_connect_to_vsp_22 storvsc_connect_to_vsp 2 22 NULL +compat_sock_setsockopt_23 compat_sock_setsockopt 5 23 NULL -+ad7879_spi_multi_read_8218 ad7879_spi_multi_read 3 8218 NULL +carl9170_alloc_27 carl9170_alloc 1 27 NULL -+dvb_dvr_ioctl_49182 dvb_dvr_ioctl 2 49182 NULL -+ieee80211_if_read_tsf_16420 ieee80211_if_read_tsf 3 16420 NULL -+rxrpc_server_keyring_16431 rxrpc_server_keyring 3 16431 NULL -+mac80211_format_buffer_41010 mac80211_format_buffer 2 41010 NULL +sel_read_policyvers_55 sel_read_policyvers 3 55 NULL nohasharray +padzero_55 padzero 1 55 &sel_read_policyvers_55 +cfg80211_disconnected_57 cfg80211_disconnected 4 57 NULL -+alloc_wr_24635 alloc_wr 1-2 24635 NULL -+read_file_blob_57406 read_file_blob 3 57406 NULL -+sctp_getsockopt_primary_addr_24639 sctp_getsockopt_primary_addr 2 24639 NULL -+orig_node_add_if_32833 orig_node_add_if 2 32833 NULL -+enclosure_register_57412 enclosure_register 3 57412 NULL -+context_alloc_24645 context_alloc 3 24645 NULL -+_req_append_segment_41031 _req_append_segment 2 41031 NULL -+netlink_change_ngroups_16457 netlink_change_ngroups 2 16457 NULL -+mISDN_sock_sendmsg_41035 mISDN_sock_sendmsg 4 41035 NULL ++vis_data_count_prim_sec_64 vis_data_count_prim_sec 0 64 NULL +DepcaSignature_80 DepcaSignature 2 80 NULL nohasharray +crypto_authenc_setkey_80 crypto_authenc_setkey 3 80 &DepcaSignature_80 -+init_cdev_8274 init_cdev 1 8274 NULL -+compat_keyctl_instantiate_key_iov_57431 compat_keyctl_instantiate_key_iov 3 57431 NULL nohasharray -+alloc_ftrace_hash_57431 alloc_ftrace_hash 1 57431 &compat_keyctl_instantiate_key_iov_57431 -+sock_wmalloc_16472 sock_wmalloc 2 16472 NULL -+ab8500_val_write_16473 ab8500_val_write 3 16473 NULL +snd_korg1212_copy_to_92 snd_korg1212_copy_to 6 92 NULL +load_msg_95 load_msg 2 95 NULL -+sctp_tsnmap_grow_32784 sctp_tsnmap_grow 2 32784 NULL -+new_tape_buffer_32866 new_tape_buffer 2 32866 NULL -+sys_pselect6_57449 sys_pselect6 1 57449 NULL ++device_flush_iotlb_115 device_flush_iotlb 2-3 115 NULL ++init_q_132 init_q 4 132 NULL ++memstick_alloc_host_142 memstick_alloc_host 1 142 NULL ++tracing_trace_options_write_153 tracing_trace_options_write 3 153 NULL ++iscsi_session_setup_196 iscsi_session_setup 4-5 196 NULL ++store_cpufv_215 store_cpufv 4 215 NULL ++flex_array_clear_251 flex_array_clear 2 251 NULL ++proc_scsi_write_proc_267 proc_scsi_write_proc 3 267 NULL ++generic_file_direct_write_291 generic_file_direct_write 0 291 NULL ++read_file_war_stats_292 read_file_war_stats 3 292 NULL ++platform_device_add_data_310 platform_device_add_data 3 310 NULL ++iwl_dbgfs_tx_statistics_read_314 iwl_dbgfs_tx_statistics_read 3 314 NULL nohasharray ++dn_setsockopt_314 dn_setsockopt 5 314 &iwl_dbgfs_tx_statistics_read_314 ++next_node_allowed_318 next_node_allowed 1 318 NULL ++compat_sys_ioctl_333 compat_sys_ioctl 3 333 NULL ++btmrvl_txdnldready_read_413 btmrvl_txdnldready_read 3 413 NULL ++lbs_rdmac_read_418 lbs_rdmac_read 3 418 NULL ++snd_ca0106_ptr_read_467 snd_ca0106_ptr_read 0 467 NULL ++_alloc_get_attr_desc_470 _alloc_get_attr_desc 2 470 NULL ++pidlist_resize_496 pidlist_resize 2 496 NULL ++ocfs2_validate_meta_ecc_bhs_527 ocfs2_validate_meta_ecc_bhs 0 527 NULL ++ipv6_skip_exthdr_536 ipv6_skip_exthdr 0-2 536 NULL ++zlib_deflate_workspacesize_537 zlib_deflate_workspacesize 0-1-2 537 NULL ++iwl_dbgfs_wowlan_sram_read_540 iwl_dbgfs_wowlan_sram_read 3 540 NULL ++devres_alloc_551 devres_alloc 2 551 NULL ++snd_aw2_saa7146_get_hw_ptr_playback_558 snd_aw2_saa7146_get_hw_ptr_playback 0 558 NULL ++dev_hard_header_565 dev_hard_header 0 565 NULL nohasharray ++start_isoc_chain_565 start_isoc_chain 2 565 &dev_hard_header_565 ++compat_sys_preadv_583 compat_sys_preadv 3 583 NULL ++ni_gpct_device_construct_610 ni_gpct_device_construct 5 610 NULL ++compat_sys_shmat_620 compat_sys_shmat 3 620 NULL ++sysfs_acpi_set_625 sysfs_acpi_set 3 625 NULL ++viafb_dfpl_proc_write_627 viafb_dfpl_proc_write 3 627 NULL ++isp1760_register_628 isp1760_register 1-2 628 NULL ++drbd_bm_find_next_643 drbd_bm_find_next 2 643 NULL ++unlink_queued_645 unlink_queued 3-4 645 NULL ++iwl_legacy_dbgfs_force_reset_read_649 iwl_legacy_dbgfs_force_reset_read 3 649 NULL ++dtim_interval_read_654 dtim_interval_read 3 654 NULL ++ceph_copy_user_to_page_vector_656 ceph_copy_user_to_page_vector 4-3 656 NULL ++rtl8169_try_rx_copy_705 rtl8169_try_rx_copy 3 705 NULL ++ipath_resize_cq_712 ipath_resize_cq 2 712 NULL ++context_struct_compute_av_722 context_struct_compute_av 3 722 NULL ++sctp_setsockopt_peer_addr_params_734 sctp_setsockopt_peer_addr_params 3 734 NULL ++dvb_video_write_754 dvb_video_write 3 754 NULL ++iwl_read_targ_mem_772 iwl_read_targ_mem 0 772 NULL ++if_writecmd_815 if_writecmd 2 815 NULL ++aac_change_queue_depth_825 aac_change_queue_depth 2 825 NULL ++um_idi_read_850 um_idi_read 3 850 NULL ++o2net_send_message_vec_879 o2net_send_message_vec 4 879 NULL nohasharray ++iwl_dbgfs_fh_reg_read_879 iwl_dbgfs_fh_reg_read 3 879 &o2net_send_message_vec_879 ++snd_pcm_action_single_905 snd_pcm_action_single 0 905 NULL ++btmrvl_hsstate_read_920 btmrvl_hsstate_read 3 920 NULL ++carl9170_cmd_buf_950 carl9170_cmd_buf 3 950 NULL ++__nodes_weight_956 __nodes_weight 2 956 NULL ++sys_msgrcv_959 sys_msgrcv 3 959 NULL ++pohmelfs_name_alloc_1036 pohmelfs_name_alloc 1 1036 NULL ++gigaset_initdriver_1060 gigaset_initdriver 2 1060 NULL ++mce_request_packet_1073 mce_request_packet 3 1073 NULL ++agp_create_memory_1075 agp_create_memory 1 1075 NULL ++_scsih_adjust_queue_depth_1083 _scsih_adjust_queue_depth 2 1083 NULL ++__arch_hweight8_1105 __arch_hweight8 0 1105 NULL ++vmalloc_32_1135 vmalloc_32 1 1135 NULL ++i2400m_rx_ctl_1157 i2400m_rx_ctl 4 1157 NULL ++ipc_alloc_1192 ipc_alloc 1 1192 NULL ++ib_create_send_mad_1196 ib_create_send_mad 5 1196 NULL ++i2400m_rx_ctl_ack_1199 i2400m_rx_ctl_ack 3 1199 NULL ++i2cdev_read_1206 i2cdev_read 3 1206 NULL ++acpi_battery_write_alarm_1240 acpi_battery_write_alarm 3 1240 NULL ++ocfs2_extend_file_1266 ocfs2_extend_file 3 1266 NULL ++ioctl_private_iw_point_1273 ioctl_private_iw_point 7 1273 NULL ++compat_put_u64_1319 compat_put_u64 1 1319 NULL ++ffs_1322 ffs 0 1322 NULL ++btrfs_submit_compressed_write_1347 btrfs_submit_compressed_write 5 1347 NULL ++io_mapping_create_wc_1354 io_mapping_create_wc 1-2 1354 NULL ++snd_pcm_lib_write1_1358 snd_pcm_lib_write1 0-3 1358 NULL ++ipx_sendmsg_1362 ipx_sendmsg 4 1362 NULL ++ocfs2_prepare_inode_for_write_1372 ocfs2_prepare_inode_for_write 3 1372 NULL +sctp_setsockopt_initmsg_1383 sctp_setsockopt_initmsg 3 1383 NULL -+tracing_readme_read_16493 tracing_readme_read 3 16493 NULL -+cfg80211_inform_bss_frame_41078 cfg80211_inform_bss_frame 4 41078 NULL -+send_midi_async_57463 send_midi_async 3 57463 NULL -+sisusb_clear_vram_57466 sisusb_clear_vram 2-3 57466 NULL -+ieee80211_if_read_flags_57470 ieee80211_if_read_flags 3 57470 NULL ++do_msgsnd_1387 do_msgsnd 4 1387 NULL ++zone_page_state_1393 zone_page_state 0 1393 NULL ++file_read_actor_1401 file_read_actor 4 1401 NULL ++stack_max_size_read_1445 stack_max_size_read 3 1445 NULL ++tx_queue_len_read_1463 tx_queue_len_read 3 1463 NULL ++xprt_alloc_1475 xprt_alloc 2 1475 NULL ++sta_num_ps_buf_frames_read_1488 sta_num_ps_buf_frames_read 3 1488 NULL ++posix_acl_permission_1495 posix_acl_permission 0 1495 NULL ++tomoyo_round2_1518 tomoyo_round2 0 1518 NULL ++sym_name_1571 sym_name 3 1571 NULL ++ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime_1589 ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime 3 1589 NULL ++fc_frame_alloc_1596 fc_frame_alloc 2 1596 NULL ++packet_buffer_init_1607 packet_buffer_init 2 1607 NULL ++btmrvl_hscmd_read_1614 btmrvl_hscmd_read 3 1614 NULL ++v9fs_fid_xattr_get_1618 v9fs_fid_xattr_get 0 1618 NULL ++bluetooth_proc_write_1630 bluetooth_proc_write 3 1630 NULL ++btmrvl_hsmode_read_1647 btmrvl_hsmode_read 3 1647 NULL ++ikconfig_read_current_1658 ikconfig_read_current 3 1658 NULL ++compat_x25_ioctl_1674 compat_x25_ioctl 3 1674 NULL ++configfs_read_file_1683 configfs_read_file 3 1683 NULL ++coda_psdev_write_1711 coda_psdev_write 3 1711 NULL ++dma_memcpy_pg_to_iovec_1725 dma_memcpy_pg_to_iovec 6 1725 NULL ++compat_cdrom_generic_command_1756 compat_cdrom_generic_command 4 1756 NULL ++ieee80211_new_mesh_header_1761 ieee80211_new_mesh_header 0 1761 NULL ++ebt_size_mwt_1768 ebt_size_mwt 0 1768 NULL ++cosa_write_1774 cosa_write 3 1774 NULL ++__nodelist_scnprintf_1815 __nodelist_scnprintf 0-4-2 1815 NULL ++iwl_legacy_dbgfs_rxon_flags_read_1894 iwl_legacy_dbgfs_rxon_flags_read 3 1894 NULL ++ieee80211_if_fmt_dot11MeshConfirmTimeout_1945 ieee80211_if_fmt_dot11MeshConfirmTimeout 3 1945 NULL ++read_swap_header_1957 read_swap_header 0 1957 NULL ++ivtv_v4l2_read_1964 ivtv_v4l2_read 3 1964 NULL ++store_iwmct_log_level_fw_1974 store_iwmct_log_level_fw 4 1974 NULL ++sel_read_avc_hash_stats_1984 sel_read_avc_hash_stats 3 1984 NULL ++xfs_trans_count_vecs_1991 xfs_trans_count_vecs 0 1991 NULL ++__alloc_bootmem_node_1992 __alloc_bootmem_node 2 1992 NULL ++atomic_read_unchecked_1995 atomic_read_unchecked 0 1995 NULL ++ocfs2_global_qinit_alloc_2018 ocfs2_global_qinit_alloc 0 2018 NULL ++write_flush_pipefs_2021 write_flush_pipefs 3 2021 NULL ++BcmCopySection_2035 BcmCopySection 5 2035 NULL ++devm_ioremap_nocache_2036 devm_ioremap_nocache 2-3 2036 NULL ++ath6kl_fwlog_mask_read_2050 ath6kl_fwlog_mask_read 3 2050 NULL ++ocfs2_expand_inline_dir_2063 ocfs2_expand_inline_dir 3 2063 NULL ++subbuf_read_actor_2071 subbuf_read_actor 3 2071 NULL ++iwl_dbgfs_current_sleep_command_read_2081 iwl_dbgfs_current_sleep_command_read 3 2081 NULL ++idetape_chrdev_read_2097 idetape_chrdev_read 3 2097 NULL ++audit_expand_2098 audit_expand 2 2098 NULL ++num_pages_spanned_2105 num_pages_spanned 0 2105 NULL ++iwl_dbgfs_log_event_read_2107 iwl_dbgfs_log_event_read 3 2107 NULL ++ecryptfs_encrypt_and_encode_filename_2109 ecryptfs_encrypt_and_encode_filename 6 2109 NULL ++enable_read_2117 enable_read 3 2117 NULL ++pcf50633_write_block_2124 pcf50633_write_block 3 2124 NULL ++check_load_and_stores_2143 check_load_and_stores 2 2143 NULL ++mlx4_init_icm_table_2151 mlx4_init_icm_table 5-4 2151 NULL ++iov_iter_count_2152 iov_iter_count 0 2152 NULL ++_ore_get_io_state_2166 _ore_get_io_state 3-4-5 2166 NULL ++ssb_bus_ssbbus_register_2217 ssb_bus_ssbbus_register 2 2217 NULL ++u32_array_read_2219 u32_array_read 3 2219 NULL ++vhci_write_2224 vhci_write 3 2224 NULL ++ieee80211_if_read_dot11MeshHWMPRannInterval_2249 ieee80211_if_read_dot11MeshHWMPRannInterval 3 2249 NULL ++netlbl_secattr_catmap_walk_2255 netlbl_secattr_catmap_walk 0-2 2255 NULL ++au_fidir_sz_2256 au_fidir_sz 0-1 2256 NULL nohasharray ++sel_write_avc_cache_threshold_2256 sel_write_avc_cache_threshold 3 2256 &au_fidir_sz_2256 ++do_update_counters_2259 do_update_counters 4 2259 NULL ++kvm_clear_guest_page_2308 kvm_clear_guest_page 4 2308 NULL ++picolcd_fb_write_2318 picolcd_fb_write 3 2318 NULL ++gart_map_page_2325 gart_map_page 3-4 2325 NULL ++__erst_read_to_erange_2341 __erst_read_to_erange 0 2341 NULL ++create_subvol_2347 create_subvol 4 2347 NULL ++zr364xx_read_2354 zr364xx_read 3 2354 NULL ++viafb_iga2_odev_proc_write_2363 viafb_iga2_odev_proc_write 3 2363 NULL ++rtl_port_map_2385 rtl_port_map 1-2 2385 NULL ++rxpipe_rx_prep_beacon_drop_read_2403 rxpipe_rx_prep_beacon_drop_read 3 2403 NULL ++isdn_v110_open_2418 isdn_v110_open 3 2418 NULL ++ioremap_nocache_2439 ioremap_nocache 1-2 2439 NULL ++tty_buffer_find_2443 tty_buffer_find 2 2443 NULL ++b43legacy_debugfs_read_2473 b43legacy_debugfs_read 3 2473 NULL ++update_pmkid_2481 update_pmkid 4 2481 NULL ++wiphy_new_2482 wiphy_new 2 2482 NULL ++squashfs_read_fragment_index_table_2506 squashfs_read_fragment_index_table 4 2506 NULL ++dm_write_2513 dm_write 3 2513 NULL ++v9fs_cached_file_read_2514 v9fs_cached_file_read 3 2514 NULL ++ext4_get_inode_loc_2516 ext4_get_inode_loc 0 2516 NULL ++gspca_dev_probe_2570 gspca_dev_probe 4 2570 NULL ++pcm_sanity_check_2574 pcm_sanity_check 0 2574 NULL ++store_pwm1_enable_2577 store_pwm1_enable 4 2577 NULL ++smk_write_logging_2618 smk_write_logging 3 2618 NULL ++iwl4965_ucode_general_stats_read_2639 iwl4965_ucode_general_stats_read 3 2639 NULL ++lro_gen_skb_2644 lro_gen_skb 6 2644 NULL ++memcpy_fromiovecend_2707 memcpy_fromiovecend 3-4 2707 NULL ++__xip_file_write_2733 __xip_file_write 4-3 2733 NULL ++hid_report_raw_event_2762 hid_report_raw_event 4 2762 NULL ++mon_bin_ioctl_2771 mon_bin_ioctl 3 2771 NULL ++__next_cpu_2782 __next_cpu 1 2782 NULL ++sel_read_enforce_2828 sel_read_enforce 3 2828 NULL ++wait_for_avail_2847 wait_for_avail 0 2847 NULL ++ufs_free_fragments_2857 ufs_free_fragments 2 2857 NULL ++move_addr_to_user_2868 move_addr_to_user 2 2868 NULL ++nla_padlen_2883 nla_padlen 1 2883 NULL ++cmm_write_2896 cmm_write 3 2896 NULL ++alloc_page_cgroup_2919 alloc_page_cgroup 1 2919 NULL ++nes_read_indexed_2946 nes_read_indexed 0 2946 NULL ++tm6000_i2c_recv_regs16_2949 tm6000_i2c_recv_regs16 5 2949 NULL ++p9_nr_pages_2992 p9_nr_pages 0-2 2992 NULL ++store_cardr_2997 store_cardr 4 2997 NULL ++do_dmabuf_dirty_sou_3017 do_dmabuf_dirty_sou 7 3017 NULL ++depth_write_3021 depth_write 3 3021 NULL ++snd_azf3328_codec_inl_3022 snd_azf3328_codec_inl 0 3022 NULL ++xfrm_dst_alloc_copy_3034 xfrm_dst_alloc_copy 3 3034 NULL ++iwl_dbgfs_sleep_level_override_read_3038 iwl_dbgfs_sleep_level_override_read 3 3038 NULL ++nr_free_buffer_pages_3044 nr_free_buffer_pages 0 3044 NULL ++__blk_end_bidi_request_3070 __blk_end_bidi_request 3-4 3070 NULL ++dac960_user_command_proc_write_3071 dac960_user_command_proc_write 3 3071 NULL ++rb_alloc_3102 rb_alloc 1 3102 NULL ++simple_write_to_buffer_3122 simple_write_to_buffer 5-2 3122 NULL ++fill_write_buffer_3142 fill_write_buffer 3 3142 NULL ++CIFSSMBSetPosixACL_3154 CIFSSMBSetPosixACL 5 3154 NULL ++compat_sys_migrate_pages_3157 compat_sys_migrate_pages 2 3157 NULL ++encrypted_instantiate_3168 encrypted_instantiate 3 3168 NULL ++uv_num_possible_blades_3177 uv_num_possible_blades 0 3177 NULL ++compat_do_ip6t_set_ctl_3184 compat_do_ip6t_set_ctl 4 3184 NULL ++alloc_context_3194 alloc_context 1 3194 NULL ++ath6kl_mgmt_tx_3230 ath6kl_mgmt_tx 9 3230 NULL ++kimage_crash_alloc_3233 kimage_crash_alloc 3 3233 NULL ++ext3_xattr_find_entry_3237 ext3_xattr_find_entry 0 3237 NULL ++key_key_read_3241 key_key_read 3 3241 NULL ++number_3243 number 0 3243 NULL ++__ilog2_u64_3284 __ilog2_u64 0 3284 NULL ++arvo_sysfs_write_3311 arvo_sysfs_write 6 3311 NULL ++compat_sys_setsockopt_3326 compat_sys_setsockopt 5 3326 NULL ++aac_rkt_ioremap_3333 aac_rkt_ioremap 2 3333 NULL ++read_from_oldmem_3337 read_from_oldmem 2 3337 NULL ++gsm_control_rls_3353 gsm_control_rls 3 3353 NULL ++scnprintf_3360 scnprintf 0-2 3360 NULL ++send_stream_3397 send_stream 4 3397 NULL ++isdn_readbchan_3401 isdn_readbchan 0-5 3401 NULL ++msix_map_region_3411 msix_map_region 3 3411 NULL ++pci_add_cap_save_buffer_3426 pci_add_cap_save_buffer 3 3426 NULL ++crystalhd_create_dio_pool_3427 crystalhd_create_dio_pool 2 3427 NULL ++pipe_iov_copy_to_user_3447 pipe_iov_copy_to_user 3 3447 NULL ++percpu_modalloc_3448 percpu_modalloc 2-3 3448 NULL ++jffs2_acl_setxattr_3464 jffs2_acl_setxattr 4 3464 NULL nohasharray ++snd_pcm_lib_readv_transfer_3464 snd_pcm_lib_readv_transfer 4-2-5 3464 &jffs2_acl_setxattr_3464 ++alloc_skb_fclone_3467 alloc_skb_fclone 1 3467 NULL ++security_context_to_sid_default_3492 security_context_to_sid_default 2 3492 NULL nohasharray ++efi_ioremap_3492 efi_ioremap 1-2 3492 &security_context_to_sid_default_3492 ++xfrm_migrate_msgsize_3496 xfrm_migrate_msgsize 1 3496 NULL ++ieee80211_wx_set_gen_ie_rsl_3521 ieee80211_wx_set_gen_ie_rsl 3 3521 NULL ++btrfs_dir_name_len_3549 btrfs_dir_name_len 0 3549 NULL ++alloc_smp_resp_3566 alloc_smp_resp 1 3566 NULL ++evtchn_read_3569 evtchn_read 3 3569 NULL ++vc_resize_3585 vc_resize 2-3 3585 NULL ++compat_sys_semtimedop_3606 compat_sys_semtimedop 3 3606 NULL ++sctp_getsockopt_events_3607 sctp_getsockopt_events 2 3607 NULL ++aligned_kmalloc_3628 aligned_kmalloc 1 3628 NULL ++cm_copy_private_data_3649 cm_copy_private_data 2 3649 NULL ++i915_compat_ioctl_3656 i915_compat_ioctl 2 3656 NULL ++kmem_cache_alloc_3690 kmem_cache_alloc 0 3690 NULL ++create_irq_3703 create_irq 0 3703 NULL nohasharray ++btmrvl_psmode_write_3703 btmrvl_psmode_write 3 3703 &create_irq_3703 nohasharray ++snd_m3_assp_read_3703 snd_m3_assp_read 0 3703 &btmrvl_psmode_write_3703 ++videobuf_pages_to_sg_3708 videobuf_pages_to_sg 2 3708 NULL ++ci_ll_write_3740 ci_ll_write 4 3740 NULL ++sctp_setsockopt_auth_key_3793 sctp_setsockopt_auth_key 3 3793 NULL ++ncp_file_write_3813 ncp_file_write 3 3813 NULL ++read_file_tx_chainmask_3829 read_file_tx_chainmask 3 3829 NULL ++stringify_nodemap_3842 stringify_nodemap 2 3842 NULL ++ubi_eba_read_leb_3847 ubi_eba_read_leb 0 3847 NULL ++smk_read_onlycap_3855 smk_read_onlycap 3 3855 NULL ++get_fd_set_3866 get_fd_set 1 3866 NULL ++ubi_dbg_dump_flash_3870 ubi_dbg_dump_flash 4 3870 NULL ++garp_attr_create_3883 garp_attr_create 3 3883 NULL ++uea_send_modem_cmd_3888 uea_send_modem_cmd 3 3888 NULL ++nvram_write_3894 nvram_write 3 3894 NULL ++comedi_buf_read_n_available_3899 comedi_buf_read_n_available 0 3899 NULL ++vcs_write_3910 vcs_write 3 3910 NULL ++pm860x_read_device_3958 pm860x_read_device 3 3958 NULL ++atalk_compat_ioctl_3991 atalk_compat_ioctl 3 3991 NULL ++do_add_counters_3992 do_add_counters 3 3992 NULL ++userspace_status_4004 userspace_status 4 4004 NULL ++mei_write_4005 mei_write 3 4005 NULL nohasharray ++xfs_check_block_4005 xfs_check_block 4 4005 &mei_write_4005 ++snd_hdsp_capture_copy_4011 snd_hdsp_capture_copy 5 4011 NULL ++blk_end_request_4024 blk_end_request 3 4024 NULL ++ext4_xattr_find_entry_4025 ext4_xattr_find_entry 0 4025 NULL ++fbcon_do_set_font_4079 fbcon_do_set_font 2-3 4079 NULL ++tm6000_read_4151 tm6000_read 3 4151 NULL ++mpt_raid_phys_disk_get_num_paths_4155 mpt_raid_phys_disk_get_num_paths 0 4155 NULL ++msg_bits_4158 msg_bits 0-3-4 4158 NULL ++get_alua_req_4166 get_alua_req 3 4166 NULL ++blk_dropped_read_4168 blk_dropped_read 3 4168 NULL ++read_file_bool_4180 read_file_bool 3 4180 NULL ++f1x_determine_channel_4202 f1x_determine_channel 2 4202 NULL ++_osd_req_list_objects_4204 _osd_req_list_objects 6 4204 NULL ++__snd_gf1_read_addr_4210 __snd_gf1_read_addr 0 4210 NULL ++ext4_new_inode_4247 ext4_new_inode 5 4247 NULL ++xt_compat_add_offset_4289 xt_compat_add_offset 0 4289 NULL ++dvb_ringbuffer_pkt_read_user_4303 dvb_ringbuffer_pkt_read_user 2-3-5 4303 NULL ++ath6kl_wmi_tcmd_test_report_rx_4314 ath6kl_wmi_tcmd_test_report_rx 3 4314 NULL ++snd_rawmidi_kernel_read_4328 snd_rawmidi_kernel_read 3 4328 NULL ++__copy_from_user_inatomic_4365 __copy_from_user_inatomic 3 4365 NULL ++sys_setdomainname_4373 sys_setdomainname 2 4373 NULL ++irda_sendmsg_4388 irda_sendmsg 4 4388 NULL ++access_process_vm_4412 access_process_vm 0-2-4 4412 NULL nohasharray ++cxacru_cm_get_array_4412 cxacru_cm_get_array 4 4412 &access_process_vm_4412 ++libfc_vport_create_4415 libfc_vport_create 2 4415 NULL ++do_pages_stat_4437 do_pages_stat 2 4437 NULL ++at76_set_card_command_4471 at76_set_card_command 4 4471 NULL ++recv_control_msg_4476 recv_control_msg 5 4476 NULL ++snd_seq_expand_var_event_4481 snd_seq_expand_var_event 0-5 4481 NULL ++sys_semtimedop_4486 sys_semtimedop 3 4486 NULL ++vmbus_establish_gpadl_4495 vmbus_establish_gpadl 3 4495 NULL ++sys_llistxattr_4532 sys_llistxattr 3 4532 NULL ++videobuf_vmalloc_to_sg_4548 videobuf_vmalloc_to_sg 2 4548 NULL ++btrfs_file_extent_inline_item_len_4575 btrfs_file_extent_inline_item_len 0 4575 NULL ++bch_alloc_4593 bch_alloc 1 4593 NULL ++rbd_create_rw_ops_4605 rbd_create_rw_ops 2 4605 NULL ++iwl_dbgfs_tx_queue_read_4635 iwl_dbgfs_tx_queue_read 3 4635 NULL ++virtqueue_add_buf_gfp_4662 virtqueue_add_buf_gfp 3-4 4662 NULL ++map_addr_4666 map_addr 6 4666 NULL ++skb_add_data_nocache_4682 skb_add_data_nocache 4 4682 NULL ++cx18_read_pos_4683 cx18_read_pos 3 4683 NULL ++short_retry_limit_read_4687 short_retry_limit_read 3 4687 NULL ++kone_receive_4690 kone_receive 4 4690 NULL ++round_pipe_size_4701 round_pipe_size 0 4701 NULL ++cxgbi_alloc_big_mem_4707 cxgbi_alloc_big_mem 1 4707 NULL ++trusted_instantiate_4710 trusted_instantiate 3 4710 NULL ++btmrvl_gpiogap_read_4718 btmrvl_gpiogap_read 3 4718 NULL ++ati_create_gatt_pages_4722 ati_create_gatt_pages 1 4722 NULL nohasharray ++show_header_4722 show_header 3 4722 &ati_create_gatt_pages_4722 ++ncp__vol2io_4804 ncp__vol2io 5 4804 NULL ++__iio_allocate_sw_ring_buffer_4843 __iio_allocate_sw_ring_buffer 3 4843 NULL ++gigaset_if_receive_4861 gigaset_if_receive 3 4861 NULL ++key_tx_spec_read_4862 key_tx_spec_read 3 4862 NULL ++ocfs2_defrag_extent_4873 ocfs2_defrag_extent 3 4873 NULL ++hid_register_field_4874 hid_register_field 2-3 4874 NULL ++vga_arb_read_4886 vga_arb_read 3 4886 NULL ++sys_ipc_4889 sys_ipc 3 4889 NULL ++sys_process_vm_writev_4928 sys_process_vm_writev 3-5 4928 NULL ++ntfs_rl_insert_4931 ntfs_rl_insert 2-4 4931 NULL ++ieee80211_if_fmt_ave_beacon_4941 ieee80211_if_fmt_ave_beacon 3 4941 NULL ++devm_kzalloc_4966 devm_kzalloc 2 4966 NULL ++compat_rawv6_setsockopt_4967 compat_rawv6_setsockopt 5 4967 NULL ++skb_network_header_len_4971 skb_network_header_len 0 4971 NULL ++vmw_surface_define_size_4993 vmw_surface_define_size 0 4993 NULL ++qla82xx_pci_mem_write_direct_5008 qla82xx_pci_mem_write_direct 2 5008 NULL ++do_mincore_5018 do_mincore 0-1 5018 NULL ++mtd_device_parse_register_5024 mtd_device_parse_register 5 5024 NULL ++ocfs2_check_range_for_holes_5066 ocfs2_check_range_for_holes 2-3 5066 NULL ++snd_mixart_BA1_read_5082 snd_mixart_BA1_read 5 5082 NULL ++snd_emu10k1_ptr20_read_5087 snd_emu10k1_ptr20_read 0 5087 NULL ++get_random_bytes_5091 get_random_bytes 2 5091 NULL nohasharray ++kfifo_copy_from_user_5091 kfifo_copy_from_user 3 5091 &get_random_bytes_5091 nohasharray ++blk_rq_sectors_5091 blk_rq_sectors 0 5091 &kfifo_copy_from_user_5091 ++sound_write_5102 sound_write 3 5102 NULL ++ufs_add_fragments_5144 ufs_add_fragments 2 5144 NULL ++compat_ptr_5159 compat_ptr 0-1 5159 NULL ++__uwb_addr_print_5161 __uwb_addr_print 2 5161 NULL ++iwl_dbgfs_status_read_5171 iwl_dbgfs_status_read 3 5171 NULL ++acpi_pcc_get_sqty_5176 acpi_pcc_get_sqty 0 5176 NULL ++sfi_map_memory_5183 sfi_map_memory 1-2 5183 NULL ++skb_network_header_5203 skb_network_header 0 5203 NULL ++pipe_set_size_5204 pipe_set_size 2 5204 NULL ++ppp_cp_parse_cr_5214 ppp_cp_parse_cr 4 5214 NULL ++ssb_ioremap_5228 ssb_ioremap 2 5228 NULL ++isdn_ppp_skb_push_5236 isdn_ppp_skb_push 2 5236 NULL ++do_atmif_sioc_5247 do_atmif_sioc 3 5247 NULL ++pwr_elp_enter_read_5324 pwr_elp_enter_read 3 5324 NULL ++allocate_cnodes_5329 allocate_cnodes 1 5329 NULL ++ad714x_i2c_read_5345 ad714x_i2c_read 4 5345 NULL ++ps_pspoll_utilization_read_5361 ps_pspoll_utilization_read 3 5361 NULL ++cciss_allocate_sg_chain_blocks_5368 cciss_allocate_sg_chain_blocks 3-2 5368 NULL ++bitmap_fold_5396 bitmap_fold 4 5396 NULL ++nilfs_palloc_entries_per_group_5418 nilfs_palloc_entries_per_group 0 5418 NULL ++sfi_map_table_5462 sfi_map_table 1 5462 NULL ++xfs_efd_init_5463 xfs_efd_init 3 5463 NULL ++xfs_efi_init_5476 xfs_efi_init 2 5476 NULL ++cifs_security_flags_proc_write_5484 cifs_security_flags_proc_write 3 5484 NULL ++tty_write_5494 tty_write 3 5494 NULL ++tomoyo_update_domain_5498 tomoyo_update_domain 2 5498 NULL nohasharray ++ieee80211_if_fmt_last_beacon_5498 ieee80211_if_fmt_last_beacon 3 5498 &tomoyo_update_domain_5498 ++__max_nr_grant_frames_5505 __max_nr_grant_frames 0 5505 NULL ++spidev_message_5518 spidev_message 3 5518 NULL ++ieee80211_if_fmt_auto_open_plinks_5534 ieee80211_if_fmt_auto_open_plinks 3 5534 NULL ++le_readq_5557 le_readq 0 5557 NULL ++inw_5558 inw 0 5558 NULL ++__first_dma_cap_5560 __first_dma_cap 0 5560 NULL ++fir16_create_5574 fir16_create 3 5574 NULL ++bioset_create_5580 bioset_create 1 5580 NULL ++do_msgrcv_5590 do_msgrcv 4 5590 NULL ++usb_dump_device_descriptor_5599 usb_dump_device_descriptor 0 5599 NULL ++ldm_frag_add_5611 ldm_frag_add 2 5611 NULL ++compat_copy_entries_5617 compat_copy_entries 0 5617 NULL ++parse_arg_5657 parse_arg 2 5657 NULL ++ext4_xattr_get_5661 ext4_xattr_get 0 5661 NULL ++posix_clock_register_5662 posix_clock_register 2 5662 NULL ++mthca_map_reg_5664 mthca_map_reg 2-3 5664 NULL ++get_arg_5694 get_arg 3 5694 NULL ++vmw_kms_readback_5727 vmw_kms_readback 6 5727 NULL ++rts51x_transfer_data_partial_5735 rts51x_transfer_data_partial 6 5735 NULL ++ubi_cdev_compat_ioctl_5746 ubi_cdev_compat_ioctl 3 5746 NULL ++sctp_setsockopt_autoclose_5775 sctp_setsockopt_autoclose 3 5775 NULL ++compat_sys_writev_5784 compat_sys_writev 3 5784 NULL ++__vxge_hw_blockpool_malloc_5786 __vxge_hw_blockpool_malloc 2 5786 NULL ++skb_copy_datagram_iovec_5806 skb_copy_datagram_iovec 2-4 5806 NULL ++ceph_x_encrypt_buflen_5829 ceph_x_encrypt_buflen 0-1 5829 NULL ++autofs4_root_compat_ioctl_5838 autofs4_root_compat_ioctl 3 5838 NULL ++xen_request_microcode_user_5840 xen_request_microcode_user 3 5840 NULL ++ceph_msg_new_5846 ceph_msg_new 2 5846 NULL ++ixgb_check_copybreak_5847 ixgb_check_copybreak 3 5847 NULL ++setup_req_5848 setup_req 3 5848 NULL ++compat_sys_move_pages_5861 compat_sys_move_pages 2 5861 NULL nohasharray ++uinput_compat_ioctl_5861 uinput_compat_ioctl 3 5861 &compat_sys_move_pages_5861 ++port_show_regs_5904 port_show_regs 3 5904 NULL ++uhci_debug_read_5911 uhci_debug_read 3 5911 NULL ++qla82xx_pci_mem_read_2M_5912 qla82xx_pci_mem_read_2M 2 5912 NULL ++ttm_bo_kmap_ttm_5922 ttm_bo_kmap_ttm 3 5922 NULL ++lbs_highsnr_read_5931 lbs_highsnr_read 3 5931 NULL ++edac_device_alloc_ctl_info_5941 edac_device_alloc_ctl_info 1 5941 NULL ++tipc_subseq_alloc_5957 tipc_subseq_alloc 1 5957 NULL ++__apu_get_register_5967 __apu_get_register 0 5967 NULL ++ieee80211_if_fmt_rc_rateidx_mask_5ghz_5971 ieee80211_if_fmt_rc_rateidx_mask_5ghz 3 5971 NULL ++ntfs_rl_append_6037 ntfs_rl_append 2-4 6037 NULL ++send_video_command_6073 send_video_command 4 6073 NULL nohasharray ++sctp_setsockopt_connectx_6073 sctp_setsockopt_connectx 3 6073 &send_video_command_6073 ++ipmi_addr_length_6110 ipmi_addr_length 0 6110 NULL ++dfs_global_file_write_6112 dfs_global_file_write 3 6112 NULL ++netfs_trans_alloc_6136 netfs_trans_alloc 2-4 6136 NULL ++skb_end_pointer_6144 skb_end_pointer 0 6144 NULL ++ivtv_copy_buf_to_user_6159 ivtv_copy_buf_to_user 4 6159 NULL ++vdma_mem_alloc_6171 vdma_mem_alloc 1 6171 NULL ++wl1251_cmd_template_set_6172 wl1251_cmd_template_set 4 6172 NULL ++v4l2_ctrl_new_std_menu_6221 v4l2_ctrl_new_std_menu 4 6221 NULL ++mqueue_read_file_6228 mqueue_read_file 3 6228 NULL ++au_br_do_del_brp_6232 au_br_do_del_brp 3 6232 NULL ++f_hidg_read_6238 f_hidg_read 3 6238 NULL ++fbcon_prepare_logo_6246 fbcon_prepare_logo 5 6246 NULL ++pcpu_next_pop_6277 pcpu_next_pop 4 6277 NULL ++snd_hda_override_conn_list_6282 snd_hda_override_conn_list 0 6282 NULL nohasharray ++xenbus_file_write_6282 xenbus_file_write 3 6282 &snd_hda_override_conn_list_6282 ++iwl4965_rs_sta_dbgfs_stats_table_read_6289 iwl4965_rs_sta_dbgfs_stats_table_read 3 6289 NULL ++set_local_name_6310 set_local_name 4 6310 NULL ++_proc_do_string_6376 _proc_do_string 2 6376 NULL ++osd_req_read_sg_kern_6378 osd_req_read_sg_kern 5 6378 NULL ++ipr_change_queue_depth_6431 ipr_change_queue_depth 2 6431 NULL ++__alloc_bootmem_node_nopanic_6432 __alloc_bootmem_node_nopanic 2 6432 NULL ++ext4_compat_ioctl_6471 ext4_compat_ioctl 3 6471 NULL ++ieee80211_if_fmt_dot11MeshMaxRetries_6476 ieee80211_if_fmt_dot11MeshMaxRetries 3 6476 NULL ++cipso_v4_map_lvl_hton_6490 cipso_v4_map_lvl_hton 0 6490 NULL ++dbg_intr_buf_6501 dbg_intr_buf 2 6501 NULL ++mei_read_6507 mei_read 3 6507 NULL ++read_file_disable_ani_6536 read_file_disable_ani 3 6536 NULL ++rndis_set_oid_6547 rndis_set_oid 4 6547 NULL ++wdm_read_6549 wdm_read 3 6549 NULL ++fb_alloc_cmap_6554 fb_alloc_cmap 2 6554 NULL ++usb_dump_config_descriptor_6572 usb_dump_config_descriptor 0 6572 NULL ++usemap_size_6601 usemap_size 0 6601 NULL ++snmp_mib_init_6604 snmp_mib_init 2-3 6604 NULL ++ecryptfs_filldir_6622 ecryptfs_filldir 3 6622 NULL ++virtscsi_alloc_tgt_6643 virtscsi_alloc_tgt 2 6643 NULL ++process_rcvd_data_6679 process_rcvd_data 3 6679 NULL ++ql_process_mac_rx_skb_6689 ql_process_mac_rx_skb 4 6689 NULL ++btrfs_lookup_csums_range_6696 btrfs_lookup_csums_range 2 6696 NULL ++ps_pspoll_max_apturn_read_6699 ps_pspoll_max_apturn_read 3 6699 NULL ++mpeg_read_6708 mpeg_read 3 6708 NULL ++video_proc_write_6724 video_proc_write 3 6724 NULL ++posix_acl_xattr_count_6725 posix_acl_xattr_count 0-1 6725 NULL ++rds_rdma_pages_6735 rds_rdma_pages 0 6735 NULL ++device_queue_depth_6771 device_queue_depth 0 6771 NULL ++sfi_check_table_6772 sfi_check_table 1 6772 NULL ++iwl_dbgfs_channels_read_6784 iwl_dbgfs_channels_read 3 6784 NULL ++ieee80211_if_read_6785 ieee80211_if_read 3 6785 NULL ++hdlcdrv_register_6792 hdlcdrv_register 2 6792 NULL ++make_8259A_irq_6828 make_8259A_irq 1 6828 NULL ++calc_pages_for_6838 calc_pages_for 0-1-2 6838 NULL ++mon_bin_read_6841 mon_bin_read 3 6841 NULL ++snd_cs4281_BA0_read_6847 snd_cs4281_BA0_read 5 6847 NULL ++ieee80211_if_fmt_path_refresh_time_6888 ieee80211_if_fmt_path_refresh_time 3 6888 NULL nohasharray ++raw_seticmpfilter_6888 raw_seticmpfilter 3 6888 &ieee80211_if_fmt_path_refresh_time_6888 ++dlmfs_file_write_6892 dlmfs_file_write 3 6892 NULL ++spi_show_regs_6911 spi_show_regs 3 6911 NULL nohasharray ++proc_sessionid_read_6911 proc_sessionid_read 3 6911 &spi_show_regs_6911 ++__kfifo_dma_in_finish_r_6913 __kfifo_dma_in_finish_r 2-3 6913 NULL ++ieee80211_rx_mgmt_probe_resp_6918 ieee80211_rx_mgmt_probe_resp 3 6918 NULL ++ieee80211_send_probe_req_6924 ieee80211_send_probe_req 6 6924 NULL ++cache_do_downcall_6926 cache_do_downcall 3 6926 NULL ++qsfp_cks_6945 qsfp_cks 0-2 6945 NULL ++ab3100_get_register_page_interruptible_6951 ab3100_get_register_page_interruptible 4 6951 NULL ++pch_uart_hal_read_6961 pch_uart_hal_read 0 6961 NULL ++videobuf_dma_init_kernel_6963 videobuf_dma_init_kernel 3 6963 NULL ++crypto_authenc_esn_setkey_6985 crypto_authenc_esn_setkey 3 6985 NULL ++request_key_async_6990 request_key_async 4 6990 NULL ++r871x_set_wpa_ie_7000 r871x_set_wpa_ie 3 7000 NULL ++cipso_v4_gentag_enum_7006 cipso_v4_gentag_enum 0 7006 NULL ++tracing_cpumask_read_7010 tracing_cpumask_read 3 7010 NULL ++wimax_msg_7030 wimax_msg 4 7030 NULL ++ipath_get_base_info_7043 ipath_get_base_info 3 7043 NULL ++snd_pcm_oss_bytes_7051 snd_pcm_oss_bytes 2 7051 NULL ++event_enable_read_7074 event_enable_read 3 7074 NULL ++beacon_interval_read_7091 beacon_interval_read 3 7091 NULL ++lp_compat_ioctl_7098 lp_compat_ioctl 3 7098 NULL ++check_header_7108 check_header 0 7108 NULL ++utf16_strsize_7203 utf16_strsize 0 7203 NULL nohasharray ++__alloc_objio_seg_7203 __alloc_objio_seg 1 7203 &utf16_strsize_7203 ++sys32_ipc_7238 sys32_ipc 3-5-6 7238 NULL ++dma_ops_alloc_addresses_7272 dma_ops_alloc_addresses 3-4-5 7272 NULL ++mgmt_control_7349 mgmt_control 3 7349 NULL ++ext3_free_blocks_7362 ext3_free_blocks 3-4 7362 NULL ++ieee80211_if_read_dot11MeshHWMPactivePathTimeout_7368 ieee80211_if_read_dot11MeshHWMPactivePathTimeout 3 7368 NULL ++hweight_long_7388 hweight_long 0-1 7388 NULL ++sl_change_mtu_7396 sl_change_mtu 2 7396 NULL ++readb_7401 readb 0 7401 NULL ++drm_property_create_blob_7414 drm_property_create_blob 2 7414 NULL ++kvm_pv_mmu_op_7436 kvm_pv_mmu_op 3 7436 NULL ++ip_options_get_alloc_7448 ip_options_get_alloc 1 7448 NULL ++ms_rw_multi_sector_7459 ms_rw_multi_sector 3-4 7459 NULL ++__mutex_lock_common_7469 __mutex_lock_common 0 7469 NULL ++garp_request_join_7471 garp_request_join 4 7471 NULL ++compat_sys_msgrcv_7482 compat_sys_msgrcv 2 7482 NULL ++snd_pcm_lib_read1_7491 snd_pcm_lib_read1 0-3 7491 NULL ++sdhci_alloc_host_7509 sdhci_alloc_host 2 7509 NULL nohasharray ++ahash_instance_headroom_7509 ahash_instance_headroom 0 7509 &sdhci_alloc_host_7509 ++goal_in_my_reservation_7553 goal_in_my_reservation 3 7553 NULL ++ext3_try_to_allocate_7590 ext3_try_to_allocate 5-3 7590 NULL ++groups_alloc_7614 groups_alloc 1 7614 NULL ++sg_virt_7616 sg_virt 0 7616 NULL ++set_connectable_7649 set_connectable 4 7649 NULL ++acpi_ex_allocate_name_string_7685 acpi_ex_allocate_name_string 2-1 7685 NULL ++acpi_ns_get_pathname_length_7699 acpi_ns_get_pathname_length 0 7699 NULL ++dev_write_7708 dev_write 3 7708 NULL ++brcms_attach_7709 brcms_attach 3 7709 NULL ++manip_pkt_7741 manip_pkt 3 7741 NULL ++vxge_device_register_7752 vxge_device_register 4 7752 NULL ++pohmelfs_path_length_7758 pohmelfs_path_length 0 7758 NULL ++osdv2_attr_list_elem_size_7763 osdv2_attr_list_elem_size 0-1 7763 NULL ++ubi_io_read_vid_hdr_7766 ubi_io_read_vid_hdr 0 7766 NULL ++alloc_candev_7776 alloc_candev 1-2 7776 NULL ++dfs_global_file_read_7787 dfs_global_file_read 3 7787 NULL ++bnx2_nvram_write_7790 bnx2_nvram_write 4-2 7790 NULL ++diva_os_copy_from_user_7792 diva_os_copy_from_user 4 7792 NULL ++ubifs_leb_read_7828 ubifs_leb_read 0 7828 NULL ++dvb_dmxdev_read_sec_7892 dvb_dmxdev_read_sec 4 7892 NULL ++xfs_trans_get_efi_7898 xfs_trans_get_efi 2 7898 NULL ++gfs2_tune_get_i_7903 gfs2_tune_get_i 0 7903 NULL ++ext3_group_extend_7911 ext3_group_extend 3 7911 NULL ++libfc_host_alloc_7917 libfc_host_alloc 2 7917 NULL ++do_surface_dirty_sou_7920 do_surface_dirty_sou 7 7920 NULL ++f_hidg_write_7932 f_hidg_write 3 7932 NULL ++io_apic_setup_irq_pin_once_7934 io_apic_setup_irq_pin_once 1 7934 NULL ++smk_write_load_self_7958 smk_write_load_self 3 7958 NULL ++arch_gnttab_map_shared_7970 arch_gnttab_map_shared 3 7970 NULL ++sys_mbind_7990 sys_mbind 5 7990 NULL ++sep_lock_user_pages_8000 sep_lock_user_pages 2-3 8000 NULL ++vcs_read_8017 vcs_read 3 8017 NULL ++normalize_up_8037 normalize_up 0-1-2 8037 NULL ++vhost_add_used_and_signal_n_8038 vhost_add_used_and_signal_n 4 8038 NULL ++ms_read_multiple_pages_8052 ms_read_multiple_pages 5-4 8052 NULL ++leb_read_lock_8070 leb_read_lock 0 8070 NULL ++alloc_targets_8074 alloc_targets 2 8074 NULL ++venus_lookup_8121 venus_lookup 4 8121 NULL ++ieee80211_if_fmt_num_buffered_multicast_8127 ieee80211_if_fmt_num_buffered_multicast 3 8127 NULL ++ext_sd_execute_write_data_8175 ext_sd_execute_write_data 9 8175 NULL ++dma_map_area_8178 dma_map_area 5-2-3 8178 NULL ++__sk_mem_schedule_8185 __sk_mem_schedule 2 8185 NULL ++ieee80211_if_fmt_dot11MeshHoldingTimeout_8187 ieee80211_if_fmt_dot11MeshHoldingTimeout 3 8187 NULL ++__nf_nat_mangle_tcp_packet_8190 __nf_nat_mangle_tcp_packet 7-5 8190 NULL ++recent_mt_proc_write_8206 recent_mt_proc_write 3 8206 NULL ++rt2x00debug_write_bbp_8212 rt2x00debug_write_bbp 3 8212 NULL ++ad7879_spi_multi_read_8218 ad7879_spi_multi_read 3 8218 NULL ++play_iframe_8219 play_iframe 3 8219 NULL ++sctp_ssnmap_size_8228 sctp_ssnmap_size 0-1-2 8228 NULL ++check_xattr_ref_inode_8244 check_xattr_ref_inode 0 8244 NULL ++t3_init_l2t_8261 t3_init_l2t 1 8261 NULL ++init_cdev_8274 init_cdev 1 8274 NULL ++qib_decode_7220_err_8315 qib_decode_7220_err 3 8315 NULL +construct_key_and_link_8321 construct_key_and_link 4 8321 NULL -+ath6kl_set_ap_probe_resp_ies_50539 ath6kl_set_ap_probe_resp_ies 3 50539 NULL -+init_q_132 init_q 4 132 NULL -+roccat_read_41093 roccat_read 3 41093 NULL +ipwireless_send_packet_8328 ipwireless_send_packet 4 8328 NULL +__c4iw_init_resource_fifo_8334 __c4iw_init_resource_fifo 3 8334 NULL -+provide_user_output_41105 provide_user_output 3 41105 NULL -+uio_read_49300 uio_read 3 49300 NULL -+f_audio_buffer_alloc_41110 f_audio_buffer_alloc 1 41110 NULL +tracing_entries_read_8345 tracing_entries_read 3 8345 NULL -+oom_adjust_write_41116 oom_adjust_write 3 41116 NULL -+firmwareUpload_32794 firmwareUpload 3 32794 NULL -+copy_in_user_57502 copy_in_user 3 57502 NULL -+simple_attr_read_24738 simple_attr_read 3 24738 NULL -+play_iframe_8219 play_iframe 3 8219 NULL -+qla2x00_change_queue_depth_24742 qla2x00_change_queue_depth 2 24742 NULL -+ping_getfrag_8360 ping_getfrag 3-4 8360 NULL -+ath_rxbuf_alloc_24745 ath_rxbuf_alloc 2 24745 NULL -+init_tag_map_57515 init_tag_map 3 57515 NULL -+cmm_read_57520 cmm_read 3 57520 NULL -+kgdb_hex2mem_24755 kgdb_hex2mem 3 24755 NULL -+lpfc_debugfs_read_16566 lpfc_debugfs_read 3 16566 NULL -+DoC_Probe_57534 DoC_Probe 1 57534 NULL -+cfpkt_setlen_49343 cfpkt_setlen 2 49343 NULL -+agp_allocate_memory_wrap_16576 agp_allocate_memory_wrap 1 16576 NULL -+mI_alloc_skb_24770 mI_alloc_skb 1 24770 NULL -+iscsi_session_setup_196 iscsi_session_setup 4-5 196 NULL -+i915_cache_sharing_read_24775 i915_cache_sharing_read 3 24775 NULL ++ping_getfrag_8360 ping_getfrag 4-3 8360 NULL +xdi_copy_from_user_8395 xdi_copy_from_user 4 8395 NULL -+joydev_ioctl_common_49359 joydev_ioctl_common 2 49359 NULL -+datablob_hmac_verify_24786 datablob_hmac_verify 4 24786 NULL -+dvb_ca_write_41171 dvb_ca_write 3 41171 NULL -+cache_read_24790 cache_read 3 24790 NULL -+store_cpufv_215 store_cpufv 4 215 NULL -+px_raw_event_49371 px_raw_event 4 49371 NULL -+compat_filldir_32999 compat_filldir 3 32999 NULL -+rx_fcs_err_read_62844 rx_fcs_err_read 3 62844 NULL -+compat_sys_process_vm_writev_41194 compat_sys_process_vm_writev 3-5 41194 NULL -+dfs_file_write_41196 dfs_file_write 3 41196 NULL -+afs_cell_create_27346 afs_cell_create 2 27346 NULL -+iscsi_alloc_session_49390 iscsi_alloc_session 3 49390 NULL -+applesmc_create_nodes_49392 applesmc_create_nodes 2 49392 NULL ++zd_rf_scnprint_id_8406 zd_rf_scnprint_id 0-3 8406 NULL ++uvc_v4l2_ioctl_8411 uvc_v4l2_ioctl 2 8411 NULL +snd_usb_ctl_msg_8436 snd_usb_ctl_msg 8 8436 NULL -+comedi_buf_alloc_24822 comedi_buf_alloc 3 24822 NULL -+rx_streaming_always_read_49401 rx_streaming_always_read 3 49401 NULL -+iwl_legacy_dbgfs_nvm_read_49405 iwl_legacy_dbgfs_nvm_read 3 49405 NULL -+tnode_alloc_49407 tnode_alloc 1 49407 NULL -+tun_alloc_skb_41216 tun_alloc_skb 2-4-3 41216 NULL -+proc_scsi_write_proc_267 proc_scsi_write_proc 3 267 NULL -+sk_stream_alloc_skb_57622 sk_stream_alloc_skb 2 57622 NULL -+iwl_dbgfs_ucode_general_stats_read_49199 iwl_dbgfs_ucode_general_stats_read 3 49199 NULL -+packet_recv_error_16669 packet_recv_error 3 16669 NULL -+osdmap_set_max_osd_57630 osdmap_set_max_osd 2 57630 NULL nohasharray -+sisusbcon_putcs_57630 sisusbcon_putcs 3 57630 &osdmap_set_max_osd_57630 -+mem_read_57631 mem_read 3 57631 NULL +afs_cell_lookup_8482 afs_cell_lookup 2 8482 NULL -+read_file_war_stats_292 read_file_war_stats 3 292 NULL -+pnp_alloc_24869 pnp_alloc 1 24869 NULL nohasharray -+put_data_to_circ_buf_24869 put_data_to_circ_buf 3 24869 &pnp_alloc_24869 -+hiddev_compat_ioctl_41255 hiddev_compat_ioctl 2 41255 NULL -+bnx2fc_cmd_mgr_alloc_24873 bnx2fc_cmd_mgr_alloc 2-3 24873 NULL -+sel_read_checkreqprot_33068 sel_read_checkreqprot 3 33068 NULL -+queues_read_24877 queues_read 3 24877 NULL -+opera1_xilinx_rw_31453 opera1_xilinx_rw 5 31453 NULL -+dlm_new_lockspace_16688 dlm_new_lockspace 2 16688 NULL -+platform_device_add_data_310 platform_device_add_data 3 310 NULL -+agp_3_5_isochronous_node_enable_49465 agp_3_5_isochronous_node_enable 3 49465 NULL +dev_config_8506 dev_config 3 8506 NULL -+read_buf_20469 read_buf 2 20469 NULL -+sys_mq_timedsend_57661 sys_mq_timedsend 3 57661 NULL -+r3964_write_57662 r3964_write 4 57662 NULL -+xfs_iformat_local_49472 xfs_iformat_local 4 49472 NULL -+dn_nsp_do_disc_49474 dn_nsp_do_disc 2-6 49474 NULL -+iwm_rx_handle_24899 iwm_rx_handle 3 24899 NULL -+__lgwrite_57669 __lgwrite 4 57669 NULL -+pppoe_recvmsg_15073 pppoe_recvmsg 4 15073 NULL -+codec_list_read_file_24910 codec_list_read_file 3 24910 NULL -+isr_decrypt_done_read_49490 isr_decrypt_done_read 3 49490 NULL ++ACL_to_cifs_posix_8509 ACL_to_cifs_posix 3 8509 NULL ++utf16_strnlen_8513 utf16_strnlen 0 8513 NULL ++pnp_resource_len_8532 pnp_resource_len 0 8532 NULL +alloc_pg_vec_8533 alloc_pg_vec 2 8533 NULL -+ieee80211_fragment_33112 ieee80211_fragment 4 33112 NULL -+write_node_33121 write_node 4 33121 NULL -+fb_sys_write_33130 fb_sys_write 3 33130 NULL ++ocfs2_read_virt_blocks_8538 ocfs2_read_virt_blocks 2-3 8538 NULL +profile_remove_8556 profile_remove 3 8556 NULL -+emulator_write_phys_49520 emulator_write_phys 2-4 49520 NULL -+create_bounce_buffer_41330 create_bounce_buffer 3 41330 NULL -+acpi_os_ioremap_49523 acpi_os_ioremap 1-2 49523 NULL -+arcmsr_adjust_disk_queue_depth_16756 arcmsr_adjust_disk_queue_depth 2 16756 NULL -+dlm_alloc_pagevec_54296 dlm_alloc_pagevec 1 54296 NULL -+cmtp_send_interopmsg_376 cmtp_send_interopmsg 7 376 NULL +cache_slow_downcall_8570 cache_slow_downcall 2 8570 NULL +mga_ioremap_8571 mga_ioremap 1-2 8571 NULL -+twl_change_queue_depth_41342 twl_change_queue_depth 2 41342 NULL -+nfs4_init_slot_table_33152 nfs4_init_slot_table 2 33152 NULL -+sys_rt_sigpending_24961 sys_rt_sigpending 2 24961 NULL ++isr_dma0_done_read_8574 isr_dma0_done_read 3 8574 NULL +tower_write_8580 tower_write 3 8580 NULL -+add_rx_skb_8257 add_rx_skb 3 8257 NULL -+dlmfs_file_write_6892 dlmfs_file_write 3 6892 NULL -+cnic_init_id_tbl_41354 cnic_init_id_tbl 2 41354 NULL -+compat_sys_set_mempolicy_57742 compat_sys_set_mempolicy 3 57742 NULL nohasharray -+pppol2tp_recvmsg_57742 pppol2tp_recvmsg 4 57742 &compat_sys_set_mempolicy_57742 -+jbd2_alloc_41359 jbd2_alloc 1 41359 NULL -+zd_mac_rx_38296 zd_mac_rx 3 38296 NULL -+smk_write_access_49561 smk_write_access 3 49561 NULL -+tun_get_user_33178 tun_get_user 3 33178 NULL -+llc_ui_sendmsg_24987 llc_ui_sendmsg 4 24987 NULL -+kmp_init_41373 kmp_init 2 41373 NULL -+t3_init_l2t_8261 t3_init_l2t 1 8261 NULL -+lbs_rdmac_read_418 lbs_rdmac_read 3 418 NULL -+get_server_iovec_16804 get_server_iovec 2 16804 NULL -+alloc_chunk_49575 alloc_chunk 1 49575 NULL -+tipc_send2name_16809 tipc_send2name 6 16809 NULL -+sctp_setsockopt_default_send_param_49578 sctp_setsockopt_default_send_param 3 49578 NULL nohasharray -+hidraw_report_event_49578 hidraw_report_event 3 49578 &sctp_setsockopt_default_send_param_49578 -+key_conf_hw_key_idx_read_25003 key_conf_hw_key_idx_read 3 25003 NULL +shash_setkey_unaligned_8620 shash_setkey_unaligned 3 8620 NULL -+dm_vcalloc_16814 dm_vcalloc 1-2 16814 NULL -+iwl3945_ucode_general_stats_read_25009 iwl3945_ucode_general_stats_read 3 25009 NULL +it821x_firmware_command_8628 it821x_firmware_command 3 8628 NULL -+isr_commands_read_41398 isr_commands_read 3 41398 NULL -+pp_read_33210 pp_read 3 33210 NULL -+sys_flistxattr_41407 sys_flistxattr 3 41407 NULL -+scsi_mode_sense_16835 scsi_mode_sense 5 16835 NULL -+ivtv_read_57796 ivtv_read 3 57796 NULL -+isr_wakeups_read_49607 isr_wakeups_read 3 49607 NULL -+xfs_iext_add_41422 xfs_iext_add 3 41422 NULL -+heap_init_49617 heap_init 2 49617 NULL -+xfs_file_aio_write_33234 xfs_file_aio_write 4 33234 NULL -+aoechr_write_62883 aoechr_write 3 62883 NULL -+isdn_ppp_fill_rq_41428 isdn_ppp_fill_rq 2 41428 NULL -+smk_write_doi_49621 smk_write_doi 3 49621 NULL -+_alloc_get_attr_desc_470 _alloc_get_attr_desc 2 470 NULL -+lbs_rdrf_read_41431 lbs_rdrf_read 3 41431 NULL -+port_fops_read_49626 port_fops_read 3 49626 NULL -+ftrace_profile_write_53327 ftrace_profile_write 3 53327 NULL -+ntfs_file_buffered_write_41442 ntfs_file_buffered_write 4-6 41442 NULL -+pcpu_build_alloc_info_41443 pcpu_build_alloc_info 1-3-2 41443 NULL -+bfad_debugfs_read_regrd_57830 bfad_debugfs_read_regrd 3 57830 NULL -+st_write_16874 st_write 3 16874 NULL -+copy_to_user_57835 copy_to_user 3 57835 NULL -+pidlist_resize_496 pidlist_resize 2 496 NULL -+flash_read_57843 flash_read 3 57843 NULL -+cachefiles_cook_key_33274 cachefiles_cook_key 2 33274 NULL -+spi_show_regs_6911 spi_show_regs 3 6911 NULL nohasharray -+proc_sessionid_read_6911 proc_sessionid_read 3 6911 &spi_show_regs_6911 ++scsi_dma_map_8632 scsi_dma_map 0 8632 NULL ++fuse_send_write_pages_8636 fuse_send_write_pages 0 8636 NULL ++nf_nat_mangle_tcp_packet_8643 nf_nat_mangle_tcp_packet 5-7 8643 NULL ++generic_acl_set_8658 generic_acl_set 4 8658 NULL ++ath6kl_tm_rx_report_event_8660 ath6kl_tm_rx_report_event 3 8660 NULL ++lbs_bcnmiss_read_8678 lbs_bcnmiss_read 3 8678 NULL ++skb_frag_size_8695 skb_frag_size 0 8695 NULL +arcfb_write_8702 arcfb_write 3 8702 NULL -+gsm_control_reply_53333 gsm_control_reply 4 53333 NULL -+smp_send_cmd_512 smp_send_cmd 3 512 NULL ++i_size_read_8703 i_size_read 0 8703 NULL nohasharray ++init_header_8703 init_header 0 8703 &i_size_read_8703 +cifs_writedata_alloc_8710 cifs_writedata_alloc 1 8710 NULL -+stats_read_ul_32751 stats_read_ul 3 32751 NULL +ctrl_out_8712 ctrl_out 3-5 8712 NULL -+mwifiex_update_curr_bss_params_16908 mwifiex_update_curr_bss_params 5 16908 NULL -+cxio_hal_init_rhdl_resource_25104 cxio_hal_init_rhdl_resource 1 25104 NULL -+copy_to_user_fromio_57432 copy_to_user_fromio 3 57432 NULL -+snd_rawmidi_kernel_write_25106 snd_rawmidi_kernel_write 3 25106 NULL -+ivtv_v4l2_ioctl_16915 ivtv_v4l2_ioctl 2 16915 NULL -+wep_interrupt_read_41492 wep_interrupt_read 3 41492 NULL -+tracing_max_lat_write_8728 tracing_max_lat_write 3 8728 NULL -+hpfs_translate_name_41497 hpfs_translate_name 3 41497 NULL -+mcs7830_get_reg_33308 mcs7830_get_reg 3 33308 NULL -+psb_unlocked_ioctl_16926 psb_unlocked_ioctl 2 16926 NULL nohasharray -+snd_gf1_mem_proc_dump_16926 snd_gf1_mem_proc_dump 5 16926 &psb_unlocked_ioctl_16926 -+iwl_dbgfs_reply_tx_error_read_19205 iwl_dbgfs_reply_tx_error_read 3 19205 NULL -+ceph_msgpool_init_33312 ceph_msgpool_init 3 33312 NULL -+sys_gethostname_49698 sys_gethostname 2 49698 NULL -+cx2341x_ctrl_new_menu_49700 cx2341x_ctrl_new_menu 3 49700 NULL -+ieee80211_rx_mgmt_probe_resp_6918 ieee80211_rx_mgmt_probe_resp 3 6918 NULL -+devres_alloc_551 devres_alloc 2 551 NULL -+ldisc_receive_41516 ldisc_receive 4 41516 NULL -+tt_response_fill_table_57902 tt_response_fill_table 1 57902 NULL -+xt_alloc_table_info_57903 xt_alloc_table_info 1 57903 NULL -+_sp2d_alloc_16944 _sp2d_alloc 1-3-2 16944 NULL -+squashfs_read_table_16945 squashfs_read_table 3 16945 NULL -+em28xx_init_isoc_8755 em28xx_init_isoc 2-3 8755 NULL -+emi26_writememory_57908 emi26_writememory 4 57908 NULL -+start_isoc_chain_565 start_isoc_chain 2 565 NULL -+iio_read_first_n_kfifo_57910 iio_read_first_n_kfifo 2 57910 NULL -+gsm_mux_rx_netchar_33336 gsm_mux_rx_netchar 3 33336 NULL -+yurex_write_8761 yurex_write 3 8761 NULL ++jffs2_acl_count_8729 jffs2_acl_count 0-1 8729 NULL ++em28xx_init_isoc_8755 em28xx_init_isoc 3-2 8755 NULL +joydev_compat_ioctl_8765 joydev_compat_ioctl 2 8765 NULL -+joydev_ioctl_33343 joydev_ioctl 2 33343 NULL -+compat_sys_preadv_583 compat_sys_preadv 3 583 NULL -+sys_fsetxattr_49736 sys_fsetxattr 4 49736 NULL -+keyctl_instantiate_key_iov_16969 keyctl_instantiate_key_iov 3 16969 NULL -+kstrtoint_from_user_8778 kstrtoint_from_user 2 8778 NULL -+create_xattr_datum_33356 create_xattr_datum 5 33356 NULL -+sel_read_handle_unknown_57933 sel_read_handle_unknown 3 57933 NULL -+sys_fgetxattr_25166 sys_fgetxattr 4 25166 NULL -+ipath_init_qp_table_25167 ipath_init_qp_table 2 25167 NULL -+zd_usb_iowrite16v_49744 zd_usb_iowrite16v 3 49744 NULL -+i2cdev_write_23310 i2cdev_write 3 23310 NULL -+rx_57944 rx 4 57944 NULL -+sctp_getsockopt_local_addrs_25178 sctp_getsockopt_local_addrs 2 25178 NULL -+nci_skb_alloc_49757 nci_skb_alloc 2 49757 NULL -+key_conf_keylen_read_49758 key_conf_keylen_read 3 49758 NULL ++__bitmap_weight_8796 __bitmap_weight 0-2 8796 NULL +cpuset_common_file_read_8800 cpuset_common_file_read 5 8800 NULL -+ip_set_alloc_57953 ip_set_alloc 1 57953 NULL -+fuse_conn_waiting_read_49762 fuse_conn_waiting_read 3 49762 NULL -+mempool_create_slab_pool_62907 mempool_create_slab_pool 1 62907 NULL -+ieee80211_if_read_dropped_frames_no_route_33383 ieee80211_if_read_dropped_frames_no_route 3 33383 NULL -+i915_cache_sharing_write_57961 i915_cache_sharing_write 3 57961 NULL -+rng_dev_read_41581 rng_dev_read 3 41581 NULL -+sysfs_acpi_set_625 sysfs_acpi_set 3 625 NULL -+viafb_dfpl_proc_write_627 viafb_dfpl_proc_write 3 627 NULL -+hfc_empty_fifo_57972 hfc_empty_fifo 2 57972 NULL +metronomefb_write_8823 metronomefb_write 3 8823 NULL -+copy_counters_to_user_17027 copy_counters_to_user 5 17027 NULL nohasharray -+iwm_if_alloc_17027 iwm_if_alloc 1 17027 ©_counters_to_user_17027 -+unlink_queued_645 unlink_queued 3-4 645 NULL -+iwl_legacy_dbgfs_force_reset_read_649 iwl_legacy_dbgfs_force_reset_read 3 649 NULL -+rx_hw_stuck_read_57179 rx_hw_stuck_read 3 57179 NULL -+sys_dup3_33421 sys_dup3 2 33421 NULL -+nfs4_acl_new_49806 nfs4_acl_new 1 49806 NULL -+ceph_copy_user_to_page_vector_656 ceph_copy_user_to_page_vector 4-3 656 NULL -+rx_reset_counter_read_58001 rx_reset_counter_read 3 58001 NULL -+mon_stat_read_25238 mon_stat_read 3 25238 NULL -+jffs2_trusted_setxattr_17048 jffs2_trusted_setxattr 4 17048 NULL -+regcache_rbtree_insert_to_block_58009 regcache_rbtree_insert_to_block 5 58009 NULL ++get_queue_depth_8833 get_queue_depth 0 8833 NULL ++dvb_ringbuffer_pkt_next_8834 dvb_ringbuffer_pkt_next 0-2 8834 NULL ++usb_ep_queue_8839 usb_ep_queue 0 8839 NULL +wa_nep_queue_8858 wa_nep_queue 2 8858 NULL -+macvtap_alloc_skb_50629 macvtap_alloc_skb 2-4-3 50629 NULL -+ntfs_copy_from_user_iovec_49829 ntfs_copy_from_user_iovec 3-6 49829 NULL +iwl_dbgfs_debug_level_write_8871 iwl_dbgfs_debug_level_write 3 8871 NULL -+dvb_dvr_read_17073 dvb_dvr_read 3 17073 NULL -+mempool_create_kmalloc_pool_41650 mempool_create_kmalloc_pool 1 41650 NULL -+simple_transaction_read_17076 simple_transaction_read 3 17076 NULL -+vmw_execbuf_process_49845 vmw_execbuf_process 5 49845 NULL -+squashfs_cache_init_41656 squashfs_cache_init 2 41656 NULL ++compressed_bio_size_8887 compressed_bio_size 0-2 8887 NULL +tracing_max_lat_read_8890 tracing_max_lat_read 3 8890 NULL -+crypto_alloc_instance2_25277 crypto_alloc_instance2 3 25277 NULL -+vfs_writev_25278 vfs_writev 3 25278 NULL -+rtl8169_try_rx_copy_705 rtl8169_try_rx_copy 3 705 NULL -+sys_dup2_25284 sys_dup2 2 25284 NULL -+l2tp_session_create_25286 l2tp_session_create 1 25286 NULL -+create_entry_33479 create_entry 2 33479 NULL -+mce_async_out_58056 mce_async_out 3 58056 NULL -+dns_query_9676 dns_query 3 9676 NULL -+sys_preadv_17100 sys_preadv 3 17100 NULL -+sctp_setsockopt_bindx_49870 sctp_setsockopt_bindx 3 49870 NULL -+ip_setsockopt_33487 ip_setsockopt 5 33487 NULL -+netxen_nic_hw_write_wx_128M_33488 netxen_nic_hw_write_wx_128M 2 33488 NULL -+aac_src_ioremap_41688 aac_src_ioremap 2 41688 NULL -+res_counter_read_33499 res_counter_read 4 33499 NULL -+snd_emu10k1_synth_copy_from_user_9061 snd_emu10k1_synth_copy_from_user 3-5 9061 NULL -+sctp_setsockopt_peer_addr_params_734 sctp_setsockopt_peer_addr_params 3 734 NULL -+cm4040_write_58079 cm4040_write 3 58079 NULL -+fb_read_33506 fb_read 3 33506 NULL -+ath9k_debugfs_read_buf_25316 ath9k_debugfs_read_buf 3 25316 NULL -+rfcomm_wmalloc_58090 rfcomm_wmalloc 2 58090 NULL -+mwifiex_get_common_rates_17131 mwifiex_get_common_rates 3 17131 NULL -+ddp_set_map_751 ddp_set_map 4 751 NULL ++sdio_max_byte_size_8907 sdio_max_byte_size 0 8907 NULL ++layout_commit_8926 layout_commit 3 8926 NULL ++adjust_priv_size_8935 adjust_priv_size 0-1 8935 NULL +driver_stats_read_8944 driver_stats_read 3 8944 NULL -+ahash_setkey_unaligned_33521 ahash_setkey_unaligned 3 33521 NULL -+dvb_video_write_754 dvb_video_write 3 754 NULL -+nes_alloc_fast_reg_page_list_33523 nes_alloc_fast_reg_page_list 2 33523 NULL -+osd_req_add_get_attr_list_49278 osd_req_add_get_attr_list 3 49278 NULL -+bdx_tx_db_init_41719 bdx_tx_db_init 2 41719 NULL -+kzalloc_54740 kzalloc 1 54740 NULL -+sys_pwritev_41722 sys_pwritev 3 41722 NULL -+ib_send_cm_mra_60202 ib_send_cm_mra 4 60202 NULL nohasharray -+qib_reg_phys_mr_60202 qib_reg_phys_mr 3 60202 &ib_send_cm_mra_60202 +read_file_tgt_stats_8959 read_file_tgt_stats 3 8959 NULL -+__copy_from_user_inatomic_nocache_49921 __copy_from_user_inatomic_nocache 3 49921 NULL -+tomoyo_read_self_33539 tomoyo_read_self 3 33539 NULL ++seq_bitmap_list_8963 seq_bitmap_list 3 8963 NULL +usb_allocate_stream_buffers_8964 usb_allocate_stream_buffers 3 8964 NULL -+tcm_loop_change_queue_depth_42454 tcm_loop_change_queue_depth 2 42454 NULL ++qib_qsfp_dump_8966 qib_qsfp_dump 0-3 8966 NULL +venus_mkdir_8967 venus_mkdir 4 8967 NULL +seq_open_net_8968 seq_open_net 4 8968 NULL nohasharray +vol_cdev_read_8968 vol_cdev_read 3 8968 &seq_open_net_8968 -+linear_conf_23485 linear_conf 2 23485 NULL nohasharray -+divasa_remap_pci_bar_23485 divasa_remap_pci_bar 3-4 23485 &linear_conf_23485 -+befs_nls2utf_17163 befs_nls2utf 3 17163 NULL -+dup_array_33551 dup_array 3 33551 NULL -+solo_enc_read_33553 solo_enc_read 3 33553 NULL -+fillonedir_41746 fillonedir 3 41746 NULL -+zoran_ioctl_30465 zoran_ioctl 2 30465 NULL -+ipv6_flowlabel_opt_58135 ipv6_flowlabel_opt 3 58135 NULL nohasharray -+slhc_init_58135 slhc_init 1-2 58135 &ipv6_flowlabel_opt_58135 -+sel_read_mls_25369 sel_read_mls 3 25369 NULL -+driver_state_read_17194 driver_state_read 3 17194 NULL nohasharray -+iscsit_find_cmd_from_itt_or_dump_17194 iscsit_find_cmd_from_itt_or_dump 3 17194 &driver_state_read_17194 -+if_writecmd_815 if_writecmd 2 815 NULL -+viafb_dfph_proc_write_49288 viafb_dfph_proc_write 3 49288 NULL -+sparse_add_one_section_41778 sparse_add_one_section 3 41778 NULL -+aac_change_queue_depth_825 aac_change_queue_depth 2 825 NULL -+read_fifo_826 read_fifo 3 826 NULL -+scsi_execute_33596 scsi_execute 5 33596 NULL -+dn_recvmsg_17213 dn_recvmsg 4 17213 NULL -+ms_rw_17220 ms_rw 4-3 17220 NULL -+et61x251_read_25420 et61x251_read 3 25420 NULL -+dai_list_read_file_25421 dai_list_read_file 3 25421 NULL -+garmin_write_bulk_58191 garmin_write_bulk 3 58191 NULL -+asix_write_cmd_58192 asix_write_cmd 5 58192 NULL -+um_idi_read_850 um_idi_read 3 850 NULL -+sctp_getsockopt_assoc_ids_9043 sctp_getsockopt_assoc_ids 2 9043 NULL -+memstick_alloc_host_142 memstick_alloc_host 1 142 NULL -+sco_send_frame_41815 sco_send_frame 3 41815 NULL -+ts_read_44687 ts_read 3 44687 NULL -+nci_send_cmd_58206 nci_send_cmd 3 58206 NULL -+isdn_read_50021 isdn_read 3 50021 NULL ++bio_integrity_get_tag_8974 bio_integrity_get_tag 3 8974 NULL nohasharray ++selinux_proc_get_sid_8974 selinux_proc_get_sid 2 8974 &bio_integrity_get_tag_8974 ++snd_emu10k1_ptr_read_9026 snd_emu10k1_ptr_read 0-2 9026 NULL ++nla_put_9042 nla_put 3 9042 NULL ++snd_emu10k1_synth_copy_from_user_9061 snd_emu10k1_synth_copy_from_user 3-5 9061 NULL +snd_gus_dram_peek_9062 snd_gus_dram_peek 4 9062 NULL -+o2net_send_message_vec_879 o2net_send_message_vec 4 879 NULL nohasharray -+iwl_dbgfs_fh_reg_read_879 iwl_dbgfs_fh_reg_read 3 879 &o2net_send_message_vec_879 +fib_info_hash_alloc_9075 fib_info_hash_alloc 1 9075 NULL -+alloc_ep_17269 alloc_ep 1 17269 NULL -+generic_file_buffered_write_25464 generic_file_buffered_write 4 25464 NULL -+do_ip_setsockopt_41852 do_ip_setsockopt 5 41852 NULL -+raw_recvmsg_17277 raw_recvmsg 4 17277 NULL -+alloc_ebda_hpc_50046 alloc_ebda_hpc 1-2 50046 NULL -+keyctl_instantiate_key_41855 keyctl_instantiate_key 3 41855 NULL ++string_9080 string 0 9080 NULL +create_queues_9088 create_queues 2-3 9088 NULL -+neigh_hash_grow_17283 neigh_hash_grow 2 17283 NULL -+cx25821_video_ioctl_30188 cx25821_video_ioctl 2 30188 NULL -+minstrel_stats_read_17290 minstrel_stats_read 3 17290 NULL -+fuse_conn_max_background_write_50061 fuse_conn_max_background_write 3 50061 NULL -+rbd_alloc_coll_33678 rbd_alloc_coll 1 33678 NULL -+read_file_debug_58256 read_file_debug 3 58256 NULL -+spi_register_board_info_35651 spi_register_board_info 2 35651 NULL ++ftdi_prepare_write_buffer_9093 ftdi_prepare_write_buffer 3 9093 NULL +caif_stream_sendmsg_9110 caif_stream_sendmsg 4 9110 NULL -+tracing_trace_options_write_153 tracing_trace_options_write 3 153 NULL -+btmrvl_hsstate_read_920 btmrvl_hsstate_read 3 920 NULL -+mb_cache_create_17307 mb_cache_create 2 17307 NULL +pmcraid_change_queue_depth_9116 pmcraid_change_queue_depth 2 9116 NULL -+ivtv_buf_copy_from_user_25502 ivtv_buf_copy_from_user 4 25502 NULL -+acpi_ds_build_internal_package_obj_58271 acpi_ds_build_internal_package_obj 3 58271 NULL -+snd_pcm_plugin_build_25505 snd_pcm_plugin_build 5 25505 NULL -+dev_set_alias_50084 dev_set_alias 3 50084 NULL -+pcpu_get_vm_areas_50085 pcpu_get_vm_areas 3 50085 NULL -+rxpipe_descr_host_int_trig_rx_data_read_22001 rxpipe_descr_host_int_trig_rx_data_read 3 22001 NULL -+iwm_umac_set_config_var_17320 iwm_umac_set_config_var 4 17320 NULL -+brcmf_sdbrcm_send_buf_9129 brcmf_sdbrcm_send_buf 6 9129 NULL -+altera_swap_dr_50090 altera_swap_dr 2 50090 NULL -+sys_keyctl_33708 sys_keyctl 4 33708 NULL nohasharray -+netlink_sendmsg_33708 netlink_sendmsg 4 33708 &sys_keyctl_33708 -+ata_host_alloc_pinfo_17325 ata_host_alloc_pinfo 3 17325 NULL -+get_free_de_33714 get_free_de 2 33714 NULL -+iscsi_decode_text_input_58292 iscsi_decode_text_input 4 58292 NULL -+carl9170_cmd_buf_950 carl9170_cmd_buf 3 950 NULL -+pvr2_stream_buffer_count_33719 pvr2_stream_buffer_count 2 33719 NULL -+my_skb_head_push_58297 my_skb_head_push 2 58297 NULL -+get_packet_41914 get_packet 3 41914 NULL -+roccat_common_receive_53407 roccat_common_receive 4 53407 NULL -+get_fdb_entries_41916 get_fdb_entries 3 41916 NULL -+ceph_get_direct_page_vector_41917 ceph_get_direct_page_vector 2 41917 NULL -+read_file_slot_50111 read_file_slot 3 50111 NULL -+iwl_dbgfs_rxon_filter_flags_read_28832 iwl_dbgfs_rxon_filter_flags_read 3 28832 NULL -+ieee80211_if_read_dot11MeshTTL_58307 ieee80211_if_read_dot11MeshTTL 3 58307 NULL -+serverworks_create_gatt_pages_46582 serverworks_create_gatt_pages 1 46582 NULL -+rx_streaming_interval_write_50120 rx_streaming_interval_write 3 50120 NULL -+ieee80211_if_read_path_refresh_time_25545 ieee80211_if_read_path_refresh_time 3 25545 NULL -+c4iw_init_resource_fifo_random_25547 c4iw_init_resource_fifo_random 3 25547 NULL -+copy_items_50140 copy_items 6 50140 NULL ++dbg_command_buf_9165 dbg_command_buf 2 9165 NULL +isr_irqs_read_9181 isr_irqs_read 3 9181 NULL -+pcim_iomap_58334 pcim_iomap 3 58334 NULL -+diva_init_dma_map_58336 diva_init_dma_map 3 58336 NULL -+realloc_packet_buffer_25569 realloc_packet_buffer 2 25569 NULL -+xfs_buf_associate_memory_17915 xfs_buf_associate_memory 3 17915 NULL -+hdlcdev_rx_997 hdlcdev_rx 3 997 NULL -+portnames_read_41958 portnames_read 3 41958 NULL -+hashtab_create_33769 hashtab_create 3 33769 NULL +alloc_group_attrs_9194 alloc_group_attrs 2 9194 NULL nohasharray +altera_swap_ir_9194 altera_swap_ir 2 9194 &alloc_group_attrs_9194 -+alloc_fdtable_17389 alloc_fdtable 1 17389 NULL ++gx1_gx_base_9198 gx1_gx_base 0 9198 NULL +sep_prepare_input_output_dma_table_9200 sep_prepare_input_output_dma_table 2-4-3 9200 NULL -+vmalloc_to_sg_58354 vmalloc_to_sg 2 58354 NULL -+aac_nark_ioremap_50163 aac_nark_ioremap 2 50163 NULL nohasharray -+kmalloc_node_50163 kmalloc_node 1 50163 &aac_nark_ioremap_50163 -+cx24116_writeregN_41975 cx24116_writeregN 4 41975 NULL -+odev_update_50169 odev_update 2 50169 NULL -+ubi_resize_volume_50172 ubi_resize_volume 2 50172 NULL -+ping_recvmsg_25597 ping_recvmsg 4 25597 NULL -+__devres_alloc_25598 __devres_alloc 2 25598 NULL -+netpoll_send_udp_58955 netpoll_send_udp 3 58955 NULL ++snd_m3_get_pointer_9206 snd_m3_get_pointer 0 9206 NULL +l2cap_create_connless_pdu_9222 l2cap_create_connless_pdu 3 9222 NULL -+ib_send_cm_drep_50186 ib_send_cm_drep 3 50186 NULL -+pohmelfs_name_alloc_1036 pohmelfs_name_alloc 1 1036 NULL +sctp_getsockopt_delayed_ack_9232 sctp_getsockopt_delayed_ack 2 9232 NULL -+lguest_map_42008 lguest_map 1-2 42008 NULL -+proc_coredump_filter_write_25625 proc_coredump_filter_write 3 25625 NULL -+sta_connected_time_read_17435 sta_connected_time_read 3 17435 NULL -+pool_allocate_42012 pool_allocate 3 42012 NULL -+l2cap_sock_setsockopt_50207 l2cap_sock_setsockopt 5 50207 NULL -+sctp_make_init_58401 sctp_make_init 4 58401 NULL -+ieee80211_skb_resize_50211 ieee80211_skb_resize 3 50211 NULL -+gigaset_initdriver_1060 gigaset_initdriver 2 1060 NULL -+vp_request_msix_vectors_28849 vp_request_msix_vectors 2 28849 NULL ++ocfs2_clear_ext_refcount_9256 ocfs2_clear_ext_refcount 4 9256 NULL +tcf_csum_ipv4_icmp_9258 tcf_csum_ipv4_icmp 3 9258 NULL -+acpi_ut_create_buffer_object_42030 acpi_ut_create_buffer_object 1 42030 NULL -+mce_request_packet_1073 mce_request_packet 3 1073 NULL -+agp_create_memory_1075 agp_create_memory 1 1075 NULL +sparse_early_usemaps_alloc_node_9269 sparse_early_usemaps_alloc_node 4 9269 NULL -+__hwahc_op_set_gtk_42038 __hwahc_op_set_gtk 4 42038 NULL +hdpvr_read_9273 hdpvr_read 3 9273 NULL -+mon_bin_compat_ioctl_50234 mon_bin_compat_ioctl 3 50234 NULL -+_scsih_adjust_queue_depth_1083 _scsih_adjust_queue_depth 2 1083 NULL -+irda_sendmsg_ultra_42047 irda_sendmsg_ultra 4 42047 NULL -+jffs2_do_link_42048 jffs2_do_link 6 42048 NULL -+ablkcipher_copy_iv_64140 ablkcipher_copy_iv 3 64140 NULL -+ttm_put_pages_38411 ttm_put_pages 2 38411 NULL -+dma_rx_requested_read_65354 dma_rx_requested_read 3 65354 NULL -+InterfaceTransmitPacket_42058 InterfaceTransmitPacket 3 42058 NULL -+kvm_write_guest_cached_11106 kvm_write_guest_cached 4 11106 NULL -+TSS_rawhmac_17486 TSS_rawhmac 3 17486 NULL -+brcmf_sdbrcm_downloadvars_42064 brcmf_sdbrcm_downloadvars 3 42064 NULL -+afs_extract_data_50261 afs_extract_data 5 50261 NULL -+capabilities_read_58457 capabilities_read 3 58457 NULL -+sta_inactive_ms_read_25690 sta_inactive_ms_read 3 25690 NULL ++qla82xx_pci_set_window_9303 qla82xx_pci_set_window 0-2 9303 NULL +iwl_dbgfs_stations_read_9309 iwl_dbgfs_stations_read 3 9309 NULL -+lpfc_idiag_baracc_read_58466 lpfc_idiag_baracc_read 3 58466 NULL nohasharray -+compat_do_ipt_set_ctl_58466 compat_do_ipt_set_ctl 4 58466 &lpfc_idiag_baracc_read_58466 -+scsi_execute_req_42088 scsi_execute_req 5 42088 NULL -+hcd_buffer_alloc_27495 hcd_buffer_alloc 2 27495 NULL -+key_algorithm_read_57946 key_algorithm_read 3 57946 NULL -+rxrpc_setsockopt_50286 rxrpc_setsockopt 5 50286 NULL -+sk_chk_filter_42095 sk_chk_filter 2 42095 NULL -+ibmasm_new_command_25714 ibmasm_new_command 2 25714 NULL -+snd_rme96_capture_copy_58484 snd_rme96_capture_copy 5 58484 NULL -+event_tx_stuck_read_19305 event_tx_stuck_read 3 19305 NULL -+restore_i387_fxsave_17528 restore_i387_fxsave 2 17528 NULL -+submit_inquiry_42108 submit_inquiry 3 42108 NULL -+sel_write_context_25726 sel_write_context 3 25726 NULL nohasharray -+__alloc_bootmem_low_node_25726 __alloc_bootmem_low_node 2 25726 &sel_write_context_25726 -+sysfs_read_file_42113 sysfs_read_file 3 42113 NULL -+compat_mpctl_ioctl_45671 compat_mpctl_ioctl 2 45671 NULL -+mcs_unwrap_fir_25733 mcs_unwrap_fir 3 25733 NULL -+store_gps_42118 store_gps 4 42118 NULL -+vme_user_write_15587 vme_user_write 3 15587 NULL -+cifs_readdata_alloc_50318 cifs_readdata_alloc 1 50318 NULL -+__copy_to_user_17551 __copy_to_user 3 17551 NULL -+cxgbi_device_portmap_create_25747 cxgbi_device_portmap_create 3 25747 NULL -+sel_read_avc_cache_threshold_33942 sel_read_avc_cache_threshold 3 33942 NULL -+copy_from_user_17559 copy_from_user 3 17559 NULL -+read_file_tgt_rx_stats_33944 read_file_tgt_rx_stats 3 33944 NULL -+diva_os_malloc_16406 diva_os_malloc 2 16406 NULL -+lpfc_idiag_pcicfg_read_50334 lpfc_idiag_pcicfg_read 3 50334 NULL -+ttm_agp_populate_42144 ttm_agp_populate 2 42144 NULL -+v9fs_alloc_rdir_buf_42150 v9fs_alloc_rdir_buf 2 42150 NULL -+ipc_alloc_1192 ipc_alloc 1 1192 NULL -+mwifiex_info_read_53447 mwifiex_info_read 3 53447 NULL -+ib_create_send_mad_1196 ib_create_send_mad 5 1196 NULL -+rndis_add_response_58544 rndis_add_response 2 58544 NULL -+efx_tsoh_heap_alloc_58545 efx_tsoh_heap_alloc 2 58545 NULL -+isdn_ppp_read_50356 isdn_ppp_read 4 50356 NULL ++ceph_sync_setxattr_9310 ceph_sync_setxattr 4 9310 NULL ++sk_rmem_schedule_9331 sk_rmem_schedule 2 9331 NULL ++ocfs2_orphan_for_truncate_9342 ocfs2_orphan_for_truncate 4 9342 NULL +read_9397 read 3 9397 NULL -+i2cdev_read_1206 i2cdev_read 3 1206 NULL -+read_file_base_eeprom_42168 read_file_base_eeprom 3 42168 NULL -+printer_write_60276 printer_write 3 60276 NULL -+acpi_ut_create_package_object_17594 acpi_ut_create_package_object 1 17594 NULL -+neigh_hash_alloc_17595 neigh_hash_alloc 1 17595 NULL -+rts51x_write_mem_17598 rts51x_write_mem 4 17598 NULL -+vga_switcheroo_debugfs_write_33984 vga_switcheroo_debugfs_write 3 33984 NULL -+request_key_async_with_auxdata_46624 request_key_async_with_auxdata 4 46624 NULL -+blk_init_tags_30592 blk_init_tags 1 30592 NULL -+qlcnic_alloc_sds_rings_26795 qlcnic_alloc_sds_rings 2 26795 NULL -+oprofilefs_str_to_user_42182 oprofilefs_str_to_user 3 42182 NULL -+sg_read_25799 sg_read 3 25799 NULL -+sl_alloc_bufs_50380 sl_alloc_bufs 2 50380 NULL -+ipw_packet_received_skb_1230 ipw_packet_received_skb 2 1230 NULL -+sys32_rt_sigpending_25814 sys32_rt_sigpending 2 25814 NULL +bm_realloc_pages_9431 bm_realloc_pages 2 9431 NULL -+realloc_buffer_25816 realloc_buffer 2 25816 NULL -+skb_make_writable_24783 skb_make_writable 2 24783 NULL +ffs_ep0_write_9438 ffs_ep0_write 3 9438 NULL -+pwr_missing_bcns_read_25824 pwr_missing_bcns_read 3 25824 NULL -+gdth_search_isa_58595 gdth_search_isa 1 58595 NULL -+__ntfs_malloc_34022 __ntfs_malloc 1 34022 NULL -+l2tp_ip_sendmsg_50411 l2tp_ip_sendmsg 4 50411 NULL -+resize_stripes_61650 resize_stripes 2 61650 NULL -+mcs_unwrap_mir_9455 mcs_unwrap_mir 3 9455 NULL -+ppp_write_34034 ppp_write 3 34034 NULL -+iscsi_create_conn_50425 iscsi_create_conn 2 50425 NULL -+tty_insert_flip_string_34042 tty_insert_flip_string 3 34042 NULL -+xfs_buf_read_uncached_27519 xfs_buf_read_uncached 4 27519 NULL ++kmalloc_array_9444 kmalloc_array 1-2 9444 NULL ++ieee80211_if_fmt_fwded_unicast_9454 ieee80211_if_fmt_fwded_unicast 3 9454 NULL ++ext3_xattr_set_acl_9467 ext3_xattr_set_acl 4 9467 NULL +agp_generic_alloc_user_9470 agp_generic_alloc_user 1 9470 NULL -+skb_copy_to_page_nocache_58624 skb_copy_to_page_nocache 6 58624 NULL -+do_arpt_set_ctl_51053 do_arpt_set_ctl 4 51053 NULL -+module_alloc_update_bounds_rx_58634 module_alloc_update_bounds_rx 1 58634 NULL -+btmrvl_hsmode_write_42252 btmrvl_hsmode_write 3 42252 NULL -+dsp_tone_hw_message_17678 dsp_tone_hw_message 3 17678 NULL -+netxen_nic_map_indirect_address_128M_42257 netxen_nic_map_indirect_address_128M 2 42257 NULL -+ipath_get_base_info_7043 ipath_get_base_info 3 7043 NULL ++rbd_coll_end_req_9472 rbd_coll_end_req 3 9472 NULL +__alloc_preds_9492 __alloc_preds 2 9492 NULL -+pgctrl_write_50453 pgctrl_write 3 50453 NULL -+pwr_enable_ps_read_17686 pwr_enable_ps_read 3 17686 NULL -+ath6kl_regread_read_25884 ath6kl_regread_read 3 25884 NULL -+tm6000_i2c_recv_regs16_2949 tm6000_i2c_recv_regs16 5 2949 NULL -+uvc_v4l2_ioctl_8411 uvc_v4l2_ioctl 2 8411 NULL +lp_write_9511 lp_write 3 9511 NULL -+venus_rename_17707 venus_rename 4-5 17707 NULL -+cdrom_read_cdda_50478 cdrom_read_cdda 4 50478 NULL -+nfs_readdir_make_qstr_12509 nfs_readdir_make_qstr 3 12509 NULL -+lpfc_change_queue_depth_25905 lpfc_change_queue_depth 2 25905 NULL +scsi_tgt_kspace_exec_9522 scsi_tgt_kspace_exec 8 9522 NULL -+do_jffs2_setxattr_25910 do_jffs2_setxattr 5 25910 NULL -+do_xip_mapping_read_60297 do_xip_mapping_read 5 60297 NULL +read_file_dma_9530 read_file_dma 3 9530 NULL -+sel_read_perm_42302 sel_read_perm 3 42302 NULL -+rcname_read_25919 rcname_read 3 25919 NULL -+sctp_setsockopt_del_key_42304 sctp_setsockopt_del_key 3 42304 NULL nohasharray -+ulong_read_file_42304 ulong_read_file 3 42304 &sctp_setsockopt_del_key_42304 ++ext3_alloc_branch_9534 ext3_alloc_branch 5 9534 NULL +pohmelfs_send_readpages_9537 pohmelfs_send_readpages 3 9537 NULL -+exofs_read_lookup_dev_table_17733 exofs_read_lookup_dev_table 3 17733 NULL -+pwr_rcvd_awake_beacons_read_50505 pwr_rcvd_awake_beacons_read 3 50505 NULL -+snd_es1938_capture_copy_25930 snd_es1938_capture_copy 5 25930 NULL -+key_flags_read_25931 key_flags_read 3 25931 NULL +audit_log_n_untrustedstring_9548 audit_log_n_untrustedstring 3 9548 NULL -+sctpprobe_read_17741 sctpprobe_read 3 17741 NULL -+ipx_sendmsg_1362 ipx_sendmsg 4 1362 NULL -+tracing_ctrl_write_42324 tracing_ctrl_write 3 42324 NULL nohasharray -+hysdn_conf_read_42324 hysdn_conf_read 3 42324 &tracing_ctrl_write_42324 -+islpci_mgt_transmit_34133 islpci_mgt_transmit 5 34133 NULL +fw_node_create_9559 fw_node_create 2 9559 NULL -+sctp_getsockopt_nodelay_9560 sctp_getsockopt_nodelay 2 9560 NULL -+insert_one_name_61668 insert_one_name 7 61668 NULL +kobj_map_9566 kobj_map 2-3 9566 NULL -+snd_pcm_plug_alloc_42339 snd_pcm_plug_alloc 2 42339 NULL +biovec_create_pools_9575 biovec_create_pools 2 9575 NULL -+fwnet_receive_packet_50537 fwnet_receive_packet 9 50537 NULL -+do_msgsnd_1387 do_msgsnd 4 1387 NULL -+ieee80211_tdls_mgmt_9581 ieee80211_tdls_mgmt 8 9581 NULL -+cosa_read_25966 cosa_read 3 25966 NULL -+snd_rawmidi_kernel_read_4328 snd_rawmidi_kernel_read 3 4328 NULL -+ide_raw_taskfile_42355 ide_raw_taskfile 4 42355 NULL -+rngapi_reset_34366 rngapi_reset 3 34366 NULL nohasharray -+p54_alloc_skb_34366 p54_alloc_skb 3 34366 &rngapi_reset_34366 -+compat_udpv6_setsockopt_42981 compat_udpv6_setsockopt 5 42981 NULL -+file_read_actor_1401 file_read_actor 4 1401 NULL -+av7110_ipack_init_46655 av7110_ipack_init 2 46655 NULL -+hci_si_event_1404 hci_si_event 3 1404 NULL -+ath6kl_fwlog_mask_write_24810 ath6kl_fwlog_mask_write 3 24810 NULL -+udp_setsockopt_25985 udp_setsockopt 5 25985 NULL ++lguest_setup_irq_9587 lguest_setup_irq 1 9587 NULL +do_sync_9604 do_sync 1 9604 NULL -+snd_emu10k1_fx8010_read_9605 snd_emu10k1_fx8010_read 5 9605 NULL -+scsi_host_alloc_63041 scsi_host_alloc 2 63041 NULL -+agp_allocate_memory_58761 agp_allocate_memory 2 58761 NULL -+__do_config_autodelink_58763 __do_config_autodelink 3 58763 NULL -+iwl_legacy_dbgfs_tx_queue_read_34192 iwl_legacy_dbgfs_tx_queue_read 3 34192 NULL -+lpfc_sli_probe_sriov_nr_virtfn_26004 lpfc_sli_probe_sriov_nr_virtfn 2 26004 NULL -+osd_req_write_kern_53486 osd_req_write_kern 5 53486 NULL -+pep_reply_50582 pep_reply 5 50582 NULL -+iwl_dbgfs_missed_beacon_read_50584 iwl_dbgfs_missed_beacon_read 3 50584 NULL ++snd_emu10k1_fx8010_read_9605 snd_emu10k1_fx8010_read 5-6 9605 NULL +saa7164_buffer_alloc_user_9627 saa7164_buffer_alloc_user 2 9627 NULL -+_snd_pcm_lib_alloc_vmalloc_buffer_17820 _snd_pcm_lib_alloc_vmalloc_buffer 2 17820 NULL -+mtd_write_34207 mtd_write 3 34207 NULL -+xfs_readdir_41200 xfs_readdir 3 41200 NULL -+sge_rx_50594 sge_rx 3 50594 NULL -+stack_max_size_read_1445 stack_max_size_read 3 1445 NULL -+brn_proc_write_42407 brn_proc_write 3 42407 NULL -+sg_kmalloc_50240 sg_kmalloc 1 50240 NULL -+skb_padto_50759 skb_padto 2 50759 NULL -+raw_send_hdrinc_58803 raw_send_hdrinc 4 58803 NULL -+mptscsih_change_queue_depth_26036 mptscsih_change_queue_depth 2 26036 NULL -+selinux_inode_post_setxattr_26037 selinux_inode_post_setxattr 4 26037 NULL -+tx_queue_len_read_1463 tx_queue_len_read 3 1463 NULL ++compat_sys_keyctl_9639 compat_sys_keyctl 4-2-3 9639 NULL ++ocfs2_xattr_get_rec_9652 ocfs2_xattr_get_rec 0 9652 NULL ++snd_intelmad_register_irq_9654 snd_intelmad_register_irq 2-3 9654 NULL +uvc_alloc_buffers_9656 uvc_alloc_buffers 2-3 9656 NULL +queue_received_packet_9657 queue_received_packet 5 9657 NULL -+sctp_getsockopt_initmsg_26042 sctp_getsockopt_initmsg 2 26042 NULL -+ep_read_58813 ep_read 3 58813 NULL -+xprt_alloc_1475 xprt_alloc 2 1475 NULL -+gsm_data_alloc_42437 gsm_data_alloc 3 42437 NULL +snd_opl4_mem_proc_write_9670 snd_opl4_mem_proc_write 5 9670 NULL -+pci_enable_sriov_35745 pci_enable_sriov 2 35745 NULL -+sisusb_send_bulk_msg_17864 sisusb_send_bulk_msg 3 17864 NULL -+simple_transaction_get_50633 simple_transaction_get 3 50633 NULL -+key_conf_keyidx_read_42443 key_conf_keyidx_read 3 42443 NULL -+alloc_sja1000dev_17868 alloc_sja1000dev 1 17868 NULL -+keyctl_update_key_26061 keyctl_update_key 3 26061 NULL -+sta_num_ps_buf_frames_read_1488 sta_num_ps_buf_frames_read 3 1488 NULL -+ray_cs_essid_proc_write_17875 ray_cs_essid_proc_write 3 17875 NULL -+orinoco_set_key_17878 orinoco_set_key 5-7 17878 NULL -+bl_pipe_downcall_34264 bl_pipe_downcall 3 34264 NULL -+command_write_58841 command_write 3 58841 NULL -+compat_sys_pwritev_17886 compat_sys_pwritev 3 17886 NULL -+rw_copy_check_uvector_34271 rw_copy_check_uvector 3 34271 NULL -+ocfs2_readlink_50656 ocfs2_readlink 3 50656 NULL -+sctp_getsockopt_default_send_param_63056 sctp_getsockopt_default_send_param 2 63056 NULL -+sys_readv_50664 sys_readv 3 50664 NULL ++ks8842_read16_9676 ks8842_read16 0 9676 NULL nohasharray ++dns_query_9676 dns_query 3 9676 &ks8842_read16_9676 ++qib_7322_handle_hwerrors_9678 qib_7322_handle_hwerrors 3 9678 NULL ++__erst_read_from_storage_9690 __erst_read_from_storage 0 9690 NULL ++x25_asy_compat_ioctl_9694 x25_asy_compat_ioctl 4 9694 NULL nohasharray ++is_hole_9694 is_hole 2 9694 &x25_asy_compat_ioctl_9694 ++fnb_9703 fnb 2-3 9703 NULL +ieee80211_if_read_aid_9705 ieee80211_if_read_aid 3 9705 NULL -+udp_manip_pkt_50770 udp_manip_pkt 2 50770 NULL -+recover_head_17904 recover_head 3 17904 NULL -+iwl_dbgfs_traffic_log_read_58870 iwl_dbgfs_traffic_log_read 3 58870 NULL -+dccp_feat_register_sp_17914 dccp_feat_register_sp 5 17914 NULL -+btmrvl_psstate_read_50683 btmrvl_psstate_read 3 50683 NULL -+brcmf_sdbrcm_bus_txctl_42492 brcmf_sdbrcm_bus_txctl 3 42492 NULL -+srp_iu_pool_alloc_17920 srp_iu_pool_alloc 2 17920 NULL -+gs_alloc_req_58883 gs_alloc_req 2 58883 NULL -+pvr2_v4l2_read_18006 pvr2_v4l2_read 3 18006 NULL -+cs553x_init_one_58886 cs553x_init_one 3 58886 NULL -+vring_add_indirect_20737 vring_add_indirect 3-4 20737 NULL -+tomoyo_write_log2_34318 tomoyo_write_log2 2 34318 NULL +ddb_input_read_9743 ddb_input_read 3 9743 NULL -+user_instantiate_26131 user_instantiate 3 26131 NULL -+kvm_write_wall_clock_42520 kvm_write_wall_clock 2 42520 NULL -+skb_cow_26138 skb_cow 2 26138 NULL -+smk_write_netlbladdr_42525 smk_write_netlbladdr 3 42525 NULL -+beacon_interval_write_17952 beacon_interval_write 3 17952 NULL -+snd_emux_create_port_42533 snd_emux_create_port 3 42533 NULL ++__alloc_percpu_9764 __alloc_percpu 1-2 9764 NULL +do_sigpending_9766 do_sigpending 2 9766 NULL -+iwl_dbgfs_disable_ht40_read_35761 iwl_dbgfs_disable_ht40_read 3 35761 NULL +__blk_queue_init_tags_9778 __blk_queue_init_tags 2 9778 NULL -+copy_oldmem_page_26164 copy_oldmem_page 3-1 26164 NULL -+bluetooth_proc_write_1630 bluetooth_proc_write 3 1630 NULL -+vmalloc_32_1135 vmalloc_32 1 1135 NULL +snd_mem_proc_write_9786 snd_mem_proc_write 3 9786 NULL -+fc_frame_alloc_1596 fc_frame_alloc 2 1596 NULL -+udp_recvmsg_42558 udp_recvmsg 4 42558 NULL -+store_cardr_2997 store_cardr 4 2997 NULL -+alloc_rx_desc_ring_18016 alloc_rx_desc_ring 2 18016 NULL -+solo_v4l2_read_59247 solo_v4l2_read 3 59247 NULL -+smk_write_cipso_17989 smk_write_cipso 3 17989 NULL -+packet_buffer_init_1607 packet_buffer_init 2 1607 NULL -+reiserfs_resize_34377 reiserfs_resize 2 34377 NULL -+get_registers_26187 get_registers 3 26187 NULL +ttm_bo_fbdev_io_9805 ttm_bo_fbdev_io 4 9805 NULL -+btmrvl_hscmd_read_1614 btmrvl_hscmd_read 3 1614 NULL -+av7110_vbi_write_34384 av7110_vbi_write 3 34384 NULL -+usbvision_v4l2_read_34386 usbvision_v4l2_read 3 34386 NULL -+snd_pcm_oss_write2_27332 snd_pcm_oss_write2 3 27332 NULL -+udpv6_recvmsg_9813 udpv6_recvmsg 4 9813 NULL nohasharray -+ieee80211_if_read_state_9813 ieee80211_if_read_state 3 9813 &udpv6_recvmsg_9813 -+tm6000_read_write_usb_50774 tm6000_read_write_usb 7 50774 NULL nohasharray -+pipe_handler_request_50774 pipe_handler_request 5 50774 &tm6000_read_write_usb_50774 -+xfs_idata_realloc_26199 xfs_idata_realloc 2 26199 NULL -+mce_write_26201 mce_write 3 26201 NULL -+bio_alloc_map_data_50782 bio_alloc_map_data 1-2 50782 NULL -+ivtv_read_pos_34400 ivtv_read_pos 3 34400 NULL -+oom_score_adj_write_42594 oom_score_adj_write 3 42594 NULL -+libipw_alloc_txb_27579 libipw_alloc_txb 1-3-2 27579 NULL -+process_vm_rw_single_vec_26213 process_vm_rw_single_vec 1-2 26213 NULL -+__pskb_pull_42602 __pskb_pull 2 42602 NULL -+sctp_make_heartbeat_ack_34411 sctp_make_heartbeat_ack 4 34411 NULL -+tpm_write_50798 tpm_write 3 50798 NULL -+btmrvl_hsmode_read_1647 btmrvl_hsmode_read 3 1647 NULL ++ieee80211_if_read_state_9813 ieee80211_if_read_state 3 9813 NULL ++pnp_mem_start_9817 pnp_mem_start 0 9817 NULL ++kernel_physical_mapping_init_9818 kernel_physical_mapping_init 0-2-1 9818 NULL +dvb_dvr_set_buffer_size_9840 dvb_dvr_set_buffer_size 2 9840 NULL -+store_sys_hwmon_26225 store_sys_hwmon 3 26225 NULL -+write_flush_50803 write_flush 3 50803 NULL -+_scsih_change_queue_depth_26230 _scsih_change_queue_depth 2 26230 NULL -+rxrpc_recvmsg_26233 rxrpc_recvmsg 4 26233 NULL -+ikconfig_read_current_1658 ikconfig_read_current 3 1658 NULL -+posix_acl_alloc_48063 posix_acl_alloc 1 48063 NULL -+dvb_play_50814 dvb_play 3 50814 NULL -+ep_write_59008 ep_write 3 59008 NULL -+sys_move_pages_42626 sys_move_pages 2 42626 NULL -+ddebug_proc_write_18055 ddebug_proc_write 3 18055 NULL ++cfg80211_send_deauth_9862 cfg80211_send_deauth 3 9862 NULL ++get_blk_table_len_9863 get_blk_table_len 0 9863 NULL +pmcraid_alloc_sglist_9864 pmcraid_alloc_sglist 1 9864 NULL -+receive_server_sync_packet_59021 receive_server_sync_packet 3 59021 NULL -+usbtest_alloc_urb_34446 usbtest_alloc_urb 3-5 34446 NULL -+scsi_activate_tcq_42640 scsi_activate_tcq 2 42640 NULL -+br_mdb_rehash_42643 br_mdb_rehash 2 42643 NULL -+packet_came_18072 packet_came 3 18072 NULL -+kvm_read_guest_page_18074 kvm_read_guest_page 5 18074 NULL -+sctp_make_abort_34459 sctp_make_abort 3 34459 NULL -+_regmap_raw_write_42652 _regmap_raw_write 4 42652 NULL -+selinux_transaction_write_59038 selinux_transaction_write 3 59038 NULL -+get_vm_area_18080 get_vm_area 1 18080 NULL -+tun_do_read_50800 tun_do_read 4 50800 NULL ++mlx4_bitmap_alloc_range_9876 mlx4_bitmap_alloc_range 2-3 9876 NULL +bm_register_write_9893 bm_register_write 3 9893 NULL nohasharray +snd_midi_event_new_9893 snd_midi_event_new 1 9893 &bm_register_write_9893 -+handle_rx_packet_58993 handle_rx_packet 3 58993 NULL -+mwifiex_regrdwr_read_34472 mwifiex_regrdwr_read 3 34472 NULL -+carl9170_debugfs_write_50857 carl9170_debugfs_write 3 50857 NULL -+iwm_rx_packet_alloc_9898 iwm_rx_packet_alloc 3 9898 NULL -+i2o_parm_field_get_34477 i2o_parm_field_get 5 34477 NULL -+coda_psdev_write_1711 coda_psdev_write 3 1711 NULL ++snd_gf1_pcm_playback_copy_9895 snd_gf1_pcm_playback_copy 3-5 9895 NULL +receive_DataRequest_9904 receive_DataRequest 3 9904 NULL -+wl1271_rx_handle_data_1714 wl1271_rx_handle_data 3 1714 NULL -+max3107_handlerx_58978 max3107_handlerx 2 58978 NULL -+udf_alloc_i_data_35786 udf_alloc_i_data 2 35786 NULL -+netlink_kernel_create_18110 netlink_kernel_create 3 18110 NULL -+dfs_file_read_18116 dfs_file_read 3 18116 NULL -+request_key_and_link_42693 request_key_and_link 4 42693 NULL -+iwl_legacy_dbgfs_chain_noise_read_31692 iwl_legacy_dbgfs_chain_noise_read 3 31692 NULL -+tled_proc_write_26315 tled_proc_write 3 26315 NULL -+vb2_read_42703 vb2_read 3 42703 NULL -+pwr_wake_on_host_read_26321 pwr_wake_on_host_read 3 26321 NULL -+irda_sendmsg_4388 irda_sendmsg 4 4388 NULL +read_file_misc_9948 read_file_misc 3 9948 NULL -+xfs_iext_remove_50909 xfs_iext_remove 3 50909 NULL -+set_rxd_buffer_pointer_9950 set_rxd_buffer_pointer 8 9950 NULL -+tcp_sacktag_walk_26339 tcp_sacktag_walk 5-6 26339 NULL -+alloc_buf_34532 alloc_buf 1 34532 NULL ++ext2_new_blocks_9954 ext2_new_blocks 2 9954 NULL +csum_partial_copy_fromiovecend_9957 csum_partial_copy_fromiovecend 3-4 9957 NULL -+tracing_stats_read_34537 tracing_stats_read 3 34537 NULL -+hash_recvmsg_50924 hash_recvmsg 4 50924 NULL -+dvb_demux_ioctl_42733 dvb_demux_ioctl 2 42733 NULL -+chd_dec_fetch_cdata_50926 chd_dec_fetch_cdata 3 50926 NULL -+set_aoe_iflist_42737 set_aoe_iflist 2 42737 NULL -+hugetlbfs_read_actor_34547 hugetlbfs_read_actor 2-5-4 34547 NULL -+ax25_setsockopt_42740 ax25_setsockopt 5 42740 NULL +btrfs_add_link_9973 btrfs_add_link 5 9973 NULL -+stats_dot11RTSSuccessCount_read_33065 stats_dot11RTSSuccessCount_read 3 33065 NULL -+dup_to_netobj_26363 dup_to_netobj 3 26363 NULL -+sock_bindtodevice_50942 sock_bindtodevice 3 50942 NULL -+pccard_store_cis_18176 pccard_store_cis 6 18176 NULL -+cryptd_alloc_instance_18048 cryptd_alloc_instance 2-3 18048 NULL -+alloc_ieee80211_rsl_34564 alloc_ieee80211_rsl 1 34564 NULL -+mld_newpack_50950 mld_newpack 2 50950 NULL -+asn1_octets_decode_9991 asn1_octets_decode 2 9991 NULL -+framebuffer_alloc_59145 framebuffer_alloc 1 59145 NULL -+radeon_compat_ioctl_59150 radeon_compat_ioctl 2 59150 NULL -+qla2x00_get_ctx_bsg_sp_42768 qla2x00_get_ctx_bsg_sp 3 42768 NULL -+cfpkt_create_18197 cfpkt_create 1 18197 NULL -+velocity_rx_copy_34583 velocity_rx_copy 2 34583 NULL ++nfs_readdata_alloc_9990 nfs_readdata_alloc 1 9990 NULL +kovaplus_send_10009 kovaplus_send 4 10009 NULL -+init_send_hfcd_34586 init_send_hfcd 1 34586 NULL -+proc_pid_readlink_52186 proc_pid_readlink 3 52186 NULL -+orinoco_add_extscan_result_18207 orinoco_add_extscan_result 3 18207 NULL -+gsm_control_message_18209 gsm_control_message 4 18209 NULL -+do_ipv6_setsockopt_18215 do_ipv6_setsockopt 5 18215 NULL -+koneplus_sysfs_read_42792 koneplus_sysfs_read 6 42792 NULL -+setup_window_59178 setup_window 7-5-4-2 59178 NULL -+timeout_write_50991 timeout_write 3 50991 NULL -+koneplus_send_18226 koneplus_send 4 18226 NULL -+iwl_legacy_dbgfs_sram_read_26419 iwl_legacy_dbgfs_sram_read 3 26419 NULL -+fw_device_op_compat_ioctl_42804 fw_device_op_compat_ioctl 2 42804 NULL -+sctp_getsockopt_peeloff_59190 sctp_getsockopt_peeloff 2 59190 NULL -+proc_write_51003 proc_write 3 51003 NULL -+drm_ioctl_42813 drm_ioctl 2 42813 NULL -+gnttab_alloc_grant_references_18240 gnttab_alloc_grant_references 1 18240 NULL -+iwl_dbgfs_ucode_bt_stats_read_42820 iwl_dbgfs_ucode_bt_stats_read 3 42820 NULL -+set_arg_42824 set_arg 3 42824 NULL -+xfs_iext_realloc_indirect_59211 xfs_iext_realloc_indirect 2 59211 NULL -+fast_rx_path_59214 fast_rx_path 3 59214 NULL -+lbs_dev_info_51023 lbs_dev_info 3 51023 NULL -+cnic_alloc_dma_34641 cnic_alloc_dma 3 34641 NULL -+fuse_conn_congestion_threshold_read_51028 fuse_conn_congestion_threshold_read 3 51028 NULL -+pstore_mkfile_50830 pstore_mkfile 5 50830 NULL -+qdisc_class_hash_alloc_18262 qdisc_class_hash_alloc 1 18262 NULL -+hidp_queue_report_1881 hidp_queue_report 3 1881 NULL -+dt3155_read_59226 dt3155_read 3 59226 NULL -+iwl_dbgfs_tx_statistics_read_314 iwl_dbgfs_tx_statistics_read 3 314 NULL nohasharray -+dn_setsockopt_314 dn_setsockopt 5 314 &iwl_dbgfs_tx_statistics_read_314 -+dump_midi_51040 dump_midi 3 51040 NULL -+gfs2_alloc_sort_buffer_18275 gfs2_alloc_sort_buffer 1 18275 NULL -+skb_copy_datagram_const_iovec_48102 skb_copy_datagram_const_iovec 2-5-4 48102 NULL -+iwl_legacy_dbgfs_rxon_flags_read_1894 iwl_legacy_dbgfs_rxon_flags_read 3 1894 NULL -+tty_prepare_flip_string_flags_59240 tty_prepare_flip_string_flags 4 59240 NULL -+cxacru_cm_get_array_4412 cxacru_cm_get_array 4 4412 NULL -+mmc_send_bus_test_18285 mmc_send_bus_test 4 18285 NULL -+em28xx_v4l2_read_16701 em28xx_v4l2_read 3 16701 NULL -+configfs_read_file_1683 configfs_read_file 3 1683 NULL -+um_idi_write_18293 um_idi_write 3 18293 NULL -+wusb_prf_64_51065 wusb_prf_64 7 51065 NULL -+dvb_ca_en50221_io_ioctl_26490 dvb_ca_en50221_io_ioctl 2 26490 NULL -+libfc_vport_create_4415 libfc_vport_create 2 4415 NULL -+isr_fiqs_read_34687 isr_fiqs_read 3 34687 NULL -+pskb_expand_head_42881 pskb_expand_head 2-3 42881 NULL -+ip6ip6_err_18308 ip6ip6_err 5 18308 NULL -+read_vmcore_26501 read_vmcore 3 26501 NULL -+garp_attr_create_3883 garp_attr_create 3 3883 NULL -+tipc_port_recv_sections_42890 tipc_port_recv_sections 4 42890 NULL -+xpc_kmalloc_cacheline_aligned_42895 xpc_kmalloc_cacheline_aligned 1 42895 NULL -+jbd2_journal_init_revoke_51088 jbd2_journal_init_revoke 2 51088 NULL -+ecryptfs_send_message_18322 ecryptfs_send_message 2 18322 NULL -+alloc_context_41283 alloc_context 1 41283 NULL -+SendTxCommandPacket_42901 SendTxCommandPacket 3 42901 NULL -+qcam_read_13977 qcam_read 3 13977 NULL -+btmrvl_hscfgcmd_read_56303 btmrvl_hscfgcmd_read 3 56303 NULL -+read_file_wiphy_51103 read_file_wiphy 3 51103 NULL -+ieee80211_if_read_num_sta_ps_34722 ieee80211_if_read_num_sta_ps 3 34722 NULL -+alloc_ring_15345 alloc_ring 2-4 15345 NULL -+btrfs_insert_dir_item_59304 btrfs_insert_dir_item 4 59304 NULL ++aat2870_dump_reg_10019 aat2870_dump_reg 0 10019 NULL ++handle_request_10024 handle_request 9 10024 NULL ++rbd_coll_end_req_index_10041 rbd_coll_end_req_index 5 10041 NULL ++ufs_bitmap_search_10105 ufs_bitmap_search 0-3 10105 NULL ++get_elem_size_10110 get_elem_size 0-2 10110 NULL ++gfs2_meta_read_10112 gfs2_meta_read 0 10112 NULL ++offset_to_bit_10134 offset_to_bit 0 10134 NULL ++au_sbr_realloc_10150 au_sbr_realloc 2 10150 NULL +aes_decrypt_packets_read_10155 aes_decrypt_packets_read 3 10155 NULL -+rds_message_inc_copy_to_user_26540 rds_message_inc_copy_to_user 3 26540 NULL +rx_out_of_mem_read_10157 rx_out_of_mem_read 3 10157 NULL -+platform_list_read_file_34734 platform_list_read_file 3 34734 NULL -+dvb_demux_read_13981 dvb_demux_read 3 13981 NULL -+reg_w_ixbuf_34736 reg_w_ixbuf 4 34736 NULL -+sctp_make_datafrag_empty_34737 sctp_make_datafrag_empty 3 34737 NULL -+pwr_power_save_off_read_18355 pwr_power_save_off_read 3 18355 NULL ++ol_chunk_entries_10159 ol_chunk_entries 0 10159 NULL +asd_store_update_bios_10165 asd_store_update_bios 4 10165 NULL -+store_iwmct_log_level_fw_1974 store_iwmct_log_level_fw 4 1974 NULL -+kstrtol_from_user_10168 kstrtol_from_user 2 10168 NULL -+__vhost_add_used_n_26554 __vhost_add_used_n 3 26554 NULL -+fd_copyout_59323 fd_copyout 3 59323 NULL -+nfs_map_name_to_uid_51132 nfs_map_name_to_uid 3 51132 NULL -+xlbd_reserve_minors_18365 xlbd_reserve_minors 1-2 18365 NULL -+read_9287_modal_eeprom_59327 read_9287_modal_eeprom 3 59327 NULL -+sel_read_avc_hash_stats_1984 sel_read_avc_hash_stats 3 1984 NULL -+solos_param_store_34755 solos_param_store 4 34755 NULL -+wl1271_cmd_build_probe_req_51141 wl1271_cmd_build_probe_req 3-5 51141 NULL ++proc_pid_attr_read_10173 proc_pid_attr_read 3 10173 NULL +jffs2_user_setxattr_10182 jffs2_user_setxattr 4 10182 NULL -+gpio_power_write_1991 gpio_power_write 3 1991 NULL -+__alloc_bootmem_node_1992 __alloc_bootmem_node 2 1992 NULL -+xfs_trans_get_efd_51148 xfs_trans_get_efd 3 51148 NULL -+rts51x_read_mem_26577 rts51x_read_mem 4 26577 NULL -+sys_sethostname_42962 sys_sethostname 2 42962 NULL -+set_registers_53582 set_registers 3 53582 NULL -+qib_cdev_init_34778 qib_cdev_init 1 34778 NULL -+add_new_gdb_27643 add_new_gdb 3 27643 NULL -+write_flush_pipefs_2021 write_flush_pipefs 3 2021 NULL -+__copy_in_user_34790 __copy_in_user 3 34790 NULL -+crystalhd_user_data_18407 crystalhd_user_data 3 18407 NULL -+ieee80211_bss_info_update_13991 ieee80211_bss_info_update 4 13991 NULL -+nfs_idmap_get_desc_42990 nfs_idmap_get_desc 2-4 42990 NULL -+tipc_log_resize_34803 tipc_log_resize 1 34803 NULL -+devm_ioremap_nocache_2036 devm_ioremap_nocache 2-3 2036 NULL -+line6_dumpreq_init_34473 line6_dumpreq_init 3 34473 NULL -+ath6kl_fwlog_mask_read_2050 ath6kl_fwlog_mask_read 3 2050 NULL -+pwr_fix_tsf_ps_read_26627 pwr_fix_tsf_ps_read 3 26627 NULL -+pm8001_store_update_fw_55716 pm8001_store_update_fw 4 55716 NULL -+sctp_getsockopt_fragment_interleave_51215 sctp_getsockopt_fragment_interleave 2 51215 NULL -+sep_prepare_input_dma_table_34832 sep_prepare_input_dma_table 2-3 34832 NULL -+isr_rx_mem_overflow_read_43025 isr_rx_mem_overflow_read 3 43025 NULL ++do_ioctl_trans_10194 do_ioctl_trans 3 10194 NULL +cciss_proc_write_10259 cciss_proc_write 3 10259 NULL -+hest_ghes_dev_register_46766 hest_ghes_dev_register 1 46766 NULL -+b43_debugfs_write_34838 b43_debugfs_write 3 34838 NULL -+subbuf_read_actor_2071 subbuf_read_actor 3 2071 NULL -+hugetlbfs_read_11268 hugetlbfs_read 3 11268 NULL -+irq_alloc_generic_chip_26650 irq_alloc_generic_chip 2 26650 NULL -+regset_tls_set_18459 regset_tls_set 4 18459 NULL -+uapsd_queues_write_43040 uapsd_queues_write 3 43040 NULL -+iwl_dbgfs_current_sleep_command_read_2081 iwl_dbgfs_current_sleep_command_read 3 2081 NULL -+erst_dbg_write_46715 erst_dbg_write 3 46715 NULL -+acpi_system_write_wakeup_device_34853 acpi_system_write_wakeup_device 3 34853 NULL -+tipc_send_51238 tipc_send 4 51238 NULL -+drm_property_create_51239 drm_property_create 4 51239 NULL +snd_rme9652_capture_copy_10287 snd_rme9652_capture_copy 5 10287 NULL -+squashfs_read_data_59440 squashfs_read_data 6 59440 NULL -+idetape_chrdev_read_2097 idetape_chrdev_read 3 2097 NULL -+audit_expand_2098 audit_expand 2 2098 NULL -+st_read_51251 st_read 3 51251 NULL -+dvb_demux_do_ioctl_34871 dvb_demux_do_ioctl 3 34871 NULL -+sep_prepare_input_output_dma_table_in_dcb_43064 sep_prepare_input_output_dma_table_in_dcb 4-5-2-3 43064 NULL -+iwl_dbgfs_log_event_read_2107 iwl_dbgfs_log_event_read 3 2107 NULL -+ecryptfs_encrypt_and_encode_filename_2109 ecryptfs_encrypt_and_encode_filename 6 2109 NULL -+__alloc_pred_stack_26687 __alloc_pred_stack 2 26687 NULL -+journal_init_revoke_table_56331 journal_init_revoke_table 1 56331 NULL -+enable_read_2117 enable_read 3 2117 NULL +read_emulate_10310 read_emulate 2-4 10310 NULL -+dvb_audio_write_51275 dvb_audio_write 3 51275 NULL -+pcf50633_write_block_2124 pcf50633_write_block 3 2124 NULL -+ipwireless_network_packet_received_51277 ipwireless_network_packet_received 4 51277 NULL -+ieee80211_if_write_34894 ieee80211_if_write 3 34894 NULL +ttm_object_device_init_10321 ttm_object_device_init 2 10321 NULL -+pkt_add_39897 pkt_add 3 39897 NULL -+ieee80211_if_read_rc_rateidx_mask_5ghz_27183 ieee80211_if_read_rc_rateidx_mask_5ghz 3 27183 NULL -+uvc_alloc_entity_20836 uvc_alloc_entity 3-4 20836 NULL -+snd_gus_dram_poke_18525 snd_gus_dram_poke 4 18525 NULL -+check_load_and_stores_2143 check_load_and_stores 2 2143 NULL -+cdrom_read_cdda_old_27664 cdrom_read_cdda_old 4 27664 NULL -+mlx4_init_icm_table_2151 mlx4_init_icm_table 4-5 2151 NULL -+regmap_access_read_file_37223 regmap_access_read_file 3 37223 NULL ++ubi_leb_read_10328 ubi_leb_read 0 10328 NULL ++tun_sendmsg_10337 tun_sendmsg 4 10337 NULL +ufx_alloc_urb_list_10349 ufx_alloc_urb_list 3 10349 NULL -+ib_copy_from_udata_59502 ib_copy_from_udata 3 59502 NULL -+seq_copy_in_user_18543 seq_copy_in_user 3 18543 NULL -+_ore_get_io_state_2166 _ore_get_io_state 3-5-4 2166 NULL -+alloc_hippi_dev_51320 alloc_hippi_dev 1 51320 NULL -+ms_write_multiple_pages_10362 ms_write_multiple_pages 5-6 10362 NULL -+sas_change_queue_depth_18555 sas_change_queue_depth 2 18555 NULL -+i2400m_rx_stats_read_57706 i2400m_rx_stats_read 3 57706 NULL ++dbAllocAny_10354 dbAllocAny 0 10354 NULL ++ms_write_multiple_pages_10362 ms_write_multiple_pages 6-5 10362 NULL +sta_ht_capa_read_10366 sta_ht_capa_read 3 10366 NULL -+mthca_buf_alloc_35861 mthca_buf_alloc 2 35861 NULL -+alloc_fddidev_15382 alloc_fddidev 1 15382 NULL -+srp_ring_alloc_26760 srp_ring_alloc 2 26760 NULL -+alloc_smp_req_51337 alloc_smp_req 1 51337 NULL +ecryptfs_decode_and_decrypt_filename_10379 ecryptfs_decode_and_decrypt_filename 5 10379 NULL -+ntfs_malloc_nofs_nofail_63631 ntfs_malloc_nofs_nofail 1 63631 NULL -+__proc_file_read_54978 __proc_file_read 3 54978 NULL -+skb_gro_header_slow_34958 skb_gro_header_slow 2 34958 NULL -+debug_output_18575 debug_output 3 18575 NULL -+Realloc_34961 Realloc 2 34961 NULL -+v9fs_file_readn_36353 v9fs_file_readn 4 36353 NULL nohasharray -+xz_dec_lzma2_create_36353 xz_dec_lzma2_create 2 36353 &v9fs_file_readn_36353 +do_compat_pselect_10398 do_compat_pselect 1 10398 NULL -+__netdev_alloc_skb_18595 __netdev_alloc_skb 2 18595 NULL -+slabinfo_write_18600 slabinfo_write 3 18600 NULL -+ssb_bus_ssbbus_register_2217 ssb_bus_ssbbus_register 2 2217 NULL -+radeon_kms_compat_ioctl_51371 radeon_kms_compat_ioctl 2 51371 NULL -+iowarrior_write_18604 iowarrior_write 3 18604 NULL -+vhci_write_2224 vhci_write 3 2224 NULL -+iscsi_recv_pdu_16755 iscsi_recv_pdu 4 16755 NULL -+rb_alloc_3102 rb_alloc 1 3102 NULL -+nfsd_cache_update_59574 nfsd_cache_update 3 59574 NULL -+user_update_41332 user_update 3 41332 NULL -+l2cap_skbuff_fromiovec_35003 l2cap_skbuff_fromiovec 3-4 35003 NULL -+write_pbl_59583 write_pbl 4 59583 NULL -+from_buffer_18625 from_buffer 3 18625 NULL -+uio_write_43202 uio_write 3 43202 NULL -+memdup_user_59590 memdup_user 2 59590 NULL -+ieee80211_wx_set_gen_ie_51399 ieee80211_wx_set_gen_ie 3 51399 NULL -+iso_callback_43208 iso_callback 3 43208 NULL -+ieee80211_if_read_dot11MeshHWMPRannInterval_2249 ieee80211_if_read_dot11MeshHWMPRannInterval 3 2249 NULL -+smk_write_load_26829 smk_write_load 3 26829 NULL -+sel_write_avc_cache_threshold_2256 sel_write_avc_cache_threshold 3 2256 NULL -+do_update_counters_2259 do_update_counters 4 2259 NULL -+coda_psdev_read_35029 coda_psdev_read 3 35029 NULL -+packet_sendmsg_24954 packet_sendmsg 4 24954 NULL -+ecryptfs_miscdev_write_26847 ecryptfs_miscdev_write 3 26847 NULL -+blk_register_region_51424 blk_register_region 1-2 51424 NULL -+mwifiex_rdeeprom_read_51429 mwifiex_rdeeprom_read 3 51429 NULL -+econet_sendmsg_51430 econet_sendmsg 4 51430 NULL ++mirror_status_10435 mirror_status 4 10435 NULL +event_phy_transmit_error_read_10471 event_phy_transmit_error_read 3 10471 NULL -+ip_vs_icmp_xmit_59624 ip_vs_icmp_xmit 4 59624 NULL -+netxen_nic_hw_read_wx_128M_26858 netxen_nic_hw_read_wx_128M 2 26858 NULL -+edge_tty_recv_18667 edge_tty_recv 4 18667 NULL nohasharray -+xfs_iext_insert_18667 xfs_iext_insert 3 18667 &edge_tty_recv_18667 -+btmrvl_gpiogap_write_35053 btmrvl_gpiogap_write 3 35053 NULL -+tty_buffer_alloc_45437 tty_buffer_alloc 2 45437 NULL -+ieee80211_if_read_dot11MeshHWMPRootMode_51441 ieee80211_if_read_dot11MeshHWMPRootMode 3 51441 NULL -+rfcomm_sock_recvmsg_22227 rfcomm_sock_recvmsg 4 22227 NULL -+isr_dma0_done_read_8574 isr_dma0_done_read 3 8574 NULL -+fixup_leb_43256 fixup_leb 3 43256 NULL -+store_wwan_43264 store_wwan 4 43264 NULL -+ubifs_setxattr_59650 ubifs_setxattr 4 59650 NULL nohasharray -+hidraw_read_59650 hidraw_read 3 59650 &ubifs_setxattr_59650 -+kvm_clear_guest_page_2308 kvm_clear_guest_page 4 2308 NULL +ca91cx42_alloc_resource_10502 ca91cx42_alloc_resource 2 10502 NULL +qib_alloc_fast_reg_page_list_10507 qib_alloc_fast_reg_page_list 2 10507 NULL -+virtqueue_add_buf_gfp_4662 virtqueue_add_buf_gfp 3-4 4662 NULL -+evtchn_write_43278 evtchn_write 3 43278 NULL -+sel_write_disable_10511 sel_write_disable 3 10511 NULL -+store_ifalias_35088 store_ifalias 4 35088 NULL -+setup_req_5848 setup_req 3 5848 NULL ++sel_write_disable_10511 sel_write_disable 3 10511 NULL nohasharray ++rbd_get_segment_10511 rbd_get_segment 0-3-4 10511 &sel_write_disable_10511 +osd_req_write_sg_kern_10514 osd_req_write_sg_kern 5 10514 NULL -+____alloc_ei_netdev_51475 ____alloc_ei_netdev 1 51475 NULL -+iwl_dbgfs_rx_handlers_read_18708 iwl_dbgfs_rx_handlers_read 3 18708 NULL +rds_message_alloc_10517 rds_message_alloc 1 10517 NULL -+ceph_alloc_page_vector_18710 ceph_alloc_page_vector 1 18710 NULL -+blk_rq_map_user_iov_16772 blk_rq_map_user_iov 5 16772 NULL ++ocfs2_add_refcounted_extent_10526 ocfs2_add_refcounted_extent 6 10526 NULL +get_vm_area_caller_10527 get_vm_area_caller 1 10527 NULL -+capi_write_35104 capi_write 3 35104 NULL -+alloc_subdevices_43300 alloc_subdevices 2 43300 NULL -+ide_settings_proc_write_35110 ide_settings_proc_write 3 35110 NULL -+dev_read_56369 dev_read 3 56369 NULL -+kstrtouint_from_user_10536 kstrtouint_from_user 2 10536 NULL -+sriov_enable_59689 sriov_enable 2 59689 NULL -+create_subvol_2347 create_subvol 4 2347 NULL -+x25_asy_change_mtu_26928 x25_asy_change_mtu 2 26928 NULL -+zr364xx_read_2354 zr364xx_read 3 2354 NULL -+ieee80211_mgmt_tx_59699 ieee80211_mgmt_tx 9 59699 NULL -+mic_calc_failure_read_59700 mic_calc_failure_read 3 59700 NULL -+scsi_tgt_copy_sense_26933 scsi_tgt_copy_sense 3 26933 NULL -+pwr_ps_enter_read_26935 pwr_ps_enter_read 3 26935 NULL nohasharray -+sctp_setsockopt_adaptation_layer_26935 sctp_setsockopt_adaptation_layer 3 26935 &pwr_ps_enter_read_26935 -+o2hb_debug_create_18744 o2hb_debug_create 4 18744 NULL -+viafb_iga2_odev_proc_write_2363 viafb_iga2_odev_proc_write 3 2363 NULL -+hecubafb_write_26942 hecubafb_write 3 26942 NULL -+wep_packets_read_18751 wep_packets_read 3 18751 NULL -+rose_recvmsg_2368 rose_recvmsg 4 2368 NULL -+extract_entropy_user_26952 extract_entropy_user 3 26952 NULL -+gntdev_alloc_map_35145 gntdev_alloc_map 2 35145 NULL -+acpi_pre_map_51532 acpi_pre_map 1-2 51532 NULL -+read_file_dump_nfcal_18766 read_file_dump_nfcal 3 18766 NULL -+sctp_getsockopt_peer_addr_params_53645 sctp_getsockopt_peer_addr_params 2 53645 NULL -+rtl_port_map_2385 rtl_port_map 1-2 2385 NULL -+ffs_epfile_read_18775 ffs_epfile_read 3 18775 NULL -+selinux_inode_setsecurity_18148 selinux_inode_setsecurity 4 18148 NULL -+dvb_dvr_do_ioctl_43355 dvb_dvr_do_ioctl 3 43355 NULL -+alloc_fcdev_18780 alloc_fcdev 1 18780 NULL -+__alloc_eip_netdev_51549 __alloc_eip_netdev 1 51549 NULL -+icn_writecmd_38629 icn_writecmd 2 38629 NULL -+otp_read_10594 otp_read 2-5-4 10594 NULL -+rxpipe_rx_prep_beacon_drop_read_2403 rxpipe_rx_prep_beacon_drop_read 3 2403 NULL -+proc_pid_attr_read_10173 proc_pid_attr_read 3 10173 NULL ++snd_pcm_lib_read_10536 snd_pcm_lib_read 0-3 10536 NULL ++otp_read_10594 otp_read 2-4-5 10594 NULL +supply_map_read_file_10608 supply_map_read_file 3 10608 NULL -+isdn_v110_open_2418 isdn_v110_open 3 2418 NULL -+long_retry_limit_read_59766 long_retry_limit_read 3 59766 NULL -+ieee80211_auth_challenge_18810 ieee80211_auth_challenge 3 18810 NULL +ima_show_htable_violations_10619 ima_show_htable_violations 3 10619 NULL -+cxgb3_get_cpl_reply_skb_10620 cxgb3_get_cpl_reply_skb 2 10620 NULL -+xfs_iroot_realloc_46826 xfs_iroot_realloc 2 46826 NULL -+venus_remove_59781 venus_remove 4 59781 NULL -+ioremap_nocache_2439 ioremap_nocache 1-2 2439 NULL -+sys_modify_ldt_18824 sys_modify_ldt 3 18824 NULL -+unix_stream_recvmsg_35210 unix_stream_recvmsg 4 35210 NULL -+tty_buffer_find_2443 tty_buffer_find 2 2443 NULL -+xlog_do_recover_59789 xlog_do_recover 3 59789 NULL -+rfcomm_tty_write_51603 rfcomm_tty_write 3 51603 NULL -+xenfb_write_43412 xenfb_write 3 43412 NULL -+cosa_write_1774 cosa_write 3 1774 NULL -+mtf_test_write_18844 mtf_test_write 3 18844 NULL -+__alloc_bootmem_low_43423 __alloc_bootmem_low 1 43423 NULL -+rtllib_wx_set_gen_ie_59808 rtllib_wx_set_gen_ie 3 59808 NULL -+ubi_dbg_check_all_ff_59810 ubi_dbg_check_all_ff 4 59810 NULL -+sisusb_send_packet_20891 sisusb_send_packet 2 20891 NULL -+scsi_init_shared_tag_map_59812 scsi_init_shared_tag_map 2 59812 NULL -+xlog_recover_add_to_cont_trans_44102 xlog_recover_add_to_cont_trans 4 44102 NULL -+ni65_alloc_mem_10664 ni65_alloc_mem 3 10664 NULL -+b43legacy_debugfs_read_2473 b43legacy_debugfs_read 3 2473 NULL -+usb_alloc_urb_43436 usb_alloc_urb 1 43436 NULL -+sctp_setsockopt_events_18862 sctp_setsockopt_events 3 18862 NULL -+btmrvl_txdnldready_read_413 btmrvl_txdnldready_read 3 413 NULL -+update_pmkid_2481 update_pmkid 4 2481 NULL -+wiphy_new_2482 wiphy_new 2 2482 NULL -+ieee80211_if_read_dot11MeshHWMPmaxPREQretries_59829 ieee80211_if_read_dot11MeshHWMPmaxPREQretries 3 59829 NULL -+__videobuf_alloc_vb_27062 __videobuf_alloc_vb 1 27062 NULL -+ioapic_setup_resources_35255 ioapic_setup_resources 1 35255 NULL -+tcp_push_10680 tcp_push 3 10680 NULL -+sctp_auth_create_key_51641 sctp_auth_create_key 1 51641 NULL -+key_icverrors_read_20895 key_icverrors_read 3 20895 NULL -+iscsi_create_session_51647 iscsi_create_session 3 51647 NULL -+dma_show_regs_35266 dma_show_regs 3 35266 NULL -+tun_put_user_59849 tun_put_user 4 59849 NULL -+squashfs_read_fragment_index_table_2506 squashfs_read_fragment_index_table 4 2506 NULL -+alloc_fdmem_27083 alloc_fdmem 1 27083 NULL -+irda_recvmsg_stream_35280 irda_recvmsg_stream 4 35280 NULL -+dm_write_2513 dm_write 3 2513 NULL -+v9fs_cached_file_read_2514 v9fs_cached_file_read 3 2514 NULL -+isr_rx_rdys_read_35283 isr_rx_rdys_read 3 35283 NULL -+selinux_inode_setxattr_10708 selinux_inode_setxattr 4 10708 NULL -+ps_upsd_utilization_read_51669 ps_upsd_utilization_read 3 51669 NULL -+ntfs_malloc_nofs_49572 ntfs_malloc_nofs 1 49572 NULL ++nes_alloc_resource_10624 nes_alloc_resource 3 10624 NULL ++parport_write_10669 parport_write 0 10669 NULL ++inl_10708 inl 0 10708 NULL nohasharray ++selinux_inode_setxattr_10708 selinux_inode_setxattr 4 10708 &inl_10708 +pvr2_ioread_read_10720 pvr2_ioread_read 3 10720 NULL nohasharray +shash_async_setkey_10720 shash_async_setkey 3 10720 &pvr2_ioread_read_10720 -+ceph_setxattr_18913 ceph_setxattr 4 18913 NULL -+sctp_setsockopt_associnfo_51684 sctp_setsockopt_associnfo 3 51684 NULL -+__iscsi_complete_pdu_10726 __iscsi_complete_pdu 4 10726 NULL -+sfi_sysfs_install_table_51688 sfi_sysfs_install_table 1 51688 NULL -+pvr2_ioread_set_sync_key_59882 pvr2_ioread_set_sync_key 3 59882 NULL -+l2cap_sock_recvmsg_59886 l2cap_sock_recvmsg 4 59886 NULL -+__btrfs_buffered_write_35311 __btrfs_buffered_write 3 35311 NULL -+tracing_read_pipe_35312 tracing_read_pipe 3 35312 NULL -+sctp_getsockopt_maxseg_10737 sctp_getsockopt_maxseg 2 10737 NULL ++spi_sync_10731 spi_sync 0 10731 NULL ++sctp_getsockopt_maxseg_10737 sctp_getsockopt_maxseg 2 10737 NULL nohasharray ++apu_get_register_10737 apu_get_register 0 10737 &sctp_getsockopt_maxseg_10737 +compat_sys_msgsnd_10738 compat_sys_msgsnd 2 10738 NULL -+ffs_prepare_buffer_59892 ffs_prepare_buffer 2 59892 NULL -+sel_write_access_51704 sel_write_access 3 51704 NULL +alloc_one_pg_vec_page_10747 alloc_one_pg_vec_page 1 10747 NULL -+new_bind_ctl_35324 new_bind_ctl 2 35324 NULL -+do_readlink_43518 do_readlink 2 43518 NULL -+gem_alloc_skb_51715 gem_alloc_skb 2 51715 NULL -+fallback_on_nodma_alloc_35332 fallback_on_nodma_alloc 2 35332 NULL -+a4t_cs_init_27734 a4t_cs_init 3 27734 NULL -+pms_capture_27142 pms_capture 4 27142 NULL -+btmrvl_hscfgcmd_write_27143 btmrvl_hscfgcmd_write 3 27143 NULL +vhost_add_used_n_10760 vhost_add_used_n 3 10760 NULL -+orig_hash_add_if_53676 orig_hash_add_if 2 53676 NULL -+gspca_dev_probe_2570 gspca_dev_probe 4 2570 NULL -+sg_read_oxfer_51724 sg_read_oxfer 3 51724 NULL +kvm_read_guest_atomic_10765 kvm_read_guest_atomic 4 10765 NULL -+cachefiles_daemon_write_43535 cachefiles_daemon_write 3 43535 NULL -+store_pwm1_enable_2577 store_pwm1_enable 4 2577 NULL -+hpi_alloc_control_cache_35351 hpi_alloc_control_cache 1 35351 NULL -+hid_parse_report_51737 hid_parse_report 3 51737 NULL -+compat_filldir64_35354 compat_filldir64 3 35354 NULL -+alc_auto_create_extra_outs_18975 alc_auto_create_extra_outs 2 18975 NULL -+i2400m_net_rx_27170 i2400m_net_rx 5 27170 NULL -+nfs_readdata_alloc_9990 nfs_readdata_alloc 1 9990 NULL -+ifx_spi_insert_flip_string_51752 ifx_spi_insert_flip_string 3 51752 NULL -+_send_control_msg_43564 _send_control_msg 6 43564 NULL nohasharray -+ath_rx_init_43564 ath_rx_init 2 43564 &_send_control_msg_43564 -+dapm_widget_power_read_file_59950 dapm_widget_power_read_file 3 59950 NULL ++posix_acl_to_xattr_10767 posix_acl_to_xattr 0 10767 NULL +sys_bind_10799 sys_bind 3 10799 NULL -+_fc_frame_alloc_43568 _fc_frame_alloc 1 43568 NULL -+ioremap_prot_51764 ioremap_prot 1-2 51764 NULL -+rpc_malloc_43573 rpc_malloc 2 43573 NULL -+dataflash_read_fact_otp_33204 dataflash_read_fact_otp 3-2 33204 NULL -+smk_write_logging_2618 smk_write_logging 3 2618 NULL -+aun_incoming_10814 aun_incoming 3 10814 NULL -+set_local_name_6310 set_local_name 4 6310 NULL -+drm_vblank_init_11362 drm_vblank_init 2 11362 NULL -+iwl4965_ucode_general_stats_read_2639 iwl4965_ucode_general_stats_read 3 2639 NULL -+send_command_10832 send_command 4 10832 NULL -+lro_gen_skb_2644 lro_gen_skb 6 2644 NULL -+osd_req_read_kern_59990 osd_req_read_kern 5 59990 NULL ++compat_put_int_10828 compat_put_int 1 10828 NULL +lbs_sleepparams_read_10840 lbs_sleepparams_read 3 10840 NULL -+__i2400mu_send_barker_23652 __i2400mu_send_barker 3 23652 NULL -+proc_read_43614 proc_read 3 43614 NULL -+dma_memcpy_pg_to_iovec_1725 dma_memcpy_pg_to_iovec 6 1725 NULL -+revalidate_19043 revalidate 2 19043 NULL -+drm_fb_helper_init_19044 drm_fb_helper_init 3-4 19044 NULL -+prison_create_43623 prison_create 1 43623 NULL -+rawsock_sendmsg_60010 rawsock_sendmsg 4 60010 NULL -+qib_alloc_devdata_51819 qib_alloc_devdata 2 51819 NULL -+buffer_to_user_35439 buffer_to_user 3 35439 NULL -+ffs_ep0_read_2672 ffs_ep0_read 3 2672 NULL -+vmalloc_15464 vmalloc 1 15464 NULL -+buffer_from_user_51826 buffer_from_user 3 51826 NULL -+do_kimage_alloc_64827 do_kimage_alloc 3 64827 NULL ++ida_get_new_above_10853 ida_get_new_above 2 10853 NULL ++fuse_conn_max_background_read_10855 fuse_conn_max_background_read 3 10855 NULL ++ol_chunk_blocks_10864 ol_chunk_blocks 0 10864 NULL +snd_pcm_oss_write1_10872 snd_pcm_oss_write1 3 10872 NULL -+ieee80211_key_alloc_19065 ieee80211_key_alloc 3 19065 NULL -+mled_proc_write_16831 mled_proc_write 3 16831 NULL nohasharray -+drm_malloc_ab_16831 drm_malloc_ab 1-2 16831 &mled_proc_write_16831 -+cfpkt_add_trail_27260 cfpkt_add_trail 3 27260 NULL -+xlog_bread_offset_60030 xlog_bread_offset 3 60030 NULL -+sys_sched_getaffinity_60033 sys_sched_getaffinity 2 60033 NULL -+read_file_tgt_tx_stats_51847 read_file_tgt_tx_stats 3 51847 NULL -+do_ip6t_set_ctl_60040 do_ip6t_set_ctl 4 60040 NULL -+do_readv_writev_51849 do_readv_writev 4 51849 NULL -+adu_write_30487 adu_write 3 30487 NULL -+ieee80211_if_read_tkip_mic_test_19565 ieee80211_if_read_tkip_mic_test 3 19565 NULL +get_scq_10897 get_scq 2 10897 NULL -+sys_process_vm_readv_19090 sys_process_vm_readv 3-5 19090 NULL -+memcpy_fromiovecend_2707 memcpy_fromiovecend 3-4 2707 NULL +cgroup_write_string_10900 cgroup_write_string 5 10900 NULL -+x25_recvmsg_42777 x25_recvmsg 4 42777 NULL -+load_module_60056 load_module 2 60056 NULL nohasharray -+gru_alloc_gts_60056 gru_alloc_gts 2-3 60056 &load_module_60056 -+get_indirect_ea_51869 get_indirect_ea 4 51869 NULL -+compat_writev_60063 compat_writev 3 60063 NULL -+nfsd_read_19568 nfsd_read 5 19568 NULL -+sta_last_seq_ctrl_read_19106 sta_last_seq_ctrl_read 3 19106 NULL -+iscsit_dump_data_payload_38683 iscsit_dump_data_payload 2 38683 NULL -+cifs_readv_from_socket_19109 cifs_readv_from_socket 3 19109 NULL ++tifm_alloc_adapter_10903 tifm_alloc_adapter 1 10903 NULL +__copy_from_user_10918 __copy_from_user 3 10918 NULL -+user_read_51881 user_read 3 51881 NULL -+copy_from_buf_27308 copy_from_buf 4-2 27308 NULL -+__xip_file_write_2733 __xip_file_write 3-4 2733 NULL -+cryptd_hash_setkey_42781 cryptd_hash_setkey 3 42781 NULL -+ath6kl_wmi_test_cmd_27312 ath6kl_wmi_test_cmd 3 27312 NULL -+dtim_interval_write_30489 dtim_interval_write 3 30489 NULL -+rxrpc_kernel_send_data_60083 rxrpc_kernel_send_data 3 60083 NULL -+hidp_send_ctrl_message_43702 hidp_send_ctrl_message 4 43702 NULL -+check_mirror_57342 check_mirror 1-2 57342 NULL nohasharray -+usblp_read_57342 usblp_read 3 57342 &check_mirror_57342 -+user_confirm_reply_43708 user_confirm_reply 4 43708 NULL +iwl_calib_set_10944 iwl_calib_set 3 10944 NULL -+async_setkey_35521 async_setkey 3 35521 NULL -+send_msg_37323 send_msg 4 37323 NULL -+alloc_irdadev_19140 alloc_irdadev 1 19140 NULL -+compat_sys_keyctl_9639 compat_sys_keyctl 4 9639 NULL -+hid_report_raw_event_2762 hid_report_raw_event 4 2762 NULL -+iwl_dbgfs_bt_traffic_read_35534 iwl_dbgfs_bt_traffic_read 3 35534 NULL -+rxpipe_tx_xfr_host_int_trig_rx_data_read_35538 rxpipe_tx_xfr_host_int_trig_rx_data_read 3 35538 NULL -+mon_bin_ioctl_2771 mon_bin_ioctl 3 2771 NULL -+snd_rme32_playback_copy_43732 snd_rme32_playback_copy 5 43732 NULL -+ttm_bo_kmap_60118 ttm_bo_kmap 2-3 60118 NULL -+fuse_conn_congestion_threshold_write_43736 fuse_conn_congestion_threshold_write 3 43736 NULL -+alloc_context_3194 alloc_context 1 3194 NULL -+ieee80211_if_write_smps_35550 ieee80211_if_write_smps 3 35550 NULL +bm_entry_read_10976 bm_entry_read 3 10976 NULL -+pcbit_stat_27364 pcbit_stat 2 27364 NULL +sched_autogroup_write_10984 sched_autogroup_write 3 10984 NULL -+gigaset_initcs_43753 gigaset_initcs 2 43753 NULL -+sctp_setsockopt_active_key_43755 sctp_setsockopt_active_key 3 43755 NULL -+scsi_get_vpd_page_51951 scsi_get_vpd_page 4 51951 NULL -+handle_request_10024 handle_request 9 10024 NULL +xfrm_hash_alloc_10997 xfrm_hash_alloc 1 10997 NULL -+ab8500_bank_write_51960 ab8500_bank_write 3 51960 NULL -+ath6kl_tm_rx_report_event_8660 ath6kl_tm_rx_report_event 3 8660 NULL -+init_state_60165 init_state 2 60165 NULL -+vmw_unlocked_ioctl_19212 vmw_unlocked_ioctl 2 19212 NULL -+__copy_to_user_inatomic_19214 __copy_to_user_inatomic 3 19214 NULL -+dev_counters_read_19216 dev_counters_read 3 19216 NULL -+ath6kl_sdio_alloc_prep_scat_req_51986 ath6kl_sdio_alloc_prep_scat_req 2 51986 NULL -+sg_build_sgat_60179 sg_build_sgat 3 60179 NULL nohasharray -+jffs2_alloc_full_dirent_60179 jffs2_alloc_full_dirent 1 60179 &sg_build_sgat_60179 -+ieee80211_if_read_smps_27416 ieee80211_if_read_smps 3 27416 NULL -+btrfs_copy_from_user_43806 btrfs_copy_from_user 3-1 43806 NULL -+kernel_readv_35617 kernel_readv 3 35617 NULL -+hci_send_cmd_43810 hci_send_cmd 3 43810 NULL -+reshape_ring_29147 reshape_ring 2 29147 NULL -+ceph_buffer_new_35974 ceph_buffer_new 1 35974 NULL ++mb_find_next_bit_11037 mb_find_next_bit 2-3-0 11037 NULL +tda10048_writeregbulk_11050 tda10048_writeregbulk 4 11050 NULL -+skb_copy_datagram_from_iovec_52014 skb_copy_datagram_from_iovec 2-5-4 52014 NULL -+carl9170_handle_mpdu_11056 carl9170_handle_mpdu 3 11056 NULL -+store_iwmct_log_level_60209 store_iwmct_log_level 4 60209 NULL -+move_addr_to_user_2868 move_addr_to_user 2 2868 NULL -+ieee80211_alloc_hw_43829 ieee80211_alloc_hw 1 43829 NULL -+vxge_rx_alloc_52024 vxge_rx_alloc 3 52024 NULL -+override_release_52032 override_release 2 52032 NULL -+p54_download_eeprom_43842 p54_download_eeprom 4 43842 NULL -+sys_fcntl_19267 sys_fcntl 3 19267 NULL -+store_debug_level_35652 store_debug_level 3 35652 NULL -+filldir64_46469 filldir64 3 46469 NULL -+read_flush_43851 read_flush 3 43851 NULL -+dma_rx_errors_read_52045 dma_rx_errors_read 3 52045 NULL -+cmm_write_2896 cmm_write 3 2896 NULL -+io_mapping_map_wc_19284 io_mapping_map_wc 2 19284 NULL -+compat_sys_kexec_load_35674 compat_sys_kexec_load 2 35674 NULL -+rtsx_write_cfg_seq_27485 rtsx_write_cfg_seq 3-5 27485 NULL -+compat_sys_fcntl64_60256 compat_sys_fcntl64 3 60256 NULL -+qc_capture_19298 qc_capture 3 19298 NULL -+lbs_bcnmiss_read_8678 lbs_bcnmiss_read 3 8678 NULL -+alloc_page_cgroup_2919 alloc_page_cgroup 1 2919 NULL -+qib_create_cq_27497 qib_create_cq 2 27497 NULL -+rds_page_copy_user_35691 rds_page_copy_user 4 35691 NULL ++tcp_send_mss_11079 tcp_send_mss 0 11079 NULL ++count_argc_11083 count_argc 0 11083 NULL ++kvm_write_guest_cached_11106 kvm_write_guest_cached 4 11106 NULL +tw_change_queue_depth_11116 tw_change_queue_depth 2 11116 NULL -+idmap_update_entry_43885 idmap_update_entry 3 43885 NULL -+str_to_user_11411 str_to_user 2 11411 NULL ++page_offset_11120 page_offset 0 11120 NULL +tracing_buffers_read_11124 tracing_buffers_read 3 11124 NULL -+garmin_read_process_27509 garmin_read_process 3 27509 NULL +alloc_alien_cache_11127 alloc_alien_cache 2 11127 NULL -+nsm_get_handle_52089 nsm_get_handle 4 52089 NULL -+debug_read_19322 debug_read 3 19322 NULL -+snd_rme9652_playback_copy_20970 snd_rme9652_playback_copy 5 20970 NULL -+__pskb_pull_tail_60287 __pskb_pull_tail 2 60287 NULL -+gs_buf_alloc_25067 gs_buf_alloc 2 25067 NULL -+cfg80211_inform_bss_19332 cfg80211_inform_bss 8 19332 NULL -+ib_copy_to_udata_27525 ib_copy_to_udata 3 27525 NULL -+dn_nsp_return_disc_60296 dn_nsp_return_disc 2 60296 NULL -+o2net_debug_read_52105 o2net_debug_read 3 52105 NULL -+prism2_sta_send_mgmt_43916 prism2_sta_send_mgmt 5 43916 NULL -+rxpipe_beacon_buffer_thres_host_int_trig_rx_data_read_55106 rxpipe_beacon_buffer_thres_host_int_trig_rx_data_read 3 55106 NULL -+snd_seq_oss_readq_new_14283 snd_seq_oss_readq_new 2 14283 NULL -+ppp_cp_event_2965 ppp_cp_event 6 2965 NULL +acpi_os_map_memory_11161 acpi_os_map_memory 1-2 11161 NULL -+ceph_parse_server_name_60318 ceph_parse_server_name 2 60318 NULL -+v4l2_ctrl_new_38725 v4l2_ctrl_new 7 38725 NULL -+retry_count_read_52129 retry_count_read 3 52129 NULL -+ioat2_alloc_ring_11172 ioat2_alloc_ring 2 11172 NULL -+read_zero_19366 read_zero 3 19366 NULL -+bch_alloc_4593 bch_alloc 1 4593 NULL -+stats_dot11RTSFailureCount_read_43948 stats_dot11RTSFailureCount_read 3 43948 NULL -+hysdn_conf_write_52145 hysdn_conf_write 3 52145 NULL -+iwl_legacy_dbgfs_disable_ht40_read_40910 iwl_legacy_dbgfs_disable_ht40_read 3 40910 NULL -+xd_read_multiple_pages_11422 xd_read_multiple_pages 4-5 11422 NULL -+__kfifo_from_user_r_60345 __kfifo_from_user_r 3 60345 NULL -+brcmf_alloc_wdev_60347 brcmf_alloc_wdev 1 60347 NULL -+interpret_user_input_19393 interpret_user_input 2 19393 NULL -+sel_read_enforce_2828 sel_read_enforce 3 2828 NULL -+handle_eviocgbit_44193 handle_eviocgbit 3 44193 NULL -+ieee80211_if_read_dot11MeshRetryTimeout_52168 ieee80211_if_read_dot11MeshRetryTimeout 3 52168 NULL -+mga_compat_ioctl_52170 mga_compat_ioctl 2 52170 NULL -+depth_write_3021 depth_write 3 3021 NULL -+dccp_setsockopt_60367 dccp_setsockopt 5 60367 NULL -+store_fan1_input_35793 store_fan1_input 4 35793 NULL -+read_file_stations_35795 read_file_stations 3 35795 NULL -+rfcomm_sock_setsockopt_18254 rfcomm_sock_setsockopt 5 18254 NULL -+tipc_cfg_reply_alloc_27606 tipc_cfg_reply_alloc 1 27606 NULL -+bcm_recvmsg_43992 bcm_recvmsg 4 43992 NULL -+xfrm_dst_alloc_copy_3034 xfrm_dst_alloc_copy 3 3034 NULL -+iwl_dbgfs_sleep_level_override_read_3038 iwl_dbgfs_sleep_level_override_read 3 3038 NULL -+dvbdmx_write_19423 dvbdmx_write 3 19423 NULL -+iwl4965_rs_sta_dbgfs_rate_scale_data_read_27619 iwl4965_rs_sta_dbgfs_rate_scale_data_read 3 27619 NULL -+mthca_alloc_resize_buf_60394 mthca_alloc_resize_buf 3 60394 NULL -+write_flush_procfs_44011 write_flush_procfs 3 44011 NULL -+driver_names_read_60399 driver_names_read 3 60399 NULL -+read_flush_procfs_27642 read_flush_procfs 3 27642 NULL -+iscsi_if_send_reply_52219 iscsi_if_send_reply 7 52219 NULL -+dac960_user_command_proc_write_3071 dac960_user_command_proc_write 3 3071 NULL -+simple_alloc_urb_60420 simple_alloc_urb 3 60420 NULL ++ioat2_alloc_ring_11172 ioat2_alloc_ring 2 11172 NULL nohasharray ++snd_gf1_pcm_playback_silence_11172 snd_gf1_pcm_playback_silence 3-4 11172 &ioat2_alloc_ring_11172 ++hugetlbfs_read_11268 hugetlbfs_read 3 11268 NULL +cru_detect_11272 cru_detect 1 11272 NULL -+excessive_retries_read_60425 excessive_retries_read 3 60425 NULL -+ieee80211_build_probe_req_27660 ieee80211_build_probe_req 7-5 27660 NULL -+tstats_write_60432 tstats_write 3 60432 NULL nohasharray -+kmalloc_60432 kmalloc 1 60432 &tstats_write_60432 -+do_dmabuf_dirty_ldu_52241 do_dmabuf_dirty_ldu 6 52241 NULL -+refill_pool_19477 refill_pool 2 19477 NULL -+rx_data_60442 rx_data 4 60442 NULL -+efivar_create_sysfs_entry_19485 efivar_create_sysfs_entry 2 19485 NULL -+tcf_csum_ipv4_igmp_60446 tcf_csum_ipv4_igmp 3 60446 NULL -+rtsx_read_cfg_seq_48139 rtsx_read_cfg_seq 3-5 48139 NULL -+iwm_ntf_rx_packet_60452 iwm_ntf_rx_packet 3 60452 NULL -+rt2x00debug_write_csr_64753 rt2x00debug_write_csr 3 64753 NULL -+kstrtoll_from_user_19500 kstrtoll_from_user 2 19500 NULL -+sisusbcon_do_font_op_52271 sisusbcon_do_font_op 9 52271 NULL -+simple_write_to_buffer_3122 simple_write_to_buffer 2-5 3122 NULL -+uwb_rc_cmd_done_35892 uwb_rc_cmd_done 4 35892 NULL -+l2cap_sar_segment_sdu_27701 l2cap_sar_segment_sdu 3 27701 NULL -+v4l2_event_subscribe_19510 v4l2_event_subscribe 3 19510 NULL -+tcp_mark_head_lost_35895 tcp_mark_head_lost 2 35895 NULL -+smk_write_load_list_52280 smk_write_load_list 3 52280 NULL -+skb_realloc_headroom_19516 skb_realloc_headroom 2 19516 NULL -+atm_alloc_charge_19517 atm_alloc_charge 2 19517 NULL nohasharray -+dev_alloc_skb_19517 dev_alloc_skb 1 19517 &atm_alloc_charge_19517 -+construct_key_11329 construct_key 3 11329 NULL -+evm_write_key_27715 evm_write_key 3 27715 NULL -+fill_write_buffer_3142 fill_write_buffer 3 3142 NULL -+filldir_55137 filldir 3 55137 NULL -+igmpv3_newpack_35912 igmpv3_newpack 2 35912 NULL -+kernel_setsockopt_35913 kernel_setsockopt 5 35913 NULL -+pstore_write_27724 pstore_write 3 27724 NULL nohasharray -+reg_w_buf_27724 reg_w_buf 3 27724 &pstore_write_27724 -+dccp_listen_start_35918 dccp_listen_start 2 35918 NULL -+ath6kl_wmi_get_new_buf_52304 ath6kl_wmi_get_new_buf 1 52304 NULL -+compat_sys_migrate_pages_3157 compat_sys_migrate_pages 2 3157 NULL ++ext4_xattr_check_names_11314 ext4_xattr_check_names 0 11314 NULL ++construct_key_11329 construct_key 3 11329 NULL nohasharray ++__kfifo_out_peek_11329 __kfifo_out_peek 0-3 11329 &construct_key_11329 ++next_segment_11330 next_segment 0-2-1 11330 NULL +i915_max_freq_write_11350 i915_max_freq_write 3 11350 NULL +sel_write_create_11353 sel_write_create 3 11353 NULL -+tracing_set_trace_read_44122 tracing_set_trace_read 3 44122 NULL -+hwflags_read_52318 hwflags_read 3 52318 NULL -+encrypted_instantiate_3168 encrypted_instantiate 3 3168 NULL -+put_cmsg_compat_35937 put_cmsg_compat 4 35937 NULL -+vmw_gmr_bind_44130 vmw_gmr_bind 3 44130 NULL -+ath_tx_init_60515 ath_tx_init 2 60515 NULL -+alloc_ring_18278 alloc_ring 2-4 18278 NULL -+ntfs_rl_split_52328 ntfs_rl_split 2-4 52328 NULL ++handle_unit_11355 handle_unit 0-1 11355 NULL ++drm_vblank_init_11362 drm_vblank_init 2 11362 NULL +qib_get_base_info_11369 qib_get_base_info 3 11369 NULL -+ocfs2_control_message_19564 ocfs2_control_message 3 19564 NULL -+test_unaligned_bulk_52333 test_unaligned_bulk 3 52333 NULL -+compat_do_ip6t_set_ctl_3184 compat_do_ip6t_set_ctl 4 3184 NULL -+garp_request_join_7471 garp_request_join 4 7471 NULL -+cgroup_read_s64_19570 cgroup_read_s64 5 19570 NULL -+aa_simple_write_to_buffer_49683 aa_simple_write_to_buffer 3-4 49683 NULL -+iwl3945_ucode_rx_stats_read_52340 iwl3945_ucode_rx_stats_read 3 52340 NULL -+hysdn_sched_rx_60533 hysdn_sched_rx 3 60533 NULL -+kcalloc_27770 kcalloc 1-2 27770 NULL -+bm_status_read_19583 bm_status_read 3 19583 NULL -+v9fs_fid_readn_60544 v9fs_fid_readn 4 60544 NULL +dev_irnet_write_11398 dev_irnet_write 3 11398 NULL -+acl_alloc_35979 acl_alloc 1 35979 NULL -+copy_entries_to_user_52367 copy_entries_to_user 1 52367 NULL +___alloc_bootmem_11410 ___alloc_bootmem 1 11410 NULL -+tracing_entries_write_60563 tracing_entries_write 3 60563 NULL -+koneplus_sysfs_write_35993 koneplus_sysfs_write 6 35993 NULL ++str_to_user_11411 str_to_user 2 11411 NULL +trace_options_read_11419 trace_options_read 3 11419 NULL -+ttm_object_file_init_27804 ttm_object_file_init 2 27804 NULL -+ath6kl_mgmt_tx_3230 ath6kl_mgmt_tx 9 3230 NULL -+isdn_writebuf_stub_52383 isdn_writebuf_stub 4 52383 NULL -+kimage_crash_alloc_3233 kimage_crash_alloc 3 3233 NULL -+write_adapter_mem_3234 write_adapter_mem 3 3234 NULL -+console_store_36007 console_store 4 36007 NULL ++xd_read_multiple_pages_11422 xd_read_multiple_pages 5-4 11422 NULL ++prepare_image_11424 prepare_image 0 11424 NULL ++vring_size_11426 vring_size 0-1-2 11426 NULL +bttv_read_11432 bttv_read 3 11432 NULL -+key_key_read_3241 key_key_read 3 3241 NULL -+aer_inject_write_52399 aer_inject_write 3 52399 NULL -+__feat_register_sp_64712 __feat_register_sp 6 64712 NULL -+ib_alloc_device_26483 ib_alloc_device 1 26483 NULL -+sys_listxattr_27833 sys_listxattr 3 27833 NULL -+aac_rx_ioremap_52410 aac_rx_ioremap 2 52410 NULL -+ulong_write_file_26485 ulong_write_file 3 26485 NULL -+cgroup_file_write_52417 cgroup_file_write 3 52417 NULL -+srp_alloc_iu_44227 srp_alloc_iu 2 44227 NULL -+usbvision_rvmalloc_19655 usbvision_rvmalloc 1 19655 NULL -+line6_midibuf_init_52425 line6_midibuf_init 2 52425 NULL -+LoadBitmap_19658 LoadBitmap 2 19658 NULL -+audit_unpack_string_13748 audit_unpack_string 3 13748 NULL -+wl1273_fm_fops_write_60621 wl1273_fm_fops_write 3 60621 NULL -+sys_init_module_36047 sys_init_module 2 36047 NULL -+read_profile_27859 read_profile 3 27859 NULL -+acl_alloc_stack_init_60630 acl_alloc_stack_init 1 60630 NULL ++__bm_find_next_11447 __bm_find_next 2 11447 NULL ++swp_offset_11475 swp_offset 0 11475 NULL +sca3000_read_first_n_hw_rb_11479 sca3000_read_first_n_hw_rb 2 11479 NULL -+enlarge_skb_44248 enlarge_skb 2 44248 NULL -+scsi_track_queue_full_44239 scsi_track_queue_full 2 44239 NULL -+rbd_snap_add_19678 rbd_snap_add 4 19678 NULL -+ubifs_recover_leb_60639 ubifs_recover_leb 3 60639 NULL -+write_emulate_36065 write_emulate 2-4 36065 NULL -+btmrvl_psmode_read_22395 btmrvl_psmode_read 3 22395 NULL -+stack_max_size_write_36068 stack_max_size_write 3 36068 NULL -+oom_adjust_read_25127 oom_adjust_read 3 25127 NULL -+ieee80211_if_write_tsf_36077 ieee80211_if_write_tsf 3 36077 NULL -+arvo_sysfs_write_3311 arvo_sysfs_write 6 3311 NULL +sd_do_mode_sense_11507 sd_do_mode_sense 5 11507 NULL -+unix_seqpacket_sendmsg_27893 unix_seqpacket_sendmsg 4 27893 NULL +kmem_zalloc_11510 kmem_zalloc 1 11510 NULL -+hidraw_get_report_45609 hidraw_get_report 3 45609 NULL -+ubi_eba_write_leb_st_27896 ubi_eba_write_leb_st 5 27896 NULL -+ieee80211_alloc_txb_52477 ieee80211_alloc_txb 1-2 52477 NULL -+ieee80211_if_read_dot11MeshConfirmTimeout_60670 ieee80211_if_read_dot11MeshConfirmTimeout 3 60670 NULL -+iwl_legacy_dbgfs_rx_queue_read_56533 iwl_legacy_dbgfs_rx_queue_read 3 56533 NULL -+alloc_async_14208 alloc_async 1 14208 NULL -+aac_rkt_ioremap_3333 aac_rkt_ioremap 2 3333 NULL -+sctp_make_init_ack_3335 sctp_make_init_ack 4 3335 NULL -+read_from_oldmem_3337 read_from_oldmem 2 3337 NULL -+sctp_getsockopt_context_52490 sctp_getsockopt_context 2 52490 NULL -+ath6kl_add_bss_if_needed_46978 ath6kl_add_bss_if_needed 5 46978 NULL -+skb_cow_head_52495 skb_cow_head 2 52495 NULL -+vga_arb_write_36112 vga_arb_write 3 36112 NULL -+mangle_packet_27864 mangle_packet 6-8 27864 NULL -+int_tasklet_entry_52500 int_tasklet_entry 3 52500 NULL -+ip_append_data_16942 ip_append_data 5-6 16942 NULL -+iwch_alloc_fastreg_pbl_40153 iwch_alloc_fastreg_pbl 2 40153 NULL -+memcpy_toiovecend_19736 memcpy_toiovecend 3-4 19736 NULL -+gsm_control_rls_3353 gsm_control_rls 3 3353 NULL -+dispatch_proc_write_44320 dispatch_proc_write 3 44320 NULL -+pm_qos_power_write_52513 pm_qos_power_write 3 52513 NULL -+gpio_power_read_36059 gpio_power_read 3 36059 NULL -+vmalloc_exec_36132 vmalloc_exec 1 36132 NULL -+init_data_container_60709 init_data_container 1 60709 NULL -+p9_client_read_19750 p9_client_read 5 19750 NULL -+skb_cow_data_11565 skb_cow_data 2 11565 NULL -+pnpbios_proc_write_19758 pnpbios_proc_write 3 19758 NULL ++setup_IO_APIC_irq_extra_11537 setup_IO_APIC_irq_extra 1 11537 NULL ++skb_cow_data_11565 skb_cow_data 0-2 11565 NULL +mlx4_init_cmpt_table_11569 mlx4_init_cmpt_table 3 11569 NULL -+iwl_trans_txq_alloc_36147 iwl_trans_txq_alloc 3 36147 NULL -+slow_kernel_write_19764 slow_kernel_write 2 19764 NULL -+alloc_vm_area_36149 alloc_vm_area 1 36149 NULL -+sctp_make_abort_violation_27959 sctp_make_abort_violation 4 27959 NULL -+tracing_clock_write_27961 tracing_clock_write 3 27961 NULL -+b1_alloc_card_36155 b1_alloc_card 1 36155 NULL +oprofilefs_ulong_to_user_11582 oprofilefs_ulong_to_user 3 11582 NULL -+blk_queue_init_tags_44355 blk_queue_init_tags 2 44355 NULL -+saa7146_vmalloc_build_pgtable_19780 saa7146_vmalloc_build_pgtable 2 19780 NULL -+send_stream_3397 send_stream 4 3397 NULL -+snd_korg1212_copy_from_36169 snd_korg1212_copy_from 6 36169 NULL ++snd_pcm_action_11589 snd_pcm_action 0 11589 NULL +fw_device_op_ioctl_11595 fw_device_op_ioctl 2 11595 NULL -+ipx_recvmsg_44366 ipx_recvmsg 4 44366 NULL -+hycapi_rx_capipkt_11602 hycapi_rx_capipkt 3 11602 NULL -+msix_map_region_3411 msix_map_region 3 3411 NULL -+idmouse_read_63374 idmouse_read 3 63374 NULL -+__ip_append_data_36191 __ip_append_data 7-8 36191 NULL -+rts_threshold_read_44384 rts_threshold_read 3 44384 NULL -+pci_add_cap_save_buffer_3426 pci_add_cap_save_buffer 3 3426 NULL -+crystalhd_create_dio_pool_3427 crystalhd_create_dio_pool 2 3427 NULL -+sel_write_checkreqprot_60774 sel_write_checkreqprot 3 60774 NULL -+opticon_write_60775 opticon_write 4 60775 NULL -+snd_rawmidi_write_28008 snd_rawmidi_write 3 28008 NULL -+acl_alloc_num_60778 acl_alloc_num 1-2 60778 NULL -+aoedev_flush_44398 aoedev_flush 2 44398 NULL -+irda_setsockopt_19824 irda_setsockopt 5 19824 NULL -+ubi_eba_write_leb_19826 ubi_eba_write_leb 5-6 19826 NULL -+drm_buffer_alloc_44405 drm_buffer_alloc 2 44405 NULL -+pipe_iov_copy_to_user_3447 pipe_iov_copy_to_user 3 3447 NULL -+osst_do_scsi_44410 osst_do_scsi 4 44410 NULL -+security_context_to_sid_19839 security_context_to_sid 2 19839 NULL +sisusb_send_bridge_packet_11649 sisusb_send_bridge_packet 2 11649 NULL -+atomic_stats_read_36228 atomic_stats_read 3 36228 NULL -+sctp_setsockopt_maxburst_28041 sctp_setsockopt_maxburst 3 28041 NULL -+iwl_legacy_dbgfs_channels_read_52619 iwl_legacy_dbgfs_channels_read 3 52619 NULL -+cfg80211_mlme_register_mgmt_19852 cfg80211_mlme_register_mgmt 5 19852 NULL -+viafb_iga1_odev_proc_write_36241 viafb_iga1_odev_proc_write 3 36241 NULL -+cx231xx_init_vbi_isoc_28053 cx231xx_init_vbi_isoc 2-3 28053 NULL -+iwl_dbgfs_ucode_tx_stats_read_31611 iwl_dbgfs_ucode_tx_stats_read 3 31611 NULL ++nla_total_size_11658 nla_total_size 0-1 11658 NULL +ide_queue_pc_tail_11673 ide_queue_pc_tail 5 11673 NULL -+lpfc_idiag_mbxacc_read_28061 lpfc_idiag_mbxacc_read 3 28061 NULL +btrfs_alloc_delayed_item_11678 btrfs_alloc_delayed_item 1 11678 NULL -+compat_sys_mbind_36256 compat_sys_mbind 5 36256 NULL +dsp_buffer_alloc_11684 dsp_buffer_alloc 2 11684 NULL +iwm_ntf_calib_res_11686 iwm_ntf_calib_res 3 11686 NULL +sctp_setsockopt_hmac_ident_11687 sctp_setsockopt_hmac_ident 3 11687 NULL -+blk_rq_map_kern_47004 blk_rq_map_kern 4 47004 NULL +split_11691 split 2 11691 NULL +snd_ctl_elem_user_tlv_11695 snd_ctl_elem_user_tlv 3 11695 NULL -+pwr_tx_with_ps_read_60851 pwr_tx_with_ps_read 3 60851 NULL -+usb_buffer_alloc_36276 usb_buffer_alloc 2 36276 NULL -+__kfifo_alloc_22173 __kfifo_alloc 2-3 22173 NULL -+mangle_sdp_packet_36279 mangle_sdp_packet 9 36279 NULL -+codec_reg_read_file_36280 codec_reg_read_file 3 36280 NULL -+gdth_init_isa_28091 gdth_init_isa 1 28091 NULL -+ieee80211_send_auth_60865 ieee80211_send_auth 5 60865 NULL -+cx18_read_pos_4683 cx18_read_pos 3 4683 NULL -+drm_property_create_blob_7414 drm_property_create_blob 2 7414 NULL -+mmc_test_alloc_mem_28102 mmc_test_alloc_mem 3-2 28102 NULL -+ps_upsd_max_apturn_read_19918 ps_upsd_max_apturn_read 3 19918 NULL -+lpfc_debugfs_dif_err_read_36303 lpfc_debugfs_dif_err_read 3 36303 NULL -+ieee80211_if_read_dropped_frames_ttl_44500 ieee80211_if_read_dropped_frames_ttl 3 44500 NULL -+ad7879_spi_xfer_36311 ad7879_spi_xfer 3 36311 NULL -+iwl_dbgfs_sram_read_44505 iwl_dbgfs_sram_read 3 44505 NULL ++blk_rq_cur_bytes_11723 blk_rq_cur_bytes 0 11723 NULL ++i2c_master_recv_11734 i2c_master_recv 0-3 11734 NULL +tcf_csum_ipv6_icmp_11738 tcf_csum_ipv6_icmp 4 11738 NULL -+l2tp_xmit_skb_42672 l2tp_xmit_skb 3 42672 NULL -+vgacon_adjust_height_28124 vgacon_adjust_height 2 28124 NULL -+spidev_write_44510 spidev_write 3 44510 NULL -+snd_soc_hw_bulk_write_raw_14245 snd_soc_hw_bulk_write_raw 4 14245 NULL -+iwl_dbgfs_rx_queue_read_19943 iwl_dbgfs_rx_queue_read 3 19943 NULL -+fat_compat_ioctl_filldir_36328 fat_compat_ioctl_filldir 3 36328 NULL ++nfsd4_get_drc_mem_11748 nfsd4_get_drc_mem 0-1-2 11748 NULL +iwl_dbgfs_qos_read_11753 iwl_dbgfs_qos_read 3 11753 NULL -+kone_receive_4690 kone_receive 4 4690 NULL -+alloc_smp_resp_3566 alloc_smp_resp 1 3566 NULL -+jbd2_journal_init_revoke_table_36336 jbd2_journal_init_revoke_table 1 36336 NULL -+evtchn_read_3569 evtchn_read 3 3569 NULL -+mgt_set_varlen_60916 mgt_set_varlen 4 60916 NULL -+compat_sys_setsockopt_3326 compat_sys_setsockopt 5 3326 NULL -+sys_msgsnd_44537 sys_msgsnd 3 44537 NULL nohasharray -+comm_write_44537 comm_write 3 44537 &sys_msgsnd_44537 -+stats_dot11FCSErrorCount_read_28154 stats_dot11FCSErrorCount_read 3 28154 NULL -+ax25_send_frame_19964 ax25_send_frame 2 19964 NULL -+blkcipher_next_slow_52733 blkcipher_next_slow 4-3 52733 NULL -+relay_alloc_page_array_52735 relay_alloc_page_array 1 52735 NULL +ps_pspoll_timeouts_read_11776 ps_pspoll_timeouts_read 3 11776 NULL -+vc_resize_3585 vc_resize 2-3 3585 NULL -+sys_select_38827 sys_select 1 38827 NULL -+gluebi_write_27905 gluebi_write 3 27905 NULL -+ivtv_v4l2_read_1964 ivtv_v4l2_read 3 1964 NULL -+set_powered_60938 set_powered 4 60938 NULL -+c4iw_reject_cr_28174 c4iw_reject_cr 3 28174 NULL -+iscsi_nop_out_rsp_51117 iscsi_nop_out_rsp 4 51117 NULL -+attach_hdlc_protocol_19986 attach_hdlc_protocol 3 19986 NULL -+ip_send_reply_19987 ip_send_reply 5 19987 NULL -+mtd_do_writeoob_36373 mtd_do_writeoob 4 36373 NULL -+vring_new_virtqueue_36374 vring_new_virtqueue 1 36374 NULL -+sctp_getsockopt_events_3607 sctp_getsockopt_events 2 3607 NULL -+sctp_getsockopt_partial_delivery_point_60952 sctp_getsockopt_partial_delivery_point 2 60952 NULL -+macvtap_get_user_28185 macvtap_get_user 4 28185 NULL -+lcd_proc_write_18351 lcd_proc_write 3 18351 NULL -+read_file_regidx_33370 read_file_regidx 3 33370 NULL -+pti_char_write_60960 pti_char_write 3 60960 NULL -+mwifiex_alloc_sdio_mpa_buffers_60961 mwifiex_alloc_sdio_mpa_buffers 2-3 60961 NULL -+event_calibration_read_21083 event_calibration_read 3 21083 NULL ++ebt_buf_add_11779 ebt_buf_add 0 11779 NULL +pcpu_fc_alloc_11818 pcpu_fc_alloc 2 11818 NULL -+aligned_kmalloc_3628 aligned_kmalloc 1 3628 NULL -+afs_alloc_flat_call_36399 afs_alloc_flat_call 2-3 36399 NULL -+snd_pcm_alloc_vmalloc_buffer_44595 snd_pcm_alloc_vmalloc_buffer 2 44595 NULL +zerocopy_sg_from_iovec_11828 zerocopy_sg_from_iovec 3 11828 NULL +sctp_setsockopt_maxseg_11829 sctp_setsockopt_maxseg 3 11829 NULL +rts51x_read_status_11830 rts51x_read_status 4 11830 NULL -+calc_hmac_32010 calc_hmac 3 32010 NULL -+cm_copy_private_data_3649 cm_copy_private_data 2 3649 NULL ++avc_has_perm_11840 avc_has_perm 3 11840 NULL +shmem_xattr_set_11843 shmem_xattr_set 4 11843 NULL -+sctp_ulpevent_new_33377 sctp_ulpevent_new 1 33377 NULL -+i915_compat_ioctl_3656 i915_compat_ioctl 2 3656 NULL -+allocate_probes_40204 allocate_probes 1 40204 NULL -+sctp_getsockopt_mappedv4_20044 sctp_getsockopt_mappedv4 2 20044 NULL -+ni_gpct_device_construct_610 ni_gpct_device_construct 5 610 NULL -+cfpkt_add_body_44630 cfpkt_add_body 3 44630 NULL -+handle_received_packet_22457 handle_received_packet 3 22457 NULL ++unix_stream_connect_11844 unix_stream_connect 3 11844 NULL +ecryptfs_copy_filename_11868 ecryptfs_copy_filename 4 11868 NULL -+ath6kl_lrssi_roam_read_61022 ath6kl_lrssi_roam_read 3 61022 NULL -+alloc_ieee80211_20063 alloc_ieee80211 1 20063 NULL -+alloc_etherdev_mqs_36450 alloc_etherdev_mqs 1 36450 NULL -+ath6kl_connect_event_14267 ath6kl_connect_event 7-9-8 14267 NULL -+pwr_rcvd_beacons_read_52836 pwr_rcvd_beacons_read 3 52836 NULL +l2cap_chan_send_11878 l2cap_chan_send 3 11878 NULL -+_l2_alloc_skb_11883 _l2_alloc_skb 1 11883 NULL -+sctp_getsockopt_maxburst_42941 sctp_getsockopt_maxburst 2 42941 NULL -+rawv6_sendmsg_20080 rawv6_sendmsg 4 20080 NULL -+fuse_conn_limit_read_20084 fuse_conn_limit_read 3 20084 NULL -+btmrvl_psmode_write_3703 btmrvl_psmode_write 3 3703 NULL -+symtab_init_61050 symtab_init 2 61050 NULL -+alloc_ctrl_packet_44667 alloc_ctrl_packet 1 44667 NULL -+videobuf_pages_to_sg_3708 videobuf_pages_to_sg 2 3708 NULL -+mon_bin_get_event_52863 mon_bin_get_event 4 52863 NULL -+b43_nphy_load_samples_36481 b43_nphy_load_samples 3 36481 NULL -+ip6_append_data_36490 ip6_append_data 4-5 36490 NULL -+iwl_legacy_dbgfs_power_save_status_read_36492 iwl_legacy_dbgfs_power_save_status_read 3 36492 NULL +kmalloc_slab_11917 kmalloc_slab 1 11917 NULL -+ceph_read_dir_17005 ceph_read_dir 3 17005 NULL -+nouveau_compat_ioctl_28305 nouveau_compat_ioctl 2 28305 NULL -+cache_read_procfs_52882 cache_read_procfs 3 52882 NULL +fs_devrw_entry_11924 fs_devrw_entry 3 11924 NULL -+hptiop_adjust_disk_queue_depth_20122 hptiop_adjust_disk_queue_depth 2 20122 NULL -+ci_ll_write_3740 ci_ll_write 4 3740 NULL -+snd_pcm_oss_read_28317 snd_pcm_oss_read 3 28317 NULL -+__hwahc_op_set_ptk_36510 __hwahc_op_set_ptk 5 36510 NULL -+ima_show_htable_value_57136 ima_show_htable_value 2 57136 NULL -+mcam_v4l_read_36513 mcam_v4l_read 3 36513 NULL ++bitmap_remap_11929 bitmap_remap 5 11929 NULL ++atomic_sub_return_11939 atomic_sub_return 0-1 11939 NULL +dccp_feat_clone_sp_val_11942 dccp_feat_clone_sp_val 3 11942 NULL -+kmem_realloc_37489 kmem_realloc 2 37489 NULL -+ieee80211_if_read_fwded_frames_36520 ieee80211_if_read_fwded_frames 3 36520 NULL -+mempool_create_node_44715 mempool_create_node 1 44715 NULL -+get_derived_key_61100 get_derived_key 4 61100 NULL +kvm_set_msr_common_11953 kvm_set_msr_common 3 11953 NULL -+bm_entry_write_28338 bm_entry_write 3 28338 NULL -+_zd_iowrite32v_locked_44725 _zd_iowrite32v_locked 3 44725 NULL -+tcp_copy_to_iovec_28344 tcp_copy_to_iovec 3 28344 NULL -+clusterip_proc_write_44729 clusterip_proc_write 3 44729 NULL -+cpu_type_read_36540 cpu_type_read 3 36540 NULL -+__probe_kernel_read_61119 __probe_kernel_read 3 61119 NULL -+kone_send_63435 kone_send 4 63435 NULL -+alloc_rtllib_51136 alloc_rtllib 1 51136 NULL -+key_tx_rx_count_read_44742 key_tx_rx_count_read 3 44742 NULL -+tomoyo_commit_ok_20167 tomoyo_commit_ok 2 20167 NULL -+ip_nat_sdp_port_52938 ip_nat_sdp_port 6 52938 NULL -+__kfifo_to_user_36555 __kfifo_to_user 3 36555 NULL nohasharray -+macvtap_do_read_36555 macvtap_do_read 4 36555 &__kfifo_to_user_36555 -+wep_addr_key_count_read_20174 wep_addr_key_count_read 3 20174 NULL -+create_trace_probe_20175 create_trace_probe 1 20175 NULL -+sctp_setsockopt_auth_key_3793 sctp_setsockopt_auth_key 3 3793 NULL -+afs_proc_cells_write_61139 afs_proc_cells_write 3 61139 NULL -+tnode_new_44757 tnode_new 3 44757 NULL nohasharray -+pty_write_44757 pty_write 3 44757 &tnode_new_44757 -+ath6kl_send_go_probe_resp_21113 ath6kl_send_go_probe_resp 3 21113 NULL -+store_disp_52952 store_disp 4 52952 NULL -+iwl_dbgfs_nvm_read_23845 iwl_dbgfs_nvm_read 3 23845 NULL -+sys_writev_28384 sys_writev 3 28384 NULL -+dlmfs_file_read_28385 dlmfs_file_read 3 28385 NULL -+ssb_bus_scan_36578 ssb_bus_scan 2 36578 NULL -+bt_sock_stream_recvmsg_52518 bt_sock_stream_recvmsg 4 52518 NULL -+put_cmsg_36589 put_cmsg 4 36589 NULL -+__vmalloc_61168 __vmalloc 1 61168 NULL -+llc_ui_recvmsg_3826 llc_ui_recvmsg 4 3826 NULL -+sctp_setsockopt_44788 sctp_setsockopt 5 44788 NULL -+read_file_tx_chainmask_3829 read_file_tx_chainmask 3 3829 NULL -+pcnet32_realloc_rx_ring_36598 pcnet32_realloc_rx_ring 3 36598 NULL -+event_oom_late_read_61175 event_oom_late_read 3 61175 NULL -+sys_lsetxattr_61177 sys_lsetxattr 4 61177 NULL -+p54_init_common_23850 p54_init_common 1 23850 NULL -+rx_dropped_read_44799 rx_dropped_read 3 44799 NULL -+subdev_ioctl_28417 subdev_ioctl 2 28417 NULL -+fat_ioctl_filldir_36621 fat_ioctl_filldir 3 36621 NULL -+smk_read_onlycap_3855 smk_read_onlycap 3 3855 NULL -+cfpkt_append_61206 cfpkt_append 3 61206 NULL -+rose_sendmsg_20249 rose_sendmsg 4 20249 NULL -+tm6000_i2c_send_regs_20250 tm6000_i2c_send_regs 5 20250 NULL -+brcmf_sdioh_request_buffer_40239 brcmf_sdioh_request_buffer 7 40239 NULL ++f1x_swap_interleaved_region_11970 f1x_swap_interleaved_region 0-2 11970 NULL ++ftdi_elan_total_command_size_12045 ftdi_elan_total_command_size 0 12045 NULL +pyra_send_12061 pyra_send 4 12061 NULL -+ubi_dbg_dump_flash_3870 ubi_dbg_dump_flash 4 3870 NULL -+read_file_rx_chainmask_41605 read_file_rx_chainmask 3 41605 NULL -+sisusb_write_44834 sisusb_write 3 44834 NULL -+smk_read_ambient_61220 smk_read_ambient 3 61220 NULL -+raw_recvmsg_52529 raw_recvmsg 4 52529 NULL -+ubifs_leb_write_61226 ubifs_leb_write 4-5 61226 NULL -+alloc_irq_cpu_rmap_28459 alloc_irq_cpu_rmap 1 28459 NULL +ptc_proc_write_12076 ptc_proc_write 3 12076 NULL +ubifs_recover_log_leb_12079 ubifs_recover_log_leb 3 12079 NULL -+uea_send_modem_cmd_3888 uea_send_modem_cmd 3 3888 NULL -+vmw_cursor_update_dmabuf_32045 vmw_cursor_update_dmabuf 3-4 32045 NULL -+nvram_write_3894 nvram_write 3 3894 NULL -+osd_req_list_collection_objects_36664 osd_req_list_collection_objects 5 36664 NULL -+iscsi_host_alloc_36671 iscsi_host_alloc 2 36671 NULL -+vcs_write_3910 vcs_write 3 3910 NULL -+mwifiex_debug_read_53074 mwifiex_debug_read 3 53074 NULL -+vmbus_establish_gpadl_4495 vmbus_establish_gpadl 3 4495 NULL -+dtim_interval_read_654 dtim_interval_read 3 654 NULL -+_alloc_mISDN_skb_52232 _alloc_mISDN_skb 3 52232 NULL -+nfs_idmap_lookup_id_13665 nfs_idmap_lookup_id 2 13665 NULL -+dm_read_15674 dm_read 3 15674 NULL +alloc_bulk_urbs_generic_12127 alloc_bulk_urbs_generic 5 12127 NULL -+do_tty_write_44896 do_tty_write 5 44896 NULL -+qib_resize_cq_53090 qib_resize_cq 2 53090 NULL -+snd_cs4281_BA1_read_20323 snd_cs4281_BA1_read 5 20323 NULL +xfs_handle_to_dentry_12135 xfs_handle_to_dentry 3 12135 NULL -+sys_add_key_61288 sys_add_key 4 61288 NULL +rawv6_seticmpfilter_12137 rawv6_seticmpfilter 5 12137 NULL +vmw_fifo_reserve_12141 vmw_fifo_reserve 2 12141 NULL -+i2400m_tx_stats_read_28527 i2400m_tx_stats_read 3 28527 NULL -+rawsock_recvmsg_12144 rawsock_recvmsg 4 12144 NULL ++iwl4965_ucode_tx_stats_read_12143 iwl4965_ucode_tx_stats_read 3 12143 NULL ++get_idx_gc_leb_12148 get_idx_gc_leb 0 12148 NULL +btmrvl_sdio_host_to_card_12152 btmrvl_sdio_host_to_card 3 12152 NULL +vmbus_open_12154 vmbus_open 2-3 12154 NULL -+gfs2_glock_nq_m_20347 gfs2_glock_nq_m 1 20347 NULL -+sel_read_policycap_28544 sel_read_policycap 3 28544 NULL -+mptctl_getiocinfo_28545 mptctl_getiocinfo 2 28545 NULL -+line6_dumpreq_initbuf_53123 line6_dumpreq_initbuf 3 53123 NULL -+snd_rawmidi_kernel_read1_36740 snd_rawmidi_kernel_read1 4 36740 NULL -+gather_array_56641 gather_array 3 56641 NULL -+cxgbi_device_register_36746 cxgbi_device_register 1-2 36746 NULL -+b43legacy_debugfs_write_28556 b43legacy_debugfs_write 3 28556 NULL ++tt_update_changes_12155 tt_update_changes 3 12155 NULL +dma_memcpy_to_iovec_12173 dma_memcpy_to_iovec 5 12173 NULL +ddp_make_gl_12179 ddp_make_gl 1 12179 NULL -+dbgfs_state_38894 dbgfs_state 3 38894 NULL -+tcf_csum_ipv6_udp_25241 tcf_csum_ipv6_udp 4 25241 NULL -+do_add_counters_3992 do_add_counters 3 3992 NULL -+mic_rx_pkts_read_27972 mic_rx_pkts_read 3 27972 NULL ++compat_do_arpt_set_ctl_12184 compat_do_arpt_set_ctl 4 12184 NULL +ip_generic_getfrag_12187 ip_generic_getfrag 3-4 12187 NULL +pair_device_12188 pair_device 4 12188 NULL -+compat_rw_copy_check_uvector_25242 compat_rw_copy_check_uvector 3 25242 NULL -+dccpprobe_read_52549 dccpprobe_read 3 52549 NULL -+ip4ip6_err_36772 ip4ip6_err 5 36772 NULL -+mei_write_4005 mei_write 3 4005 NULL -+snd_hdsp_capture_copy_4011 snd_hdsp_capture_copy 5 4011 NULL -+__kfifo_from_user_20399 __kfifo_from_user 3 20399 NULL -+tx_queue_status_read_44978 tx_queue_status_read 3 44978 NULL -+BcmCopySection_2035 BcmCopySection 5 2035 NULL -+interface_rx_20404 interface_rx 4 20404 NULL ++qt2160_read_block_12198 qt2160_read_block 4 12198 NULL ++bl_is_sector_init_12199 bl_is_sector_init 2 12199 NULL +receive_copy_12216 receive_copy 3 12216 NULL ++snd_pcm_kernel_ioctl_12219 snd_pcm_kernel_ioctl 0 12219 NULL +aat2870_reg_read_file_12221 aat2870_reg_read_file 3 12221 NULL -+proc_fault_inject_read_36802 proc_fault_inject_read 3 36802 NULL -+do_dmabuf_dirty_sou_36807 do_dmabuf_dirty_sou 7 36807 NULL -+do_msgrcv_5590 do_msgrcv 4 5590 NULL -+ftdi_process_packet_45005 ftdi_process_packet 5 45005 NULL -+change_xattr_61390 change_xattr 5 61390 NULL -+find_skb_20431 find_skb 2 20431 NULL -+hiddev_ioctl_36816 hiddev_ioctl 2 36816 NULL -+fmc_send_cmd_20435 fmc_send_cmd 5 20435 NULL -+tcp_fragment_20436 tcp_fragment 3 20436 NULL +ib_uverbs_unmarshall_recv_12251 ib_uverbs_unmarshall_recv 5 12251 NULL -+ptrace_writedata_45021 ptrace_writedata 4 45021 NULL -+int_hardware_entry_36833 int_hardware_entry 3 36833 NULL -+fc_change_queue_depth_36841 fc_change_queue_depth 2 36841 NULL ++ath_descdma_setup_12257 ath_descdma_setup 5 12257 NULL +shash_compat_setkey_12267 shash_compat_setkey 3 12267 NULL +add_sctp_bind_addr_12269 add_sctp_bind_addr 3 12269 NULL -+sctp_make_asconf_4078 sctp_make_asconf 3 4078 NULL -+vhci_get_user_45039 vhci_get_user 3 45039 NULL -+ip_vs_icmp_xmit_v6_20464 ip_vs_icmp_xmit_v6 4 20464 NULL -+compat_ipv6_setsockopt_20468 compat_ipv6_setsockopt 5 20468 NULL -+keyctl_describe_key_36853 keyctl_describe_key 3 36853 NULL -+cm_write_36858 cm_write 3 36858 NULL +roccat_common_send_12284 roccat_common_send 4 12284 NULL +note_last_dentry_12285 note_last_dentry 3 12285 NULL -+blk_queue_resize_tags_28670 blk_queue_resize_tags 2 28670 NULL -+ab8500_address_write_4099 ab8500_address_write 3 4099 NULL -+sel_write_user_45060 sel_write_user 3 45060 NULL ++roundup_to_multiple_of_64_12288 roundup_to_multiple_of_64 0-1 12288 NULL +iwm_notif_send_12295 iwm_notif_send 6 12295 NULL -+__dev_alloc_skb_28681 __dev_alloc_skb 1 28681 NULL -+pohmelfs_send_xattr_req_49783 pohmelfs_send_xattr_req 6 49783 NULL -+svc_setsockopt_36876 svc_setsockopt 5 36876 NULL -+snd_mixart_BA0_read_45069 snd_mixart_BA0_read 5 45069 NULL -+fast_user_write_20494 fast_user_write 5 20494 NULL -+unix_stream_sendmsg_61455 unix_stream_sendmsg 4 61455 NULL ++vxge_get_num_vfs_12302 vxge_get_num_vfs 0 12302 NULL +__einj_error_trigger_12304 __einj_error_trigger 1 12304 NULL -+sctp_make_fwdtsn_53265 sctp_make_fwdtsn 3 53265 NULL -+ib_ucm_alloc_data_36885 ib_ucm_alloc_data 3 36885 NULL -+hidraw_report_event_20503 hidraw_report_event 3 20503 NULL -+orig_hash_del_if_45080 orig_hash_del_if 2 45080 NULL -+bt_sock_recvmsg_12316 bt_sock_recvmsg 4 12316 NULL -+selinux_inode_notifysecctx_36896 selinux_inode_notifysecctx 3 36896 NULL -+lirc_buffer_init_53282 lirc_buffer_init 2-3 53282 NULL +alloc_trace_probe_12323 alloc_trace_probe 6 12323 NULL +tipc_msg_build_12326 tipc_msg_build 4 12326 NULL -+xfs_iext_realloc_direct_20521 xfs_iext_realloc_direct 2 20521 NULL -+sctp_getsockopt_disable_fragments_12330 sctp_getsockopt_disable_fragments 2 12330 NULL +pcbit_writecmd_12332 pcbit_writecmd 2 12332 NULL -+OS_kmalloc_36909 OS_kmalloc 1 36909 NULL -+tm6000_read_4151 tm6000_read 3 4151 NULL -+amd_create_gatt_pages_20537 amd_create_gatt_pages 1 20537 NULL -+usbdev_read_45114 usbdev_read 3 45114 NULL -+spi_execute_28736 spi_execute 5 28736 NULL -+snd_pcm_aio_write_28738 snd_pcm_aio_write 3 28738 NULL +mptctl_ioctl_12355 mptctl_ioctl 2 12355 NULL -+get_alua_req_4166 get_alua_req 3 4166 NULL -+blk_dropped_read_4168 blk_dropped_read 3 4168 NULL -+venus_create_20555 venus_create 4 20555 NULL -+receive_packet_12367 receive_packet 2 12367 NULL -+expand_files_17080 expand_files 2 17080 NULL -+read_file_bool_4180 read_file_bool 3 4180 NULL -+send_to_tty_45141 send_to_tty 3 45141 NULL -+tomoyo_init_log_61526 tomoyo_init_log 2 61526 NULL -+fops_read_40672 fops_read 3 40672 NULL -+ath6kl_wmi_send_action_cmd_30735 ath6kl_wmi_send_action_cmd 6 30735 NULL -+cxio_init_resource_fifo_28764 cxio_init_resource_fifo 3 28764 NULL -+write_leb_36957 write_leb 5 36957 NULL -+_copy_from_user_36959 _copy_from_user 3 36959 NULL +xfs_iext_inline_to_direct_12384 xfs_iext_inline_to_direct 2 12384 NULL -+device_write_45156 device_write 3 45156 NULL -+i915_max_freq_read_20581 i915_max_freq_read 3 20581 NULL -+tomoyo_write_self_45161 tomoyo_write_self 3 45161 NULL -+sparse_early_mem_maps_alloc_node_36971 sparse_early_mem_maps_alloc_node 4 36971 NULL -+_osd_req_list_objects_4204 _osd_req_list_objects 6 4204 NULL -+trace_options_core_write_61551 trace_options_core_write 3 61551 NULL -+dvb_net_sec_callback_28786 dvb_net_sec_callback 2 28786 NULL -+isp1760_register_628 isp1760_register 1-2 628 NULL -+dvb_net_ioctl_61559 dvb_net_ioctl 2 61559 NULL -+lirc_write_20604 lirc_write 3 20604 NULL -+sel_write_member_28800 sel_write_member 3 28800 NULL -+ieee80211_if_read_rc_rateidx_mask_2ghz_61570 ieee80211_if_read_rc_rateidx_mask_2ghz 3 61570 NULL -+cgroup_file_read_28804 cgroup_file_read 3 28804 NULL -+snd_sb_csp_load_user_45190 snd_sb_csp_load_user 3 45190 NULL -+setxattr_37006 setxattr 4 37006 NULL -+add_child_45201 add_child 4 45201 NULL -+pwr_elp_enter_read_5324 pwr_elp_enter_read 3 5324 NULL -+seq_open_private_61589 seq_open_private 3 61589 NULL -+iso_alloc_urb_45206 iso_alloc_urb 4-5 45206 NULL -+fuse_perform_write_18457 fuse_perform_write 4 18457 NULL -+__get_vm_area_61599 __get_vm_area 1 61599 NULL -+netlink_recvmsg_61600 netlink_recvmsg 4 61600 NULL -+store_lssw_43035 store_lssw 4 43035 NULL nohasharray -+wep_default_key_count_read_43035 wep_default_key_count_read 3 43035 &store_lssw_43035 -+kfifo_copy_to_user_20646 kfifo_copy_to_user 3 20646 NULL -+spi_alloc_master_45223 spi_alloc_master 2 45223 NULL ++btrfs_file_extent_ram_bytes_12391 btrfs_file_extent_ram_bytes 0 12391 NULL +skb_do_copy_data_nocache_12465 skb_do_copy_data_nocache 5 12465 NULL -+configfs_write_file_61621 configfs_write_file 3 61621 NULL -+event_enable_write_45238 event_enable_write 3 45238 NULL -+ieee80211_if_read_drop_unencrypted_37053 ieee80211_if_read_drop_unencrypted 3 37053 NULL -+ieee80211_rx_bss_info_61630 ieee80211_rx_bss_info 3 61630 NULL -+isr_cmd_cmplt_read_53439 isr_cmd_cmplt_read 3 53439 NULL -+ablkcipher_next_slow_47274 ablkcipher_next_slow 4-3 47274 NULL -+i2o_parm_table_get_61635 i2o_parm_table_get 6 61635 NULL -+snd_hdsp_playback_copy_20676 snd_hdsp_playback_copy 5 20676 NULL +x25_sendmsg_12487 x25_sendmsg 4 12487 NULL -+dvb_dmxdev_buffer_read_20682 dvb_dmxdev_buffer_read 4 20682 NULL -+get_packet_pg_28023 get_packet_pg 4 28023 NULL -+rtllib_auth_challenge_12493 rtllib_auth_challenge 3 12493 NULL -+acpi_tb_parse_root_table_53455 acpi_tb_parse_root_table 1 53455 NULL -+iwl3945_sta_dbgfs_stats_table_read_28882 iwl3945_sta_dbgfs_stats_table_read 3 28882 NULL -+n2_run_53459 n2_run 3 53459 NULL -+packet_sendmsg_spkt_28885 packet_sendmsg_spkt 4 28885 NULL -+parse_command_37079 parse_command 2 37079 NULL -+read_file_tgt_int_stats_20697 read_file_tgt_int_stats 3 20697 NULL -+ath6kl_wmi_tcmd_test_report_rx_4314 ath6kl_wmi_tcmd_test_report_rx 3 4314 NULL -+ttm_page_pool_free_61661 ttm_page_pool_free 2 61661 NULL -+rds_tcp_data_recv_53476 rds_tcp_data_recv 3 53476 NULL -+pcpu_page_first_chunk_20712 pcpu_page_first_chunk 1 20712 NULL -+iowarrior_read_53483 iowarrior_read 3 53483 NULL ++nfs_readdir_make_qstr_12509 nfs_readdir_make_qstr 3 12509 NULL +qib_alloc_fast_reg_mr_12526 qib_alloc_fast_reg_mr 2 12526 NULL -+lock_loop_61681 lock_loop 1 61681 NULL -+snd_pcm_oss_sync1_45298 snd_pcm_oss_sync1 2 45298 NULL -+security_context_to_sid_force_20724 security_context_to_sid_force 2 20724 NULL -+softsynth_write_3455 softsynth_write 3 3455 NULL -+ps_upsd_timeouts_read_28924 ps_upsd_timeouts_read 3 28924 NULL +iwl_legacy_dbgfs_rx_statistics_read_12545 iwl_legacy_dbgfs_rx_statistics_read 3 12545 NULL -+xfs_file_buffered_aio_write_52609 xfs_file_buffered_aio_write 4 52609 NULL -+push_rx_28939 push_rx 3 28939 NULL -+__copy_from_user_inatomic_4365 __copy_from_user_inatomic 3 4365 NULL -+vol_cdev_direct_write_20751 vol_cdev_direct_write 3 20751 NULL -+ipc_rcu_alloc_21208 ipc_rcu_alloc 1 21208 NULL -+sys_setdomainname_4373 sys_setdomainname 2 4373 NULL -+fragmentation_threshold_read_61718 fragmentation_threshold_read 3 61718 NULL -+copy_vm86_regs_from_user_45340 copy_vm86_regs_from_user 3 45340 NULL +hvc_alloc_12579 hvc_alloc 4 12579 NULL +snd_pcm_plugin_alloc_12580 snd_pcm_plugin_alloc 2 12580 NULL -+alloc_sched_domains_28972 alloc_sched_domains 1 28972 NULL ++macvtap_compat_ioctl_12587 macvtap_compat_ioctl 3 12587 NULL +pcpu_extend_area_map_12589 pcpu_extend_area_map 2 12589 NULL -+read_file_interrupt_61742 read_file_interrupt 3 61742 NULL nohasharray -+read_file_regval_61742 read_file_regval 3 61742 &read_file_interrupt_61742 -+btmrvl_hscmd_write_27089 btmrvl_hscmd_write 3 27089 NULL -+fb_alloc_cmap_gfp_20792 fb_alloc_cmap_gfp 2 20792 NULL -+iwl_dbgfs_rxon_flags_read_20795 iwl_dbgfs_rxon_flags_read 3 20795 NULL +vhci_put_user_12604 vhci_put_user 4 12604 NULL -+sctp_getsockopt_adaptation_layer_45375 sctp_getsockopt_adaptation_layer 2 45375 NULL -+hci_sock_setsockopt_28993 hci_sock_setsockopt 5 28993 NULL -+alloc_skb_fclone_3467 alloc_skb_fclone 1 3467 NULL -+bin_uuid_28999 bin_uuid 3 28999 NULL -+sys_sendto_20809 sys_sendto 6 20809 NULL -+udpv6_setsockopt_18487 udpv6_setsockopt 5 18487 NULL -+store_wimax_37196 store_wimax 4 37196 NULL -+vcc_recvmsg_37198 vcc_recvmsg 4 37198 NULL +fc_fcp_frame_alloc_12624 fc_fcp_frame_alloc 2 12624 NULL -+do_pages_stat_4437 do_pages_stat 2 4437 NULL -+lane2_associate_req_45398 lane2_associate_req 4 45398 NULL -+ath6kl_regdump_read_14393 ath6kl_regdump_read 3 14393 NULL -+iwl_legacy_dbgfs_qos_read_20825 iwl_legacy_dbgfs_qos_read 3 20825 NULL -+keymap_store_45406 keymap_store 4 45406 NULL ++ctrl_cdev_compat_ioctl_12634 ctrl_cdev_compat_ioctl 3 12634 NULL +pn_sendmsg_12640 pn_sendmsg 4 12640 NULL -+uapsd_queues_read_37217 uapsd_queues_read 3 37217 NULL -+wl1271_format_buffer_20834 wl1271_format_buffer 2 20834 NULL -+pfkey_recvmsg_53604 pfkey_recvmsg 4 53604 NULL -+xz_dec_init_29029 xz_dec_init 2 29029 NULL -+sys_fcntl64_29031 sys_fcntl64 3 29031 NULL -+nr_recvmsg_12649 nr_recvmsg 4 12649 NULL -+__do_replace_37227 __do_replace 5 37227 NULL -+ath6kl_wmi_send_probe_response_cmd_45422 ath6kl_wmi_send_probe_response_cmd 5 45422 NULL -+rs_sta_dbgfs_rate_scale_data_read_47165 rs_sta_dbgfs_rate_scale_data_read 3 47165 NULL -+dn_alloc_send_pskb_4465 dn_alloc_send_pskb 2 4465 NULL -+at76_set_card_command_4471 at76_set_card_command 4 4471 NULL ++ocfs2_read_block_12659 ocfs2_read_block 0 12659 NULL +trusted_update_12664 trusted_update 3 12664 NULL -+rxrpc_sendmsg_29049 rxrpc_sendmsg 4 29049 NULL -+tso_fragment_29050 tso_fragment 3 29050 NULL -+compat_dccp_setsockopt_51263 compat_dccp_setsockopt 5 51263 NULL -+recv_control_msg_4476 recv_control_msg 5 4476 NULL +sel_read_class_12669 sel_read_class 3 12669 NULL nohasharray +sparse_mem_maps_populate_node_12669 sparse_mem_maps_populate_node 4 12669 &sel_read_class_12669 -+osst_execute_17607 osst_execute 7-6 17607 NULL -+cifs_setxattr_23957 cifs_setxattr 4 23957 NULL -+xd_write_multiple_pages_53633 xd_write_multiple_pages 5-6 53633 NULL -+ccid_getsockopt_builtin_ccids_53634 ccid_getsockopt_builtin_ccids 2 53634 NULL -+kvm_read_guest_page_mmu_37611 kvm_read_guest_page_mmu 6 37611 NULL -+init_per_cpu_17880 init_per_cpu 1 17880 NULL -+iso_packets_buffer_init_29061 iso_packets_buffer_init 3-4 29061 NULL -+sys_semtimedop_4486 sys_semtimedop 3 4486 NULL -+isr_dma1_done_read_48159 isr_dma1_done_read 3 48159 NULL -+udp_sendmsg_4492 udp_sendmsg 4 4492 NULL -+ieee80211_probereq_get_29069 ieee80211_probereq_get 4-6 29069 NULL -+iwl3945_ucode_tx_stats_read_20879 iwl3945_ucode_tx_stats_read 3 20879 NULL -+bfad_debugfs_write_regwr_61841 bfad_debugfs_write_regwr 3 61841 NULL -+uapsd_max_sp_len_read_53651 uapsd_max_sp_len_read 3 53651 NULL -+_alloc_cdb_cont_23609 _alloc_cdb_cont 2 23609 NULL -+nr_sendmsg_53656 nr_sendmsg 4 53656 NULL -+rb_simple_write_20890 rb_simple_write 3 20890 NULL -+l1oip_socket_parse_4507 l1oip_socket_parse 4 4507 NULL -+tracing_read_dyn_info_45468 tracing_read_dyn_info 3 45468 NULL -+c101_run_37279 c101_run 2 37279 NULL -+srp_target_alloc_37288 srp_target_alloc 3 37288 NULL -+ieee80211_if_read_ave_beacon_64924 ieee80211_if_read_ave_beacon 3 64924 NULL -+sctp_getsockopt_active_key_45483 sctp_getsockopt_active_key 2 45483 NULL +ieee80211_if_read_num_buffered_multicast_12716 ieee80211_if_read_num_buffered_multicast 3 12716 NULL -+c4_add_card_54968 c4_add_card 3 54968 NULL -+compat_sys_readv_20911 compat_sys_readv 3 20911 NULL -+fuse_fill_write_pages_53682 fuse_fill_write_pages 4 53682 NULL -+sys_llistxattr_4532 sys_llistxattr 3 4532 NULL -+isdn_ppp_write_29109 isdn_ppp_write 4 29109 NULL -+jffs2_write_dirent_37311 jffs2_write_dirent 5 37311 NULL +key_rx_spec_read_12736 key_rx_spec_read 3 12736 NULL -+videobuf_vmalloc_to_sg_4548 videobuf_vmalloc_to_sg 2 4548 NULL -+rds_message_copy_from_user_45510 rds_message_copy_from_user 3 45510 NULL -+ieee80211_rtl_auth_challenge_61897 ieee80211_rtl_auth_challenge 3 61897 NULL -+cxgb4_pktgl_to_skb_61899 cxgb4_pktgl_to_skb 2 61899 NULL -+brcmf_sdbrcm_membytes_37324 brcmf_sdbrcm_membytes 3-5 37324 NULL -+svc_pool_map_alloc_arrays_47181 svc_pool_map_alloc_arrays 2 47181 NULL -+clear_refs_write_61904 clear_refs_write 3 61904 NULL -+scsi_mode_select_37330 scsi_mode_select 6 37330 NULL -+rxrpc_server_sendmsg_37331 rxrpc_server_sendmsg 4 37331 NULL -+altera_set_ir_post_20948 altera_set_ir_post 2 20948 NULL -+proc_scsi_write_29142 proc_scsi_write 3 29142 NULL -+security_context_to_sid_default_3492 security_context_to_sid_default 2 3492 NULL nohasharray -+efi_ioremap_3492 efi_ioremap 1-2 3492 &security_context_to_sid_default_3492 -+sys_lgetxattr_45531 sys_lgetxattr 4 45531 NULL -+cgroup_read_u64_45532 cgroup_read_u64 5 45532 NULL -+au0828_init_isoc_61917 au0828_init_isoc 2-3 61917 NULL -+copy_macs_45534 copy_macs 4 45534 NULL -+sctp_sendmsg_61919 sctp_sendmsg 4 61919 NULL -+xfs_attrmulti_attr_set_59346 xfs_attrmulti_attr_set 4 59346 NULL ++ieee80211_if_read_dot11MeshMaxRetries_12756 ieee80211_if_read_dot11MeshMaxRetries 3 12756 NULL +listxattr_12769 listxattr 3 12769 NULL -+wdm_write_53735 wdm_write 3 53735 NULL -+v9fs_direct_read_45546 v9fs_direct_read 3 45546 NULL -+send_bulk_static_data_61932 send_bulk_static_data 3 61932 NULL -+cx18_copy_mdl_to_user_45549 cx18_copy_mdl_to_user 4 45549 NULL -+sock_kmalloc_62205 sock_kmalloc 2 62205 NULL ++sctp_ssnmap_init_12772 sctp_ssnmap_init 2-3 12772 NULL +platform_create_bundle_12785 platform_create_bundle 4-6 12785 NULL -+brcmf_tx_frame_20978 brcmf_tx_frame 3 20978 NULL -+key_tx_spec_read_4862 key_tx_spec_read 3 4862 NULL -+stats_dot11ACKFailureCount_read_45558 stats_dot11ACKFailureCount_read 3 45558 NULL -+alg_setsockopt_20985 alg_setsockopt 5 20985 NULL -+venus_rmdir_45564 venus_rmdir 4 45564 NULL -+rbd_create_rw_ops_4605 rbd_create_rw_ops 2 4605 NULL +scsi_adjust_queue_depth_12802 scsi_adjust_queue_depth 3 12802 NULL -+squashfs_read_id_index_table_61961 squashfs_read_id_index_table 4 61961 NULL +xfs_inumbers_fmt_12817 xfs_inumbers_fmt 3 12817 NULL -+ipath_create_cq_45586 ipath_create_cq 2 45586 NULL -+wusb_prf_256_29203 wusb_prf_256 7 29203 NULL -+rtllib_authentication_req_26713 rtllib_authentication_req 3 26713 NULL -+rdma_set_ib_paths_45592 rdma_set_ib_paths 3 45592 NULL -+iwl_dbgfs_tx_queue_read_4635 iwl_dbgfs_tx_queue_read 3 4635 NULL -+rds_iw_inc_copy_to_user_29214 rds_iw_inc_copy_to_user 3 29214 NULL +TSS_authhmac_12839 TSS_authhmac 3 12839 NULL -+iwl_dbgfs_temperature_read_29224 iwl_dbgfs_temperature_read 3 29224 NULL -+virtnet_send_command_61993 virtnet_send_command 5-6 61993 NULL -+sys_getxattr_37418 sys_getxattr 4 37418 NULL -+regmap_raw_write_53803 regmap_raw_write 4 53803 NULL -+hci_sock_sendmsg_37420 hci_sock_sendmsg 4 37420 NULL ++spidev_sync_12842 spidev_sync 0 12842 NULL ++twl4030_init_irq_12843 twl4030_init_irq 2 12843 NULL +spidev_ioctl_12846 spidev_ioctl 2 12846 NULL -+smk_read_doi_30813 smk_read_doi 3 30813 NULL -+audit_log_n_hex_45617 audit_log_n_hex 3 45617 NULL -+devm_ioremap_29235 devm_ioremap 2-3 29235 NULL -+tty_insert_flip_string_fixed_flag_37428 tty_insert_flip_string_fixed_flag 4 37428 NULL -+recover_peb_29238 recover_peb 6-7 29238 NULL -+map_addr_4666 map_addr 6 4666 NULL -+setup_data_read_53822 setup_data_read 3 53822 NULL -+security_context_to_sid_core_29248 security_context_to_sid_core 2 29248 NULL -+proc_fault_inject_write_21058 proc_fault_inject_write 3 21058 NULL -+i915_gem_execbuffer_relocate_slow_25355 i915_gem_execbuffer_relocate_slow 7 25355 NULL -+jffs2_do_unlink_62020 jffs2_do_unlink 4 62020 NULL -+mempool_kmalloc_53831 mempool_kmalloc 2 53831 NULL -+sm_checker_extend_23615 sm_checker_extend 2 23615 NULL -+skb_add_data_nocache_4682 skb_add_data_nocache 4 4682 NULL -+sctp_getsockopt_rtoinfo_62027 sctp_getsockopt_rtoinfo 2 62027 NULL -+short_retry_limit_read_4687 short_retry_limit_read 3 4687 NULL -+pmcraid_build_passthrough_ioadls_62034 pmcraid_build_passthrough_ioadls 2 62034 NULL -+proc_fdinfo_read_62043 proc_fdinfo_read 3 62043 NULL -+ppp_tx_cp_62044 ppp_tx_cp 5 62044 NULL -+prism2_set_genericelement_29277 prism2_set_genericelement 3 29277 NULL -+sctp_user_addto_chunk_62047 sctp_user_addto_chunk 2-3 62047 NULL -+cxgbi_alloc_big_mem_4707 cxgbi_alloc_big_mem 1 4707 NULL -+trusted_instantiate_4710 trusted_instantiate 3 4710 NULL -+savemem_58129 savemem 3 58129 NULL -+do_pselect_62061 do_pselect 1 62061 NULL -+btmrvl_gpiogap_read_4718 btmrvl_gpiogap_read 3 4718 NULL -+dgram_sendmsg_45679 dgram_sendmsg 4 45679 NULL -+pms_read_53873 pms_read 3 53873 NULL -+ati_create_gatt_pages_4722 ati_create_gatt_pages 1 4722 NULL nohasharray -+show_header_4722 show_header 3 4722 &ati_create_gatt_pages_4722 -+ip_options_get_from_user_64958 ip_options_get_from_user 4 64958 NULL -+sn9c102_read_29305 sn9c102_read 3 29305 NULL -+pcpu_alloc_bootmem_62074 pcpu_alloc_bootmem 2 62074 NULL -+smk_write_ambient_45691 smk_write_ambient 3 45691 NULL -+ip_nat_sip_expect_45693 ip_nat_sip_expect 7 45693 NULL ++crypt_status_12876 crypt_status 4 12876 NULL ++get_leb_cnt_12892 get_leb_cnt 0-2 12892 NULL ++ocfs2_hamming_encode_block_12904 ocfs2_hamming_encode_block 2 12904 NULL ++get_virtual_node_size_12908 get_virtual_node_size 0 12908 NULL ++rds_pages_in_vec_12922 rds_pages_in_vec 0 12922 NULL +ci_ll_init_12930 ci_ll_init 3 12930 NULL -+unix_dgram_sendmsg_45699 unix_dgram_sendmsg 4 45699 NULL -+ieee80211_wx_set_gen_ie_rsl_3521 ieee80211_wx_set_gen_ie_rsl 3 3521 NULL -+sg_proc_write_adio_45704 sg_proc_write_adio 3 45704 NULL -+vmalloc_32_user_37519 vmalloc_32_user 1 37519 NULL -+proc_file_read_53905 proc_file_read 3 53905 NULL -+dvb_ca_en50221_init_45718 dvb_ca_en50221_init 4 45718 NULL -+__alloc_ei_netdev_29338 __alloc_ei_netdev 1 29338 NULL -+jffs2_security_setxattr_62107 jffs2_security_setxattr 4 62107 NULL -+new_skb_21148 new_skb 1 21148 NULL -+bcsp_prepare_pkt_12961 bcsp_prepare_pkt 3 12961 NULL -+l2cap_sock_setsockopt_old_29346 l2cap_sock_setsockopt_old 4 29346 NULL ++do_inode_permission_12946 do_inode_permission 0 12946 NULL +bm_status_write_12964 bm_status_write 3 12964 NULL -+aes_decrypt_interrupt_read_19910 aes_decrypt_interrupt_read 3 19910 NULL -+snd_cs46xx_io_read_45734 snd_cs46xx_io_read 5 45734 NULL -+wusb_ccm_mac_32199 wusb_ccm_mac 7 32199 NULL -+ip6_ufo_append_data_4780 ip6_ufo_append_data 5-7-6 4780 NULL -+pcpu_embed_first_chunk_24224 pcpu_embed_first_chunk 1-3-2 24224 NULL -+rfcomm_sock_sendmsg_37661 rfcomm_sock_sendmsg 4 37661 NULL nohasharray -+vmw_framebuffer_dmabuf_dirty_37661 vmw_framebuffer_dmabuf_dirty 6 37661 &rfcomm_sock_sendmsg_37661 -+v4l2_ctrl_new_std_45748 v4l2_ctrl_new_std 5 45748 NULL -+qib_diag_write_62133 qib_diag_write 3 62133 NULL -+lkdtm_debugfs_read_45752 lkdtm_debugfs_read 3 45752 NULL -+sctp_make_chunk_12986 sctp_make_chunk 4 12986 NULL +acpi_tb_install_table_12988 acpi_tb_install_table 1 12988 NULL +TransmitTcb_12989 TransmitTcb 4 12989 NULL -+mthca_setup_cmd_doorbells_53954 mthca_setup_cmd_doorbells 2 53954 NULL -+ncp__vol2io_4804 ncp__vol2io 5 4804 NULL -+video_usercopy_62151 video_usercopy 2 62151 NULL -+cx18_v4l2_read_21196 cx18_v4l2_read 3 21196 NULL -+alloc_ts_config_45775 alloc_ts_config 1 45775 NULL -+xhci_alloc_streams_37586 xhci_alloc_streams 5 37586 NULL -+ath6kl_tm_rx_report_44494 ath6kl_tm_rx_report 3 44494 NULL -+bnx2i_send_nl_mesg_53353 bnx2i_send_nl_mesg 4 53353 NULL -+idetape_chrdev_write_53976 idetape_chrdev_write 3 53976 NULL -+dvb_ca_en50221_io_write_43533 dvb_ca_en50221_io_write 3 43533 NULL -+___alloc_bootmem_nopanic_53626 ___alloc_bootmem_nopanic 1 53626 NULL +subsystem_filter_write_13022 subsystem_filter_write 3 13022 NULL -+nfs_idmap_request_key_45791 nfs_idmap_request_key 2 45791 NULL -+raw_setsockopt_45800 raw_setsockopt 5 45800 NULL -+alloc_upcall_62186 alloc_upcall 2 62186 NULL -+__iio_allocate_sw_ring_buffer_4843 __iio_allocate_sw_ring_buffer 3 4843 NULL -+lbs_rdbbp_read_45805 lbs_rdbbp_read 3 45805 NULL -+ide_driver_proc_write_32493 ide_driver_proc_write 3 32493 NULL -+ubi_eba_atomic_leb_change_13041 ubi_eba_atomic_leb_change 5 13041 NULL -+pcpu_alloc_alloc_info_45813 pcpu_alloc_alloc_info 1-2 45813 NULL -+input_ff_create_21240 input_ff_create 2 21240 NULL -+tomoyo_write_log2_11732 tomoyo_write_log2 2 11732 NULL -+mempool_create_29437 mempool_create 1 29437 NULL -+sock_alloc_send_pskb_21246 sock_alloc_send_pskb 2 21246 NULL -+acpi_os_allocate_14892 acpi_os_allocate 1 14892 NULL ++generic_segment_checks_13041 generic_segment_checks 0 13041 NULL nohasharray ++ubi_eba_atomic_leb_change_13041 ubi_eba_atomic_leb_change 5 13041 &generic_segment_checks_13041 ++ocfs2_write_begin_13045 ocfs2_write_begin 3-4 13045 NULL +__dn_setsockopt_13060 __dn_setsockopt 5 13060 NULL -+alloc_fd_37637 alloc_fd 1 37637 NULL -+amthi_read_45831 amthi_read 4 45831 NULL -+cmpk_message_handle_tx_54024 cmpk_message_handle_tx 4 54024 NULL -+check_unicast_packet_62217 check_unicast_packet 2 62217 NULL -+hid_register_field_4874 hid_register_field 2-3 4874 NULL -+hash_new_62224 hash_new 1 62224 NULL -+tcp_dma_try_early_copy_37651 tcp_dma_try_early_copy 3 37651 NULL -+ipxrtr_route_packet_54036 ipxrtr_route_packet 4 54036 NULL -+vga_arb_read_4886 vga_arb_read 3 4886 NULL -+sys_ipc_4889 sys_ipc 3 4889 NULL -+bio_copy_user_iov_37660 bio_copy_user_iov 4 37660 NULL -+smp_build_cmd_45853 smp_build_cmd 3 45853 NULL -+nfsd_read_file_62241 nfsd_read_file 6 62241 NULL -+iwl_legacy_dbgfs_rxon_filter_flags_read_37666 iwl_legacy_dbgfs_rxon_filter_flags_read 3 37666 NULL -+rs_sta_dbgfs_scale_table_read_40262 rs_sta_dbgfs_scale_table_read 3 40262 NULL -+do_register_entry_29478 do_register_entry 4 29478 NULL -+isdn_write_45863 isdn_write 3 45863 NULL -+regmap_map_read_file_37685 regmap_map_read_file 3 37685 NULL ++irq_set_chip_and_handler_13088 irq_set_chip_and_handler 1 13088 NULL ++xattr_getsecurity_13090 xattr_getsecurity 0 13090 NULL ++blk_rq_map_sg_13092 blk_rq_map_sg 0 13092 NULL ++mb_find_next_zero_bit_13100 mb_find_next_zero_bit 2-3 13100 NULL ++ubifs_compat_ioctl_13108 ubifs_compat_ioctl 3 13108 NULL +snd_rme96_playback_copy_13111 snd_rme96_playback_copy 5 13111 NULL -+vmw_gmr2_bind_21305 vmw_gmr2_bind 3 21305 NULL -+get_rdac_req_45882 get_rdac_req 3 45882 NULL -+store_cpufv_disabled_43809 store_cpufv_disabled 4 43809 NULL ++xen_allocate_irq_dynamic_13116 xen_allocate_irq_dynamic 0 13116 NULL +bfad_debugfs_read_13119 bfad_debugfs_read 3 13119 NULL -+sys_process_vm_writev_4928 sys_process_vm_writev 3-5 4928 NULL -+ntfs_rl_insert_4931 ntfs_rl_insert 2-4 4931 NULL -+store_bluetooth_21320 store_bluetooth 4 21320 NULL -+ip_make_skb_13129 ip_make_skb 5-6 13129 NULL -+ftrace_profile_read_21327 ftrace_profile_read 3 21327 NULL -+atk_debugfs_ggrp_read_29522 atk_debugfs_ggrp_read 3 29522 NULL -+iwl_legacy_tx_queue_init_21332 iwl_legacy_tx_queue_init 3 21332 NULL -+sctp_getsockopt_associnfo_58169 sctp_getsockopt_associnfo 2 58169 NULL -+create_xattr_54106 create_xattr 5 54106 NULL -+udplite_getfrag_14479 udplite_getfrag 3-4 14479 NULL -+dbgfs_frame_45917 dbgfs_frame 3 45917 NULL -+devm_kzalloc_4966 devm_kzalloc 2 4966 NULL -+compat_rawv6_setsockopt_4967 compat_rawv6_setsockopt 5 4967 NULL -+udf_sb_alloc_partition_maps_62313 udf_sb_alloc_partition_maps 2 62313 NULL -+kstrtos8_from_user_58268 kstrtos8_from_user 2 58268 NULL -+crypto_authenc_esn_setkey_6985 crypto_authenc_esn_setkey 3 6985 NULL -+_malloc_54077 _malloc 1 54077 NULL -+read_enabled_file_bool_37744 read_enabled_file_bool 3 37744 NULL -+store_sys_acpi_54129 store_sys_acpi 4 54129 NULL -+hfcpci_empty_bfifo_62323 hfcpci_empty_bfifo 4 62323 NULL ++blk_update_request_13146 blk_update_request 3 13146 NULL ++flakey_status_13154 flakey_status 4 13154 NULL +caif_stream_recvmsg_13173 caif_stream_recvmsg 4 13173 NULL -+ocfs2_control_cfu_37750 ocfs2_control_cfu 2 37750 NULL -+Wb35Reg_BurstWrite_62327 Wb35Reg_BurstWrite 4 62327 NULL +pwr_disable_ps_read_13176 pwr_disable_ps_read 3 13176 NULL -+idetape_queue_rw_tail_29562 idetape_queue_rw_tail 3 29562 NULL -+alloc_orinocodev_21371 alloc_orinocodev 1 21371 NULL -+leaf_dealloc_29566 leaf_dealloc 3 29566 NULL -+btmrvl_pscmd_write_29504 btmrvl_pscmd_write 3 29504 NULL -+lbs_lowsnr_read_29571 lbs_lowsnr_read 3 29571 NULL -+video_ioctl2_21380 video_ioctl2 2 21380 NULL -+dccp_setsockopt_cscov_37766 dccp_setsockopt_cscov 2 37766 NULL -+asn1_oid_decode_4999 asn1_oid_decode 2 4999 NULL -+ipath_resize_cq_712 ipath_resize_cq 2 712 NULL ++compat_put_ulong_13186 compat_put_ulong 1 13186 NULL +comedi_read_13199 comedi_read 3 13199 NULL -+flash_write_62354 flash_write 3 62354 NULL -+rb_simple_read_45972 rb_simple_read 3 45972 NULL +mmc_ext_csd_read_13205 mmc_ext_csd_read 3 13205 NULL -+i2400m_zrealloc_2x_54166 i2400m_zrealloc_2x 3 54166 NULL nohasharray -+memcpy_toiovec_54166 memcpy_toiovec 3 54166 &i2400m_zrealloc_2x_54166 -+ezusb_writememory_45976 ezusb_writememory 4 45976 NULL -+mtd_device_parse_register_5024 mtd_device_parse_register 5 5024 NULL -+acpi_os_read_memory_54186 acpi_os_read_memory 1-3 54186 NULL -+smk_read_logging_37804 smk_read_logging 3 37804 NULL -+video_read_28148 video_read 3 28148 NULL -+tracing_saved_cmdlines_read_21434 tracing_saved_cmdlines_read 3 21434 NULL -+altera_irscan_62396 altera_irscan 2 62396 NULL ++__nodes_fold_13215 __nodes_fold 4 13215 NULL ++svm_msrpm_offset_13220 svm_msrpm_offset 0-1 13220 NULL +asix_read_cmd_13245 asix_read_cmd 5 13245 NULL -+fw_download_code_13249 fw_download_code 3 13249 NULL -+init_tid_tabs_13252 init_tid_tabs 2-4-3 13252 NULL -+concat_writev_21451 concat_writev 3 21451 NULL -+sierra_setup_urb_46029 sierra_setup_urb 5 46029 NULL -+get_free_entries_46030 get_free_entries 1 46030 NULL -+__register_chrdev_54223 __register_chrdev 2-3 54223 NULL -+sctp_make_abort_user_29654 sctp_make_abort_user 3 29654 NULL -+snd_midi_channel_alloc_set_28153 snd_midi_channel_alloc_set 1 28153 NULL -+carl9170_rx_13272 carl9170_rx 3 13272 NULL -+snd_mixart_BA1_read_5082 snd_mixart_BA1_read 5 5082 NULL -+o2hb_debug_read_37851 o2hb_debug_read 3 37851 NULL -+udplite_manip_pkt_62433 udplite_manip_pkt 2 62433 NULL -+kfifo_copy_from_user_5091 kfifo_copy_from_user 3 5091 NULL -+__vxge_hw_channel_allocate_55462 __vxge_hw_channel_allocate 3 55462 NULL ++init_tid_tabs_13252 init_tid_tabs 2-3-4 13252 NULL ++bio_integrity_trim_13259 bio_integrity_trim 3 13259 NULL ++pmcraid_notify_aen_13274 pmcraid_notify_aen 3 13274 NULL ++lpfc_idiag_mbxacc_get_setup_13282 lpfc_idiag_mbxacc_get_setup 0 13282 NULL +platform_device_add_resources_13289 platform_device_add_resources 3 13289 NULL -+new_lockspace_29674 new_lockspace 2 29674 NULL -+capinc_tty_write_28539 capinc_tty_write 3 28539 NULL -+dma_tx_errors_read_46060 dma_tx_errors_read 3 46060 NULL -+sound_write_5102 sound_write 3 5102 NULL -+read_file_xmit_21487 read_file_xmit 3 21487 NULL -+e1000_check_copybreak_62448 e1000_check_copybreak 3 62448 NULL -+ceph_msgpool_get_54258 ceph_msgpool_get 2 54258 NULL -+iwmct_fw_parser_init_37876 iwmct_fw_parser_init 4 37876 NULL -+wusb_prf_54261 wusb_prf 7 54261 NULL nohasharray -+audio_write_54261 audio_write 4 54261 &wusb_prf_54261 -+sys_setxattr_37880 sys_setxattr 4 37880 NULL -+dvb_net_sec_37884 dvb_net_sec 3 37884 NULL -+sel_commit_bools_write_46077 sel_commit_bools_write 3 46077 NULL -+mmc_alloc_sg_21504 mmc_alloc_sg 1 21504 NULL -+kstrtou16_from_user_54274 kstrtou16_from_user 2 54274 NULL -+tunables_write_59563 tunables_write 3 59563 NULL -+osd_req_write_sg_50908 osd_req_write_sg 5 50908 NULL -+dbg_leb_change_19969 dbg_leb_change 4 19969 NULL -+nf_nat_mangle_udp_packet_13321 nf_nat_mangle_udp_packet 5-7 13321 NULL -+altera_set_ir_pre_54103 altera_set_ir_pre 2 54103 NULL -+dma_skb_copy_datagram_iovec_21516 dma_skb_copy_datagram_iovec 3-5 21516 NULL -+ata_host_alloc_46094 ata_host_alloc 2 46094 NULL -+probes_write_29711 probes_write 3 29711 NULL -+btrfs_file_aio_write_21520 btrfs_file_aio_write 4 21520 NULL ++nf_nat_mangle_udp_packet_13321 nf_nat_mangle_udp_packet 7-5 13321 NULL +us122l_ctl_msg_13330 us122l_ctl_msg 8 13330 NULL -+altera_set_dr_post_54291 altera_set_dr_post 2 54291 NULL -+ceph_dns_resolve_name_62488 ceph_dns_resolve_name 1-2 62488 NULL +kvm_read_nested_guest_page_13337 kvm_read_nested_guest_page 5 13337 NULL -+tipc_link_send_sections_fast_37920 tipc_link_send_sections_fast 4 37920 NULL -+mlx4_en_create_rx_ring_62498 mlx4_en_create_rx_ring 3 62498 NULL -+emi62_writememory_29731 emi62_writememory 4 29731 NULL -+mlx4_ib_alloc_fast_reg_page_list_46119 mlx4_ib_alloc_fast_reg_page_list 2 46119 NULL -+pkt_alloc_packet_data_37928 pkt_alloc_packet_data 1 37928 NULL -+rxrpc_send_data_21553 rxrpc_send_data 5 21553 NULL -+iwl_dbgfs_status_read_5171 iwl_dbgfs_status_read 3 5171 NULL -+event_filter_write_56609 event_filter_write 3 56609 NULL -+pn_raw_send_54330 pn_raw_send 2 54330 NULL -+pep_sendmsg_62524 pep_sendmsg 4 62524 NULL -+tomoyo_update_policy_40458 tomoyo_update_policy 2 40458 NULL -+sfi_map_memory_5183 sfi_map_memory 1-2 5183 NULL ++mthca_alloc_mtt_range_13371 mthca_alloc_mtt_range 2 13371 NULL +iso_sched_alloc_13377 iso_sched_alloc 1 13377 NULL nohasharray +wep_key_not_found_read_13377 wep_key_not_found_read 3 13377 &iso_sched_alloc_13377 -+test_iso_queue_62534 test_iso_queue 5 62534 NULL -+__alloc_dev_table_54343 __alloc_dev_table 2 54343 NULL -+ddp_clear_map_46152 ddp_clear_map 4 46152 NULL -+cxio_hal_init_resource_29771 cxio_hal_init_resource 2-7-6 29771 NULL nohasharray -+ip_vs_conn_fill_param_sync_29771 ip_vs_conn_fill_param_sync 6 29771 &cxio_hal_init_resource_29771 -+__netlink_change_ngroups_46156 __netlink_change_ngroups 2 46156 NULL -+sco_sock_sendmsg_62542 sco_sock_sendmsg 4 62542 NULL -+_osd_realloc_seg_54352 _osd_realloc_seg 3 54352 NULL -+pipe_set_size_5204 pipe_set_size 2 5204 NULL -+tcf_hash_create_54360 tcf_hash_create 4 54360 NULL -+ppp_cp_parse_cr_5214 ppp_cp_parse_cr 4 5214 NULL +sky2_receive_13407 sky2_receive 2 13407 NULL -+vfs_readlink_54368 vfs_readlink 3 54368 NULL -+pep_recvmsg_19402 pep_recvmsg 4 19402 NULL -+ocfs2_acl_from_xattr_21604 ocfs2_acl_from_xattr 2 21604 NULL -+subsystem_filter_read_62310 subsystem_filter_read 3 62310 NULL +encrypted_update_13414 encrypted_update 3 13414 NULL -+vxge_os_dma_malloc_46184 vxge_os_dma_malloc 2 46184 NULL +netxen_alloc_sds_rings_13417 netxen_alloc_sds_rings 2 13417 NULL -+ah_alloc_tmp_54378 ah_alloc_tmp 2-3 54378 NULL -+ssb_ioremap_5228 ssb_ioremap 2 5228 NULL -+xfrm_user_policy_62573 xfrm_user_policy 4 62573 NULL -+pointer_size_read_51863 pointer_size_read 3 51863 NULL -+xlog_do_recovery_pass_21618 xlog_do_recovery_pass 3 21618 NULL -+snd_pcm_oss_read2_54387 snd_pcm_oss_read2 3 54387 NULL -+isdn_ppp_skb_push_5236 isdn_ppp_skb_push 2 5236 NULL -+iwl_dbgfs_power_save_status_read_54392 iwl_dbgfs_power_save_status_read 3 54392 NULL -+vfs_readv_38011 vfs_readv 3 38011 NULL +keyring_read_13438 keyring_read 3 13438 NULL +sctp_setsockopt_peer_primary_addr_13440 sctp_setsockopt_peer_primary_addr 3 13440 NULL -+ath6kl_cfg80211_connect_event_13443 ath6kl_cfg80211_connect_event 7-9-8 13443 NULL -+compat_sys_semtimedop_3606 compat_sys_semtimedop 3 3606 NULL -+tm6000_i2c_recv_regs_46215 tm6000_i2c_recv_regs 5 46215 NULL -+dsp_write_46218 dsp_write 2 46218 NULL -+prism2_send_mgmt_62605 prism2_send_mgmt 4 62605 NULL nohasharray -+nfsd_vfs_read_62605 nfsd_vfs_read 6 62605 &prism2_send_mgmt_62605 -+__probe_kernel_write_29842 __probe_kernel_write 3 29842 NULL -+aggr_recv_addba_req_evt_38037 aggr_recv_addba_req_evt 4 38037 NULL -+carl9170_rx_copy_data_21656 carl9170_rx_copy_data 2 21656 NULL -+alloc_mr_45935 alloc_mr 1 45935 NULL -+usblp_new_writeurb_22894 usblp_new_writeurb 2 22894 NULL -+add_packet_54433 add_packet 3 54433 NULL -+ems_pcmcia_add_card_62627 ems_pcmcia_add_card 2 62627 NULL -+iwl_dbgfs_force_reset_read_62628 iwl_dbgfs_force_reset_read 3 62628 NULL -+sm501_create_subdev_48668 sm501_create_subdev 3-4 48668 NULL nohasharray -+sys_setgroups_48668 sys_setgroups 1 48668 &sm501_create_subdev_48668 -+nsm_create_handle_38060 nsm_create_handle 4 38060 NULL -+atalk_sendmsg_21677 atalk_sendmsg 4 21677 NULL -+ipv6_setsockopt_29871 ipv6_setsockopt 5 29871 NULL -+sisusb_copy_memory_35016 sisusb_copy_memory 4 35016 NULL -+lpfc_sli4_queue_alloc_62646 lpfc_sli4_queue_alloc 3 62646 NULL -+alloc_ltalkdev_38071 alloc_ltalkdev 1 38071 NULL -+tt_changes_fill_buffer_62649 tt_changes_fill_buffer 3 62649 NULL -+nfc_targets_found_29886 nfc_targets_found 3 29886 NULL -+pin_code_reply_29893 pin_code_reply 4 29893 NULL -+tunables_read_36385 tunables_read 3 36385 NULL -+evdev_ioctl_handler_21705 evdev_ioctl_handler 2 21705 NULL -+request_key_auth_new_38092 request_key_auth_new 3 38092 NULL -+drm_sman_init_21710 drm_sman_init 2-4-3 21710 NULL -+write_62671 write 3 62671 NULL -+isr_host_acknowledges_read_54136 isr_host_acknowledges_read 3 54136 NULL ++ath6kl_cfg80211_connect_event_13443 ath6kl_cfg80211_connect_event 7-8-9 13443 NULL ++mthca_buddy_alloc_13454 mthca_buddy_alloc 2 13454 NULL ++ocfs2_align_bytes_to_blocks_13512 ocfs2_align_bytes_to_blocks 2 13512 NULL ++core_status_13515 core_status 4 13515 NULL +sctp_tsnmap_mark_13527 sctp_tsnmap_mark 2 13527 NULL +bm_init_13529 bm_init 2 13529 NULL -+check586_29914 check586 2 29914 NULL -+snd_pcm_oss_write_38108 snd_pcm_oss_write 3 38108 NULL -+printer_req_alloc_62687 printer_req_alloc 2 62687 NULL nohasharray -+iwl_dbgfs_rx_statistics_read_62687 iwl_dbgfs_rx_statistics_read 3 62687 &printer_req_alloc_62687 -+ccid3_hc_rx_getsockopt_62331 ccid3_hc_rx_getsockopt 3 62331 NULL -+reiserfs_allocate_list_bitmaps_21732 reiserfs_allocate_list_bitmaps 3 21732 NULL -+cifs_idmap_key_instantiate_54503 cifs_idmap_key_instantiate 3 54503 NULL -+pg_read_17276 pg_read 3 17276 NULL -+sg_proc_write_dressz_46316 sg_proc_write_dressz 3 46316 NULL -+ps_pspoll_utilization_read_5361 ps_pspoll_utilization_read 3 5361 NULL -+cgroup_write_X64_54514 cgroup_write_X64 5 54514 NULL -+uea_idma_write_64139 uea_idma_write 3 64139 NULL -+bioset_integrity_create_62708 bioset_integrity_create 2 62708 NULL -+rfc4106_set_key_54519 rfc4106_set_key 3 54519 NULL -+cciss_allocate_sg_chain_blocks_5368 cciss_allocate_sg_chain_blocks 2-3 5368 NULL -+mthca_alloc_init_21754 mthca_alloc_init 2 21754 NULL -+l2down_create_21755 l2down_create 4 21755 NULL -+viacam_read_54526 viacam_read 3 54526 NULL -+opera1_usb_i2c_msgxfer_64521 opera1_usb_i2c_msgxfer 4 64521 NULL ++ubifs_get_idx_gc_leb_13566 ubifs_get_idx_gc_leb 0 13566 NULL +read_file_antenna_13574 read_file_antenna 3 13574 NULL -+__ntfs_copy_from_user_iovec_inatomic_38153 __ntfs_copy_from_user_iovec_inatomic 3-4 38153 NULL -+setsockopt_54539 setsockopt 5 54539 NULL -+gen_pool_add_21776 gen_pool_add 3 21776 NULL -+iwl_dbgfs_chain_noise_read_46355 iwl_dbgfs_chain_noise_read 3 46355 NULL +cache_write_13589 cache_write 3 13589 NULL -+mpt_lan_receive_post_turbo_13592 mpt_lan_receive_post_turbo 2 13592 NULL -+xfs_da_grow_inode_int_21785 xfs_da_grow_inode_int 3 21785 NULL -+key_replays_read_62746 key_replays_read 3 62746 NULL -+smk_write_direct_46363 smk_write_direct 3 46363 NULL +aac_sa_ioremap_13596 aac_sa_ioremap 2 13596 NULL nohasharray +irias_new_octseq_value_13596 irias_new_octseq_value 2 13596 &aac_sa_ioremap_13596 -+irias_add_octseq_attrib_29983 irias_add_octseq_attrib 4 29983 NULL -+cdev_add_38176 cdev_add 2-3 38176 NULL -+__ioremap_caller_21800 __ioremap_caller 1-2 21800 NULL -+alloc_and_copy_ftrace_hash_29368 alloc_and_copy_ftrace_hash 1 29368 NULL ++usb_dump_interface_descriptor_13603 usb_dump_interface_descriptor 0 13603 NULL +swap_cgroup_swapon_13614 swap_cgroup_swapon 2 13614 NULL +wm8994_bulk_write_13615 wm8994_bulk_write 3 13615 NULL -+init_chip_wc_pat_62768 init_chip_wc_pat 2 62768 NULL -+nfsd_vfs_write_54577 nfsd_vfs_write 6 54577 NULL -+ax25_sendmsg_62770 ax25_sendmsg 4 62770 NULL -+rt2x00debug_write_rf_38195 rt2x00debug_write_rf 3 38195 NULL -+fw_iso_buffer_init_54582 fw_iso_buffer_init 3 54582 NULL -+__alloc_bootmem_node_high_65076 __alloc_bootmem_node_high 2 65076 NULL -+get_ucode_user_38202 get_ucode_user 3 38202 NULL -+fuse_file_aio_write_46399 fuse_file_aio_write 4 46399 NULL ++pmcraid_get_minor_13619 pmcraid_get_minor 0 13619 NULL ++iio_device_add_event_sysfs_13627 iio_device_add_event_sysfs 0 13627 NULL +packet_snd_13634 packet_snd 3 13634 NULL -+alloc_netdev_mqs_30030 alloc_netdev_mqs 1 30030 NULL -+osd_req_list_partition_collections_38223 osd_req_list_partition_collections 5 38223 NULL -+compat_do_arpt_set_ctl_12184 compat_do_arpt_set_ctl 4 12184 NULL -+sfi_map_table_5462 sfi_map_table 1 5462 NULL +blk_msg_write_13655 blk_msg_write 3 13655 NULL -+scsi_vpd_inquiry_30040 scsi_vpd_inquiry 4 30040 NULL -+inet_csk_listen_start_38233 inet_csk_listen_start 2 38233 NULL -+fwSendNullPacket_54618 fwSendNullPacket 2 54618 NULL -+tracing_total_entries_read_62817 tracing_total_entries_read 3 62817 NULL ++nfs_idmap_lookup_id_13665 nfs_idmap_lookup_id 2 13665 NULL +cache_downcall_13666 cache_downcall 3 13666 NULL -+port_fops_write_54627 port_fops_write 3 54627 NULL -+xfs_efi_init_5476 xfs_efi_init 2 5476 NULL -+mtrr_write_59622 mtrr_write 3 59622 NULL -+acpi_tb_check_xsdt_21862 acpi_tb_check_xsdt 1 21862 NULL -+cifs_security_flags_proc_write_5484 cifs_security_flags_proc_write 3 5484 NULL -+cp210x_set_config_46447 cp210x_set_config 4 46447 NULL -+sisusbcon_bmove_21873 sisusbcon_bmove 5-7-6 21873 NULL -+tty_write_5494 tty_write 3 5494 NULL -+xlog_recover_add_to_trans_62839 xlog_recover_add_to_trans 4 62839 NULL -+tomoyo_update_domain_5498 tomoyo_update_domain 2 5498 NULL -+ieee80211_if_read_auto_open_plinks_38268 ieee80211_if_read_auto_open_plinks 3 38268 NULL nohasharray -+mthca_alloc_icm_table_38268 mthca_alloc_icm_table 3-4 38268 &ieee80211_if_read_auto_open_plinks_38268 -+dns_resolver_read_54658 dns_resolver_read 3 54658 NULL -+skb_pad_17302 skb_pad 2 17302 NULL -+line6_alloc_sysex_buffer_28225 line6_alloc_sysex_buffer 4 28225 NULL -+cxgbi_ddp_reserve_30091 cxgbi_ddp_reserve 4 30091 NULL -+snd_midi_channel_init_set_30092 snd_midi_channel_init_set 1 30092 NULL -+tg3_run_loopback_30093 tg3_run_loopback 2 30093 NULL -+spidev_message_5518 spidev_message 3 5518 NULL -+vmemmap_alloc_block_43245 vmemmap_alloc_block 1 43245 NULL -+bio_kmalloc_54672 bio_kmalloc 2 54672 NULL -+evm_read_key_54674 evm_read_key 3 54674 NULL -+nfs_writedata_alloc_62868 nfs_writedata_alloc 1 62868 NULL -+sctp_make_op_error_space_5528 sctp_make_op_error_space 3 5528 NULL -+qsfp_1_read_21915 qsfp_1_read 3 21915 NULL -+do_proc_readlink_14096 do_proc_readlink 3 14096 NULL -+profile_load_58267 profile_load 3 58267 NULL -+resize_info_buffer_62889 resize_info_buffer 2 62889 NULL -+if_spi_host_to_card_62890 if_spi_host_to_card 4 62890 NULL -+u32_array_read_2219 u32_array_read 3 2219 NULL -+if_write_51756 if_write 3 51756 NULL -+addtgt_54703 addtgt 3 54703 NULL -+mthca_alloc_cq_buf_46512 mthca_alloc_cq_buf 3 46512 NULL -+vxge_device_register_7752 vxge_device_register 4 7752 NULL -+brcmu_pkt_buf_get_skb_5556 brcmu_pkt_buf_get_skb 1 5556 NULL -+isr_rx_headers_read_38325 isr_rx_headers_read 3 38325 NULL -+rfkill_fop_read_54711 rfkill_fop_read 3 54711 NULL -+recv_stream_30138 recv_stream 4 30138 NULL -+u_memcpya_30139 u_memcpya 2-3 30139 NULL -+getdqbuf_62908 getdqbuf 1 62908 NULL -+bdx_rxdb_create_46525 bdx_rxdb_create 1 46525 NULL -+_add_sg_continuation_descriptor_54721 _add_sg_continuation_descriptor 3 54721 NULL -+fc_frame_alloc_fill_59394 fc_frame_alloc_fill 2 59394 NULL -+fir16_create_5574 fir16_create 3 5574 NULL -+bioset_create_5580 bioset_create 1 5580 NULL -+ocfs2_control_write_54737 ocfs2_control_write 3 54737 NULL ++audit_unpack_string_13748 audit_unpack_string 3 13748 NULL ++ufs_dtog_13750 ufs_dtog 0-2 13750 NULL +fb_sys_read_13778 fb_sys_read 3 13778 NULL -+alloc_ldt_21972 alloc_ldt 2 21972 NULL -+drm_mode_crtc_set_gamma_size_54742 drm_mode_crtc_set_gamma_size 2 54742 NULL -+wep_iv_read_54744 wep_iv_read 3 54744 NULL -+link_send_sections_long_46556 link_send_sections_long 4 46556 NULL -+ldm_frag_add_5611 ldm_frag_add 2 5611 NULL -+sctp_sf_abort_violation_38380 sctp_sf_abort_violation 6 38380 NULL -+mempool_create_page_pool_30189 mempool_create_page_pool 1 30189 NULL -+nf_nat_mangle_tcp_packet_8643 nf_nat_mangle_tcp_packet 5-7 8643 NULL -+sock_setsockopt_50088 sock_setsockopt 5 50088 NULL -+bat_ogm_aggregate_new_13813 bat_ogm_aggregate_new 2 13813 NULL -+dn_sendmsg_38390 dn_sendmsg 4 38390 NULL +random_read_13815 random_read 3 13815 NULL -+sctp_getsockopt_auto_asconf_46584 sctp_getsockopt_auto_asconf 2 46584 NULL -+usblp_ioctl_30203 usblp_ioctl 2 30203 NULL -+hidp_output_raw_report_5629 hidp_output_raw_report 3 5629 NULL -+read_4k_modal_eeprom_30212 read_4k_modal_eeprom 3 30212 NULL -+flexcop_device_kmalloc_54793 flexcop_device_kmalloc 1 54793 NULL -+snd_ac97_pcm_assign_30218 snd_ac97_pcm_assign 2 30218 NULL -+ti_recv_22027 ti_recv 4 22027 NULL -+iwm_wdev_alloc_38415 iwm_wdev_alloc 1 38415 NULL -+ieee80211_if_read_dtim_count_38419 ieee80211_if_read_dtim_count 3 38419 NULL -+dccp_manip_pkt_30229 dccp_manip_pkt 2 30229 NULL -+parse_arg_5657 parse_arg 2 5657 NULL +mtd_do_readoob_13850 mtd_do_readoob 4 13850 NULL -+evdev_ioctl_compat_13851 evdev_ioctl_compat 2 13851 NULL -+pcnet32_realloc_tx_ring_38428 pcnet32_realloc_tx_ring 3 38428 NULL -+posix_clock_register_5662 posix_clock_register 2 5662 NULL -+aes_decrypt_fail_read_54815 aes_decrypt_fail_read 3 54815 NULL -+get_skb_63008 get_skb 2 63008 NULL -+zd_usb_read_fw_22049 zd_usb_read_fw 4 22049 NULL -+atalk_recvmsg_22053 atalk_recvmsg 4 22053 NULL ++evdev_ioctl_compat_13851 evdev_ioctl_compat 2-3 13851 NULL +compat_ip_setsockopt_13870 compat_ip_setsockopt 5 13870 NULL -+aircable_process_packet_46639 aircable_process_packet 5 46639 NULL -+generic_perform_write_54832 generic_perform_write 3 54832 NULL -+kstrtoull_from_user_63026 kstrtoull_from_user 2 63026 NULL -+sctp_tsnmap_init_36446 sctp_tsnmap_init 2 36446 NULL -+cx18_v4l2_ioctl_46647 cx18_v4l2_ioctl 2 46647 NULL -+__vb2_perform_fileio_63033 __vb2_perform_fileio 3 63033 NULL -+edac_mc_alloc_54846 edac_mc_alloc 1 54846 NULL -+isr_pci_pm_read_30271 isr_pci_pm_read 3 30271 NULL -+ufx_ops_write_54848 ufx_ops_write 3 54848 NULL -+compat_readv_30273 compat_readv 3 30273 NULL -+printer_read_54851 printer_read 3 54851 NULL -+mem_rw_22085 mem_rw 3 22085 NULL -+alloc_ep_req_54860 alloc_ep_req 2 54860 NULL -+broadsheet_spiflash_rewrite_sector_54864 broadsheet_spiflash_rewrite_sector 2 54864 NULL -+skcipher_sendmsg_30290 skcipher_sendmsg 4 30290 NULL -+unlink1_63059 unlink1 3 63059 NULL -+iwl4965_ucode_rx_stats_read_46676 iwl4965_ucode_rx_stats_read 3 46676 NULL -+picolcd_fb_write_2318 picolcd_fb_write 3 2318 NULL ++snd_pcm_aio_read_13900 snd_pcm_aio_read 3 13900 NULL +qla2x00_get_ctx_sp_13912 qla2x00_get_ctx_sp 3 13912 NULL -+tcf_csum_ipv6_tcp_54877 tcf_csum_ipv6_tcp 4 54877 NULL -+vmw_kms_readback_5727 vmw_kms_readback 6 5727 NULL -+replay_log_leb_18704 replay_log_leb 3 18704 NULL -+rts51x_transfer_data_partial_5735 rts51x_transfer_data_partial 6 5735 NULL -+alloc_data_packet_46698 alloc_data_packet 1 46698 NULL -+dev_names_read_38509 dev_names_read 3 38509 NULL -+iscsi_create_iface_38510 iscsi_create_iface 5 38510 NULL -+get_packet_5747 get_packet 3 5747 NULL -+event_rx_mismatch_read_38518 event_rx_mismatch_read 3 38518 NULL ++ext3_xattr_block_get_13936 ext3_xattr_block_get 0 13936 NULL ++ocfs2_xa_value_truncate_13940 ocfs2_xa_value_truncate 2 13940 NULL +iwl_dbgfs_protection_mode_read_13943 iwl_dbgfs_protection_mode_read 3 13943 NULL ++compat_chaninfo_13945 compat_chaninfo 2 13945 NULL +ieee80211_if_read_min_discovery_timeout_13946 ieee80211_if_read_min_discovery_timeout 3 13946 NULL -+sys_msgrcv_959 sys_msgrcv 3 959 NULL +lpfc_idiag_queacc_read_13950 lpfc_idiag_queacc_read 3 13950 NULL -+xfs_buf_get_uncached_51477 xfs_buf_get_uncached 2 51477 NULL -+iscsi_pool_init_54913 iscsi_pool_init 2-4 54913 NULL -+ath6kl_regwrite_read_48747 ath6kl_regwrite_read 3 48747 NULL -+resource_from_user_30341 resource_from_user 3 30341 NULL -+brcmf_alloc_pkt_and_read_63116 brcmf_alloc_pkt_and_read 2 63116 NULL nohasharray -+iwl_dbgfs_sensitivity_read_63116 iwl_dbgfs_sensitivity_read 3 63116 &brcmf_alloc_pkt_and_read_63116 -+sctp_setsockopt_autoclose_5775 sctp_setsockopt_autoclose 3 5775 NULL -+__vmalloc_node_flags_30352 __vmalloc_node_flags 1 30352 NULL -+kstrtoul_from_user_64569 kstrtoul_from_user 2 64569 NULL ++snd_pcm_plug_slave_size_13967 snd_pcm_plug_slave_size 0-2 13967 NULL +com90xx_found_13974 com90xx_found 3 13974 NULL -+compat_sys_writev_5784 compat_sys_writev 3 5784 NULL -+kstrtou32_from_user_30361 kstrtou32_from_user 2 30361 NULL -+__vxge_hw_blockpool_malloc_5786 __vxge_hw_blockpool_malloc 2 5786 NULL -+add_port_54941 add_port 2 54941 NULL -+ib_send_cm_rtu_63138 ib_send_cm_rtu 3 63138 NULL -+irda_sendmsg_dgram_38563 irda_sendmsg_dgram 4 38563 NULL -+snd_nm256_playback_copy_38567 snd_nm256_playback_copy 5 38567 NULL -+sys_get_mempolicy_30379 sys_get_mempolicy 3 30379 NULL -+iwl_dbgfs_ucode_rx_stats_read_58023 iwl_dbgfs_ucode_rx_stats_read 3 58023 NULL -+skb_copy_datagram_iovec_5806 skb_copy_datagram_iovec 2-4 5806 NULL -+trace_options_core_read_47390 trace_options_core_read 3 47390 NULL -+int_hw_irq_en_46776 int_hw_irq_en 3 46776 NULL -+c4iw_init_resource_30393 c4iw_init_resource 2-3 30393 NULL -+cosa_net_setup_rx_38594 cosa_net_setup_rx 2 38594 NULL -+brcmf_sdcard_send_buf_54980 brcmf_sdcard_send_buf 6 54980 NULL -+_rtl92s_firmware_downloadcode_14021 _rtl92s_firmware_downloadcode 3 14021 NULL -+_queue_data_54983 _queue_data 4 54983 NULL -+reportdesc_callback_38603 reportdesc_callback 3 38603 NULL -+pfkey_sendmsg_47394 pfkey_sendmsg 4 47394 NULL -+journal_init_revoke_56933 journal_init_revoke 2 56933 NULL -+pep_indicate_38611 pep_indicate 5 38611 NULL ++qcam_read_13977 qcam_read 3 13977 NULL ++dsp_read_13980 dsp_read 2 13980 NULL ++bm_block_bits_13981 bm_block_bits 0 13981 NULL nohasharray ++dvb_demux_read_13981 dvb_demux_read 3 13981 &bm_block_bits_13981 ++ieee80211_bss_info_update_13991 ieee80211_bss_info_update 4 13991 NULL ++btrfs_get_blocks_direct_14016 btrfs_get_blocks_direct 2 14016 NULL +dvb_usercopy_14036 dvb_usercopy 2 14036 NULL -+ceph_msg_new_5846 ceph_msg_new 2 5846 NULL -+ixgb_check_copybreak_5847 ixgb_check_copybreak 3 5847 NULL -+mem_write_22232 mem_write 3 22232 NULL +read_def_modal_eeprom_14041 read_def_modal_eeprom 3 14041 NULL -+_xfs_buf_get_pages_46811 _xfs_buf_get_pages 2 46811 NULL -+rds_ib_inc_copy_to_user_55007 rds_ib_inc_copy_to_user 3 55007 NULL -+compat_sys_move_pages_5861 compat_sys_move_pages 2 5861 NULL -+cx231xx_v4l2_read_55014 cx231xx_v4l2_read 3 55014 NULL ++ieee80211_if_fmt_aid_14055 ieee80211_if_fmt_aid 3 14055 NULL +sta_agg_status_read_14058 sta_agg_status_read 3 14058 NULL -+compat_process_vm_rw_22254 compat_process_vm_rw 3-5 22254 NULL -+audit_init_entry_38644 audit_init_entry 1 38644 NULL -+enable_write_30456 enable_write 3 30456 NULL -+urandom_read_30462 urandom_read 3 30462 NULL -+mmc_send_cxd_data_38655 mmc_send_cxd_data 5 38655 NULL -+__btrfs_direct_write_22273 __btrfs_direct_write 4 22273 NULL -+smctr_process_rx_packet_13270 smctr_process_rx_packet 2 13270 NULL -+qla2x00_adjust_sdev_qdepth_up_20097 qla2x00_adjust_sdev_qdepth_up 2 20097 NULL -+nfs_dns_resolve_name_38670 nfs_dns_resolve_name 2 38670 NULL -+port_show_regs_5904 port_show_regs 3 5904 NULL -+write_head_30481 write_head 4 30481 NULL -+ptp_read_63251 ptp_read 4 63251 NULL -+uhci_debug_read_5911 uhci_debug_read 3 5911 NULL ++do_tcp_sendpages_14083 do_tcp_sendpages 3-4 14083 NULL ++do_proc_readlink_14096 do_proc_readlink 3 14096 NULL +compat_sys_pselect6_14105 compat_sys_pselect6 1 14105 NULL -+__netdev_alloc_skb_ip_align_55067 __netdev_alloc_skb_ip_align 2 55067 NULL -+__tun_chr_ioctl_22300 __tun_chr_ioctl 4 22300 NULL -+stk_allocate_buffers_16291 stk_allocate_buffers 2 16291 NULL -+mesh_table_alloc_22305 mesh_table_alloc 1 22305 NULL -+ttm_bo_kmap_ttm_5922 ttm_bo_kmap_ttm 3 5922 NULL -+iscsi_iser_recv_41948 iscsi_iser_recv 4 41948 NULL -+lbs_highsnr_read_5931 lbs_highsnr_read 3 5931 NULL -+udpv6_sendmsg_22316 udpv6_sendmsg 4 22316 NULL -+edac_device_alloc_ctl_info_5941 edac_device_alloc_ctl_info 1 5941 NULL -+sisusbcon_scroll_area_25899 sisusbcon_scroll_area 3-4 25899 NULL ++nlmsg_len_14115 nlmsg_len 0 14115 NULL +ntfs_rl_replace_14136 ntfs_rl_replace 2-4 14136 NULL -+tcp_collapse_63294 tcp_collapse 5-6 63294 NULL -+isdn_ppp_ccp_xmit_reset_63297 isdn_ppp_ccp_xmit_reset 6 63297 NULL -+crypto_shash_setkey_60483 crypto_shash_setkey 3 60483 NULL -+tipc_subseq_alloc_5957 tipc_subseq_alloc 1 5957 NULL -+kstrtos16_from_user_28300 kstrtos16_from_user 2 28300 NULL -+tracing_ctrl_read_46922 tracing_ctrl_read 3 46922 NULL +gsm_dlci_data_14155 gsm_dlci_data 3 14155 NULL -+fb_write_46924 fb_write 3 46924 NULL -+dns_resolver_instantiate_63314 dns_resolver_instantiate 3 63314 NULL -+btmrvl_curpsmode_read_46939 btmrvl_curpsmode_read 3 46939 NULL -+crypto_ahash_setkey_55134 crypto_ahash_setkey 3 55134 NULL -+netdev_alloc_skb_62437 netdev_alloc_skb 2 62437 NULL -+disk_expand_part_tbl_30561 disk_expand_part_tbl 2 30561 NULL -+evdev_ioctl_22371 evdev_ioctl 2 22371 NULL -+__sctp_setsockopt_connectx_46949 __sctp_setsockopt_connectx 3 46949 NULL -+proc_info_read_63344 proc_info_read 3 63344 NULL ++print_input_mask_14168 print_input_mask 3-0 14168 NULL ++ocfs2_xattr_value_truncate_14183 ocfs2_xattr_value_truncate 3 14183 NULL +tcp_manip_pkt_14202 tcp_manip_pkt 2 14202 NULL -+iwl_dbgfs_thermal_throttling_read_38779 iwl_dbgfs_thermal_throttling_read 3 38779 NULL -+ubifs_leb_change_22399 ubifs_leb_change 4 22399 NULL nohasharray -+alloc_private_22399 alloc_private 2 22399 &ubifs_leb_change_22399 -+snd_gus_dram_write_38784 snd_gus_dram_write 4 38784 NULL -+gre_manip_pkt_38785 gre_manip_pkt 2 38785 NULL -+ps_upsd_max_sptime_read_63362 ps_upsd_max_sptime_read 3 63362 NULL -+zoran_write_22404 zoran_write 3 22404 NULL -+sctp_getsockopt_peer_addr_info_6024 sctp_getsockopt_peer_addr_info 2 6024 NULL -+xfs_dir2_block_to_sf_37868 xfs_dir2_block_to_sf 3 37868 NULL ++alloc_async_14208 alloc_async 1 14208 NULL +sys_kexec_load_14222 sys_kexec_load 2 14222 NULL -+queue_reply_22416 queue_reply 3 22416 NULL -+sgl_map_user_pages_30610 sgl_map_user_pages 2 30610 NULL -+sel_write_bool_46996 sel_write_bool 3 46996 NULL -+ntfs_rl_append_6037 ntfs_rl_append 2-4 6037 NULL -+ttm_bo_io_47000 ttm_bo_io 5 47000 NULL -+sel_write_relabel_55195 sel_write_relabel 3 55195 NULL -+edac_pci_alloc_ctl_info_63388 edac_pci_alloc_ctl_info 1 63388 NULL -+ipv6_renew_option_38813 ipv6_renew_option 3 38813 NULL -+sched_feat_write_55202 sched_feat_write 3 55202 NULL -+dma_declare_coherent_memory_14244 dma_declare_coherent_memory 2-4 14244 NULL -+macvtap_sendmsg_30629 macvtap_sendmsg 4 30629 NULL -+ht40allow_map_read_55209 ht40allow_map_read 3 55209 NULL nohasharray -+isdn_net_ciscohdlck_alloc_skb_55209 isdn_net_ciscohdlck_alloc_skb 2 55209 &ht40allow_map_read_55209 -+compat_raw_setsockopt_30634 compat_raw_setsockopt 5 30634 NULL -+scsi_dispatch_cmd_entry_49848 scsi_dispatch_cmd_entry 3 49848 NULL -+rxpipe_missed_beacon_host_int_trig_rx_data_read_63405 rxpipe_missed_beacon_host_int_trig_rx_data_read 3 63405 NULL -+do_raw_setsockopt_55215 do_raw_setsockopt 5 55215 NULL -+cx231xx_init_bulk_47024 cx231xx_init_bulk 3-2 47024 NULL -+sctp_abort_pkt_new_55218 sctp_abort_pkt_new 5 55218 NULL -+direct_entry_38836 direct_entry 3 38836 NULL -+compat_udp_setsockopt_38840 compat_udp_setsockopt 5 38840 NULL -+send_video_command_6073 send_video_command 4 6073 NULL nohasharray -+sctp_setsockopt_connectx_6073 sctp_setsockopt_connectx 3 6073 &send_video_command_6073 -+noack_read_63419 noack_read 3 63419 NULL -+tipc_port_reject_sections_55229 tipc_port_reject_sections 5 55229 NULL -+mgmt_event_46069 mgmt_event 4 46069 NULL ++dma_declare_coherent_memory_14244 dma_declare_coherent_memory 4-2 14244 NULL ++snd_soc_hw_bulk_write_raw_14245 snd_soc_hw_bulk_write_raw 4 14245 NULL ++reiserfs_compat_ioctl_14265 reiserfs_compat_ioctl 3 14265 NULL ++ath6kl_connect_event_14267 ath6kl_connect_event 7-8-9 14267 NULL +add_numbered_child_14273 add_numbered_child 5 14273 NULL -+l2cap_sock_sendmsg_63427 l2cap_sock_sendmsg 4 63427 NULL -+OS_mem_token_alloc_14276 OS_mem_token_alloc 1 14276 NULL -+iwl_dbgfs_debug_level_read_63430 iwl_dbgfs_debug_level_read 3 63430 NULL -+agp_remap_30665 agp_remap 2 30665 NULL -+interfaces_38859 interfaces 2 38859 NULL -+memcpy_fromiovec_55247 memcpy_fromiovec 3 55247 NULL -+nfsd_symlink_63442 nfsd_symlink 6 63442 NULL -+__get_vm_area_node_55305 __get_vm_area_node 1 55305 NULL -+cache_write_procfs_22491 cache_write_procfs 3 22491 NULL ++em28xx_i2c_eeprom_14280 em28xx_i2c_eeprom 3 14280 NULL ++snd_seq_oss_readq_new_14283 snd_seq_oss_readq_new 2 14283 NULL ++rr_status_14293 rr_status 5 14293 NULL +read_default_ldt_14302 read_default_ldt 2 14302 NULL -+dfs_global_file_write_6112 dfs_global_file_write 3 6112 NULL -+alloc_dca_provider_59670 alloc_dca_provider 2 59670 NULL -+timeradd_entry_49850 timeradd_entry 3 49850 NULL -+dccp_setsockopt_ccid_30701 dccp_setsockopt_ccid 4 30701 NULL -+scsi_deactivate_tcq_47086 scsi_deactivate_tcq 2 47086 NULL -+mwifiex_getlog_read_54269 mwifiex_getlog_read 3 54269 NULL -+snd_info_entry_write_63474 snd_info_entry_write 3 63474 NULL ++oo_objects_14319 oo_objects 0 14319 NULL +iwl_legacy_dbgfs_interrupt_read_14324 iwl_legacy_dbgfs_interrupt_read 3 14324 NULL -+wled_proc_write_30709 wled_proc_write 3 30709 NULL -+netfs_trans_alloc_6136 netfs_trans_alloc 2-4 6136 NULL -+rx_streaming_interval_read_55291 rx_streaming_interval_read 3 55291 NULL -+read_kcore_63488 read_kcore 3 63488 NULL -+lbs_debugfs_read_30721 lbs_debugfs_read 3 30721 NULL -+sel_write_load_63830 sel_write_load 3 63830 NULL -+gsm_control_modem_55303 gsm_control_modem 3 55303 NULL +p9_client_zc_rpc_14345 p9_client_zc_rpc 7 14345 NULL -+iscsi_conn_setup_35159 iscsi_conn_setup 2 35159 NULL -+ivtv_copy_buf_to_user_6159 ivtv_copy_buf_to_user 4 6159 NULL -+pskb_may_pull_22546 pskb_may_pull 2 22546 NULL -+mousedev_read_47123 mousedev_read 3 47123 NULL -+ieee80211_if_read_bssid_35161 ieee80211_if_read_bssid 3 35161 NULL -+agp_alloc_page_array_22554 agp_alloc_page_array 1 22554 NULL -+vdma_mem_alloc_6171 vdma_mem_alloc 1 6171 NULL -+wl1251_cmd_template_set_6172 wl1251_cmd_template_set 4 6172 NULL -+ses_recv_diag_47143 ses_recv_diag 4 47143 NULL nohasharray -+acpi_ut_initialize_buffer_47143 acpi_ut_initialize_buffer 2 47143 &ses_recv_diag_47143 -+sock_rmalloc_59740 sock_rmalloc 2 59740 NULL nohasharray -+ieee80211_if_read_fwded_unicast_59740 ieee80211_if_read_fwded_unicast 3 59740 &sock_rmalloc_59740 -+vme_user_read_55338 vme_user_read 3 55338 NULL -+ubi_more_leb_change_data_63534 ubi_more_leb_change_data 4 63534 NULL -+cxio_init_resource_fifo_random_47151 cxio_init_resource_fifo_random 3 47151 NULL -+write_rio_54837 write_rio 3 54837 NULL -+fuse_conn_limit_write_30777 fuse_conn_limit_write 3 30777 NULL nohasharray -+tcf_csum_ipv4_udp_30777 tcf_csum_ipv4_udp 4 30777 &fuse_conn_limit_write_30777 -+__hidp_send_ctrl_message_28303 __hidp_send_ctrl_message 4 28303 NULL -+ddp_ppod_write_idata_25610 ddp_ppod_write_idata 5 25610 NULL -+append_to_buffer_63550 append_to_buffer 3 63550 NULL ++snd_pcm_lib_readv_14363 snd_pcm_lib_readv 0-3 14363 NULL ++acpi_get_override_irq_14381 acpi_get_override_irq 1 14381 NULL ++ath6kl_regdump_read_14393 ath6kl_regdump_read 3 14393 NULL +smk_write_onlycap_14400 smk_write_onlycap 3 14400 NULL -+acpi_system_read_event_55362 acpi_system_read_event 3 55362 NULL -+kvm_write_guest_page_63555 kvm_write_guest_page 5 63555 NULL -+nfc_alloc_skb_6216 nfc_alloc_skb 1 6216 NULL -+snapshot_read_22601 snapshot_read 3 22601 NULL -+OSDSetBlock_38986 OSDSetBlock 2-4 38986 NULL -+v4l2_ctrl_new_std_menu_6221 v4l2_ctrl_new_std_menu 4 6221 NULL +mtd_concat_create_14416 mtd_concat_create 2 14416 NULL -+mqueue_read_file_6228 mqueue_read_file 3 6228 NULL -+ioremap_cache_47189 ioremap_cache 1-2 47189 NULL -+ubi_write_30809 ubi_write 4-5 30809 NULL ++get_kcore_size_14425 get_kcore_size 0 14425 NULL +easycap_alsa_vmalloc_14426 easycap_alsa_vmalloc 2 14426 NULL -+t4vf_pktgl_to_skb_39005 t4vf_pktgl_to_skb 2 39005 NULL -+f_hidg_read_6238 f_hidg_read 3 6238 NULL -+lpfc_debugfs_dif_err_write_17424 lpfc_debugfs_dif_err_write 3 17424 NULL -+get_nodes_39012 get_nodes 3 39012 NULL -+module_alloc_update_bounds_47205 module_alloc_update_bounds 1 47205 NULL -+fbcon_prepare_logo_6246 fbcon_prepare_logo 5 6246 NULL -+sctp_setsockopt_connectx_old_22631 sctp_setsockopt_connectx_old 3 22631 NULL -+ide_core_cp_entry_22636 ide_core_cp_entry 3 22636 NULL -+iwl_dbgfs_plcp_delta_read_55407 iwl_dbgfs_plcp_delta_read 3 55407 NULL -+disp_proc_write_39024 disp_proc_write 3 39024 NULL -+rawv6_recvmsg_30265 rawv6_recvmsg 4 30265 NULL -+mthca_map_reg_5664 mthca_map_reg 2-3 5664 NULL -+_zd_iowrite32v_async_locked_39034 _zd_iowrite32v_async_locked 3 39034 NULL -+sctp_setsockopt_auth_chunk_30843 sctp_setsockopt_auth_chunk 3 30843 NULL -+read_oldmem_55658 read_oldmem 3 55658 NULL -+xenbus_file_write_6282 xenbus_file_write 3 6282 NULL -+options_write_47243 options_write 3 47243 NULL -+module_alloc_63630 module_alloc 1 63630 NULL -+alloc_skb_55439 alloc_skb 1 55439 NULL -+iwl4965_rs_sta_dbgfs_stats_table_read_6289 iwl4965_rs_sta_dbgfs_stats_table_read 3 6289 NULL -+portcntrs_1_read_47253 portcntrs_1_read 3 47253 NULL ++gart_alloc_coherent_14437 gart_alloc_coherent 2 14437 NULL ++check_lpt_crc_14442 check_lpt_crc 0 14442 NULL ++block_size_14443 block_size 0 14443 NULL ++snd_emu10k1_proc_spdif_status_14457 snd_emu10k1_proc_spdif_status 4-5 14457 NULL ++udplite_getfrag_14479 udplite_getfrag 3-4 14479 NULL +ieee80211_if_read_dot11MeshGateAnnouncementProtocol_14486 ieee80211_if_read_dot11MeshGateAnnouncementProtocol 3 14486 NULL -+l2tp_ip_recvmsg_22681 l2tp_ip_recvmsg 4 22681 NULL -+proc_loginuid_write_63648 proc_loginuid_write 3 63648 NULL -+vmemmap_alloc_block_buf_61126 vmemmap_alloc_block_buf 1 61126 NULL -+ValidateDSDParamsChecksum_63654 ValidateDSDParamsChecksum 3 63654 NULL -+pn_recvmsg_30887 pn_recvmsg 4 30887 NULL -+befs_utf2nls_25628 befs_utf2nls 3 25628 NULL -+hidraw_ioctl_63658 hidraw_ioctl 2 63658 NULL +ocfs2_debug_read_14507 ocfs2_debug_read 3 14507 NULL -+lbs_threshold_read_21046 lbs_threshold_read 5 21046 NULL -+tty_audit_log_47280 tty_audit_log 8 47280 NULL -+alloc_libipw_22708 alloc_libipw 1 22708 NULL -+fc_host_post_vendor_event_30903 fc_host_post_vendor_event 3 30903 NULL -+iwl4965_rs_sta_dbgfs_scale_table_read_63672 iwl4965_rs_sta_dbgfs_scale_table_read 3 63672 NULL -+vbi_read_63673 vbi_read 3 63673 NULL -+i2o_pool_alloc_55485 i2o_pool_alloc 4 55485 NULL -+brcmf_sdbrcm_read_control_22721 brcmf_sdbrcm_read_control 3 22721 NULL -+read_flush_pipefs_20171 read_flush_pipefs 3 20171 NULL -+tx_internal_desc_overflow_read_47300 tx_internal_desc_overflow_read 3 47300 NULL -+iommu_map_mmio_space_30919 iommu_map_mmio_space 1 30919 NULL -+dataflash_read_user_otp_14536 dataflash_read_user_otp 3-2 14536 NULL nohasharray ++dataflash_read_user_otp_14536 dataflash_read_user_otp 2-3 14536 NULL nohasharray +ep0_write_14536 ep0_write 3 14536 &dataflash_read_user_otp_14536 -+channel_type_read_47308 channel_type_read 3 47308 NULL -+dvb_ringbuffer_pkt_read_user_4303 dvb_ringbuffer_pkt_read_user 3-5-2 4303 NULL -+cx18_copy_buf_to_user_22735 cx18_copy_buf_to_user 4 22735 NULL -+ax25_output_22736 ax25_output 2 22736 NULL -+__kfifo_to_user_r_39123 __kfifo_to_user_r 3 39123 NULL -+l2cap_send_cmd_14548 l2cap_send_cmd 4 14548 NULL +picolcd_debug_eeprom_read_14549 picolcd_debug_eeprom_read 3 14549 NULL +drm_vmalloc_dma_14550 drm_vmalloc_dma 1 14550 NULL -+cfpkt_pad_trail_55511 cfpkt_pad_trail 2 55511 NULL -+cmtp_add_msgpart_9252 cmtp_add_msgpart 4 9252 NULL -+xfs_iext_add_indirect_multi_32400 xfs_iext_add_indirect_multi 3 32400 NULL -+sctp_setsockopt_rtoinfo_30941 sctp_setsockopt_rtoinfo 3 30941 NULL -+hfcpci_empty_fifo_2427 hfcpci_empty_fifo 4 2427 NULL -+_proc_do_string_6376 _proc_do_string 2 6376 NULL -+nfs4_reset_slot_table_63721 nfs4_reset_slot_table 2 63721 NULL -+osd_req_read_sg_kern_6378 osd_req_read_sg_kern 5 6378 NULL -+read_cis_cache_29735 read_cis_cache 4 29735 NULL -+ata_scsi_change_queue_depth_23126 ata_scsi_change_queue_depth 2 23126 NULL -+alloc_ring_39151 alloc_ring 2-4 39151 NULL -+sctp_getsockopt_assoc_number_6384 sctp_getsockopt_assoc_number 2 6384 NULL -+proc_coredump_filter_read_39153 proc_coredump_filter_read 3 39153 NULL -+orig_node_del_if_28371 orig_node_del_if 2 28371 NULL ++usb_dump_desc_14553 usb_dump_desc 0 14553 NULL +nfqnl_mangle_14583 nfqnl_mangle 2 14583 NULL -+tty_insert_flip_string_flags_30969 tty_insert_flip_string_flags 4 30969 NULL -+ieee80211_if_read_dot11MeshHoldingTimeout_47356 ieee80211_if_read_dot11MeshHoldingTimeout 3 47356 NULL +idmap_pipe_downcall_14591 idmap_pipe_downcall 3 14591 NULL -+selinux_secctx_to_secid_63744 selinux_secctx_to_secid 2 63744 NULL -+send_control_msg_62261 send_control_msg 5 62261 NULL -+isdn_add_channels_40905 isdn_add_channels 3 40905 NULL -+bt_skb_alloc_6404 bt_skb_alloc 1 6404 NULL -+vmw_kms_present_38130 vmw_kms_present 9 38130 NULL -+__bio_map_kern_47379 __bio_map_kern 2-3 47379 NULL -+init_list_set_39188 init_list_set 2-3 39188 NULL -+ubi_more_update_data_39189 ubi_more_update_data 4 39189 NULL -+snd_pcm_oss_read1_63771 snd_pcm_oss_read1 3 63771 NULL -+l2up_create_6430 l2up_create 3 6430 NULL -+ipr_change_queue_depth_6431 ipr_change_queue_depth 2 6431 NULL -+__alloc_bootmem_node_nopanic_6432 __alloc_bootmem_node_nopanic 2 6432 NULL -+spidev_compat_ioctl_63778 spidev_compat_ioctl 2 63778 NULL -+add_partition_55588 add_partition 2 55588 NULL -+lbs_host_sleep_read_31013 lbs_host_sleep_read 3 31013 NULL -+kstrtou8_from_user_55599 kstrtou8_from_user 2 55599 NULL -+read_file_disable_ani_6536 read_file_disable_ani 3 6536 NULL -+macvtap_put_user_55609 macvtap_put_user 4 55609 NULL -+ivtv_v4l2_write_39226 ivtv_v4l2_write 3 39226 NULL -+selinux_setprocattr_55611 selinux_setprocattr 4 55611 NULL ++ocfs2_trim_group_14641 ocfs2_trim_group 4-3 14641 NULL ++dbJoin_14644 dbJoin 0 14644 NULL +profile_replace_14652 profile_replace 3 14652 NULL -+vzalloc_47421 vzalloc 1 47421 NULL -+mwifiex_11n_create_rx_reorder_tbl_63806 mwifiex_11n_create_rx_reorder_tbl 4 63806 NULL -+agp_create_user_memory_62955 agp_create_user_memory 1 62955 NULL -+send_packet_52960 send_packet 4 52960 NULL -+read_file_rcstat_22854 read_file_rcstat 3 22854 NULL -+__videobuf_copy_stream_44769 __videobuf_copy_stream 4 44769 NULL -+__vmalloc_node_39308 __vmalloc_node 1 39308 NULL -+pktgen_if_write_55628 pktgen_if_write 3 55628 NULL -+create_attr_set_22861 create_attr_set 1 22861 NULL -+snd_opl4_mem_proc_read_63774 snd_opl4_mem_proc_read 5 63774 NULL -+compat_sys_mq_timedsend_31060 compat_sys_mq_timedsend 3 31060 NULL -+__skb_cow_39254 __skb_cow 2 39254 NULL -+iscsi_offload_mesg_58425 iscsi_offload_mesg 5 58425 NULL -+bnx2_nvram_write_7790 bnx2_nvram_write 4-2 7790 NULL -+dvb_dmxdev_set_buffer_size_55643 dvb_dmxdev_set_buffer_size 2 55643 NULL ++ieee80211_if_fmt_rc_rateidx_mask_2ghz_14683 ieee80211_if_fmt_rc_rateidx_mask_2ghz 3 14683 NULL +tsi148_master_set_14685 tsi148_master_set 4 14685 NULL -+ncp_file_write_3813 ncp_file_write 3 3813 NULL -+probe_bios_17467 probe_bios 1 17467 NULL -+proc_pid_attr_write_63845 proc_pid_attr_write 3 63845 NULL -+expand_fdtable_39273 expand_fdtable 2 39273 NULL -+ttm_bo_ioremap_31082 ttm_bo_ioremap 2-3 31082 NULL -+mei_read_6507 mei_read 3 6507 NULL -+lpfc_idiag_queinfo_read_55662 lpfc_idiag_queinfo_read 3 55662 NULL -+mdc800_device_read_22896 mdc800_device_read 3 22896 NULL -+pohmelfs_setxattr_39281 pohmelfs_setxattr 4 39281 NULL -+sctp_setsockopt_context_31091 sctp_setsockopt_context 3 31091 NULL -+mei_registration_cdev_39284 mei_registration_cdev 2 39284 NULL -+tpm_read_50344 tpm_read 3 50344 NULL -+newpart_47485 newpart 6 47485 NULL -+do_tune_cpucache_14828 do_tune_cpucache 2 14828 NULL -+get_info_55681 get_info 3 55681 NULL -+inet_listen_14723 inet_listen 2 14723 NULL -+compat_sys_get_mempolicy_31109 compat_sys_get_mempolicy 3 31109 NULL -+core_sys_select_47494 core_sys_select 1 47494 NULL -+store_pwm1_62529 store_pwm1 4 62529 NULL -+depth_read_31112 depth_read 3 31112 NULL -+sisusb_write_mem_bulk_29678 sisusb_write_mem_bulk 4 29678 NULL -+virtqueue_add_buf_22924 virtqueue_add_buf 3-4 22924 NULL -+libfc_host_alloc_7917 libfc_host_alloc 2 7917 NULL -+kvm_mmu_pte_write_31120 kvm_mmu_pte_write 2 31120 NULL -+alloc_arraycache_47505 alloc_arraycache 2 47505 NULL -+unlink_simple_47506 unlink_simple 3 47506 NULL -+rndis_set_oid_6547 rndis_set_oid 4 6547 NULL -+wdm_read_6549 wdm_read 3 6549 NULL -+init_map_ipmac_63896 init_map_ipmac 3-4 63896 NULL -+fb_alloc_cmap_6554 fb_alloc_cmap 2 6554 NULL -+divas_write_63901 divas_write 3 63901 NULL -+xhci_alloc_stream_info_63902 xhci_alloc_stream_info 3 63902 NULL ++u_audio_playback_14709 u_audio_playback 3 14709 NULL ++vfd_write_14717 vfd_write 3 14717 NULL ++__blk_end_request_14729 __blk_end_request 3 14729 NULL nohasharray ++do_mmap_14729 do_mmap 0 14729 &__blk_end_request_14729 +store_camera_14751 store_camera 4 14751 NULL -+pcpu_mem_zalloc_22948 pcpu_mem_zalloc 1 22948 NULL -+filter_read_61692 filter_read 3 61692 NULL -+mtdswap_init_55719 mtdswap_init 2 55719 NULL -+pohmelfs_readpages_trans_complete_63912 pohmelfs_readpages_trans_complete 2 63912 NULL -+sel_read_handle_status_56139 sel_read_handle_status 3 56139 NULL -+debugfs_read_62535 debugfs_read 3 62535 NULL -+w9966_v4l_read_31148 w9966_v4l_read 3 31148 NULL -+process_vm_rw_47533 process_vm_rw 3-5 47533 NULL -+alloc_sglist_22960 alloc_sglist 1-3-2 22960 NULL -+caif_seqpkt_sendmsg_22961 caif_seqpkt_sendmsg 4 22961 NULL -+cfpkt_split_47541 cfpkt_split 2 47541 NULL -+__copy_from_user_nocache_39351 __copy_from_user_nocache 3 39351 NULL -+ledd_proc_write_63928 ledd_proc_write 3 63928 NULL -+btmrvl_pscmd_read_24308 btmrvl_pscmd_read 3 24308 NULL -+__iio_allocate_kfifo_55738 __iio_allocate_kfifo 2-3 55738 NULL -+ipw_write_59807 ipw_write 3 59807 NULL ++qla82xx_pci_mem_write_2M_14765 qla82xx_pci_mem_write_2M 2 14765 NULL +sta_dev_read_14782 sta_dev_read 3 14782 NULL -+tipc_send2port_63935 tipc_send2port 5 63935 NULL -+ch_do_scsi_31171 ch_do_scsi 4 31171 NULL -+afs_send_simple_reply_63940 afs_send_simple_reply 3 63940 NULL -+cycx_setup_47562 cycx_setup 4 47562 NULL -+remote_settings_file_write_22987 remote_settings_file_write 3 22987 NULL ++cp_tm1217_read_14792 cp_tm1217_read 3 14792 NULL +ext4_kvmalloc_14796 ext4_kvmalloc 1 14796 NULL -+macvtap_recvmsg_63949 macvtap_recvmsg 4 63949 NULL -+input_mt_init_slots_31183 input_mt_init_slots 2 31183 NULL +nfs_parse_server_name_14800 nfs_parse_server_name 2 14800 NULL -+read_ldt_47570 read_ldt 2 47570 NULL -+snd_gus_dram_read_56686 snd_gus_dram_read 4 56686 NULL -+tomoyo_init_log_14806 tomoyo_init_log 2 14806 NULL -+pci_iomap_47575 pci_iomap 3 47575 NULL -+acpi_ex_system_memory_space_handler_31192 acpi_ex_system_memory_space_handler 2 31192 NULL -+kimage_normal_alloc_31140 kimage_normal_alloc 3 31140 NULL -+module_alloc_update_bounds_rw_63233 module_alloc_update_bounds_rw 1 63233 NULL -+ecryptfs_filldir_6622 ecryptfs_filldir 3 6622 NULL -+drm_ht_create_18853 drm_ht_create 2 18853 NULL -+qlcnic_alloc_msix_entries_46160 qlcnic_alloc_msix_entries 2 46160 NULL -+ieee80211_authentication_req_63973 ieee80211_authentication_req 3 63973 NULL -+dn_alloc_skb_6631 dn_alloc_skb 2 6631 NULL -+command_file_write_31318 command_file_write 3 31318 NULL -+viafb_dvp0_proc_write_23023 viafb_dvp0_proc_write 3 23023 NULL -+iwl_legacy_dbgfs_tx_statistics_read_63987 iwl_legacy_dbgfs_tx_statistics_read 3 63987 NULL -+atm_get_addr_31221 atm_get_addr 3 31221 NULL -+user_power_read_39414 user_power_read 3 39414 NULL -+uwb_rc_neh_grok_event_55799 uwb_rc_neh_grok_event 3 55799 NULL -+uea_request_47613 uea_request 4 47613 NULL -+cache_read_pipefs_47615 cache_read_pipefs 3 47615 NULL -+read_file_frameerrors_64001 read_file_frameerrors 3 64001 NULL -+alloc_agpphysmem_i8xx_39427 alloc_agpphysmem_i8xx 1 39427 NULL -+tcp_recvmsg_31238 tcp_recvmsg 4 31238 NULL -+iwl_legacy_dbgfs_sensitivity_read_55816 iwl_legacy_dbgfs_sensitivity_read 3 55816 NULL ++snd_als300_gcr_read_14801 snd_als300_gcr_read 0 14801 NULL nohasharray ++hpet_readl_14801 hpet_readl 0 14801 &snd_als300_gcr_read_14801 ++bcma_scan_read32_14802 bcma_scan_read32 0 14802 NULL ++do_tune_cpucache_14828 do_tune_cpucache 2 14828 NULL ++__mutex_fastpath_lock_retval_14844 __mutex_fastpath_lock_retval 0 14844 NULL +lcd_write_14857 lcd_write 3 14857 NULL nohasharray +__krealloc_14857 __krealloc 2 14857 &lcd_write_14857 -+_create_sg_bios_31244 _create_sg_bios 4 31244 NULL +get_user_cpu_mask_14861 get_user_cpu_mask 2 14861 NULL -+kvm_pv_mmu_write_47630 kvm_pv_mmu_write 2 47630 NULL -+kmemdup_64015 kmemdup 2 64015 NULL -+ivtv_serialized_ioctl_47632 ivtv_serialized_ioctl 3 47632 NULL -+kmalloc_section_memmap_46168 kmalloc_section_memmap 3 46168 NULL -+reiserfs_add_entry_23062 reiserfs_add_entry 4 23062 NULL nohasharray -+unix_seqpacket_recvmsg_23062 unix_seqpacket_recvmsg 4 23062 &reiserfs_add_entry_23062 -+process_rcvd_data_6679 process_rcvd_data 3 6679 NULL -+ieee80211_if_read_last_beacon_31257 ieee80211_if_read_last_beacon 3 31257 NULL -+sb16_copy_from_user_55836 sb16_copy_from_user 10-7-6 55836 NULL -+frequency_read_64031 frequency_read 3 64031 NULL nohasharray -+resize_async_buffer_64031 resize_async_buffer 4 64031 &frequency_read_64031 -+sys_semop_39457 sys_semop 3 39457 NULL -+xfs_da_buf_make_55845 xfs_da_buf_make 1 55845 NULL -+ceph_copy_page_vector_to_user_31270 ceph_copy_page_vector_to_user 4-3 31270 NULL -+set_fd_set_35249 set_fd_set 1 35249 NULL -+ieee80211_if_read_dot11MeshMaxRetries_12756 ieee80211_if_read_dot11MeshMaxRetries 3 12756 NULL -+ps_pspoll_max_apturn_read_6699 ps_pspoll_max_apturn_read 3 6699 NULL ++sriov_enable_migration_14889 sriov_enable_migration 2 14889 NULL ++acpi_os_allocate_14892 acpi_os_allocate 1 14892 NULL ++ubi_leb_change_14899 ubi_leb_change 4 14899 NULL ++krealloc_14908 krealloc 2 14908 NULL ++__arch_hweight64_14923 __arch_hweight64 0 14923 NULL ++store_sys_wmi_14934 store_sys_wmi 4 14934 NULL ++ocfs2_expand_nonsparse_inode_14936 ocfs2_expand_nonsparse_inode 3-4 14936 NULL ++queue_cnt_14951 queue_cnt 0 14951 NULL ++videobuf_read_stream_14956 videobuf_read_stream 3 14956 NULL ++help_14971 help 4 14971 NULL ++mce_flush_rx_buffer_14976 mce_flush_rx_buffer 2 14976 NULL ++setkey_14987 setkey 3 14987 NULL ++store_touchpad_15003 store_touchpad 4 15003 NULL ++vmap_15025 vmap 2 15025 NULL ++blk_integrity_tuple_size_15027 blk_integrity_tuple_size 0 15027 NULL ++irq_get_next_irq_15053 irq_get_next_irq 1 15053 NULL ++store_lslvl_15059 store_lslvl 4 15059 NULL ++nfs4_write_cached_acl_15070 nfs4_write_cached_acl 4 15070 NULL ++ntfs_copy_from_user_15072 ntfs_copy_from_user 3-5 15072 NULL ++ubifs_write_node_15088 ubifs_write_node 5-3 15088 NULL ++hex_dump_to_buffer_15121 hex_dump_to_buffer 6 15121 NULL ++start_port_15124 start_port 0 15124 NULL ++memchr_15126 memchr 0 15126 NULL ++ipwireless_ppp_mru_15153 ipwireless_ppp_mru 0 15153 NULL ++iscsi_create_endpoint_15193 iscsi_create_endpoint 1 15193 NULL ++reserve_resources_15194 reserve_resources 3 15194 NULL ++bfad_debugfs_write_regrd_15218 bfad_debugfs_write_regrd 3 15218 NULL ++udf_bitmap_new_block_15230 udf_bitmap_new_block 5 15230 NULL ++variax_alloc_sysex_buffer_15237 variax_alloc_sysex_buffer 3 15237 NULL ++compat_raw_ioctl_15290 compat_raw_ioctl 3 15290 NULL ++sys_connect_15291 sys_connect 3 15291 NULL nohasharray ++xlate_dev_mem_ptr_15291 xlate_dev_mem_ptr 1 15291 &sys_connect_15291 ++arch_enable_uv_irq_15294 arch_enable_uv_irq 2 15294 NULL ++acpi_ev_create_gpe_block_15297 acpi_ev_create_gpe_block 5 15297 NULL ++tpm_tis_init_15304 tpm_tis_init 2-3 15304 NULL ++__ocfs2_remove_xattr_range_15330 __ocfs2_remove_xattr_range 4-5-3 15330 NULL ++ioread16_15342 ioread16 0 15342 NULL ++alloc_ring_15345 alloc_ring 2-4 15345 NULL ++acpi_ut_create_string_object_15360 acpi_ut_create_string_object 1 15360 NULL ++compat_sys_process_vm_readv_15374 compat_sys_process_vm_readv 3-5 15374 NULL ++fq_codel_zalloc_15378 fq_codel_zalloc 1 15378 NULL ++domain_flush_pages_15379 domain_flush_pages 2-3 15379 NULL ++alloc_fddidev_15382 alloc_fddidev 1 15382 NULL ++btrfs_level_size_15392 btrfs_level_size 0 15392 NULL ++get_modalias_15406 get_modalias 2 15406 NULL ++__videobuf_copy_to_user_15423 __videobuf_copy_to_user 4 15423 NULL ++tcp_mtu_to_mss_15438 tcp_mtu_to_mss 0-2 15438 NULL ++hpsa_change_queue_depth_15449 hpsa_change_queue_depth 2 15449 NULL ++vmalloc_15464 vmalloc 1 15464 NULL ++zd_chip_is_zd1211b_15518 zd_chip_is_zd1211b 0 15518 NULL ++p9_check_zc_errors_15534 p9_check_zc_errors 4 15534 NULL ++ql_process_mac_rx_page_15543 ql_process_mac_rx_page 4 15543 NULL ++persistent_status_15574 persistent_status 4 15574 NULL ++bnx2fc_process_unsol_compl_15576 bnx2fc_process_unsol_compl 2 15576 NULL ++vme_user_write_15587 vme_user_write 3 15587 NULL ++ocfs2_truncate_rec_15595 ocfs2_truncate_rec 7 15595 NULL ++get_event_length_15598 get_event_length 0 15598 NULL ++sx150x_install_irq_chip_15609 sx150x_install_irq_chip 3 15609 NULL ++iommu_device_max_index_15620 iommu_device_max_index 0-3-2-1 15620 NULL nohasharray ++compat_fillonedir_15620 compat_fillonedir 3 15620 &iommu_device_max_index_15620 ++proc_loginuid_read_15631 proc_loginuid_read 3 15631 NULL ++tomoyo_scan_bprm_15642 tomoyo_scan_bprm 2-4 15642 NULL ++xsd_read_15653 xsd_read 3 15653 NULL ++compat_sys_fcntl_15654 compat_sys_fcntl 3 15654 NULL ++unix_bind_15668 unix_bind 3 15668 NULL ++dm_read_15674 dm_read 3 15674 NULL ++ocfs2_split_tree_15716 ocfs2_split_tree 5 15716 NULL ++HiSax_readstatus_15752 HiSax_readstatus 2 15752 NULL ++sk_wmem_schedule_15759 sk_wmem_schedule 2 15759 NULL ++bitmap_search_next_usable_block_15762 bitmap_search_next_usable_block 3-1 15762 NULL ++do_test_15766 do_test 1 15766 NULL ++smk_read_direct_15803 smk_read_direct 3 15803 NULL ++snd_pcm_ioctl_compat_15804 snd_pcm_ioctl_compat 3 15804 NULL ++gx1_read_conf_reg_15817 gx1_read_conf_reg 0 15817 NULL nohasharray ++gnttab_expand_15817 gnttab_expand 1 15817 &gx1_read_conf_reg_15817 ++afs_proc_rootcell_write_15822 afs_proc_rootcell_write 3 15822 NULL nohasharray ++random_N_15822 random_N 1 15822 &afs_proc_rootcell_write_15822 ++table_size_15851 table_size 0-1-2 15851 NULL ++ubi_io_write_15870 ubi_io_write 5-4 15870 NULL nohasharray ++media_entity_init_15870 media_entity_init 2-4 15870 &ubi_io_write_15870 ++__mptctl_ioctl_15875 __mptctl_ioctl 2 15875 NULL ++nfs_map_group_to_gid_15892 nfs_map_group_to_gid 3 15892 NULL ++native_read_msr_15905 native_read_msr 0 15905 NULL ++parse_audio_stream_data_15937 parse_audio_stream_data 3 15937 NULL ++power_read_15939 power_read 3 15939 NULL ++lpfc_idiag_drbacc_read_15948 lpfc_idiag_drbacc_read 3 15948 NULL ++snd_pcm_lib_read_transfer_15952 snd_pcm_lib_read_transfer 4-2-5 15952 NULL ++process_vm_rw_pages_15954 process_vm_rw_pages 6-5 15954 NULL ++remap_pci_mem_15966 remap_pci_mem 1-2 15966 NULL ++frame_alloc_15981 frame_alloc 4 15981 NULL ++alloc_vm_area_15989 alloc_vm_area 1 15989 NULL ++get_entry_16003 get_entry 4 16003 NULL ++hdpvr_register_videodev_16010 hdpvr_register_videodev 3 16010 NULL ++viafb_vt1636_proc_write_16018 viafb_vt1636_proc_write 3 16018 NULL ++isr_tx_exch_complete_read_16103 isr_tx_exch_complete_read 3 16103 NULL ++dma_tx_requested_read_16110 dma_tx_requested_read 3 16110 NULL nohasharray ++isr_hw_pm_mode_changes_read_16110 isr_hw_pm_mode_changes_read 3 16110 &dma_tx_requested_read_16110 ++irq_set_chip_and_handler_name_16111 irq_set_chip_and_handler_name 1 16111 NULL ++snd_dma_pointer_16126 snd_dma_pointer 0-2 16126 NULL ++compat_sys_select_16131 compat_sys_select 1 16131 NULL ++fsm_init_16134 fsm_init 2 16134 NULL ++ext4_xattr_block_get_16148 ext4_xattr_block_get 0 16148 NULL ++bnx2i_get_cid_num_16166 bnx2i_get_cid_num 0 16166 NULL ++cipso_v4_map_cat_rng_hton_16203 cipso_v4_map_cat_rng_hton 0 16203 NULL ++create_table_16213 create_table 2 16213 NULL ++atomic_read_file_16227 atomic_read_file 3 16227 NULL ++BcmGetSectionValStartOffset_16235 BcmGetSectionValStartOffset 0 16235 NULL ++btrfs_dev_extent_chunk_offset_16247 btrfs_dev_extent_chunk_offset 0 16247 NULL ++mark_written_sectors_16262 mark_written_sectors 2 16262 NULL ++reiserfs_acl_count_16265 reiserfs_acl_count 0-1 16265 NULL ++ocfs2_xattr_bucket_value_truncate_16279 ocfs2_xattr_bucket_value_truncate 4 16279 NULL ++drbd_setsockopt_16280 drbd_setsockopt 5 16280 NULL nohasharray ++nand_bch_init_16280 nand_bch_init 3-2 16280 &drbd_setsockopt_16280 ++account_16283 account 0-2-4 16283 NULL ++stk_allocate_buffers_16291 stk_allocate_buffers 2 16291 NULL ++rsc_mgr_init_16299 rsc_mgr_init 3 16299 NULL ++vmw_cursor_update_image_16332 vmw_cursor_update_image 3-4 16332 NULL ++total_ps_buffered_read_16365 total_ps_buffered_read 3 16365 NULL ++iscsi_tcp_conn_setup_16376 iscsi_tcp_conn_setup 2 16376 NULL ++nl80211_send_unprot_deauth_16378 nl80211_send_unprot_deauth 4 16378 NULL ++alloc_trdev_16399 alloc_trdev 1 16399 NULL ++diva_os_malloc_16406 diva_os_malloc 2 16406 NULL ++ieee80211_if_read_tsf_16420 ieee80211_if_read_tsf 3 16420 NULL ++rxrpc_server_keyring_16431 rxrpc_server_keyring 3 16431 NULL ++netlink_change_ngroups_16457 netlink_change_ngroups 2 16457 NULL ++tracing_readme_read_16493 tracing_readme_read 3 16493 NULL ++snd_interval_max_16529 snd_interval_max 0 16529 NULL ++lpfc_debugfs_read_16566 lpfc_debugfs_read 3 16566 NULL ++agp_allocate_memory_wrap_16576 agp_allocate_memory_wrap 1 16576 NULL ++dlm_new_lockspace_16688 dlm_new_lockspace 2 16688 NULL ++calc_layout_16690 calc_layout 4 16690 NULL ++em28xx_v4l2_read_16701 em28xx_v4l2_read 3 16701 NULL ++arcmsr_adjust_disk_queue_depth_16756 arcmsr_adjust_disk_queue_depth 2 16756 NULL ++compat_blkdev_driver_ioctl_16769 compat_blkdev_driver_ioctl 4 16769 NULL ++blk_rq_map_user_iov_16772 blk_rq_map_user_iov 5 16772 NULL ++i2o_parm_issue_16790 i2o_parm_issue 0 16790 NULL ++get_server_iovec_16804 get_server_iovec 2 16804 NULL ++tipc_send2name_16809 tipc_send2name 6 16809 NULL ++dm_vcalloc_16814 dm_vcalloc 1-2 16814 NULL ++mled_proc_write_16831 mled_proc_write 3 16831 NULL nohasharray ++drm_malloc_ab_16831 drm_malloc_ab 1-2 16831 &mled_proc_write_16831 ++scsi_mode_sense_16835 scsi_mode_sense 5 16835 NULL ++avc_has_perm_noaudit_16837 avc_has_perm_noaudit 3 16837 NULL ++hfsplus_min_io_size_16859 hfsplus_min_io_size 0 16859 NULL ++alloc_idx_lebs_16872 alloc_idx_lebs 2 16872 NULL ++carl9170_debugfs_ampdu_state_read_16873 carl9170_debugfs_ampdu_state_read 3 16873 NULL ++st_write_16874 st_write 3 16874 NULL ++__kfifo_peek_n_16877 __kfifo_peek_n 0 16877 NULL ++edac_align_ptr_16901 edac_align_ptr 0-2 16901 NULL ++mwifiex_update_curr_bss_params_16908 mwifiex_update_curr_bss_params 5 16908 NULL ++ivtv_v4l2_ioctl_16915 ivtv_v4l2_ioctl 2 16915 NULL ++psb_unlocked_ioctl_16926 psb_unlocked_ioctl 2 16926 NULL nohasharray ++snd_gf1_mem_proc_dump_16926 snd_gf1_mem_proc_dump 5 16926 &psb_unlocked_ioctl_16926 ++random32_16937 random32 0 16937 NULL ++_sp2d_alloc_16944 _sp2d_alloc 1-2-3 16944 NULL ++squashfs_read_table_16945 squashfs_read_table 3 16945 NULL ++cfg80211_send_unprot_disassoc_16951 cfg80211_send_unprot_disassoc 3 16951 NULL ++keyctl_instantiate_key_iov_16969 keyctl_instantiate_key_iov 3 16969 NULL ++ceph_read_dir_17005 ceph_read_dir 3 17005 NULL ++copy_counters_to_user_17027 copy_counters_to_user 5 17027 NULL nohasharray ++iwm_if_alloc_17027 iwm_if_alloc 1 17027 ©_counters_to_user_17027 ++jffs2_trusted_setxattr_17048 jffs2_trusted_setxattr 4 17048 NULL ++__arch_hweight32_17060 __arch_hweight32 0 17060 NULL ++dvb_dvr_read_17073 dvb_dvr_read 3 17073 NULL ++simple_transaction_read_17076 simple_transaction_read 3 17076 NULL ++carl9170_debugfs_mem_usage_read_17084 carl9170_debugfs_mem_usage_read 3 17084 NULL ++mac_address_string_17091 mac_address_string 0 17091 NULL ++entry_length_17093 entry_length 0 17093 NULL ++sys_preadv_17100 sys_preadv 3 17100 NULL ++pvr2_hdw_state_report_17121 pvr2_hdw_state_report 3 17121 NULL ++mwifiex_get_common_rates_17131 mwifiex_get_common_rates 3 17131 NULL ++befs_nls2utf_17163 befs_nls2utf 3 17163 NULL ++pm860x_page_bulk_read_17174 pm860x_page_bulk_read 3 17174 NULL ++access_remote_vm_17189 access_remote_vm 0-2-4 17189 NULL ++driver_state_read_17194 driver_state_read 3 17194 NULL nohasharray ++iscsit_find_cmd_from_itt_or_dump_17194 iscsit_find_cmd_from_itt_or_dump 3 17194 &driver_state_read_17194 ++dn_recvmsg_17213 dn_recvmsg 4 17213 NULL ++ms_rw_17220 ms_rw 3-4 17220 NULL ++alloc_ep_17269 alloc_ep 1 17269 NULL ++pg_read_17276 pg_read 3 17276 NULL ++raw_recvmsg_17277 raw_recvmsg 4 17277 NULL ++neigh_hash_grow_17283 neigh_hash_grow 2 17283 NULL ++minstrel_stats_read_17290 minstrel_stats_read 3 17290 NULL ++qla4_8xxx_pci_mem_read_direct_17301 qla4_8xxx_pci_mem_read_direct 2 17301 NULL ++skb_pad_17302 skb_pad 2 17302 NULL ++mb_cache_create_17307 mb_cache_create 2 17307 NULL ++iwm_umac_set_config_var_17320 iwm_umac_set_config_var 4 17320 NULL ++ata_host_alloc_pinfo_17325 ata_host_alloc_pinfo 3 17325 NULL ++lpfc_debugfs_dif_err_write_17424 lpfc_debugfs_dif_err_write 3 17424 NULL ++sta_connected_time_read_17435 sta_connected_time_read 3 17435 NULL ++nla_get_u32_17455 nla_get_u32 0 17455 NULL ++__ref_totlen_17461 __ref_totlen 0 17461 NULL ++compat_cmd_17465 compat_cmd 2 17465 NULL ++probe_bios_17467 probe_bios 1 17467 NULL ++TSS_rawhmac_17486 TSS_rawhmac 3 17486 NULL ++bitmap_pos_to_ord_17503 bitmap_pos_to_ord 3 17503 NULL ++restore_i387_fxsave_17528 restore_i387_fxsave 2 17528 NULL ++__cfg80211_roamed_17529 __cfg80211_roamed 5-7 17529 NULL ++__copy_to_user_17551 __copy_to_user 3 17551 NULL ++copy_from_user_17559 copy_from_user 3 17559 NULL ++acpi_ut_create_package_object_17594 acpi_ut_create_package_object 1 17594 NULL ++neigh_hash_alloc_17595 neigh_hash_alloc 1 17595 NULL ++rts51x_write_mem_17598 rts51x_write_mem 4 17598 NULL ++brcmf_process_nvram_vars_17601 brcmf_process_nvram_vars 0 17601 NULL nohasharray ++iwl_dump_nic_event_log_17601 iwl_dump_nic_event_log 0 17601 &brcmf_process_nvram_vars_17601 ++osst_execute_17607 osst_execute 7-6 17607 NULL ++ocfs2_mark_extent_written_17615 ocfs2_mark_extent_written 6 17615 NULL ++packet_setsockopt_17662 packet_setsockopt 5 17662 NULL nohasharray ++ubi_io_read_data_17662 ubi_io_read_data 0 17662 &packet_setsockopt_17662 ++pwr_enable_ps_read_17686 pwr_enable_ps_read 3 17686 NULL ++venus_rename_17707 venus_rename 5-4 17707 NULL ++multipath_status_17726 multipath_status 4 17726 NULL ++exofs_read_lookup_dev_table_17733 exofs_read_lookup_dev_table 3 17733 NULL ++sctpprobe_read_17741 sctpprobe_read 3 17741 NULL ++mark_unsafe_pages_17759 mark_unsafe_pages 0 17759 NULL ++_snd_pcm_lib_alloc_vmalloc_buffer_17820 _snd_pcm_lib_alloc_vmalloc_buffer 2 17820 NULL ++gnet_stats_copy_app_17821 gnet_stats_copy_app 3 17821 NULL ++cipso_v4_gentag_rbm_17836 cipso_v4_gentag_rbm 0 17836 NULL ++count_leafs_17842 count_leafs 0 17842 NULL ++sisusb_send_bulk_msg_17864 sisusb_send_bulk_msg 3 17864 NULL ++alloc_sja1000dev_17868 alloc_sja1000dev 1 17868 NULL ++ray_cs_essid_proc_write_17875 ray_cs_essid_proc_write 3 17875 NULL ++orinoco_set_key_17878 orinoco_set_key 5-7 17878 NULL ++init_per_cpu_17880 init_per_cpu 1 17880 NULL ++ieee80211_if_fmt_dot11MeshMaxPeerLinks_17883 ieee80211_if_fmt_dot11MeshMaxPeerLinks 3 17883 NULL ++compat_sys_pwritev_17886 compat_sys_pwritev 3 17886 NULL ++ieee80211_if_fmt_dot11MeshHWMPRootMode_17890 ieee80211_if_fmt_dot11MeshHWMPRootMode 3 17890 NULL ++ocfs2_clusters_to_blocks_17896 ocfs2_clusters_to_blocks 0-2 17896 NULL ++recover_head_17904 recover_head 3 17904 NULL ++dccp_feat_register_sp_17914 dccp_feat_register_sp 5 17914 NULL ++xfs_buf_associate_memory_17915 xfs_buf_associate_memory 3 17915 NULL ++srp_iu_pool_alloc_17920 srp_iu_pool_alloc 2 17920 NULL ++scsi_bufflen_17933 scsi_bufflen 0 17933 NULL ++ufs_free_blocks_17963 ufs_free_blocks 2-3 17963 NULL ++calc_nr_buckets_17976 calc_nr_buckets 0 17976 NULL ++smk_write_cipso_17989 smk_write_cipso 3 17989 NULL ++gnttab_max_grant_frames_17993 gnttab_max_grant_frames 0 17993 NULL ++ext4_num_overhead_clusters_18001 ext4_num_overhead_clusters 2 18001 NULL ++pvr2_v4l2_read_18006 pvr2_v4l2_read 3 18006 NULL ++prandom32_18007 prandom32 0 18007 NULL ++alloc_rx_desc_ring_18016 alloc_rx_desc_ring 2 18016 NULL ++fill_read_18019 fill_read 0 18019 NULL ++o2hb_highest_node_18034 o2hb_highest_node 2 18034 NULL ++cryptd_alloc_instance_18048 cryptd_alloc_instance 2-3 18048 NULL ++ddebug_proc_write_18055 ddebug_proc_write 3 18055 NULL ++kvm_read_guest_page_18074 kvm_read_guest_page 5 18074 NULL ++get_vm_area_18080 get_vm_area 1 18080 NULL ++netlink_kernel_create_18110 netlink_kernel_create 3 18110 NULL ++dfs_file_read_18116 dfs_file_read 3 18116 NULL ++svc_getnl_18120 svc_getnl 0 18120 NULL ++vmw_surface_dma_size_18132 vmw_surface_dma_size 0 18132 NULL ++selinux_inode_setsecurity_18148 selinux_inode_setsecurity 4 18148 NULL ++_has_tag_18169 _has_tag 2 18169 NULL ++pccard_store_cis_18176 pccard_store_cis 6 18176 NULL ++orinoco_add_extscan_result_18207 orinoco_add_extscan_result 3 18207 NULL ++gsm_control_message_18209 gsm_control_message 4 18209 NULL ++do_ipv6_setsockopt_18215 do_ipv6_setsockopt 5 18215 NULL ++koneplus_send_18226 koneplus_send 4 18226 NULL ++gnttab_alloc_grant_references_18240 gnttab_alloc_grant_references 1 18240 NULL ++snd_ctl_ioctl_compat_18250 snd_ctl_ioctl_compat 3 18250 NULL ++rfcomm_sock_setsockopt_18254 rfcomm_sock_setsockopt 5 18254 NULL ++qdisc_class_hash_alloc_18262 qdisc_class_hash_alloc 1 18262 NULL ++gfs2_alloc_sort_buffer_18275 gfs2_alloc_sort_buffer 1 18275 NULL ++alloc_ring_18278 alloc_ring 2-4 18278 NULL ++find_dirty_idx_leb_18280 find_dirty_idx_leb 0 18280 NULL ++mmc_send_bus_test_18285 mmc_send_bus_test 4 18285 NULL ++um_idi_write_18293 um_idi_write 3 18293 NULL ++ip6ip6_err_18308 ip6ip6_err 5 18308 NULL ++vga_r_18310 vga_r 0 18310 NULL ++ecryptfs_send_message_18322 ecryptfs_send_message 2 18322 NULL ++bio_integrity_advance_18324 bio_integrity_advance 2 18324 NULL ++lcd_proc_write_18351 lcd_proc_write 3 18351 NULL ++pwr_power_save_off_read_18355 pwr_power_save_off_read 3 18355 NULL ++xlbd_reserve_minors_18365 xlbd_reserve_minors 1-2 18365 NULL ++ep_io_18367 ep_io 0 18367 NULL ++__video_register_device_18399 __video_register_device 3 18399 NULL ++crystalhd_user_data_18407 crystalhd_user_data 3 18407 NULL ++snd_hda_get_connections_18437 snd_hda_get_connections 0 18437 NULL ++fuse_perform_write_18457 fuse_perform_write 4 18457 NULL ++regset_tls_set_18459 regset_tls_set 4 18459 NULL ++udpv6_setsockopt_18487 udpv6_setsockopt 5 18487 NULL ++snd_gus_dram_poke_18525 snd_gus_dram_poke 4 18525 NULL ++seq_copy_in_user_18543 seq_copy_in_user 3 18543 NULL ++acpi_register_gsi_ioapic_18550 acpi_register_gsi_ioapic 2 18550 NULL ++sas_change_queue_depth_18555 sas_change_queue_depth 2 18555 NULL ++debug_output_18575 debug_output 3 18575 NULL ++check_lpt_type_18577 check_lpt_type 0 18577 NULL ++__netdev_alloc_skb_18595 __netdev_alloc_skb 2 18595 NULL ++filemap_fdatawait_range_18600 filemap_fdatawait_range 0 18600 NULL nohasharray ++slabinfo_write_18600 slabinfo_write 3 18600 &filemap_fdatawait_range_18600 ++iowarrior_write_18604 iowarrior_write 3 18604 NULL ++from_buffer_18625 from_buffer 3 18625 NULL ++f1x_map_sysaddr_to_csrow_18628 f1x_map_sysaddr_to_csrow 2 18628 NULL ++cfg80211_send_rx_assoc_18638 cfg80211_send_rx_assoc 3 18638 NULL ++snd_pcm_oss_write3_18657 snd_pcm_oss_write3 0-3 18657 NULL ++unmap_page_18665 unmap_page 2-3 18665 NULL ++edge_tty_recv_18667 edge_tty_recv 4 18667 NULL nohasharray ++xfs_iext_insert_18667 xfs_iext_insert 3 18667 &edge_tty_recv_18667 ++replay_log_leb_18704 replay_log_leb 3 18704 NULL ++iwl_dbgfs_rx_handlers_read_18708 iwl_dbgfs_rx_handlers_read 3 18708 NULL ++ceph_alloc_page_vector_18710 ceph_alloc_page_vector 1 18710 NULL ++ocfs2_trim_extent_18711 ocfs2_trim_extent 4-3 18711 NULL ++blk_rq_bytes_18715 blk_rq_bytes 0 18715 NULL ++snd_als4k_gcr_read_addr_18741 snd_als4k_gcr_read_addr 0 18741 NULL ++o2hb_debug_create_18744 o2hb_debug_create 4 18744 NULL ++__erst_read_to_erange_from_nvram_18748 __erst_read_to_erange_from_nvram 0 18748 NULL ++wep_packets_read_18751 wep_packets_read 3 18751 NULL ++md_compat_ioctl_18764 md_compat_ioctl 4 18764 NULL ++read_file_dump_nfcal_18766 read_file_dump_nfcal 3 18766 NULL ++ffs_epfile_read_18775 ffs_epfile_read 3 18775 NULL ++alloc_fcdev_18780 alloc_fcdev 1 18780 NULL ++fat_compat_dir_ioctl_18800 fat_compat_dir_ioctl 3 18800 NULL ++__do_kmalloc_18808 __do_kmalloc 0 18808 NULL ++setup_ioapic_irq_18813 setup_ioapic_irq 1 18813 NULL ++iio_allocate_device_18821 iio_allocate_device 1 18821 NULL ++sys_modify_ldt_18824 sys_modify_ldt 3 18824 NULL ++thin_status_18830 thin_status 4 18830 NULL ++mtf_test_write_18844 mtf_test_write 3 18844 NULL ++drm_ht_create_18853 drm_ht_create 2 18853 NULL ++sctp_setsockopt_events_18862 sctp_setsockopt_events 3 18862 NULL ++ieee80211_if_read_element_ttl_18869 ieee80211_if_read_element_ttl 3 18869 NULL ++xlog_find_verify_log_record_18870 xlog_find_verify_log_record 2 18870 NULL ++width_to_agaw_18883 width_to_agaw 0-1 18883 NULL ++ceph_setxattr_18913 ceph_setxattr 4 18913 NULL ++snapshot_write_next_18937 snapshot_write_next 0 18937 NULL ++__nla_reserve_18974 __nla_reserve 3 18974 NULL ++alc_auto_create_extra_outs_18975 alc_auto_create_extra_outs 2 18975 NULL ++find_dirtiest_idx_leb_19001 find_dirtiest_idx_leb 0 19001 NULL ++layout_in_gaps_19006 layout_in_gaps 2 19006 NULL ++huge_page_size_19008 huge_page_size 0 19008 NULL ++usbdev_compat_ioctl_19026 usbdev_compat_ioctl 3 19026 NULL ++prepare_highmem_image_19028 prepare_highmem_image 0 19028 NULL ++revalidate_19043 revalidate 2 19043 NULL ++drm_fb_helper_init_19044 drm_fb_helper_init 3-4 19044 NULL ++create_gpadl_header_19064 create_gpadl_header 2 19064 NULL ++ieee80211_key_alloc_19065 ieee80211_key_alloc 3 19065 NULL ++alloc_pbl_19075 alloc_pbl 2 19075 NULL ++au_procfs_plm_write_19086 au_procfs_plm_write 3 19086 NULL ++copy_and_check_19089 copy_and_check 3 19089 NULL ++sys_process_vm_readv_19090 sys_process_vm_readv 3-5 19090 NULL ++sta_last_seq_ctrl_read_19106 sta_last_seq_ctrl_read 3 19106 NULL ++cifs_readv_from_socket_19109 cifs_readv_from_socket 3 19109 NULL ++skb_gro_offset_19123 skb_gro_offset 0 19123 NULL ++ext4_inode_table_19125 ext4_inode_table 0 19125 NULL ++snd_als4k_iobase_readl_19136 snd_als4k_iobase_readl 0 19136 NULL ++alloc_irdadev_19140 alloc_irdadev 1 19140 NULL ++iwl_dbgfs_reply_tx_error_read_19205 iwl_dbgfs_reply_tx_error_read 3 19205 NULL ++vmw_unlocked_ioctl_19212 vmw_unlocked_ioctl 2 19212 NULL ++__copy_to_user_inatomic_19214 __copy_to_user_inatomic 3 19214 NULL ++dev_counters_read_19216 dev_counters_read 3 19216 NULL ++gsi_to_irq_19220 gsi_to_irq 0-1 19220 NULL ++snd_mask_max_19224 snd_mask_max 0 19224 NULL ++sys_fcntl_19267 sys_fcntl 3 19267 NULL ++io_mapping_map_wc_19284 io_mapping_map_wc 2 19284 NULL ++____cache_alloc_node_19297 ____cache_alloc_node 0 19297 NULL ++qc_capture_19298 qc_capture 3 19298 NULL ++ocfs2_prepare_inode_for_refcount_19303 ocfs2_prepare_inode_for_refcount 3-4 19303 NULL ++event_tx_stuck_read_19305 event_tx_stuck_read 3 19305 NULL ++debug_read_19322 debug_read 3 19322 NULL ++cfg80211_inform_bss_19332 cfg80211_inform_bss 8 19332 NULL ++read_zero_19366 read_zero 3 19366 NULL ++interpret_user_input_19393 interpret_user_input 2 19393 NULL ++get_n_events_by_type_19401 get_n_events_by_type 0 19401 NULL ++dvbdmx_write_19423 dvbdmx_write 3 19423 NULL ++__phys_addr_19434 __phys_addr 0 19434 NULL ++xfrm_alg_auth_len_19454 xfrm_alg_auth_len 0 19454 NULL ++hpet_compat_ioctl_19455 hpet_compat_ioctl 3 19455 NULL ++gnet_stats_copy_19458 gnet_stats_copy 4 19458 NULL ++sky2_read16_19475 sky2_read16 0 19475 NULL ++efivar_create_sysfs_entry_19485 efivar_create_sysfs_entry 2 19485 NULL ++v4l2_event_subscribe_19510 v4l2_event_subscribe 3 19510 NULL ++skb_realloc_headroom_19516 skb_realloc_headroom 2 19516 NULL ++ocfs2_control_message_19564 ocfs2_control_message 3 19564 NULL ++ieee80211_if_read_tkip_mic_test_19565 ieee80211_if_read_tkip_mic_test 3 19565 NULL ++nfsd_read_19568 nfsd_read 5 19568 NULL ++cgroup_read_s64_19570 cgroup_read_s64 5 19570 NULL ++bm_status_read_19583 bm_status_read 3 19583 NULL ++load_xattr_datum_19594 load_xattr_datum 0 19594 NULL ++alloc_coherent_19649 alloc_coherent 2 19649 NULL ++usbvision_rvmalloc_19655 usbvision_rvmalloc 1 19655 NULL ++LoadBitmap_19658 LoadBitmap 2 19658 NULL ++rbd_snap_add_19678 rbd_snap_add 4 19678 NULL ++au_ibusy_compat_ioctl_19723 au_ibusy_compat_ioctl 2 19723 NULL nohasharray ++read_reg_19723 read_reg 0 19723 &au_ibusy_compat_ioctl_19723 ++memcpy_toiovecend_19736 memcpy_toiovecend 4-3 19736 NULL ++snd_es1968_get_dma_ptr_19747 snd_es1968_get_dma_ptr 0 19747 NULL ++p9_client_read_19750 p9_client_read 5 19750 NULL ++pnpbios_proc_write_19758 pnpbios_proc_write 3 19758 NULL ++jffs2_acl_from_medium_19762 jffs2_acl_from_medium 2 19762 NULL ++slow_kernel_write_19764 slow_kernel_write 2 19764 NULL ++__set_print_fmt_19776 __set_print_fmt 0 19776 NULL ++saa7146_vmalloc_build_pgtable_19780 saa7146_vmalloc_build_pgtable 2 19780 NULL ++irda_setsockopt_19824 irda_setsockopt 5 19824 NULL ++ubi_eba_write_leb_19826 ubi_eba_write_leb 5-6 19826 NULL ++pcpu_next_unpop_19831 pcpu_next_unpop 4 19831 NULL ++vfs_getxattr_19832 vfs_getxattr 0 19832 NULL ++security_context_to_sid_19839 security_context_to_sid 2 19839 NULL ++cfg80211_mlme_register_mgmt_19852 cfg80211_mlme_register_mgmt 5 19852 NULL ++__nla_put_19857 __nla_put 3 19857 NULL ++aes_decrypt_interrupt_read_19910 aes_decrypt_interrupt_read 3 19910 NULL ++ps_upsd_max_apturn_read_19918 ps_upsd_max_apturn_read 3 19918 NULL ++cgroup_task_count_19930 cgroup_task_count 0 19930 NULL ++iwl_dbgfs_rx_queue_read_19943 iwl_dbgfs_rx_queue_read 3 19943 NULL ++dbg_leb_change_19969 dbg_leb_change 4 19969 NULL ++attach_hdlc_protocol_19986 attach_hdlc_protocol 3 19986 NULL ++diva_um_idi_read_20003 diva_um_idi_read 0 20003 NULL ++alloc_ieee80211_20063 alloc_ieee80211 1 20063 NULL ++rawv6_sendmsg_20080 rawv6_sendmsg 4 20080 NULL ++fuse_conn_limit_read_20084 fuse_conn_limit_read 3 20084 NULL ++qla2x00_adjust_sdev_qdepth_up_20097 qla2x00_adjust_sdev_qdepth_up 2 20097 NULL ++hptiop_adjust_disk_queue_depth_20122 hptiop_adjust_disk_queue_depth 2 20122 NULL ++tomoyo_commit_ok_20167 tomoyo_commit_ok 2 20167 NULL ++read_flush_pipefs_20171 read_flush_pipefs 3 20171 NULL ++wep_addr_key_count_read_20174 wep_addr_key_count_read 3 20174 NULL ++create_trace_probe_20175 create_trace_probe 1 20175 NULL ++pvr2_ctrl_value_to_sym_20229 pvr2_ctrl_value_to_sym 5 20229 NULL ++rose_sendmsg_20249 rose_sendmsg 4 20249 NULL ++tm6000_i2c_send_regs_20250 tm6000_i2c_send_regs 5 20250 NULL ++pcpu_alloc_20255 pcpu_alloc 1-2 20255 NULL ++resource_size_20256 resource_size 0 20256 NULL ++snd_cs4281_BA1_read_20323 snd_cs4281_BA1_read 5 20323 NULL ++gfs2_glock_nq_m_20347 gfs2_glock_nq_m 1 20347 NULL ++qla82xx_pci_mem_read_direct_20368 qla82xx_pci_mem_read_direct 2 20368 NULL ++u64_to_uptr_20384 u64_to_uptr 1 20384 NULL ++snd_nm256_readl_20394 snd_nm256_readl 0 20394 NULL ++__kfifo_from_user_20399 __kfifo_from_user 3 20399 NULL ++interface_rx_20404 interface_rx 4 20404 NULL ++au_di_realloc_20412 au_di_realloc 2 20412 NULL ++nfs3_setxattr_20458 nfs3_setxattr 4 20458 NULL ++ip_vs_icmp_xmit_v6_20464 ip_vs_icmp_xmit_v6 4 20464 NULL ++compat_ipv6_setsockopt_20468 compat_ipv6_setsockopt 5 20468 NULL ++read_buf_20469 read_buf 2 20469 NULL ++dbg_leb_write_20478 dbg_leb_write 4-5 20478 NULL ++fast_user_write_20494 fast_user_write 5 20494 NULL ++ocfs2_db_frozen_trigger_20503 ocfs2_db_frozen_trigger 4 20503 NULL nohasharray ++hidraw_report_event_20503 hidraw_report_event 3 20503 &ocfs2_db_frozen_trigger_20503 ++pcpu_alloc_area_20511 pcpu_alloc_area 0-3 20511 NULL ++pcpu_depopulate_chunk_20517 pcpu_depopulate_chunk 2-3 20517 NULL ++xfs_iext_realloc_direct_20521 xfs_iext_realloc_direct 2 20521 NULL ++drbd_bm_resize_20522 drbd_bm_resize 2 20522 NULL ++amd_create_gatt_pages_20537 amd_create_gatt_pages 1 20537 NULL ++venus_create_20555 venus_create 4 20555 NULL ++crypto_ahash_reqsize_20569 crypto_ahash_reqsize 0 20569 NULL ++i915_max_freq_read_20581 i915_max_freq_read 3 20581 NULL ++lirc_write_20604 lirc_write 3 20604 NULL ++qib_qsfp_write_20614 qib_qsfp_write 0-4-2 20614 NULL ++regcache_lzo_block_count_20628 regcache_lzo_block_count 0 20628 NULL ++snd_pcm_oss_prepare_20641 snd_pcm_oss_prepare 0 20641 NULL ++kfifo_copy_to_user_20646 kfifo_copy_to_user 3 20646 NULL ++cpulist_scnprintf_20648 cpulist_scnprintf 0-2 20648 NULL ++__cache_alloc_20649 __cache_alloc 0 20649 NULL ++ceph_osdc_new_request_20654 ceph_osdc_new_request 15-4 20654 NULL ++snd_hdsp_playback_copy_20676 snd_hdsp_playback_copy 5 20676 NULL ++qla4_8xxx_pci_mem_read_2M_20680 qla4_8xxx_pci_mem_read_2M 2 20680 NULL ++dvb_dmxdev_buffer_read_20682 dvb_dmxdev_buffer_read 0-4 20682 NULL ++cpumask_size_20683 cpumask_size 0 20683 NULL ++read_file_tgt_int_stats_20697 read_file_tgt_int_stats 3 20697 NULL ++__maestro_read_20700 __maestro_read 0 20700 NULL ++cipso_v4_gentag_rng_20703 cipso_v4_gentag_rng 0 20703 NULL ++pcpu_page_first_chunk_20712 pcpu_page_first_chunk 1 20712 NULL ++ocfs2_read_xattr_bucket_20722 ocfs2_read_xattr_bucket 0 20722 NULL ++security_context_to_sid_force_20724 security_context_to_sid_force 2 20724 NULL ++vring_add_indirect_20737 vring_add_indirect 3-4 20737 NULL ++io_apic_set_pci_routing_20740 io_apic_set_pci_routing 2 20740 NULL ++vol_cdev_direct_write_20751 vol_cdev_direct_write 3 20751 NULL ++ocfs2_align_bytes_to_clusters_20754 ocfs2_align_bytes_to_clusters 2 20754 NULL ++ubi_io_read_20767 ubi_io_read 0 20767 NULL ++fb_alloc_cmap_gfp_20792 fb_alloc_cmap_gfp 2 20792 NULL ++iommu_range_alloc_20794 iommu_range_alloc 3 20794 NULL ++iwl_dbgfs_rxon_flags_read_20795 iwl_dbgfs_rxon_flags_read 3 20795 NULL ++sys_sendto_20809 sys_sendto 6 20809 NULL ++strndup_user_20819 strndup_user 2 20819 NULL ++iwl_legacy_dbgfs_qos_read_20825 iwl_legacy_dbgfs_qos_read 3 20825 NULL ++wl1271_format_buffer_20834 wl1271_format_buffer 2 20834 NULL ++uvc_alloc_entity_20836 uvc_alloc_entity 4-3 20836 NULL ++snd_pcm_capture_avail_20867 snd_pcm_capture_avail 0 20867 NULL ++ocfs2_bmap_20874 ocfs2_bmap 2 20874 NULL ++iwl3945_ucode_tx_stats_read_20879 iwl3945_ucode_tx_stats_read 3 20879 NULL ++sisusb_send_packet_20891 sisusb_send_packet 2 20891 NULL ++key_icverrors_read_20895 key_icverrors_read 3 20895 NULL ++compat_sys_readv_20911 compat_sys_readv 3 20911 NULL ++htable_bits_20933 htable_bits 0 20933 NULL ++altera_set_ir_post_20948 altera_set_ir_post 2 20948 NULL ++snd_rme9652_playback_copy_20970 snd_rme9652_playback_copy 5 20970 NULL ++alg_setsockopt_20985 alg_setsockopt 5 20985 NULL ++ocfs2_free_clusters_21001 ocfs2_free_clusters 4 21001 NULL ++btrfs_inode_ref_name_len_21024 btrfs_inode_ref_name_len 0 21024 NULL ++lbs_threshold_read_21046 lbs_threshold_read 5 21046 NULL ++proc_fault_inject_write_21058 proc_fault_inject_write 3 21058 NULL ++event_calibration_read_21083 event_calibration_read 3 21083 NULL ++compat_sock_ioctl_trans_21092 compat_sock_ioctl_trans 4 21092 NULL ++__cfg80211_send_disassoc_21096 __cfg80211_send_disassoc 3 21096 NULL ++ext2_valid_block_bitmap_21101 ext2_valid_block_bitmap 3 21101 NULL ++ath6kl_send_go_probe_resp_21113 ath6kl_send_go_probe_resp 3 21113 NULL ++i2400m_rx_trace_21127 i2400m_rx_trace 3 21127 NULL ++ocfs2_block_check_validate_21149 ocfs2_block_check_validate 2 21149 NULL ++setup_msi_irq_21169 setup_msi_irq 3 21169 NULL ++cx18_v4l2_read_21196 cx18_v4l2_read 3 21196 NULL ++ipc_rcu_alloc_21208 ipc_rcu_alloc 1 21208 NULL ++_ocfs2_free_clusters_21220 _ocfs2_free_clusters 4 21220 NULL ++get_numpages_21227 get_numpages 0-1-2 21227 NULL ++flex_array_get_21228 flex_array_get 2 21228 NULL ++input_ff_create_21240 input_ff_create 2 21240 NULL ++cfg80211_notify_new_peer_candidate_21242 cfg80211_notify_new_peer_candidate 4 21242 NULL ++ocfs2_blocks_for_bytes_21268 ocfs2_blocks_for_bytes 0-2 21268 NULL ++vmw_gmr2_bind_21305 vmw_gmr2_bind 3 21305 NULL ++store_bluetooth_21320 store_bluetooth 4 21320 NULL ++get_zeroed_page_21322 get_zeroed_page 0 21322 NULL ++ftrace_profile_read_21327 ftrace_profile_read 3 21327 NULL ++iwl_legacy_tx_queue_init_21332 iwl_legacy_tx_queue_init 3 21332 NULL ++gfs2_ea_get_copy_21353 gfs2_ea_get_copy 0 21353 NULL ++alloc_orinocodev_21371 alloc_orinocodev 1 21371 NULL ++video_ioctl2_21380 video_ioctl2 2 21380 NULL ++diva_get_driver_dbg_mask_21399 diva_get_driver_dbg_mask 0 21399 NULL ++snd_m3_inw_21406 snd_m3_inw 0 21406 NULL ++snapshot_read_next_21426 snapshot_read_next 0 21426 NULL ++tcp_bound_to_half_wnd_21429 tcp_bound_to_half_wnd 0-2 21429 NULL ++tracing_saved_cmdlines_read_21434 tracing_saved_cmdlines_read 3 21434 NULL ++concat_writev_21451 concat_writev 3 21451 NULL ++read_file_xmit_21487 read_file_xmit 3 21487 NULL ++mmc_alloc_sg_21504 mmc_alloc_sg 1 21504 NULL ++btrfs_file_aio_write_21520 btrfs_file_aio_write 4 21520 NULL ++cipso_v4_map_cat_enum_hton_21540 cipso_v4_map_cat_enum_hton 0 21540 NULL ++rxrpc_send_data_21553 rxrpc_send_data 5 21553 NULL ++ocfs2_acl_from_xattr_21604 ocfs2_acl_from_xattr 2 21604 NULL ++__jfs_getxattr_21631 __jfs_getxattr 0 21631 NULL ++validate_nnode_21638 validate_nnode 0 21638 NULL ++__irq_alloc_descs_21639 __irq_alloc_descs 2-1-3 21639 NULL ++hpet_setup_msi_irq_21662 hpet_setup_msi_irq 1 21662 NULL ++atalk_sendmsg_21677 atalk_sendmsg 4 21677 NULL ++ocfs2_xattr_get_nolock_21678 ocfs2_xattr_get_nolock 0 21678 NULL ++rtllib_alloc_txb_21687 rtllib_alloc_txb 1 21687 NULL ++evdev_ioctl_handler_21705 evdev_ioctl_handler 2 21705 NULL ++drm_sman_init_21710 drm_sman_init 2-4-3 21710 NULL ++reiserfs_allocate_list_bitmaps_21732 reiserfs_allocate_list_bitmaps 3 21732 NULL ++mthca_alloc_init_21754 mthca_alloc_init 2 21754 NULL ++gen_pool_add_21776 gen_pool_add 3 21776 NULL ++xfs_da_grow_inode_int_21785 xfs_da_grow_inode_int 3 21785 NULL ++kmalloc_order_trace_21788 kmalloc_order_trace 0-1 21788 NULL ++__ioremap_caller_21800 __ioremap_caller 1-2 21800 NULL ++dvb_generic_ioctl_21810 dvb_generic_ioctl 2 21810 NULL ++acpi_tb_check_xsdt_21862 acpi_tb_check_xsdt 1 21862 NULL ++lpfc_idiag_extacc_avail_get_21865 lpfc_idiag_extacc_avail_get 0-3 21865 NULL ++sisusbcon_bmove_21873 sisusbcon_bmove 6-5-7 21873 NULL nohasharray ++tcp_cookie_size_check_21873 tcp_cookie_size_check 0-1 21873 &sisusbcon_bmove_21873 ++security_compute_sid_21874 security_compute_sid 3 21874 NULL ++__alloc_reserved_percpu_21895 __alloc_reserved_percpu 1-2 21895 NULL ++dbAllocCtl_21911 dbAllocCtl 0 21911 NULL ++qsfp_1_read_21915 qsfp_1_read 3 21915 NULL ++rbd_req_read_21952 rbd_req_read 4-5 21952 NULL ++alloc_ldt_21972 alloc_ldt 2 21972 NULL ++rxpipe_descr_host_int_trig_rx_data_read_22001 rxpipe_descr_host_int_trig_rx_data_read 3 22001 NULL ++ti_recv_22027 ti_recv 4 22027 NULL ++zd_usb_read_fw_22049 zd_usb_read_fw 4 22049 NULL ++ieee80211_if_fmt_dropped_frames_ttl_22054 ieee80211_if_fmt_dropped_frames_ttl 3 22054 NULL ++btrfs_reloc_clone_csums_22077 btrfs_reloc_clone_csums 2 22077 NULL ++mem_rw_22085 mem_rw 3 22085 NULL ++sys_remap_file_pages_22124 sys_remap_file_pages 1 22124 NULL ++compat_insn_22142 compat_insn 2 22142 NULL ++__kfifo_alloc_22173 __kfifo_alloc 2-3 22173 NULL ++fls_22210 fls 0 22210 NULL nohasharray ++snd_soc_lzo_block_count_22210 snd_soc_lzo_block_count 0 22210 &fls_22210 ++bio_chain_clone_22227 bio_chain_clone 4 22227 NULL ++mem_write_22232 mem_write 3 22232 NULL ++p9_virtio_zc_request_22240 p9_virtio_zc_request 6-5 22240 NULL ++atomic64_xchg_22246 atomic64_xchg 0 22246 NULL ++compat_process_vm_rw_22254 compat_process_vm_rw 3-5 22254 NULL ++__btrfs_direct_write_22273 __btrfs_direct_write 4 22273 NULL ++index_to_obj_22280 index_to_obj 0-3 22280 NULL ++__tun_chr_ioctl_22300 __tun_chr_ioctl 4 22300 NULL ++mesh_table_alloc_22305 mesh_table_alloc 1 22305 NULL ++atomic_read_22342 atomic_read 0 22342 NULL ++mlx4_db_alloc_22358 mlx4_db_alloc 3 22358 NULL ++irq_reserve_irq_22360 irq_reserve_irq 1 22360 NULL ++snd_pcm_alsa_frames_22363 snd_pcm_alsa_frames 2 22363 NULL ++iwch_alloc_fast_reg_mr_22368 iwch_alloc_fast_reg_mr 2 22368 NULL ++evdev_ioctl_22371 evdev_ioctl 2 22371 NULL ++btmrvl_psmode_read_22395 btmrvl_psmode_read 3 22395 NULL ++alloc_private_22399 alloc_private 2 22399 NULL nohasharray ++ubifs_leb_change_22399 ubifs_leb_change 4 22399 &alloc_private_22399 ++zoran_write_22404 zoran_write 3 22404 NULL ++queue_reply_22416 queue_reply 3 22416 NULL ++__set_enter_print_fmt_22431 __set_enter_print_fmt 0 22431 NULL ++queue_max_segments_22441 queue_max_segments 0 22441 NULL ++handle_received_packet_22457 handle_received_packet 3 22457 NULL ++cache_write_procfs_22491 cache_write_procfs 3 22491 NULL ++mp_find_ioapic_pin_22499 mp_find_ioapic_pin 0-2 22499 NULL ++mutex_lock_interruptible_22505 mutex_lock_interruptible 0 22505 NULL ++ip4_addr_string_22511 ip4_addr_string 0 22511 NULL ++pskb_may_pull_22546 pskb_may_pull 2 22546 NULL ++ocfs2_read_extent_block_22550 ocfs2_read_extent_block 0 22550 NULL ++atomic_long_read_unchecked_22551 atomic_long_read_unchecked 0 22551 NULL ++agp_alloc_page_array_22554 agp_alloc_page_array 1 22554 NULL ++dbFindCtl_22587 dbFindCtl 0 22587 NULL ++snapshot_read_22601 snapshot_read 3 22601 NULL ++sctp_setsockopt_connectx_old_22631 sctp_setsockopt_connectx_old 3 22631 NULL ++ide_core_cp_entry_22636 ide_core_cp_entry 3 22636 NULL ++pwr_wake_on_timer_exp_read_22640 pwr_wake_on_timer_exp_read 3 22640 NULL ++ocfs2_get_block_22687 ocfs2_get_block 2 22687 NULL ++compat_fd_ioctl_22694 compat_fd_ioctl 4 22694 NULL ++alloc_libipw_22708 alloc_libipw 1 22708 NULL ++cache_alloc_refill_22713 cache_alloc_refill 0 22713 NULL ++aa_features_read_22730 aa_features_read 3 22730 NULL ++cx18_copy_buf_to_user_22735 cx18_copy_buf_to_user 4 22735 NULL ++ceph_decode_32_22738 ceph_decode_32 0 22738 NULL ++print_frame_22769 print_frame 0 22769 NULL ++ftrace_arch_read_dyn_info_22773 ftrace_arch_read_dyn_info 0 22773 NULL ++compat_blkdev_ioctl_22841 compat_blkdev_ioctl 3 22841 NULL ++can_nocow_odirect_22854 can_nocow_odirect 3 22854 NULL nohasharray ++read_file_rcstat_22854 read_file_rcstat 3 22854 &can_nocow_odirect_22854 ++do_atm_iobuf_22857 do_atm_iobuf 3 22857 NULL ++create_attr_set_22861 create_attr_set 1 22861 NULL ++vmw_execbuf_process_22885 vmw_execbuf_process 5 22885 NULL ++usblp_new_writeurb_22894 usblp_new_writeurb 2 22894 NULL ++mdc800_device_read_22896 mdc800_device_read 3 22896 NULL ++virtqueue_add_buf_22924 virtqueue_add_buf 3-4 22924 NULL ++pcpu_mem_zalloc_22948 pcpu_mem_zalloc 1 22948 NULL ++alloc_sglist_22960 alloc_sglist 1-2-3 22960 NULL ++caif_seqpkt_sendmsg_22961 caif_seqpkt_sendmsg 4 22961 NULL ++vme_get_size_22964 vme_get_size 0 22964 NULL ++usb_get_langid_22983 usb_get_langid 0 22983 NULL ++remote_settings_file_write_22987 remote_settings_file_write 3 22987 NULL ++viafb_dvp0_proc_write_23023 viafb_dvp0_proc_write 3 23023 NULL ++st_status_23032 st_status 5 23032 NULL ++reiserfs_add_entry_23062 reiserfs_add_entry 4 23062 NULL ++vivi_read_23073 vivi_read 3 23073 NULL ++kvm_mmu_gva_to_gpa_write_23075 kvm_mmu_gva_to_gpa_write 0 23075 NULL ++vm_map_ram_23078 vm_map_ram 2 23078 NULL nohasharray ++raw_sendmsg_23078 raw_sendmsg 4 23078 &vm_map_ram_23078 +isr_tx_procs_read_23084 isr_tx_procs_read 3 23084 NULL -+tracing_set_trace_write_57096 tracing_set_trace_write 3 57096 NULL -+setkey_unaligned_39474 setkey_unaligned 3 39474 NULL +rt2x00debug_write_eeprom_23091 rt2x00debug_write_eeprom 3 23091 NULL -+mpeg_read_6708 mpeg_read 3 6708 NULL -+hcd_alloc_coherent_55862 hcd_alloc_coherent 5 55862 NULL -+btrfs_mksubvol_39479 btrfs_mksubvol 3 39479 NULL ++fls_long_23096 fls_long 0 23096 NULL +ntfs_ucstonls_23097 ntfs_ucstonls 3-5 23097 NULL -+read_file_credit_dist_stats_54367 read_file_credit_dist_stats 3 54367 NULL -+krealloc_14908 krealloc 2 14908 NULL +pipe_iov_copy_from_user_23102 pipe_iov_copy_from_user 3 23102 NULL -+bt_skb_send_alloc_6581 bt_skb_send_alloc 2 6581 NULL -+dgram_recvmsg_23104 dgram_recvmsg 4 23104 NULL -+gigaset_if_receive_4861 gigaset_if_receive 3 4861 NULL -+video_proc_write_6724 video_proc_write 3 6724 NULL -+ip_recv_error_23109 ip_recv_error 3 23109 NULL +mwl8k_cmd_set_beacon_23110 mwl8k_cmd_set_beacon 4 23110 NULL -+uvc_simplify_fraction_31303 uvc_simplify_fraction 3 31303 NULL -+ieee80211_if_read_peer_45233 ieee80211_if_read_peer 3 45233 NULL -+cmd_complete_14502 cmd_complete 5 14502 NULL ++nl80211_send_rx_auth_23111 nl80211_send_rx_auth 4 23111 NULL ++__clear_user_23118 __clear_user 0 23118 NULL +drm_mode_create_tv_properties_23122 drm_mode_create_tv_properties 2 23122 NULL -+pm_qos_power_read_55891 pm_qos_power_read 3 55891 NULL -+packet_recvmsg_47700 packet_recvmsg 4 47700 NULL -+store_sys_wmi_14934 store_sys_wmi 4 14934 NULL -+gspca_dev_probe2_59833 gspca_dev_probe2 4 59833 NULL -+lbs_highrssi_read_64089 lbs_highrssi_read 3 64089 NULL -+ipv6_renew_options_28867 ipv6_renew_options 5 28867 NULL -+unix_dgram_recvmsg_14952 unix_dgram_recvmsg 4 14952 NULL ++cfg80211_rx_mgmt_23138 cfg80211_rx_mgmt 4 23138 NULL +ca91cx42_master_set_23146 ca91cx42_master_set 4 23146 NULL -+videobuf_read_stream_14956 videobuf_read_stream 3 14956 NULL -+ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime_1589 ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime 3 1589 NULL -+dm_table_create_35687 dm_table_create 3 35687 NULL -+sfi_check_table_6772 sfi_check_table 1 6772 NULL -+bits_to_user_47733 bits_to_user 3-2 47733 NULL -+int_proc_write_39542 int_proc_write 3 39542 NULL -+do_dccp_setsockopt_54377 do_dccp_setsockopt 5 54377 NULL +read_file_ani_23161 read_file_ani 3 23161 NULL -+carl9170_debugfs_read_47738 carl9170_debugfs_read 3 47738 NULL -+help_14971 help 4 14971 NULL -+mce_flush_rx_buffer_14976 mce_flush_rx_buffer 2 14976 NULL -+ieee80211_if_read_6785 ieee80211_if_read 3 6785 NULL -+pp_write_39554 pp_write 3 39554 NULL -+br_send_bpdu_29669 br_send_bpdu 3 29669 NULL -+mvumi_alloc_mem_resource_47750 mvumi_alloc_mem_resource 3 47750 NULL -+hdlcdrv_register_6792 hdlcdrv_register 2 6792 NULL ++ioremap_23172 ioremap 1-2 23172 NULL +usblp_write_23178 usblp_write 3 23178 NULL -+setkey_14987 setkey 3 14987 NULL -+xprt_rdma_allocate_31372 xprt_rdma_allocate 2 31372 NULL ++msnd_fifo_alloc_23179 msnd_fifo_alloc 2 23179 NULL +gss_pipe_downcall_23182 gss_pipe_downcall 3 23182 NULL -+handle_response_55951 handle_response 5 55951 NULL -+datablob_format_39571 datablob_format 2 39571 NULL nohasharray -+ieee80211_if_read_fwded_mcast_39571 ieee80211_if_read_fwded_mcast 3 39571 &datablob_format_39571 ++ieee80211_get_mesh_hdrlen_23183 ieee80211_get_mesh_hdrlen 0 23183 NULL +fix_unclean_leb_23188 fix_unclean_leb 3 23188 NULL -+simple_read_from_buffer_55957 simple_read_from_buffer 2-5 55957 NULL -+dlfb_ops_write_64150 dlfb_ops_write 3 64150 NULL -+store_touchpad_15003 store_touchpad 4 15003 NULL -+get_fd_set_3866 get_fd_set 1 3866 NULL -+drbd_bm_resize_20522 drbd_bm_resize 2 20522 NULL -+ip_ufo_append_data_12775 ip_ufo_append_data 6-8-7 12775 NULL -+alloc_session_64171 alloc_session 1-2 64171 NULL -+rvmalloc_46873 rvmalloc 1 46873 NULL -+cistpl_vers_1_15023 cistpl_vers_1 4 15023 NULL -+vmap_15025 vmap 2 15025 NULL -+key_ifindex_read_31411 key_ifindex_read 3 31411 NULL -+mcs7830_set_reg_31413 mcs7830_set_reg 3 31413 NULL -+mon_bin_read_6841 mon_bin_read 3 6841 NULL ++__next_dma_cap_23195 __next_dma_cap 1 23195 NULL ++convert_ip_to_linear_23198 convert_ip_to_linear 0 23198 NULL ++compat_rawv6_ioctl_23210 compat_rawv6_ioctl 3 23210 NULL +tty_buffer_request_room_23228 tty_buffer_request_room 2 23228 NULL +xlog_get_bp_23229 xlog_get_bp 2 23229 NULL -+snd_cs4281_BA0_read_6847 snd_cs4281_BA0_read 5 6847 NULL ++__kmalloc_23231 __kmalloc 0 23231 NULL +rxrpc_client_sendmsg_23236 rxrpc_client_sendmsg 5 23236 NULL ++ad799x_single_channel_from_ring_23265 ad799x_single_channel_from_ring 2 23265 NULL ++uwb_dev_addr_print_23282 uwb_dev_addr_print 2 23282 NULL ++doc_probe_23285 doc_probe 1 23285 NULL ++diva_get_trace_filter_23286 diva_get_trace_filter 0 23286 NULL ++i2cdev_write_23310 i2cdev_write 3 23310 NULL ++nl_pid_hash_zalloc_23314 nl_pid_hash_zalloc 1 23314 NULL ++page_readlink_23346 page_readlink 3 23346 NULL ++get_dst_timing_23358 get_dst_timing 0 23358 NULL ++ip_nat_sdp_media_23386 ip_nat_sdp_media 8 23386 NULL ++iscsi_change_queue_depth_23416 iscsi_change_queue_depth 2 23416 NULL ++vga_mm_r_23419 vga_mm_r 0 23419 NULL ++vzalloc_node_23424 vzalloc_node 1 23424 NULL ++__cxio_init_resource_fifo_23447 __cxio_init_resource_fifo 3 23447 NULL nohasharray ++ocfs2_zero_tail_23447 ocfs2_zero_tail 3 23447 &__cxio_init_resource_fifo_23447 ++hidraw_send_report_23449 hidraw_send_report 3 23449 NULL ++linear_conf_23485 linear_conf 2 23485 NULL nohasharray ++divasa_remap_pci_bar_23485 divasa_remap_pci_bar 3-4 23485 &linear_conf_23485 ++si4713_send_command_23493 si4713_send_command 6 23493 NULL ++event_filter_read_23494 event_filter_read 3 23494 NULL ++write_led_23517 write_led 2 23517 NULL ++ima_show_measurements_count_23536 ima_show_measurements_count 3 23536 NULL ++xen_allocate_irq_gsi_23546 xen_allocate_irq_gsi 1-0 23546 NULL ++tcp_current_mss_23552 tcp_current_mss 0 23552 NULL ++venus_symlink_23570 venus_symlink 4-6 23570 NULL ++iwl_dbgfs_interrupt_read_23574 iwl_dbgfs_interrupt_read 3 23574 NULL ++cifs_spnego_key_instantiate_23588 cifs_spnego_key_instantiate 3 23588 NULL ++snd_interval_min_23590 snd_interval_min 0 23590 NULL ++_alloc_cdb_cont_23609 _alloc_cdb_cont 2 23609 NULL ++islpci_mgt_transaction_23610 islpci_mgt_transaction 5 23610 NULL ++sm_checker_extend_23615 sm_checker_extend 2 23615 NULL ++__i2400mu_send_barker_23652 __i2400mu_send_barker 3 23652 NULL ++ext3_compat_ioctl_23659 ext3_compat_ioctl 3 23659 NULL ++sInW_23663 sInW 0 23663 NULL ++proc_ioctl_compat_23682 proc_ioctl_compat 2 23682 NULL ++nftl_partscan_23688 nftl_partscan 0 23688 NULL ++cx18_read_23699 cx18_read 3 23699 NULL ++mp_config_acpi_gsi_23728 mp_config_acpi_gsi 2 23728 NULL ++pack_sg_list_p_23739 pack_sg_list_p 0-2 23739 NULL ++__kfifo_max_r_23768 __kfifo_max_r 0-2-1 23768 NULL ++tt_save_orig_buffer_23779 tt_save_orig_buffer 4 23779 NULL ++security_inode_getxattr_23781 security_inode_getxattr 0 23781 NULL ++diva_alloc_dma_map_23798 diva_alloc_dma_map 2 23798 NULL ++rx_path_reset_read_23801 rx_path_reset_read 3 23801 NULL ++__earlyonly_bootmem_alloc_23824 __earlyonly_bootmem_alloc 2 23824 NULL ++xfs_dir2_leaf_getdents_23841 xfs_dir2_leaf_getdents 3 23841 NULL ++iwl_dbgfs_nvm_read_23845 iwl_dbgfs_nvm_read 3 23845 NULL ++p54_init_common_23850 p54_init_common 1 23850 NULL ++ocfs2_xattr_get_clusters_23857 ocfs2_xattr_get_clusters 0 23857 NULL ++ieee80211_if_read_dot11MeshMaxPeerLinks_23878 ieee80211_if_read_dot11MeshMaxPeerLinks 3 23878 NULL ++ieee80211_if_read_channel_type_23884 ieee80211_if_read_channel_type 3 23884 NULL ++ipath_reg_phys_mr_23918 ipath_reg_phys_mr 3 23918 NULL ++kvm_read_guest_23928 kvm_read_guest 4-2 23928 NULL ++__alloc_skb_23940 __alloc_skb 1 23940 NULL ++cifs_setxattr_23957 cifs_setxattr 4 23957 NULL ++zd_usb_iowrite16v_async_23984 zd_usb_iowrite16v_async 3 23984 NULL ++cxgb_alloc_mem_24007 cxgb_alloc_mem 1 24007 NULL ++ocfs2_mark_extent_refcounted_24035 ocfs2_mark_extent_refcounted 6 24035 NULL ++au_nhash_append_wh_24044 au_nhash_append_wh 3 24044 NULL ++afs_cell_alloc_24052 afs_cell_alloc 2 24052 NULL ++blkcipher_copy_iv_24075 blkcipher_copy_iv 3 24075 NULL ++request_key_auth_read_24109 request_key_auth_read 3 24109 NULL ++iwl_legacy_dbgfs_stations_read_24121 iwl_legacy_dbgfs_stations_read 3 24121 NULL ++mpu401_read_24126 mpu401_read 3 24126 NULL ++irnet_ctrl_write_24139 irnet_ctrl_write 3 24139 NULL ++adu_read_24177 adu_read 3 24177 NULL ++safe_prepare_write_buffer_24187 safe_prepare_write_buffer 3 24187 NULL ++get_order_24203 get_order 0 24203 NULL ++ieee80211_if_read_dot11MeshHWMPpreqMinInterval_24208 ieee80211_if_read_dot11MeshHWMPpreqMinInterval 3 24208 NULL ++tcpprobe_sprint_24222 tcpprobe_sprint 0-2 24222 NULL ++pcpu_embed_first_chunk_24224 pcpu_embed_first_chunk 1-2-3 24224 NULL ++pci_num_vf_24235 pci_num_vf 0 24235 NULL ++sel_read_bool_24236 sel_read_bool 3 24236 NULL ++msg_size_24288 msg_size 0 24288 NULL ++fa_element_to_part_nr_24291 fa_element_to_part_nr 2 24291 NULL ++ext2_free_blocks_24292 ext2_free_blocks 2-3 24292 NULL ++map_page_24298 map_page 3-4 24298 NULL ++btmrvl_pscmd_read_24308 btmrvl_pscmd_read 3 24308 NULL ++ocfs2_direct_IO_get_blocks_24333 ocfs2_direct_IO_get_blocks 2 24333 NULL ++kzalloc_node_24352 kzalloc_node 1 24352 NULL ++qla2x00_handle_queue_full_24365 qla2x00_handle_queue_full 2 24365 NULL ++cfi_read_pri_24366 cfi_read_pri 3 24366 NULL ++btrfs_item_size_nr_24367 btrfs_item_size_nr 0 24367 NULL ++igetword_24373 igetword 0 24373 NULL ++pvr2_v4l2_ioctl_24398 pvr2_v4l2_ioctl 2 24398 NULL nohasharray ++getxattr_24398 getxattr 4 24398 &pvr2_v4l2_ioctl_24398 ++blk_update_bidi_request_24415 blk_update_bidi_request 3-4 24415 NULL ++b43_debugfs_read_24425 b43_debugfs_read 3 24425 NULL ++ieee80211_rx_mgmt_beacon_24430 ieee80211_rx_mgmt_beacon 3 24430 NULL ++page_address_24444 page_address 0 24444 NULL ++evdev_do_ioctl_24459 evdev_do_ioctl 2 24459 NULL ++ocfs2_write_cluster_by_desc_24466 ocfs2_write_cluster_by_desc 5-6 24466 NULL ++pd_video_read_24510 pd_video_read 3 24510 NULL ++request_key_with_auxdata_24515 request_key_with_auxdata 4 24515 NULL ++named_prepare_buf_24532 named_prepare_buf 2 24532 NULL ++write_cache_pages_24562 write_cache_pages 0 24562 NULL ++tsi148_alloc_resource_24563 tsi148_alloc_resource 2 24563 NULL ++udf_compute_nr_groups_24594 udf_compute_nr_groups 0 24594 NULL ++count_preds_24600 count_preds 0 24600 NULL ++context_alloc_24645 context_alloc 3 24645 NULL ++blk_rq_err_bytes_24650 blk_rq_err_bytes 0 24650 NULL ++simple_attr_read_24738 simple_attr_read 3 24738 NULL ++au_rdhash_est_24740 au_rdhash_est 0-1 24740 NULL ++qla2x00_change_queue_depth_24742 qla2x00_change_queue_depth 2 24742 NULL ++get_dma_residue_24749 get_dma_residue 0 24749 NULL ++kgdb_hex2mem_24755 kgdb_hex2mem 3 24755 NULL ++nfsd4_sanitize_slot_size_24756 nfsd4_sanitize_slot_size 0-1 24756 NULL ++i915_cache_sharing_read_24775 i915_cache_sharing_read 3 24775 NULL ++ocfs2_read_blocks_24777 ocfs2_read_blocks 0 24777 NULL ++skb_make_writable_24783 skb_make_writable 2 24783 NULL ++datablob_hmac_verify_24786 datablob_hmac_verify 4 24786 NULL ++cache_read_24790 cache_read 3 24790 NULL ++unpack_str_24798 unpack_str 0 24798 NULL ++__next_cpu_nr_24805 __next_cpu_nr 1 24805 NULL ++comedi_buf_alloc_24822 comedi_buf_alloc 3 24822 NULL ++c4iw_alloc_fast_reg_mr_24838 c4iw_alloc_fast_reg_mr 2 24838 NULL nohasharray ++free_coherent_24838 free_coherent 4-2 24838 &c4iw_alloc_fast_reg_mr_24838 ++snd_als4k_gcr_read_24840 snd_als4k_gcr_read 0 24840 NULL ++snd_pcm_lib_buffer_bytes_24865 snd_pcm_lib_buffer_bytes 0 24865 NULL ++pnp_alloc_24869 pnp_alloc 1 24869 NULL nohasharray ++put_data_to_circ_buf_24869 put_data_to_circ_buf 3 24869 &pnp_alloc_24869 ++bnx2fc_cmd_mgr_alloc_24873 bnx2fc_cmd_mgr_alloc 3-2 24873 NULL ++queues_read_24877 queues_read 3 24877 NULL ++iwm_rx_handle_24899 iwm_rx_handle 3 24899 NULL ++codec_list_read_file_24910 codec_list_read_file 3 24910 NULL ++ocfs2_fiemap_24949 ocfs2_fiemap 3-4 24949 NULL ++packet_sendmsg_24954 packet_sendmsg 4 24954 NULL ++sys_rt_sigpending_24961 sys_rt_sigpending 2 24961 NULL ++llc_ui_sendmsg_24987 llc_ui_sendmsg 4 24987 NULL ++key_conf_hw_key_idx_read_25003 key_conf_hw_key_idx_read 3 25003 NULL ++iwl3945_ucode_general_stats_read_25009 iwl3945_ucode_general_stats_read 3 25009 NULL ++ni_660x_num_counters_25031 ni_660x_num_counters 0 25031 NULL ++kmem_getpages_25058 kmem_getpages 0 25058 NULL ++gs_buf_alloc_25067 gs_buf_alloc 2 25067 NULL ++cxio_hal_init_rhdl_resource_25104 cxio_hal_init_rhdl_resource 1 25104 NULL ++snd_rawmidi_kernel_write_25106 snd_rawmidi_kernel_write 3 25106 NULL ++oom_adjust_read_25127 oom_adjust_read 3 25127 NULL ++sys_fgetxattr_25166 sys_fgetxattr 4 25166 NULL ++ipath_init_qp_table_25167 ipath_init_qp_table 2 25167 NULL ++sctp_getsockopt_local_addrs_25178 sctp_getsockopt_local_addrs 2 25178 NULL ++ks8851_rdreg32_25187 ks8851_rdreg32 0 25187 NULL ++ocfs2_block_check_compute_25223 ocfs2_block_check_compute 2 25223 NULL ++mon_stat_read_25238 mon_stat_read 3 25238 NULL ++tcf_csum_ipv6_udp_25241 tcf_csum_ipv6_udp 4 25241 NULL ++compat_rw_copy_check_uvector_25242 compat_rw_copy_check_uvector 0-3 25242 NULL ++nilfs_palloc_find_available_slot_25245 nilfs_palloc_find_available_slot 3-5 25245 NULL ++snd_pcm_start_25273 snd_pcm_start 0 25273 NULL ++crypto_alloc_instance2_25277 crypto_alloc_instance2 3 25277 NULL ++vfs_writev_25278 vfs_writev 3 25278 NULL ++l2tp_session_create_25286 l2tp_session_create 1 25286 NULL ++snd_seq_ioctl_compat_25307 snd_seq_ioctl_compat 3 25307 NULL ++ath9k_debugfs_read_buf_25316 ath9k_debugfs_read_buf 3 25316 NULL ++i915_gem_execbuffer_relocate_slow_25355 i915_gem_execbuffer_relocate_slow 7 25355 NULL ++unix_mkname_25368 unix_mkname 0-2 25368 NULL ++sel_read_mls_25369 sel_read_mls 3 25369 NULL ++ebt_buf_add_pad_25413 ebt_buf_add_pad 0 25413 NULL ++et61x251_read_25420 et61x251_read 3 25420 NULL ++dai_list_read_file_25421 dai_list_read_file 3 25421 NULL ++generic_file_buffered_write_25464 generic_file_buffered_write 4 25464 NULL ++crypto_hash_digestsize_25469 crypto_hash_digestsize 0 25469 NULL ++ocfs2_hamming_encode_25501 ocfs2_hamming_encode 3 25501 NULL ++ivtv_buf_copy_from_user_25502 ivtv_buf_copy_from_user 4 25502 NULL ++snd_pcm_plugin_build_25505 snd_pcm_plugin_build 5 25505 NULL ++ext3_get_inode_loc_25542 ext3_get_inode_loc 0 25542 NULL ++ieee80211_if_read_path_refresh_time_25545 ieee80211_if_read_path_refresh_time 3 25545 NULL ++c4iw_init_resource_fifo_random_25547 c4iw_init_resource_fifo_random 3 25547 NULL ++wimax_addr_scnprint_25548 wimax_addr_scnprint 2 25548 NULL ++ht_print_chan_25556 ht_print_chan 0 25556 NULL ++skb_tailroom_25567 skb_tailroom 0 25567 NULL ++realloc_packet_buffer_25569 realloc_packet_buffer 2 25569 NULL ++__devres_alloc_25598 __devres_alloc 2 25598 NULL ++proc_coredump_filter_write_25625 proc_coredump_filter_write 3 25625 NULL ++__get_user_pages_25628 __get_user_pages 0 25628 NULL nohasharray ++befs_utf2nls_25628 befs_utf2nls 3 25628 &__get_user_pages_25628 ++ext2_try_to_allocate_25667 ext2_try_to_allocate 4-2 25667 NULL ++aircable_prepare_write_buffer_25669 aircable_prepare_write_buffer 3 25669 NULL ++sta_inactive_ms_read_25690 sta_inactive_ms_read 3 25690 NULL ++ebitmap_start_positive_25703 ebitmap_start_positive 0 25703 NULL ++ibmasm_new_command_25714 ibmasm_new_command 2 25714 NULL ++sel_write_context_25726 sel_write_context 3 25726 NULL nohasharray ++__alloc_bootmem_low_node_25726 __alloc_bootmem_low_node 2 25726 &sel_write_context_25726 ++ext2_find_near_25734 ext2_find_near 0 25734 NULL ++cxgbi_device_portmap_create_25747 cxgbi_device_portmap_create 3 25747 NULL ++event_rx_pool_read_25792 event_rx_pool_read 3 25792 NULL ++sg_read_25799 sg_read 3 25799 NULL ++sys32_rt_sigpending_25814 sys32_rt_sigpending 2 25814 NULL ++system_enable_read_25815 system_enable_read 3 25815 NULL ++realloc_buffer_25816 realloc_buffer 2 25816 NULL ++pwr_missing_bcns_read_25824 pwr_missing_bcns_read 3 25824 NULL ++parport_read_25855 parport_read 0 25855 NULL ++xfs_dir2_sf_hdr_size_25858 xfs_dir2_sf_hdr_size 0 25858 NULL ++ath6kl_regread_read_25884 ath6kl_regread_read 3 25884 NULL ++run_delalloc_nocow_25896 run_delalloc_nocow 3 25896 NULL ++sisusbcon_scroll_area_25899 sisusbcon_scroll_area 4-3 25899 NULL ++lpfc_change_queue_depth_25905 lpfc_change_queue_depth 2 25905 NULL ++do_jffs2_setxattr_25910 do_jffs2_setxattr 5 25910 NULL ++rcname_read_25919 rcname_read 3 25919 NULL ++snd_es1938_capture_copy_25930 snd_es1938_capture_copy 5 25930 NULL ++key_flags_read_25931 key_flags_read 3 25931 NULL ++copy_play_buf_25932 copy_play_buf 3 25932 NULL ++security_compute_av_user_25950 security_compute_av_user 3 25950 NULL ++video_register_device_25971 video_register_device 3 25971 NULL ++udp_setsockopt_25985 udp_setsockopt 5 25985 NULL ++ebt_compat_entry_padsize_26001 ebt_compat_entry_padsize 0 26001 NULL ++lpfc_sli_probe_sriov_nr_virtfn_26004 lpfc_sli_probe_sriov_nr_virtfn 2 26004 NULL ++xfs_xattr_acl_set_26028 xfs_xattr_acl_set 4 26028 NULL ++skb_mac_header_26034 skb_mac_header 0 26034 NULL ++mptscsih_change_queue_depth_26036 mptscsih_change_queue_depth 2 26036 NULL ++selinux_inode_post_setxattr_26037 selinux_inode_post_setxattr 4 26037 NULL ++security_file_mmap_26056 security_file_mmap 0 26056 NULL ++keyctl_update_key_26061 keyctl_update_key 3 26061 NULL ++__strnlen_user_26117 __strnlen_user 0-2 26117 NULL ++user_instantiate_26131 user_instantiate 3 26131 NULL ++skb_cow_26138 skb_cow 2 26138 NULL ++usb_dump_device_strings_26146 usb_dump_device_strings 0 26146 NULL ++copy_oldmem_page_26164 copy_oldmem_page 1-3 26164 NULL ++gfs2_xattr_acl_get_26166 gfs2_xattr_acl_get 0 26166 NULL ++disk_devt_26180 disk_devt 0 26180 NULL ++get_registers_26187 get_registers 3 26187 NULL ++ieee80211_if_fmt_dot11MeshTTL_26198 ieee80211_if_fmt_dot11MeshTTL 3 26198 NULL ++xfs_idata_realloc_26199 xfs_idata_realloc 2 26199 NULL ++mce_write_26201 mce_write 3 26201 NULL ++process_vm_rw_single_vec_26213 process_vm_rw_single_vec 1-2 26213 NULL ++store_sys_hwmon_26225 store_sys_hwmon 3 26225 NULL ++_scsih_change_queue_depth_26230 _scsih_change_queue_depth 2 26230 NULL ++cxio_num_stags_26233 cxio_num_stags 0 26233 NULL ++bio_split_26235 bio_split 2 26235 NULL ++crypto_ctxsize_26278 crypto_ctxsize 0 26278 NULL ++ext2_find_goal_26306 ext2_find_goal 0 26306 NULL ++snd_pcm_plug_client_channels_buf_26309 snd_pcm_plug_client_channels_buf 0-3 26309 NULL nohasharray ++pax_get_random_long_26309 pax_get_random_long 0 26309 &snd_pcm_plug_client_channels_buf_26309 ++tled_proc_write_26315 tled_proc_write 3 26315 NULL ++pwr_wake_on_host_read_26321 pwr_wake_on_host_read 3 26321 NULL ++ocfs2_duplicate_clusters_by_page_26357 ocfs2_duplicate_clusters_by_page 5 26357 NULL ++dup_to_netobj_26363 dup_to_netobj 3 26363 NULL ++invalidate_inode_pages2_range_26403 invalidate_inode_pages2_range 0 26403 NULL ++iwl_legacy_dbgfs_sram_read_26419 iwl_legacy_dbgfs_sram_read 3 26419 NULL ++ib_alloc_device_26483 ib_alloc_device 1 26483 NULL ++ulong_write_file_26485 ulong_write_file 3 26485 NULL ++dvb_ca_en50221_io_ioctl_26490 dvb_ca_en50221_io_ioctl 2 26490 NULL ++read_vmcore_26501 read_vmcore 3 26501 NULL ++__vhost_add_used_n_26554 __vhost_add_used_n 3 26554 NULL ++ip6_addr_string_26568 ip6_addr_string 0 26568 NULL ++rts51x_read_mem_26577 rts51x_read_mem 4 26577 NULL ++cirrusfb_get_memsize_26597 cirrusfb_get_memsize 0 26597 NULL ++__unmap_single_26604 __unmap_single 2-3 26604 NULL ++iommu_alloc_26621 iommu_alloc 4 26621 NULL ++pwr_fix_tsf_ps_read_26627 pwr_fix_tsf_ps_read 3 26627 NULL ++mmap_region_26649 mmap_region 0-2 26649 NULL ++irq_alloc_generic_chip_26650 irq_alloc_generic_chip 2 26650 NULL nohasharray ++inb_p_26650 inb_p 0 26650 &irq_alloc_generic_chip_26650 ++cipso_v4_map_cat_rbm_hton_26680 cipso_v4_map_cat_rbm_hton 0 26680 NULL ++__alloc_pred_stack_26687 __alloc_pred_stack 2 26687 NULL ++aty_ld_le32_26720 aty_ld_le32 0 26720 NULL ++srp_ring_alloc_26760 srp_ring_alloc 2 26760 NULL ++snd_hda_get_raw_connections_26762 snd_hda_get_raw_connections 0 26762 NULL ++qlcnic_alloc_sds_rings_26795 qlcnic_alloc_sds_rings 2 26795 NULL ++cipso_v4_genopt_26812 cipso_v4_genopt 0 26812 NULL ++smk_write_load_26829 smk_write_load 3 26829 NULL ++slgt_compat_ioctl_26834 slgt_compat_ioctl 3 26834 NULL ++__nodes_onto_26838 __nodes_onto 4 26838 NULL ++scnprint_id_26842 scnprint_id 3 26842 NULL ++ecryptfs_miscdev_write_26847 ecryptfs_miscdev_write 3 26847 NULL ++netxen_nic_hw_read_wx_128M_26858 netxen_nic_hw_read_wx_128M 2 26858 NULL ++svc_print_xprts_26881 svc_print_xprts 0 26881 NULL ++ext2_compat_ioctl_26883 ext2_compat_ioctl 3 26883 NULL ++x25_asy_change_mtu_26928 x25_asy_change_mtu 2 26928 NULL ++compat_mtw_from_user_26932 compat_mtw_from_user 0 26932 NULL ++scsi_tgt_copy_sense_26933 scsi_tgt_copy_sense 3 26933 NULL ++pwr_ps_enter_read_26935 pwr_ps_enter_read 3 26935 NULL nohasharray ++sctp_setsockopt_adaptation_layer_26935 sctp_setsockopt_adaptation_layer 3 26935 &pwr_ps_enter_read_26935 ++create_bm_block_list_26940 create_bm_block_list 0 26940 NULL ++hecubafb_write_26942 hecubafb_write 3 26942 NULL ++extract_entropy_user_26952 extract_entropy_user 3 26952 NULL ++ufs_alloc_fragments_27059 ufs_alloc_fragments 3-0-2 27059 NULL ++__videobuf_alloc_vb_27062 __videobuf_alloc_vb 1 27062 NULL ++snd_pcm_lib_period_bytes_27071 snd_pcm_lib_period_bytes 0 27071 NULL ++paravirt_read_msr_27077 paravirt_read_msr 0 27077 NULL ++alloc_fdmem_27083 alloc_fdmem 1 27083 NULL ++find_first_bit_27088 find_first_bit 0-2 27088 NULL ++btmrvl_hscmd_write_27089 btmrvl_hscmd_write 3 27089 NULL ++__devcgroup_inode_permission_27108 __devcgroup_inode_permission 0 27108 NULL ++drbd_get_capacity_27141 drbd_get_capacity 0 27141 NULL ++pms_capture_27142 pms_capture 4 27142 NULL ++btmrvl_hscfgcmd_write_27143 btmrvl_hscfgcmd_write 3 27143 NULL ++au_br_do_del_hip_27168 au_br_do_del_hip 3 27168 NULL ++i2400m_net_rx_27170 i2400m_net_rx 5 27170 NULL ++ieee80211_if_read_rc_rateidx_mask_5ghz_27183 ieee80211_if_read_rc_rateidx_mask_5ghz 3 27183 NULL ++mmc_blk_compat_ioctl_27194 mmc_blk_compat_ioctl 4 27194 NULL ++dbAllocAG_27228 dbAllocAG 0 27228 NULL ++rxrpc_request_key_27235 rxrpc_request_key 3 27235 NULL ++cfpkt_add_trail_27260 cfpkt_add_trail 3 27260 NULL ++__dma_map_cont_27289 __dma_map_cont 5 27289 NULL ++hpi_read_reg_27302 hpi_read_reg 0 27302 NULL ++copy_from_buf_27308 copy_from_buf 4-2 27308 NULL ++ocfs2_blocks_to_clusters_27327 ocfs2_blocks_to_clusters 0-2 27327 NULL ++snd_pcm_oss_write2_27332 snd_pcm_oss_write2 3-0 27332 NULL ++afs_cell_create_27346 afs_cell_create 2 27346 NULL ++pcbit_stat_27364 pcbit_stat 2 27364 NULL ++init_memory_mapping_27395 init_memory_mapping 0 27395 NULL ++phys_pte_init_27411 phys_pte_init 0-3-2 27411 NULL ++acpi_os_get_root_pointer_27416 acpi_os_get_root_pointer 0 27416 NULL nohasharray ++ieee80211_if_read_smps_27416 ieee80211_if_read_smps 3 27416 &acpi_os_get_root_pointer_27416 ++pack_sg_list_27425 pack_sg_list 0-2 27425 NULL ++rtsx_write_cfg_seq_27485 rtsx_write_cfg_seq 5-3 27485 NULL ++hcd_buffer_alloc_27495 hcd_buffer_alloc 2 27495 NULL ++qib_create_cq_27497 qib_create_cq 2 27497 NULL ++ip_set_get_h32_27498 ip_set_get_h32 0 27498 NULL ++garmin_read_process_27509 garmin_read_process 3 27509 NULL ++xfs_buf_read_uncached_27519 xfs_buf_read_uncached 4 27519 NULL ++ib_copy_to_udata_27525 ib_copy_to_udata 3 27525 NULL ++snd_sonicvibes_getdmaa_27552 snd_sonicvibes_getdmaa 0 27552 NULL ++libipw_alloc_txb_27579 libipw_alloc_txb 1 27579 NULL ++reciprocal_divide_27596 reciprocal_divide 0-1-2 27596 NULL ++iwl4965_rs_sta_dbgfs_rate_scale_data_read_27619 iwl4965_rs_sta_dbgfs_rate_scale_data_read 3 27619 NULL ++read_flush_procfs_27642 read_flush_procfs 3 27642 NULL nohasharray ++nl80211_send_connect_result_27642 nl80211_send_connect_result 5-7 27642 &read_flush_procfs_27642 nohasharray ++ocfs2_xattr_ibody_get_27642 ocfs2_xattr_ibody_get 0 27642 &nl80211_send_connect_result_27642 ++add_new_gdb_27643 add_new_gdb 3 27643 NULL ++ieee80211_build_probe_req_27660 ieee80211_build_probe_req 7 27660 NULL ++cdrom_read_cdda_old_27664 cdrom_read_cdda_old 4 27664 NULL ++qword_get_27670 qword_get 0 27670 NULL ++ocfs2_extend_dir_27695 ocfs2_extend_dir 4 27695 NULL ++l2cap_sar_segment_sdu_27701 l2cap_sar_segment_sdu 3 27701 NULL ++cxio_hal_pblpool_alloc_27714 cxio_hal_pblpool_alloc 2 27714 NULL ++evm_write_key_27715 evm_write_key 3 27715 NULL ++ieee80211_if_fmt_dot11MeshGateAnnouncementProtocol_27722 ieee80211_if_fmt_dot11MeshGateAnnouncementProtocol 3 27722 NULL ++pstore_write_27724 pstore_write 3 27724 NULL nohasharray ++reg_w_buf_27724 reg_w_buf 3 27724 &pstore_write_27724 ++xfs_dir2_block_sfsize_27727 xfs_dir2_block_sfsize 0 27727 NULL ++a4t_cs_init_27734 a4t_cs_init 3 27734 NULL ++kcalloc_27770 kcalloc 1-2 27770 NULL ++DivaSTraceGetMemotyRequirement_27797 DivaSTraceGetMemotyRequirement 0-1 27797 NULL ++ttm_object_file_init_27804 ttm_object_file_init 2 27804 NULL ++init_header_complete_27833 init_header_complete 0 27833 NULL nohasharray ++sys_listxattr_27833 sys_listxattr 3 27833 &init_header_complete_27833 ++read_profile_27859 read_profile 3 27859 NULL ++sky2_pci_read16_27863 sky2_pci_read16 0 27863 NULL ++mangle_packet_27864 mangle_packet 6-8 27864 NULL ++unix_seqpacket_sendmsg_27893 unix_seqpacket_sendmsg 4 27893 NULL ++ubi_eba_write_leb_st_27896 ubi_eba_write_leb_st 5 27896 NULL ++gluebi_write_27905 gluebi_write 3 27905 NULL ++bm_find_next_27929 bm_find_next 2 27929 NULL ++tracing_clock_write_27961 tracing_clock_write 3 27961 NULL ++mic_rx_pkts_read_27972 mic_rx_pkts_read 3 27972 NULL ++snd_rawmidi_write_28008 snd_rawmidi_write 3 28008 NULL ++serial8250_port_size_28019 serial8250_port_size 0 28019 NULL ++sctp_setsockopt_maxburst_28041 sctp_setsockopt_maxburst 3 28041 NULL ++cx231xx_init_vbi_isoc_28053 cx231xx_init_vbi_isoc 3-2 28053 NULL ++lpfc_idiag_mbxacc_read_28061 lpfc_idiag_mbxacc_read 3 28061 NULL ++gdth_init_isa_28091 gdth_init_isa 1 28091 NULL ++mmc_test_alloc_mem_28102 mmc_test_alloc_mem 3-2 28102 NULL ++vgacon_adjust_height_28124 vgacon_adjust_height 2 28124 NULL ++video_read_28148 video_read 3 28148 NULL ++snd_midi_channel_alloc_set_28153 snd_midi_channel_alloc_set 1 28153 NULL ++stats_dot11FCSErrorCount_read_28154 stats_dot11FCSErrorCount_read 3 28154 NULL ++vread_28173 vread 0 28173 NULL ++macvtap_get_user_28185 macvtap_get_user 4 28185 NULL ++d_path_28198 d_path 0 28198 NULL ++line6_alloc_sysex_buffer_28225 line6_alloc_sysex_buffer 4 28225 NULL ++amd_nb_num_28228 amd_nb_num 0 28228 NULL ++c4iw_rqtpool_alloc_28271 c4iw_rqtpool_alloc 2 28271 NULL ++usemap_size_28281 usemap_size 0 28281 NULL ++dma_map_sg_attrs_28289 dma_map_sg_attrs 0 28289 NULL ++acpi_register_gsi_xen_28305 acpi_register_gsi_xen 2 28305 NULL nohasharray ++nouveau_compat_ioctl_28305 nouveau_compat_ioctl 2 28305 &acpi_register_gsi_xen_28305 ++snd_pcm_oss_read_28317 snd_pcm_oss_read 3 28317 NULL ++bm_entry_write_28338 bm_entry_write 3 28338 NULL ++snapshot_write_28351 snapshot_write 3 28351 NULL ++orig_node_del_if_28371 orig_node_del_if 2 28371 NULL ++sys_writev_28384 sys_writev 3 28384 NULL ++dlmfs_file_read_28385 dlmfs_file_read 3 28385 NULL ++subdev_ioctl_28417 subdev_ioctl 2 28417 NULL ++snd_emu10k1_efx_read_28452 snd_emu10k1_efx_read 2 28452 NULL ++alloc_irq_cpu_rmap_28459 alloc_irq_cpu_rmap 1 28459 NULL ++vmw_du_crtc_cursor_set_28479 vmw_du_crtc_cursor_set 4-5 28479 NULL ++snapshot_status_28480 snapshot_status 4 28480 NULL ++ocfs2_backup_super_blkno_28484 ocfs2_backup_super_blkno 0-2 28484 NULL ++max_response_pages_28492 max_response_pages 0 28492 NULL ++__next_node_28521 __next_node 1 28521 NULL ++i2400m_tx_stats_read_28527 i2400m_tx_stats_read 3 28527 NULL ++sel_read_policycap_28544 sel_read_policycap 3 28544 NULL ++run_delalloc_range_28545 run_delalloc_range 3 28545 NULL nohasharray ++mptctl_getiocinfo_28545 mptctl_getiocinfo 2 28545 &run_delalloc_range_28545 ++b43legacy_debugfs_write_28556 b43legacy_debugfs_write 3 28556 NULL ++phys_pud_init_28574 phys_pud_init 0-3-2 28574 NULL ++cfg80211_send_rx_auth_28580 cfg80211_send_rx_auth 3 28580 NULL ++oxygen_read32_28582 oxygen_read32 0 28582 NULL ++ocfs2_read_dir_block_28587 ocfs2_read_dir_block 2 28587 NULL ++extract_entropy_28604 extract_entropy 3-5 28604 NULL ++kfifo_unused_28612 kfifo_unused 0 28612 NULL ++mp_override_legacy_irq_28618 mp_override_legacy_irq 4 28618 NULL ++snd_nm256_capture_copy_28622 snd_nm256_capture_copy 5-3 28622 NULL ++_set_range_28627 _set_range 3 28627 NULL ++v4l2_compat_ioctl32_28630 v4l2_compat_ioctl32 3 28630 NULL ++setup_usemap_28636 setup_usemap 3-4 28636 NULL ++blk_queue_resize_tags_28670 blk_queue_resize_tags 2 28670 NULL ++posix_acl_from_xattr_28675 posix_acl_from_xattr 2 28675 NULL ++nl80211_send_new_peer_candidate_28692 nl80211_send_new_peer_candidate 5 28692 NULL ++drm_plane_init_28731 drm_plane_init 6 28731 NULL ++spi_execute_28736 spi_execute 5 28736 NULL ++snd_pcm_aio_write_28738 snd_pcm_aio_write 3 28738 NULL nohasharray ++phantom_compat_ioctl_28738 phantom_compat_ioctl 3 28738 &snd_pcm_aio_write_28738 ++cxio_init_resource_fifo_28764 cxio_init_resource_fifo 3 28764 NULL ++ath6kl_get_num_reg_28780 ath6kl_get_num_reg 0 28780 NULL ++sel_write_member_28800 sel_write_member 3 28800 NULL ++cgroup_file_read_28804 cgroup_file_read 3 28804 NULL ++memory_bm_create_28814 memory_bm_create 0 28814 NULL ++iwl_dbgfs_rxon_filter_flags_read_28832 iwl_dbgfs_rxon_filter_flags_read 3 28832 NULL ++vp_request_msix_vectors_28849 vp_request_msix_vectors 2 28849 NULL ++ipv6_renew_options_28867 ipv6_renew_options 5 28867 NULL ++iwl3945_sta_dbgfs_stats_table_read_28882 iwl3945_sta_dbgfs_stats_table_read 3 28882 NULL ++packet_sendmsg_spkt_28885 packet_sendmsg_spkt 4 28885 NULL ++ps_upsd_timeouts_read_28924 ps_upsd_timeouts_read 3 28924 NULL ++ocfs2_frozen_trigger_28929 ocfs2_frozen_trigger 4 28929 NULL ++push_rx_28939 push_rx 3 28939 NULL ++alloc_sched_domains_28972 alloc_sched_domains 1 28972 NULL ++ext4_mb_add_groupinfo_28988 ext4_mb_add_groupinfo 2 28988 NULL ++hci_sock_setsockopt_28993 hci_sock_setsockopt 5 28993 NULL ++bin_uuid_28999 bin_uuid 3 28999 NULL ++xz_dec_init_29029 xz_dec_init 2 29029 NULL ++sys_fcntl64_29031 sys_fcntl64 3 29031 NULL ++rxrpc_sendmsg_29049 rxrpc_sendmsg 4 29049 NULL ++split_bvec_29058 split_bvec 5 29058 NULL ++iso_packets_buffer_init_29061 iso_packets_buffer_init 3-4 29061 NULL ++lpfc_idiag_extacc_drivr_get_29067 lpfc_idiag_extacc_drivr_get 0-3 29067 NULL ++mark_extents_written_29082 mark_extents_written 2 29082 NULL ++isdn_ppp_write_29109 isdn_ppp_write 4 29109 NULL ++rbd_req_sync_op_29115 rbd_req_sync_op 9-10 29115 NULL ++snprintf_29125 snprintf 0 29125 NULL ++iov_shorten_29130 iov_shorten 0 29130 NULL ++proc_scsi_write_29142 proc_scsi_write 3 29142 NULL ++reshape_ring_29147 reshape_ring 2 29147 NULL ++drm_property_create_enum_29201 drm_property_create_enum 5 29201 NULL ++wusb_prf_256_29203 wusb_prf_256 7 29203 NULL ++do_shrinker_shrink_29208 do_shrinker_shrink 0 29208 NULL ++iwl_dbgfs_temperature_read_29224 iwl_dbgfs_temperature_read 3 29224 NULL ++devm_ioremap_29235 devm_ioremap 2-3 29235 NULL ++recover_peb_29238 recover_peb 6-7 29238 NULL ++security_context_to_sid_core_29248 security_context_to_sid_core 2 29248 NULL ++prism2_set_genericelement_29277 prism2_set_genericelement 3 29277 NULL ++bitmap_ord_to_pos_29279 bitmap_ord_to_pos 3 29279 NULL ++sn9c102_read_29305 sn9c102_read 3 29305 NULL ++lo_compat_ioctl_29336 lo_compat_ioctl 4 29336 NULL ++__alloc_ei_netdev_29338 __alloc_ei_netdev 1 29338 NULL ++l2cap_sock_setsockopt_old_29346 l2cap_sock_setsockopt_old 4 29346 NULL ++alloc_and_copy_ftrace_hash_29368 alloc_and_copy_ftrace_hash 1 29368 NULL ++pca953x_irq_setup_29407 pca953x_irq_setup 3 29407 NULL ++mempool_create_29437 mempool_create 1 29437 NULL ++crypto_ahash_alignmask_29445 crypto_ahash_alignmask 0 29445 NULL ++apei_exec_ctx_get_output_29457 apei_exec_ctx_get_output 0 29457 NULL ++validate_scan_freqs_29462 validate_scan_freqs 0 29462 NULL ++do_register_entry_29478 do_register_entry 4 29478 NULL ++simple_strtoul_29480 simple_strtoul 0 29480 NULL ++btmrvl_pscmd_write_29504 btmrvl_pscmd_write 3 29504 NULL ++btrfs_file_extent_disk_bytenr_29505 btrfs_file_extent_disk_bytenr 0 29505 NULL ++atk_debugfs_ggrp_read_29522 atk_debugfs_ggrp_read 3 29522 NULL ++idetape_queue_rw_tail_29562 idetape_queue_rw_tail 3 29562 NULL ++leaf_dealloc_29566 leaf_dealloc 3 29566 NULL ++lbs_lowsnr_read_29571 lbs_lowsnr_read 3 29571 NULL ++pvr2_hdw_report_unlocked_29589 pvr2_hdw_report_unlocked 4 29589 NULL ++slots_per_page_29601 slots_per_page 0 29601 NULL ++nla_get_u16_29624 nla_get_u16 0 29624 NULL ++lowmem_page_address_29649 lowmem_page_address 0 29649 NULL ++sctp_make_abort_user_29654 sctp_make_abort_user 3 29654 NULL ++new_lockspace_29674 new_lockspace 2 29674 NULL ++sisusb_write_mem_bulk_29678 sisusb_write_mem_bulk 4 29678 NULL ++sd_alloc_ctl_entry_29708 sd_alloc_ctl_entry 1 29708 NULL ++probes_write_29711 probes_write 3 29711 NULL ++emi62_writememory_29731 emi62_writememory 4 29731 NULL ++read_cis_cache_29735 read_cis_cache 4 29735 NULL ++cxio_hal_init_resource_29771 cxio_hal_init_resource 2-6-7 29771 NULL nohasharray ++ip_vs_conn_fill_param_sync_29771 ip_vs_conn_fill_param_sync 6 29771 &cxio_hal_init_resource_29771 ++cifs_ucs2_bytes_29790 cifs_ucs2_bytes 0 29790 NULL ++dbAlloc_29794 dbAlloc 0 29794 NULL ++ext4_trim_all_free_29806 ext4_trim_all_free 4-3-2 29806 NULL ++tcp_sendpage_29829 tcp_sendpage 3-4 29829 NULL ++scan_bitmap_block_29840 scan_bitmap_block 4 29840 NULL ++__probe_kernel_write_29842 __probe_kernel_write 3 29842 NULL ++ipv6_setsockopt_29871 ipv6_setsockopt 5 29871 NULL ++scsi_end_request_29876 scsi_end_request 3 29876 NULL ++crypto_aead_alignmask_29885 crypto_aead_alignmask 0 29885 NULL ++nfc_targets_found_29886 nfc_targets_found 3 29886 NULL ++pin_code_reply_29893 pin_code_reply 4 29893 NULL ++check586_29914 check586 2 29914 NULL ++ext4_xattr_set_acl_29930 ext4_xattr_set_acl 4 29930 NULL ++security_transition_sid_29940 security_transition_sid 3 29940 NULL ++__btrfs_getxattr_29947 __btrfs_getxattr 0 29947 NULL ++irias_add_octseq_attrib_29983 irias_add_octseq_attrib 4 29983 NULL nohasharray ++diva_os_get_context_size_29983 diva_os_get_context_size 0 29983 &irias_add_octseq_attrib_29983 ++arch_setup_dmar_msi_29992 arch_setup_dmar_msi 1 29992 NULL ++utf32_to_utf8_30028 utf32_to_utf8 0 30028 NULL ++alloc_netdev_mqs_30030 alloc_netdev_mqs 1 30030 NULL ++scsi_vpd_inquiry_30040 scsi_vpd_inquiry 4 30040 NULL ++cxgbi_ddp_reserve_30091 cxgbi_ddp_reserve 4 30091 NULL ++snd_midi_channel_init_set_30092 snd_midi_channel_init_set 1 30092 NULL ++tg3_run_loopback_30093 tg3_run_loopback 2 30093 NULL ++skb_pagelen_30113 skb_pagelen 0 30113 NULL ++spi_async_locked_30117 spi_async_locked 0 30117 NULL ++calgary_unmap_page_30130 calgary_unmap_page 2-3 30130 NULL ++_osd_req_sizeof_alist_header_30134 _osd_req_sizeof_alist_header 0 30134 NULL ++u_memcpya_30139 u_memcpya 2-3 30139 NULL ++cx25821_video_ioctl_30188 cx25821_video_ioctl 2 30188 NULL ++mempool_create_page_pool_30189 mempool_create_page_pool 1 30189 NULL ++stripe_status_30195 stripe_status 4 30195 NULL ++usblp_ioctl_30203 usblp_ioctl 2 30203 NULL ++read_4k_modal_eeprom_30212 read_4k_modal_eeprom 3 30212 NULL ++snd_ac97_pcm_assign_30218 snd_ac97_pcm_assign 2 30218 NULL ++dccp_manip_pkt_30229 dccp_manip_pkt 2 30229 NULL ++isr_pci_pm_read_30271 isr_pci_pm_read 3 30271 NULL ++compat_readv_30273 compat_readv 3 30273 NULL ++lapic_register_intr_30279 lapic_register_intr 1 30279 NULL ++skcipher_sendmsg_30290 skcipher_sendmsg 4 30290 NULL ++ext4_acl_from_disk_30320 ext4_acl_from_disk 2 30320 NULL ++generic_ptrace_pokedata_30338 generic_ptrace_pokedata 2 30338 NULL ++resource_from_user_30341 resource_from_user 3 30341 NULL ++__vmalloc_node_flags_30352 __vmalloc_node_flags 1 30352 NULL ++sys_get_mempolicy_30379 sys_get_mempolicy 3 30379 NULL ++c4iw_init_resource_30393 c4iw_init_resource 2-3 30393 NULL ++_drbd_bm_find_next_zero_30415 _drbd_bm_find_next_zero 2 30415 NULL ++enable_write_30456 enable_write 3 30456 NULL ++urandom_read_30462 urandom_read 3 30462 NULL ++zoran_ioctl_30465 zoran_ioctl 2 30465 NULL ++write_head_30481 write_head 4 30481 NULL ++adu_write_30487 adu_write 3 30487 NULL ++disk_expand_part_tbl_30561 disk_expand_part_tbl 2 30561 NULL ++blk_init_tags_30592 blk_init_tags 1 30592 NULL ++sgl_map_user_pages_30610 sgl_map_user_pages 2 30610 NULL ++macvtap_sendmsg_30629 macvtap_sendmsg 4 30629 NULL ++compat_raw_setsockopt_30634 compat_raw_setsockopt 5 30634 NULL ++nfsd_nrpools_30651 nfsd_nrpools 0 30651 NULL ++agp_remap_30665 agp_remap 2 30665 NULL ++jffs2_flash_read_30667 jffs2_flash_read 0 30667 NULL ++dccp_setsockopt_ccid_30701 dccp_setsockopt_ccid 4 30701 NULL ++wled_proc_write_30709 wled_proc_write 3 30709 NULL ++lbs_debugfs_read_30721 lbs_debugfs_read 3 30721 NULL ++snd_nm256_playback_silence_30727 snd_nm256_playback_silence 4-3 30727 NULL ++ath6kl_wmi_send_action_cmd_30735 ath6kl_wmi_send_action_cmd 6 30735 NULL ++fuse_conn_limit_write_30777 fuse_conn_limit_write 3 30777 NULL nohasharray ++tcf_csum_ipv4_udp_30777 tcf_csum_ipv4_udp 4 30777 &fuse_conn_limit_write_30777 ++ubi_write_30809 ubi_write 4-5 30809 NULL ++smk_read_doi_30813 smk_read_doi 3 30813 NULL ++get_kobj_path_length_30831 get_kobj_path_length 0 30831 NULL ++sctp_setsockopt_auth_chunk_30843 sctp_setsockopt_auth_chunk 3 30843 NULL ++hda_hwdep_ioctl_compat_30847 hda_hwdep_ioctl_compat 4 30847 NULL ++ieee80211_if_fmt_dropped_frames_no_route_30884 ieee80211_if_fmt_dropped_frames_no_route 3 30884 NULL ++f1x_match_to_this_node_30888 f1x_match_to_this_node 3 30888 NULL ++iommu_map_mmio_space_30919 iommu_map_mmio_space 1 30919 NULL ++sctp_setsockopt_rtoinfo_30941 sctp_setsockopt_rtoinfo 3 30941 NULL ++tty_insert_flip_string_flags_30969 tty_insert_flip_string_flags 4 30969 NULL ++huge_page_mask_30981 huge_page_mask 0 30981 NULL ++lbs_host_sleep_read_31013 lbs_host_sleep_read 3 31013 NULL ++phys_pmd_init_31024 phys_pmd_init 0-3-2 31024 NULL ++compat_sys_mq_timedsend_31060 compat_sys_mq_timedsend 3 31060 NULL ++lbs_failcount_read_31063 lbs_failcount_read 3 31063 NULL ++find_next_bit_le_31064 find_next_bit_le 0-2-3 31064 NULL ++sys_mincore_31079 sys_mincore 1 31079 NULL ++ttm_bo_ioremap_31082 ttm_bo_ioremap 2-3 31082 NULL ++sctp_setsockopt_context_31091 sctp_setsockopt_context 3 31091 NULL ++compat_sys_get_mempolicy_31109 compat_sys_get_mempolicy 3 31109 NULL ++depth_read_31112 depth_read 3 31112 NULL ++kvm_mmu_pte_write_31120 kvm_mmu_pte_write 2 31120 NULL ++kimage_normal_alloc_31140 kimage_normal_alloc 3 31140 NULL ++size_inside_page_31141 size_inside_page 0 31141 NULL ++w9966_v4l_read_31148 w9966_v4l_read 3 31148 NULL ++ch_do_scsi_31171 ch_do_scsi 4 31171 NULL ++input_mt_init_slots_31183 input_mt_init_slots 2 31183 NULL ++acpi_ex_system_memory_space_handler_31192 acpi_ex_system_memory_space_handler 2 31192 NULL ++crypto_rng_seedsize_31196 crypto_rng_seedsize 0 31196 NULL ++r592_read_fifo_pio_31198 r592_read_fifo_pio 3 31198 NULL ++cpumask_weight_31215 cpumask_weight 0 31215 NULL ++__read_reg_31216 __read_reg 0 31216 NULL ++atm_get_addr_31221 atm_get_addr 3 31221 NULL ++cyy_readb_31240 cyy_readb 0 31240 NULL ++_create_sg_bios_31244 _create_sg_bios 4 31244 NULL ++ieee80211_if_read_last_beacon_31257 ieee80211_if_read_last_beacon 3 31257 NULL ++ceph_copy_page_vector_to_user_31270 ceph_copy_page_vector_to_user 3-4 31270 NULL ++sctp_tsnmap_find_gap_ack_31272 sctp_tsnmap_find_gap_ack 3-2 31272 NULL ++uvc_simplify_fraction_31303 uvc_simplify_fraction 3 31303 NULL ++sisusbcon_scroll_31315 sisusbcon_scroll 5-2-3 31315 NULL ++futex_uaddr_31316 futex_uaddr 2 31316 NULL ++command_file_write_31318 command_file_write 3 31318 NULL ++__cpu_to_node_31345 __cpu_to_node 0 31345 NULL ++rbd_do_op_31366 rbd_do_op 8-9 31366 NULL ++xprt_rdma_allocate_31372 xprt_rdma_allocate 2 31372 NULL ++trace_parser_get_init_31379 trace_parser_get_init 2 31379 NULL ++inb_31388 inb 0 31388 NULL ++key_ifindex_read_31411 key_ifindex_read 3 31411 NULL ++mcs7830_set_reg_31413 mcs7830_set_reg 3 31413 NULL +TSS_checkhmac1_31429 TSS_checkhmac1 5 31429 NULL -+ubi_leb_write_41691 ubi_leb_write 4-5 41691 NULL -+arch_gnttab_map_shared_7970 arch_gnttab_map_shared 3 7970 NULL -+store_lslvl_15059 store_lslvl 4 15059 NULL -+ssb_bus_pcmciabus_register_56020 ssb_bus_pcmciabus_register 3 56020 NULL -+fm_send_cmd_39639 fm_send_cmd 5 39639 NULL -+dm_exception_table_init_39645 dm_exception_table_init 2 39645 NULL -+nfs4_write_cached_acl_15070 nfs4_write_cached_acl 4 15070 NULL -+ntfs_copy_from_user_15072 ntfs_copy_from_user 3-5 15072 NULL -+sctp_recvmsg_23265 sctp_recvmsg 4 23265 NULL -+snd_rme32_capture_copy_39653 snd_rme32_capture_copy 5 39653 NULL -+get_new_cssid_51665 get_new_cssid 2 51665 NULL -+raw_seticmpfilter_6888 raw_seticmpfilter 3 6888 NULL -+prism2_info_hostscanresults_39657 prism2_info_hostscanresults 3 39657 NULL ++snd_aw2_saa7146_get_hw_ptr_capture_31431 snd_aw2_saa7146_get_hw_ptr_capture 0 31431 NULL ++pool_status_31439 pool_status 4 31439 NULL ++acpi_sci_ioapic_setup_31445 acpi_sci_ioapic_setup 4 31445 NULL ++opera1_xilinx_rw_31453 opera1_xilinx_rw 5 31453 NULL +do_fcntl_31468 do_fcntl 3 31468 NULL -+ath6kl_wmi_set_appie_cmd_47855 ath6kl_wmi_set_appie_cmd 4 47855 NULL -+ubifs_write_node_15088 ubifs_write_node 5-3 15088 NULL -+kvm_read_guest_cached_39666 kvm_read_guest_cached 4 39666 NULL -+redrat3_transmit_ir_64244 redrat3_transmit_ir 3 64244 NULL -+doc_probe_23285 doc_probe 1 23285 NULL -+v4l_stk_read_39672 v4l_stk_read 3 39672 NULL -+dccp_sendmsg_56058 dccp_sendmsg 4 56058 NULL ++xfs_btree_get_numrecs_31477 xfs_btree_get_numrecs 0 31477 NULL +alg_setkey_31485 alg_setkey 3 31485 NULL +rds_message_map_pages_31487 rds_message_map_pages 2 31487 NULL +qsfp_2_read_31491 qsfp_2_read 3 31491 NULL -+vhci_read_47878 vhci_read 3 47878 NULL +__alloc_bootmem_31498 __alloc_bootmem 1 31498 NULL -+ieee80211_send_probe_req_6924 ieee80211_send_probe_req 6-4 6924 NULL -+cache_do_downcall_6926 cache_do_downcall 3 6926 NULL -+qla2x00_handle_queue_full_24365 qla2x00_handle_queue_full 2 24365 NULL -+keyctl_instantiate_key_common_47889 keyctl_instantiate_key_common 4 47889 NULL -+nl_pid_hash_zalloc_23314 nl_pid_hash_zalloc 1 23314 NULL -+rawv6_send_hdrinc_35425 rawv6_send_hdrinc 3 35425 NULL -+ftrace_pid_write_39710 ftrace_pid_write 3 39710 NULL -+event_id_read_64288 event_id_read 3 64288 NULL nohasharray -+xfs_dir_cilookup_result_64288 xfs_dir_cilookup_result 3 64288 &event_id_read_64288 -+osd_req_read_sg_47905 osd_req_read_sg 5 47905 NULL -+sta_agg_status_write_45164 sta_agg_status_write 3 45164 NULL -+sel_read_bool_24236 sel_read_bool 3 24236 NULL -+pscsi_get_bio_56103 pscsi_get_bio 1 56103 NULL -+timeout_read_47915 timeout_read 3 47915 NULL +hidraw_write_31536 hidraw_write 3 31536 NULL -+page_readlink_23346 page_readlink 3 23346 NULL -+videobuf_dma_init_kernel_6963 videobuf_dma_init_kernel 3 6963 NULL -+comedi_write_47926 comedi_write 3 47926 NULL -+packet_alloc_skb_62602 packet_alloc_skb 2-5-4 62602 NULL -+kmem_zalloc_large_56128 kmem_zalloc_large 1 56128 NULL -+sisusbcon_clear_64329 sisusbcon_clear 3-5-4 64329 NULL -+tcp_write_xmit_39755 tcp_write_xmit 2 39755 NULL -+nf_nat_ftp_47948 nf_nat_ftp 5 47948 NULL -+request_key_async_6990 request_key_async 4 6990 NULL -+ts_write_64336 ts_write 3 64336 NULL -+ath6kl_wmi_bssinfo_event_rx_56146 ath6kl_wmi_bssinfo_event_rx 3 56146 NULL -+usbtmc_write_64340 usbtmc_write 3 64340 NULL -+xlog_do_log_recovery_17550 xlog_do_log_recovery 3 17550 NULL -+do_write_orph_node_64343 do_write_orph_node 2 64343 NULL -+r871x_set_wpa_ie_7000 r871x_set_wpa_ie 3 7000 NULL -+iscsi_create_endpoint_15193 iscsi_create_endpoint 1 15193 NULL -+ip_nat_sdp_media_23386 ip_nat_sdp_media 8 23386 NULL ++mtd_div_by_eb_31543 mtd_div_by_eb 0-1 31543 NULL ++normalize_31566 normalize 0-1-2 31566 NULL +osst_write_31581 osst_write 3 31581 NULL -+tracing_cpumask_read_7010 tracing_cpumask_read 3 7010 NULL -+rawv6_setsockopt_56165 rawv6_setsockopt 5 56165 NULL -+diva_xdi_write_63975 diva_xdi_write 4 63975 NULL -+llc_alloc_frame_64366 llc_alloc_frame 4 64366 NULL -+iwl_dbgfs_ucode_tracing_read_47983 iwl_dbgfs_ucode_tracing_read 3 47983 NULL nohasharray -+mempool_resize_47983 mempool_resize 2 47983 &iwl_dbgfs_ucode_tracing_read_47983 -+hid_report_raw_event_7024 hid_report_raw_event 4 7024 NULL -+bfad_debugfs_write_regrd_15218 bfad_debugfs_write_regrd 3 15218 NULL -+mgmt_pending_add_47990 mgmt_pending_add 5 47990 NULL -+iscsi_change_queue_depth_23416 iscsi_change_queue_depth 2 23416 NULL -+ib_umad_write_47993 ib_umad_write 3 47993 NULL -+ilo_write_64378 ilo_write 3 64378 NULL -+vmw_du_crtc_cursor_set_28479 vmw_du_crtc_cursor_set 4-5 28479 NULL -+vzalloc_node_23424 vzalloc_node 1 23424 NULL ++iwl_dbgfs_ucode_tx_stats_read_31611 iwl_dbgfs_ucode_tx_stats_read 3 31611 NULL +arvo_sysfs_read_31617 arvo_sysfs_read 6 31617 NULL -+ulog_alloc_skb_23427 ulog_alloc_skb 1 23427 NULL -+variax_alloc_sysex_buffer_15237 variax_alloc_sysex_buffer 3 15237 NULL +iwl_legacy_dbgfs_traffic_log_read_31625 iwl_legacy_dbgfs_traffic_log_read 3 31625 NULL -+lpfc_idiag_ctlacc_read_33943 lpfc_idiag_ctlacc_read 3 33943 NULL -+ffs_epfile_write_48014 ffs_epfile_write 3 48014 NULL -+store_wlan_38040 store_wlan 4 38040 NULL -+ir_lirc_transmit_ir_64403 ir_lirc_transmit_ir 3 64403 NULL -+pidlist_allocate_64404 pidlist_allocate 1 64404 NULL +videobuf_read_one_31637 videobuf_read_one 3 31637 NULL -+rx_hdr_overflow_read_64407 rx_hdr_overflow_read 3 64407 NULL -+hidraw_send_report_23449 hidraw_send_report 3 23449 NULL -+beiscsi_process_async_pdu_39834 beiscsi_process_async_pdu 7 39834 NULL -+hci_sock_recvmsg_7072 hci_sock_recvmsg 4 7072 NULL -+snd_card_create_64418 snd_card_create 4 64418 NULL nohasharray -+keyctl_get_security_64418 keyctl_get_security 3 64418 &snd_card_create_64418 +pod_alloc_sysex_buffer_31651 pod_alloc_sysex_buffer 3 31651 NULL -+cp210x_get_config_56229 cp210x_get_config 4 56229 NULL -+spi_dv_device_echo_buffer_39846 spi_dv_device_echo_buffer 2-3 39846 NULL -+pppoe_sendmsg_48039 pppoe_sendmsg 4 48039 NULL -+ecryptfs_readlink_40775 ecryptfs_readlink 3 40775 NULL -+dn_nsp_send_disc_23469 dn_nsp_send_disc 2 23469 NULL -+do_ipt_set_ctl_56238 do_ipt_set_ctl 4 56238 NULL -+ping_sendmsg_3782 ping_sendmsg 4 3782 NULL -+beacon_interval_read_7091 beacon_interval_read 3 7091 NULL ++xfer_secondary_pool_31661 xfer_secondary_pool 2 31661 NULL +__lgread_31668 __lgread 4 31668 NULL -+fd_copyin_56247 fd_copyin 3 56247 NULL -+wpan_phy_alloc_48056 wpan_phy_alloc 1 48056 NULL -+ax25_recvmsg_64441 ax25_recvmsg 4 64441 NULL -+sys_connect_15291 sys_connect 3 15291 NULL nohasharray -+xlate_dev_mem_ptr_15291 xlate_dev_mem_ptr 1 15291 &sys_connect_15291 -+__ata_change_queue_depth_23484 __ata_change_queue_depth 3 23484 NULL -+teiup_create_43201 teiup_create 3 43201 NULL -+ext4_kvzalloc_47605 ext4_kvzalloc 1 47605 NULL -+ieee80211_if_read_element_ttl_18869 ieee80211_if_read_element_ttl 3 18869 NULL -+event_filter_read_23494 event_filter_read 3 23494 NULL -+tpm_tis_init_15304 tpm_tis_init 2-3 15304 NULL -+msnd_fifo_alloc_23179 msnd_fifo_alloc 2 23179 NULL -+fcoe_ctlr_send_keep_alive_15308 fcoe_ctlr_send_keep_alive 3 15308 NULL -+sys_setsockopt_35320 sys_setsockopt 5 35320 NULL ++symbol_string_31670 symbol_string 0 31670 NULL ++handle_interrupt_31689 handle_interrupt 0 31689 NULL nohasharray ++reiserfs_in_journal_31689 reiserfs_in_journal 3 31689 &handle_interrupt_31689 ++iwl_legacy_dbgfs_chain_noise_read_31692 iwl_legacy_dbgfs_chain_noise_read 3 31692 NULL +audit_log_n_string_31705 audit_log_n_string 3 31705 NULL -+c4iw_init_resource_fifo_48090 c4iw_init_resource_fifo 3 48090 NULL -+write_led_23517 write_led 2 23517 NULL -+ip_vs_create_timeout_table_64478 ip_vs_create_timeout_table 2 64478 NULL -+send_mpa_reject_7135 send_mpa_reject 3 7135 NULL -+sctp_make_op_error_7057 sctp_make_op_error 5-6 7057 NULL -+mmc_alloc_host_48097 mmc_alloc_host 1 48097 NULL ++utf16s_to_utf8s_31735 utf16s_to_utf8s 0 31735 NULL ++NCR_700_change_queue_depth_31742 NCR_700_change_queue_depth 2 31742 NULL nohasharray ++input_abs_get_max_31742 input_abs_get_max 0 31742 &NCR_700_change_queue_depth_31742 ++bcm_char_read_31750 bcm_char_read 3 31750 NULL ++snd_seq_device_new_31753 snd_seq_device_new 4 31753 NULL ++usblp_cache_device_id_string_31790 usblp_cache_device_id_string 0 31790 NULL ++get_count_order_31800 get_count_order 0 31800 NULL ++ecryptfs_send_message_locked_31801 ecryptfs_send_message_locked 2 31801 NULL ++isr_rx_procs_read_31804 isr_rx_procs_read 3 31804 NULL ++strnlen_user_31815 strnlen_user 0-2 31815 NULL ++sta_last_signal_read_31818 sta_last_signal_read 3 31818 NULL ++drm_mode_crtc_set_gamma_size_31881 drm_mode_crtc_set_gamma_size 2 31881 NULL ++ddb_output_write_31902 ddb_output_write 3 31902 NULL ++xattr_permission_31907 xattr_permission 0 31907 NULL ++kmem_alloc_31920 kmem_alloc 1 31920 NULL ++guestwidth_to_adjustwidth_31937 guestwidth_to_adjustwidth 0-1 31937 NULL ++iov_iter_copy_from_user_31942 iov_iter_copy_from_user 4 31942 NULL ++vb2_write_31948 vb2_write 3 31948 NULL ++pvr2_ctrl_get_valname_31951 pvr2_ctrl_get_valname 4 31951 NULL ++copy_from_user_toio_31966 copy_from_user_toio 3 31966 NULL ++mtd_add_partition_31971 mtd_add_partition 3 31971 NULL ++find_next_zero_bit_31990 find_next_zero_bit 0-2-3 31990 NULL ++calc_hmac_32010 calc_hmac 3 32010 NULL ++aead_len_32021 aead_len 0 32021 NULL ++ocfs2_remove_extent_32032 ocfs2_remove_extent 4-3 32032 NULL ++posix_acl_set_32037 posix_acl_set 4 32037 NULL ++vmw_cursor_update_dmabuf_32045 vmw_cursor_update_dmabuf 3-4 32045 NULL ++sys_sched_setaffinity_32046 sys_sched_setaffinity 2 32046 NULL ++proc_scsi_devinfo_write_32064 proc_scsi_devinfo_write 3 32064 NULL ++cfg80211_send_unprot_deauth_32080 cfg80211_send_unprot_deauth 3 32080 NULL ++ath6kl_fwlog_read_32101 ath6kl_fwlog_read 3 32101 NULL ++set_discoverable_32102 set_discoverable 4 32102 NULL ++disk_status_32120 disk_status 4 32120 NULL ++venus_link_32165 venus_link 5 32165 NULL ++drbd_new_dev_size_32171 drbd_new_dev_size 0 32171 NULL ++do_writepages_32173 do_writepages 0 32173 NULL nohasharray ++ntfs_rl_realloc_nofail_32173 ntfs_rl_realloc_nofail 3 32173 &do_writepages_32173 ++load_header_32183 load_header 0 32183 NULL ++ubi_wl_scrub_peb_32196 ubi_wl_scrub_peb 0 32196 NULL ++wusb_ccm_mac_32199 wusb_ccm_mac 7 32199 NULL ++riva_get_cmap_len_32218 riva_get_cmap_len 0 32218 NULL ++lbs_lowrssi_read_32242 lbs_lowrssi_read 3 32242 NULL ++ocfs2_xattr_find_entry_32260 ocfs2_xattr_find_entry 0 32260 NULL ++fb_compat_ioctl_32265 fb_compat_ioctl 3 32265 NULL ++vmalloc_user_32308 vmalloc_user 1 32308 NULL ++nl80211_send_mlme_event_32337 nl80211_send_mlme_event 4 32337 NULL ++t4_alloc_mem_32342 t4_alloc_mem 1 32342 NULL ++dispatch_ioctl_32357 dispatch_ioctl 2 32357 NULL ++f1x_translate_sysaddr_to_cs_32359 f1x_translate_sysaddr_to_cs 2 32359 NULL ++sel_read_initcon_32362 sel_read_initcon 3 32362 NULL ++_drbd_bm_find_next_32372 _drbd_bm_find_next 2 32372 NULL ++variax_set_raw2_32374 variax_set_raw2 4 32374 NULL ++usbtmc_read_32377 usbtmc_read 3 32377 NULL ++xfs_iext_add_indirect_multi_32400 xfs_iext_add_indirect_multi 3 32400 NULL ++hid_input_report_32458 hid_input_report 4 32458 NULL ++ieee80211_fill_mesh_addresses_32465 ieee80211_fill_mesh_addresses 0 32465 NULL ++ide_driver_proc_write_32493 ide_driver_proc_write 3 32493 NULL ++ctrl_std_val_to_sym_32516 ctrl_std_val_to_sym 5 32516 NULL ++qsfp_read_32522 qsfp_read 0-4-2 32522 NULL ++ilo_read_32531 ilo_read 3 32531 NULL ++ieee80211_if_read_estab_plinks_32533 ieee80211_if_read_estab_plinks 3 32533 NULL ++format_devstat_counter_32550 format_devstat_counter 3 32550 NULL ++__first_node_32558 __first_node 0 32558 NULL ++aes_encrypt_fail_read_32562 aes_encrypt_fail_read 3 32562 NULL ++pnp_mem_len_32584 pnp_mem_len 0 32584 NULL ++mem_swapout_entry_32586 mem_swapout_entry 3 32586 NULL ++read_file_beacon_32595 read_file_beacon 3 32595 NULL ++ieee80211_if_read_dropped_frames_congestion_32603 ieee80211_if_read_dropped_frames_congestion 3 32603 NULL ++sys_set_mempolicy_32608 sys_set_mempolicy 3 32608 NULL ++cfg80211_roamed_32632 cfg80211_roamed 5-7 32632 NULL ++ieee80211_hdrlen_32637 ieee80211_hdrlen 0 32637 NULL ++ite_decode_bytes_32642 ite_decode_bytes 3 32642 NULL ++kvmalloc_32646 kvmalloc 1 32646 NULL ++ib_sg_dma_len_32649 ib_sg_dma_len 0 32649 NULL ++__kmalloc_section_memmap_32651 __kmalloc_section_memmap 1 32651 NULL ++generic_readlink_32654 generic_readlink 3 32654 NULL ++move_addr_to_kernel_32673 move_addr_to_kernel 2 32673 NULL ++snd_hwdep_ioctl_compat_32736 snd_hwdep_ioctl_compat 3 32736 NULL ++megasas_change_queue_depth_32747 megasas_change_queue_depth 2 32747 NULL ++stats_read_ul_32751 stats_read_ul 3 32751 NULL ++tty_compat_ioctl_32761 tty_compat_ioctl 3 32761 NULL ++sctp_tsnmap_grow_32784 sctp_tsnmap_grow 2 32784 NULL ++firmwareUpload_32794 firmwareUpload 3 32794 NULL ++get_register_page_interruptible_32809 get_register_page_interruptible 5 32809 NULL ++orig_node_add_if_32833 orig_node_add_if 2 32833 NULL ++vga_rseq_32848 vga_rseq 0 32848 NULL ++new_tape_buffer_32866 new_tape_buffer 2 32866 NULL ++io_apic_setup_irq_pin_32868 io_apic_setup_irq_pin 1 32868 NULL ++zlib_inflate_workspacesize_32927 zlib_inflate_workspacesize 0 32927 NULL ++irq_reserve_irqs_32946 irq_reserve_irqs 1-2 32946 NULL ++ext4_valid_block_bitmap_32958 ext4_valid_block_bitmap 3 32958 NULL ++arch_ptrace_32981 arch_ptrace 3 32981 NULL ++compat_filldir_32999 compat_filldir 3 32999 NULL ++ext3_alloc_blocks_33007 ext3_alloc_blocks 3 33007 NULL ++ebt_compat_match_offset_33053 ebt_compat_match_offset 0-2 33053 NULL ++stats_dot11RTSSuccessCount_read_33065 stats_dot11RTSSuccessCount_read 3 33065 NULL ++sel_read_checkreqprot_33068 sel_read_checkreqprot 3 33068 NULL ++acl_permission_check_33083 acl_permission_check 0 33083 NULL ++write_node_33121 write_node 4 33121 NULL ++fb_sys_write_33130 fb_sys_write 3 33130 NULL ++nfs4_init_slot_table_33152 nfs4_init_slot_table 2 33152 NULL ++tun_get_user_33178 tun_get_user 3 33178 NULL ++dataflash_read_fact_otp_33204 dataflash_read_fact_otp 2-3 33204 NULL ++pp_read_33210 pp_read 3 33210 NULL ++xfs_file_aio_write_33234 xfs_file_aio_write 4 33234 NULL ++snd_pcm_plug_client_size_33267 snd_pcm_plug_client_size 0-2 33267 NULL ++sched_find_first_bit_33270 sched_find_first_bit 0 33270 NULL ++cachefiles_cook_key_33274 cachefiles_cook_key 2 33274 NULL ++mei_compat_ioctl_33275 mei_compat_ioctl 3 33275 NULL ++security_genfs_sid_33277 security_genfs_sid 3 33277 NULL ++mcs7830_get_reg_33308 mcs7830_get_reg 3 33308 NULL ++ceph_msgpool_init_33312 ceph_msgpool_init 3 33312 NULL ++joydev_ioctl_33343 joydev_ioctl 2 33343 NULL ++create_xattr_datum_33356 create_xattr_datum 5 33356 NULL ++read_file_regidx_33370 read_file_regidx 3 33370 NULL ++ceph_osdc_writepages_33375 ceph_osdc_writepages 5 33375 NULL ++ocfs2_quota_read_33382 ocfs2_quota_read 5 33382 NULL ++ieee80211_if_read_dropped_frames_no_route_33383 ieee80211_if_read_dropped_frames_no_route 3 33383 NULL ++scsi_varlen_cdb_length_33385 scsi_varlen_cdb_length 0 33385 NULL ++ocfs2_allocate_unwritten_extents_33394 ocfs2_allocate_unwritten_extents 2-3 33394 NULL ++snd_pcm_capture_ioctl1_33408 snd_pcm_capture_ioctl1 0 33408 NULL ++ufs_getfrag_block_33409 ufs_getfrag_block 2 33409 NULL ++ubh_scanc_33436 ubh_scanc 0-4-3 33436 NULL ++create_entry_33479 create_entry 2 33479 NULL ++ip_setsockopt_33487 ip_setsockopt 5 33487 NULL nohasharray ++elf_map_33487 elf_map 0-2 33487 &ip_setsockopt_33487 ++netxen_nic_hw_write_wx_128M_33488 netxen_nic_hw_write_wx_128M 2 33488 NULL ++ol_dqblk_chunk_off_33489 ol_dqblk_chunk_off 2 33489 NULL ++res_counter_read_33499 res_counter_read 4 33499 NULL ++fb_read_33506 fb_read 3 33506 NULL ++ahash_setkey_unaligned_33521 ahash_setkey_unaligned 3 33521 NULL ++nes_alloc_fast_reg_page_list_33523 nes_alloc_fast_reg_page_list 2 33523 NULL ++acpi_gsi_to_irq_33533 acpi_gsi_to_irq 1 33533 NULL ++tomoyo_read_self_33539 tomoyo_read_self 3 33539 NULL ++dup_array_33551 dup_array 3 33551 NULL ++solo_enc_read_33553 solo_enc_read 3 33553 NULL ++scsi_execute_33596 scsi_execute 5 33596 NULL ++comedi_buf_write_n_allocated_33604 comedi_buf_write_n_allocated 0 33604 NULL ++xt_compat_target_offset_33608 xt_compat_target_offset 0 33608 NULL nohasharray ++ip6_find_1stfragopt_33608 ip6_find_1stfragopt 0 33608 &xt_compat_target_offset_33608 ++inw_p_33668 inw_p 0 33668 NULL ++arp_hdr_len_33671 arp_hdr_len 0 33671 NULL ++rbd_alloc_coll_33678 rbd_alloc_coll 1 33678 NULL ++compat_insnlist_33706 compat_insnlist 2 33706 NULL ++sys_keyctl_33708 sys_keyctl 4 33708 NULL nohasharray ++netlink_sendmsg_33708 netlink_sendmsg 4 33708 &sys_keyctl_33708 ++get_free_de_33714 get_free_de 2 33714 NULL ++pvr2_stream_buffer_count_33719 pvr2_stream_buffer_count 2 33719 NULL ++ocfs2_extent_map_get_blocks_33720 ocfs2_extent_map_get_blocks 2 33720 NULL ++__mutex_lock_interruptible_slowpath_33735 __mutex_lock_interruptible_slowpath 0 33735 NULL ++hashtab_create_33769 hashtab_create 3 33769 NULL ++midibuf_message_length_33770 midibuf_message_length 0 33770 NULL ++if_sdio_read_rx_len_33800 if_sdio_read_rx_len 0 33800 NULL ++find_next_offset_33804 find_next_offset 3 33804 NULL nohasharray ++apei_estatus_len_33804 apei_estatus_len 0 33804 &find_next_offset_33804 ++sky2_rx_pad_33819 sky2_rx_pad 0 33819 NULL ++usb_dump_endpoint_descriptor_33849 usb_dump_endpoint_descriptor 0 33849 NULL ++get_user_pages_33908 get_user_pages 0 33908 NULL ++queue_logical_block_size_33918 queue_logical_block_size 0 33918 NULL ++max8649_read_device_33930 max8649_read_device 3 33930 NULL ++sel_read_avc_cache_threshold_33942 sel_read_avc_cache_threshold 3 33942 NULL ++lpfc_idiag_ctlacc_read_33943 lpfc_idiag_ctlacc_read 3 33943 NULL ++read_file_tgt_rx_stats_33944 read_file_tgt_rx_stats 3 33944 NULL ++vga_switcheroo_debugfs_write_33984 vga_switcheroo_debugfs_write 3 33984 NULL ++__ntfs_malloc_34022 __ntfs_malloc 1 34022 NULL ++ppp_write_34034 ppp_write 3 34034 NULL ++tty_insert_flip_string_34042 tty_insert_flip_string 3 34042 NULL ++__domain_flush_pages_34045 __domain_flush_pages 2-3 34045 NULL ++compat_hdio_ioctl_34088 compat_hdio_ioctl 4 34088 NULL ++islpci_mgt_transmit_34133 islpci_mgt_transmit 5 34133 NULL ++ttm_dma_page_pool_free_34135 ttm_dma_page_pool_free 2 34135 NULL ++iwl_legacy_dbgfs_tx_queue_read_34192 iwl_legacy_dbgfs_tx_queue_read 3 34192 NULL ++mtd_write_34207 mtd_write 3 34207 NULL ++bl_pipe_downcall_34264 bl_pipe_downcall 3 34264 NULL ++rw_copy_check_uvector_34271 rw_copy_check_uvector 3 34271 NULL ++zone_spanned_pages_in_node_34299 zone_spanned_pages_in_node 0 34299 NULL ++iov_iter_single_seg_count_34326 iov_iter_single_seg_count 0 34326 NULL nohasharray ++pcpu_need_to_extend_34326 pcpu_need_to_extend 0 34326 &iov_iter_single_seg_count_34326 ++crypto_ablkcipher_ivsize_34363 crypto_ablkcipher_ivsize 0 34363 NULL ++rngapi_reset_34366 rngapi_reset 3 34366 NULL ++reiserfs_resize_34377 reiserfs_resize 2 34377 NULL ++ea_read_34378 ea_read 0 34378 NULL ++av7110_vbi_write_34384 av7110_vbi_write 3 34384 NULL ++usbvision_v4l2_read_34386 usbvision_v4l2_read 3 34386 NULL ++read_rbu_image_type_34387 read_rbu_image_type 6 34387 NULL ++ivtv_read_pos_34400 ivtv_read_pos 3 34400 NULL ++nl80211_send_disassoc_34424 nl80211_send_disassoc 4 34424 NULL ++usbtest_alloc_urb_34446 usbtest_alloc_urb 3-5 34446 NULL ++mwifiex_regrdwr_read_34472 mwifiex_regrdwr_read 3 34472 NULL ++line6_dumpreq_init_34473 line6_dumpreq_init 3 34473 NULL ++skcipher_sndbuf_34476 skcipher_sndbuf 0 34476 NULL ++i2o_parm_field_get_34477 i2o_parm_field_get 5 34477 NULL ++security_inode_permission_34488 security_inode_permission 0 34488 NULL ++alloc_buf_34532 alloc_buf 1 34532 NULL ++tracing_stats_read_34537 tracing_stats_read 3 34537 NULL ++hugetlbfs_read_actor_34547 hugetlbfs_read_actor 2-5-4 34547 NULL ++dbBackSplit_34561 dbBackSplit 0 34561 NULL ++alloc_ieee80211_rsl_34564 alloc_ieee80211_rsl 1 34564 NULL ++velocity_rx_copy_34583 velocity_rx_copy 2 34583 NULL ++init_send_hfcd_34586 init_send_hfcd 1 34586 NULL ++inet6_ifla6_size_34591 inet6_ifla6_size 0 34591 NULL ++__jffs2_ref_totlen_34609 __jffs2_ref_totlen 0 34609 NULL ++__cfg80211_disconnected_34622 __cfg80211_disconnected 3 34622 NULL ++cnic_alloc_dma_34641 cnic_alloc_dma 3 34641 NULL ++isr_fiqs_read_34687 isr_fiqs_read 3 34687 NULL ++alloc_irq_and_cfg_at_34706 alloc_irq_and_cfg_at 1 34706 NULL ++ieee80211_if_read_num_sta_ps_34722 ieee80211_if_read_num_sta_ps 3 34722 NULL ++platform_list_read_file_34734 platform_list_read_file 3 34734 NULL ++reg_w_ixbuf_34736 reg_w_ixbuf 4 34736 NULL ++qib_cdev_init_34778 qib_cdev_init 1 34778 NULL ++__copy_in_user_34790 __copy_in_user 3 34790 NULL ++tipc_log_resize_34803 tipc_log_resize 1 34803 NULL ++drbd_get_max_capacity_34804 drbd_get_max_capacity 0 34804 NULL ++sep_prepare_input_dma_table_34832 sep_prepare_input_dma_table 2-3 34832 NULL ++b43_debugfs_write_34838 b43_debugfs_write 3 34838 NULL ++bl_mark_for_commit_34852 bl_mark_for_commit 2-3 34852 NULL ++acpi_system_write_wakeup_device_34853 acpi_system_write_wakeup_device 3 34853 NULL ++usb_serial_generic_prepare_write_buffer_34857 usb_serial_generic_prepare_write_buffer 3 34857 NULL ++ieee80211_if_write_34894 ieee80211_if_write 3 34894 NULL ++compat_put_uint_34905 compat_put_uint 1 34905 NULL ++skb_gro_header_slow_34958 skb_gro_header_slow 2 34958 NULL nohasharray ++i2c_transfer_34958 i2c_transfer 0 34958 &skb_gro_header_slow_34958 ++Realloc_34961 Realloc 2 34961 NULL ++l2cap_skbuff_fromiovec_35003 l2cap_skbuff_fromiovec 4-3 35003 NULL ++sisusb_copy_memory_35016 sisusb_copy_memory 4 35016 NULL ++coda_psdev_read_35029 coda_psdev_read 3 35029 NULL ++btmrvl_gpiogap_write_35053 btmrvl_gpiogap_write 3 35053 NULL ++store_ifalias_35088 store_ifalias 4 35088 NULL ++__kfifo_uint_must_check_helper_35097 __kfifo_uint_must_check_helper 0-1 35097 NULL ++capi_write_35104 capi_write 3 35104 NULL ++ide_settings_proc_write_35110 ide_settings_proc_write 3 35110 NULL ++pointer_35138 pointer 0 35138 NULL ++gntdev_alloc_map_35145 gntdev_alloc_map 2 35145 NULL ++iscsi_conn_setup_35159 iscsi_conn_setup 2 35159 NULL ++ieee80211_if_read_bssid_35161 ieee80211_if_read_bssid 3 35161 NULL ++bat_ogm_aggr_packet_35202 bat_ogm_aggr_packet 3 35202 NULL ++unix_stream_recvmsg_35210 unix_stream_recvmsg 4 35210 NULL ++_osd_req_alist_elem_size_35216 _osd_req_alist_elem_size 0-2 35216 NULL ++striped_read_35218 striped_read 2-8-0-3 35218 NULL nohasharray ++security_key_getsecurity_35218 security_key_getsecurity 0 35218 &striped_read_35218 ++video_register_device_no_warn_35226 video_register_device_no_warn 3 35226 NULL ++set_fd_set_35249 set_fd_set 1 35249 NULL ++ioapic_setup_resources_35255 ioapic_setup_resources 1 35255 NULL ++dma_show_regs_35266 dma_show_regs 3 35266 NULL ++irda_recvmsg_stream_35280 irda_recvmsg_stream 4 35280 NULL ++i2o_block_end_request_35282 i2o_block_end_request 3 35282 NULL ++isr_rx_rdys_read_35283 isr_rx_rdys_read 3 35283 NULL ++__btrfs_buffered_write_35311 __btrfs_buffered_write 3 35311 NULL ++tracing_read_pipe_35312 tracing_read_pipe 3 35312 NULL ++sys_setsockopt_35320 sys_setsockopt 5 35320 NULL ++new_bind_ctl_35324 new_bind_ctl 2 35324 NULL ++fallback_on_nodma_alloc_35332 fallback_on_nodma_alloc 2 35332 NULL ++pskb_network_may_pull_35336 pskb_network_may_pull 2 35336 NULL ++hpi_alloc_control_cache_35351 hpi_alloc_control_cache 1 35351 NULL ++compat_filldir64_35354 compat_filldir64 3 35354 NULL ++tt_update_orig_35361 tt_update_orig 4 35361 NULL ++test_empty_cb_35410 test_empty_cb 3 35410 NULL ++rawv6_send_hdrinc_35425 rawv6_send_hdrinc 3 35425 NULL ++buffer_to_user_35439 buffer_to_user 3 35439 NULL ++i915_wedged_read_35474 i915_wedged_read 3 35474 NULL ++do_atm_ioctl_35519 do_atm_ioctl 3 35519 NULL ++async_setkey_35521 async_setkey 3 35521 NULL ++__filemap_fdatawrite_range_35528 __filemap_fdatawrite_range 0 35528 NULL ++iwl_dbgfs_bt_traffic_read_35534 iwl_dbgfs_bt_traffic_read 3 35534 NULL ++rxpipe_tx_xfr_host_int_trig_rx_data_read_35538 rxpipe_tx_xfr_host_int_trig_rx_data_read 3 35538 NULL ++ibnl_put_attr_35541 ibnl_put_attr 3 35541 NULL ++ieee80211_if_write_smps_35550 ieee80211_if_write_smps 3 35550 NULL ++ext2_acl_from_disk_35580 ext2_acl_from_disk 2 35580 NULL ++security_compute_av_35608 security_compute_av 3 35608 NULL ++rbd_req_sync_read_35615 rbd_req_sync_read 5-6 35615 NULL ++kernel_readv_35617 kernel_readv 3 35617 NULL ++scrub_stripe_35637 scrub_stripe 4-3 35637 NULL ++spi_register_board_info_35651 spi_register_board_info 2 35651 NULL ++store_debug_level_35652 store_debug_level 3 35652 NULL ++compat_sys_kexec_load_35674 compat_sys_kexec_load 2 35674 NULL ++dm_table_create_35687 dm_table_create 3 35687 NULL ++rds_page_copy_user_35691 rds_page_copy_user 4 35691 NULL ++pci_enable_sriov_35745 pci_enable_sriov 2 35745 NULL ++iwl_dbgfs_disable_ht40_read_35761 iwl_dbgfs_disable_ht40_read 3 35761 NULL ++udf_alloc_i_data_35786 udf_alloc_i_data 2 35786 NULL ++store_fan1_input_35793 store_fan1_input 4 35793 NULL ++read_file_stations_35795 read_file_stations 3 35795 NULL ++pvr2_hdw_cpufw_get_35824 pvr2_hdw_cpufw_get 0-4-2 35824 NULL ++mthca_buf_alloc_35861 mthca_buf_alloc 2 35861 NULL ++fls64_35862 fls64 0 35862 NULL ++kvm_dirty_bitmap_bytes_35886 kvm_dirty_bitmap_bytes 0 35886 NULL ++ieee80211_if_fmt_dot11MeshRetryTimeout_35890 ieee80211_if_fmt_dot11MeshRetryTimeout 3 35890 NULL ++uwb_rc_cmd_done_35892 uwb_rc_cmd_done 4 35892 NULL ++kernel_setsockopt_35913 kernel_setsockopt 5 35913 NULL ++vol_cdev_compat_ioctl_35923 vol_cdev_compat_ioctl 3 35923 NULL ++au_kzrealloc_35935 au_kzrealloc 3 35935 NULL ++put_cmsg_compat_35937 put_cmsg_compat 4 35937 NULL ++ceph_buffer_new_35974 ceph_buffer_new 1 35974 NULL ++acl_alloc_35979 acl_alloc 1 35979 NULL ++generic_file_aio_read_35987 generic_file_aio_read 0 35987 NULL ++koneplus_sysfs_write_35993 koneplus_sysfs_write 6 35993 NULL ++sys_init_module_36047 sys_init_module 2 36047 NULL ++gpio_power_read_36059 gpio_power_read 3 36059 NULL ++write_emulate_36065 write_emulate 2-4 36065 NULL ++ieee80211_if_fmt_peer_36071 ieee80211_if_fmt_peer 3 36071 NULL ++ext3_new_blocks_36073 ext3_new_blocks 3 36073 NULL ++ieee80211_if_write_tsf_36077 ieee80211_if_write_tsf 3 36077 NULL ++snd_pcm_plug_read_transfer_36080 snd_pcm_plug_read_transfer 0-3 36080 NULL ++vga_arb_write_36112 vga_arb_write 3 36112 NULL ++compat_ptrace_request_36131 compat_ptrace_request 3-4 36131 NULL ++vmalloc_exec_36132 vmalloc_exec 1 36132 NULL ++iwl_trans_txq_alloc_36147 iwl_trans_txq_alloc 3 36147 NULL ++alloc_vm_area_36149 alloc_vm_area 1 36149 NULL ++b1_alloc_card_36155 b1_alloc_card 1 36155 NULL ++btrfs_file_extent_inline_len_36158 btrfs_file_extent_inline_len 0 36158 NULL ++snd_korg1212_copy_from_36169 snd_korg1212_copy_from 6 36169 NULL ++FTL_Get_Block_Table_Flash_Size_Bytes_36187 FTL_Get_Block_Table_Flash_Size_Bytes 0 36187 NULL ++ubifs_read_nnode_36221 ubifs_read_nnode 0 36221 NULL ++atomic_stats_read_36228 atomic_stats_read 3 36228 NULL ++viafb_iga1_odev_proc_write_36241 viafb_iga1_odev_proc_write 3 36241 NULL ++compat_sys_mbind_36256 compat_sys_mbind 5 36256 NULL ++usb_buffer_alloc_36276 usb_buffer_alloc 2 36276 NULL ++mangle_sdp_packet_36279 mangle_sdp_packet 9 36279 NULL ++codec_reg_read_file_36280 codec_reg_read_file 3 36280 NULL ++lpfc_debugfs_dif_err_read_36303 lpfc_debugfs_dif_err_read 3 36303 NULL ++ad7879_spi_xfer_36311 ad7879_spi_xfer 3 36311 NULL ++fat_compat_ioctl_filldir_36328 fat_compat_ioctl_filldir 3 36328 NULL ++jbd2_journal_init_revoke_table_36336 jbd2_journal_init_revoke_table 1 36336 NULL ++v9fs_file_readn_36353 v9fs_file_readn 4 36353 NULL nohasharray ++xz_dec_lzma2_create_36353 xz_dec_lzma2_create 2 36353 &v9fs_file_readn_36353 ++to_sector_36361 to_sector 0-1 36361 NULL ++mtd_do_writeoob_36373 mtd_do_writeoob 4 36373 NULL ++vring_new_virtqueue_36374 vring_new_virtqueue 1 36374 NULL ++tunables_read_36385 tunables_read 3 36385 NULL ++afs_alloc_flat_call_36399 afs_alloc_flat_call 2-3 36399 NULL ++sctp_tsnmap_init_36446 sctp_tsnmap_init 2 36446 NULL ++alloc_etherdev_mqs_36450 alloc_etherdev_mqs 1 36450 NULL ++b43_nphy_load_samples_36481 b43_nphy_load_samples 3 36481 NULL ++iwl_legacy_dbgfs_power_save_status_read_36492 iwl_legacy_dbgfs_power_save_status_read 3 36492 NULL ++__hwahc_op_set_ptk_36510 __hwahc_op_set_ptk 5 36510 NULL ++mcam_v4l_read_36513 mcam_v4l_read 3 36513 NULL ++ieee80211_if_read_fwded_frames_36520 ieee80211_if_read_fwded_frames 3 36520 NULL ++crypto_aead_authsize_36537 crypto_aead_authsize 0 36537 NULL ++cpu_type_read_36540 cpu_type_read 3 36540 NULL ++__kfifo_to_user_36555 __kfifo_to_user 3 36555 NULL nohasharray ++macvtap_do_read_36555 macvtap_do_read 4 36555 &__kfifo_to_user_36555 ++ssb_bus_scan_36578 ssb_bus_scan 2 36578 NULL ++__erst_read_36579 __erst_read 0 36579 NULL ++put_cmsg_36589 put_cmsg 4 36589 NULL ++pcnet32_realloc_rx_ring_36598 pcnet32_realloc_rx_ring 3 36598 NULL ++fat_ioctl_filldir_36621 fat_ioctl_filldir 3 36621 NULL ++vxge_config_vpaths_36636 vxge_config_vpaths 0 36636 NULL ++format_decode_36638 format_decode 0 36638 NULL ++cxio_hal_rqtpool_alloc_36648 cxio_hal_rqtpool_alloc 2 36648 NULL nohasharray ++lpfc_idiag_extacc_alloc_get_36648 lpfc_idiag_extacc_alloc_get 0-3 36648 &cxio_hal_rqtpool_alloc_36648 ++osd_req_list_collection_objects_36664 osd_req_list_collection_objects 5 36664 NULL ++iscsi_host_alloc_36671 iscsi_host_alloc 2 36671 NULL ++ptr_to_compat_36680 ptr_to_compat 0 36680 NULL ++ext4_mb_discard_group_preallocations_36685 ext4_mb_discard_group_preallocations 2 36685 NULL ++saa7134_i2c_eeprom_36729 saa7134_i2c_eeprom 3 36729 NULL ++extract_icmp6_fields_36732 extract_icmp6_fields 2 36732 NULL ++snd_rawmidi_kernel_read1_36740 snd_rawmidi_kernel_read1 4 36740 NULL ++cxgbi_device_register_36746 cxgbi_device_register 1-2 36746 NULL ++ip4ip6_err_36772 ip4ip6_err 5 36772 NULL ++proc_fault_inject_read_36802 proc_fault_inject_read 3 36802 NULL ++do_dmabuf_dirty_sou_36807 do_dmabuf_dirty_sou 7 36807 NULL ++hiddev_ioctl_36816 hiddev_ioctl 2 36816 NULL ++int_hardware_entry_36833 int_hardware_entry 3 36833 NULL ++fc_change_queue_depth_36841 fc_change_queue_depth 2 36841 NULL ++keyctl_describe_key_36853 keyctl_describe_key 3 36853 NULL ++cm_write_36858 cm_write 3 36858 NULL ++svc_setsockopt_36876 svc_setsockopt 5 36876 NULL ++ib_ucm_alloc_data_36885 ib_ucm_alloc_data 3 36885 NULL ++selinux_inode_notifysecctx_36896 selinux_inode_notifysecctx 3 36896 NULL ++OS_kmalloc_36909 OS_kmalloc 1 36909 NULL ++crypto_blkcipher_ivsize_36944 crypto_blkcipher_ivsize 0 36944 NULL ++write_leb_36957 write_leb 5 36957 NULL ++_copy_from_user_36959 _copy_from_user 3 36959 NULL ++ntfs_external_attr_find_36963 ntfs_external_attr_find 0 36963 NULL ++sparse_early_mem_maps_alloc_node_36971 sparse_early_mem_maps_alloc_node 4 36971 NULL ++setxattr_37006 setxattr 4 37006 NULL ++ieee80211_if_read_drop_unencrypted_37053 ieee80211_if_read_drop_unencrypted 3 37053 NULL ++parse_command_37079 parse_command 2 37079 NULL ++snd_hda_get_conn_list_37132 snd_hda_get_conn_list 0 37132 NULL ++msg_word_37164 msg_word 0 37164 NULL ++can_set_xattr_37182 can_set_xattr 4 37182 NULL ++store_wimax_37196 store_wimax 4 37196 NULL ++crypto_shash_descsize_37212 crypto_shash_descsize 0 37212 NULL ++uapsd_queues_read_37217 uapsd_queues_read 3 37217 NULL ++regmap_access_read_file_37223 regmap_access_read_file 3 37223 NULL ++__do_replace_37227 __do_replace 5 37227 NULL ++prot_queue_del_37258 prot_queue_del 0 37258 NULL ++exofs_max_io_pages_37263 exofs_max_io_pages 0-2 37263 NULL ++c101_run_37279 c101_run 2 37279 NULL ++srp_target_alloc_37288 srp_target_alloc 3 37288 NULL ++jffs2_write_dirent_37311 jffs2_write_dirent 5 37311 NULL ++send_msg_37323 send_msg 4 37323 NULL ++scsi_mode_select_37330 scsi_mode_select 6 37330 NULL ++rxrpc_server_sendmsg_37331 rxrpc_server_sendmsg 4 37331 NULL ++flex_array_put_37350 flex_array_put 2 37350 NULL ++security_inode_getsecurity_37354 security_inode_getsecurity 0 37354 NULL ++iommu_num_pages_37391 iommu_num_pages 0-1-3-2 37391 NULL ++sys_getxattr_37418 sys_getxattr 4 37418 NULL ++hci_sock_sendmsg_37420 hci_sock_sendmsg 4 37420 NULL ++acpi_os_allocate_zeroed_37422 acpi_os_allocate_zeroed 1 37422 NULL nohasharray ++find_next_bit_37422 find_next_bit 0-2-3 37422 &acpi_os_allocate_zeroed_37422 ++tty_insert_flip_string_fixed_flag_37428 tty_insert_flip_string_fixed_flag 4 37428 NULL ++iwl_print_last_event_logs_37433 iwl_print_last_event_logs 0-7-9 37433 NULL ++tcp_established_options_37450 tcp_established_options 0 37450 NULL ++cmd_input_size_37457 cmd_input_size 0-1 37457 NULL ++ufs_data_ptr_to_cpu_37475 ufs_data_ptr_to_cpu 0 37475 NULL ++get_est_timing_37484 get_est_timing 0 37484 NULL ++kmem_realloc_37489 kmem_realloc 2 37489 NULL ++security_validate_transition_37494 security_validate_transition 4 37494 NULL ++kvm_vcpu_compat_ioctl_37500 kvm_vcpu_compat_ioctl 3 37500 NULL ++vmalloc_32_user_37519 vmalloc_32_user 1 37519 NULL ++hdr_size_37536 hdr_size 0 37536 NULL ++xhci_alloc_streams_37586 xhci_alloc_streams 5 37586 NULL ++kvm_read_guest_page_mmu_37611 kvm_read_guest_page_mmu 6 37611 NULL ++alloc_fd_37637 alloc_fd 1 37637 NULL ++bio_copy_user_iov_37660 bio_copy_user_iov 4 37660 NULL ++rfcomm_sock_sendmsg_37661 rfcomm_sock_sendmsg 4 37661 NULL nohasharray ++vmw_framebuffer_dmabuf_dirty_37661 vmw_framebuffer_dmabuf_dirty 6 37661 &rfcomm_sock_sendmsg_37661 ++iwl_legacy_dbgfs_rxon_filter_flags_read_37666 iwl_legacy_dbgfs_rxon_filter_flags_read 3 37666 NULL ++regmap_map_read_file_37685 regmap_map_read_file 3 37685 NULL ++__le32_to_cpup_37702 __le32_to_cpup 0 37702 NULL ++read_enabled_file_bool_37744 read_enabled_file_bool 3 37744 NULL ++ocfs2_duplicate_clusters_by_jbd_37749 ocfs2_duplicate_clusters_by_jbd 6-4-5 37749 NULL ++ocfs2_control_cfu_37750 ocfs2_control_cfu 2 37750 NULL ++ipath_cdev_init_37752 ipath_cdev_init 1 37752 NULL ++dccp_setsockopt_cscov_37766 dccp_setsockopt_cscov 2 37766 NULL ++smk_read_logging_37804 smk_read_logging 3 37804 NULL ++deny_write_access_37813 deny_write_access 0 37813 NULL ++fallback_alloc_37821 fallback_alloc 0 37821 NULL ++slab_get_obj_37825 slab_get_obj 0 37825 NULL ++bitmap_find_next_zero_area_37827 bitmap_find_next_zero_area 2-3-5-4 37827 NULL ++o2hb_debug_read_37851 o2hb_debug_read 3 37851 NULL ++xfs_dir2_block_to_sf_37868 xfs_dir2_block_to_sf 3 37868 NULL ++iwmct_fw_parser_init_37876 iwmct_fw_parser_init 4 37876 NULL ++sys_setxattr_37880 sys_setxattr 4 37880 NULL ++tipc_link_send_sections_fast_37920 tipc_link_send_sections_fast 4 37920 NULL ++pkt_alloc_packet_data_37928 pkt_alloc_packet_data 1 37928 NULL ++read_rbu_packet_size_37939 read_rbu_packet_size 6 37939 NULL ++ext3_free_blocks_sb_37967 ext3_free_blocks_sb 3-4 37967 NULL ++rds_rdma_extra_size_37990 rds_rdma_extra_size 0 37990 NULL ++vfs_readv_38011 vfs_readv 3 38011 NULL ++aggr_recv_addba_req_evt_38037 aggr_recv_addba_req_evt 4 38037 NULL ++store_wlan_38040 store_wlan 4 38040 NULL ++klsi_105_prepare_write_buffer_38044 klsi_105_prepare_write_buffer 3 38044 NULL ++nsm_create_handle_38060 nsm_create_handle 4 38060 NULL ++alloc_ltalkdev_38071 alloc_ltalkdev 1 38071 NULL ++uwb_mac_addr_print_38085 uwb_mac_addr_print 2 38085 NULL ++request_key_auth_new_38092 request_key_auth_new 3 38092 NULL ++proc_self_readlink_38094 proc_self_readlink 3 38094 NULL ++ep0_read_38095 ep0_read 3 38095 NULL ++snd_pcm_oss_write_38108 snd_pcm_oss_write 3 38108 NULL ++vmw_kms_present_38130 vmw_kms_present 9 38130 NULL ++__ntfs_copy_from_user_iovec_inatomic_38153 __ntfs_copy_from_user_iovec_inatomic 3-4 38153 NULL ++kvm_clear_guest_38164 kvm_clear_guest 3-2 38164 NULL ++cdev_add_38176 cdev_add 2-3 38176 NULL ++rt2x00debug_write_rf_38195 rt2x00debug_write_rf 3 38195 NULL ++get_ucode_user_38202 get_ucode_user 3 38202 NULL ++ext3_new_block_38208 ext3_new_block 3 38208 NULL ++osd_req_list_partition_collections_38223 osd_req_list_partition_collections 5 38223 NULL ++vhost_net_compat_ioctl_38237 vhost_net_compat_ioctl 3 38237 NULL ++_ipw_read_reg32_38245 _ipw_read_reg32 0 38245 NULL ++ieee80211_if_read_auto_open_plinks_38268 ieee80211_if_read_auto_open_plinks 3 38268 NULL nohasharray ++mthca_alloc_icm_table_38268 mthca_alloc_icm_table 4-3 38268 &ieee80211_if_read_auto_open_plinks_38268 ++xfs_bmbt_to_bmdr_38275 xfs_bmbt_to_bmdr 3 38275 NULL nohasharray ++xfs_bmdr_to_bmbt_38275 xfs_bmdr_to_bmbt 5 38275 &xfs_bmbt_to_bmdr_38275 ++isr_rx_headers_read_38325 isr_rx_headers_read 3 38325 NULL ++ida_simple_get_38326 ida_simple_get 2 38326 NULL ++__snd_gf1_look8_38333 __snd_gf1_look8 0 38333 NULL ++dn_sendmsg_38390 dn_sendmsg 4 38390 NULL ++get_valid_node_allowed_38412 get_valid_node_allowed 1-0 38412 NULL ++ocfs2_which_cluster_group_38413 ocfs2_which_cluster_group 2 38413 NULL ++iwm_wdev_alloc_38415 iwm_wdev_alloc 1 38415 NULL ++ht_destroy_irq_38418 ht_destroy_irq 1 38418 NULL ++ieee80211_if_read_dtim_count_38419 ieee80211_if_read_dtim_count 3 38419 NULL ++pcnet32_realloc_tx_ring_38428 pcnet32_realloc_tx_ring 3 38428 NULL ++pmcraid_copy_sglist_38431 pmcraid_copy_sglist 3 38431 NULL ++kvm_write_guest_38454 kvm_write_guest 4-2 38454 NULL ++blk_end_bidi_request_38482 blk_end_bidi_request 3-4 38482 NULL ++cpu_to_mem_38501 cpu_to_mem 0 38501 NULL ++dev_names_read_38509 dev_names_read 3 38509 NULL ++iscsi_create_iface_38510 iscsi_create_iface 5 38510 NULL ++event_rx_mismatch_read_38518 event_rx_mismatch_read 3 38518 NULL ++ubifs_idx_node_sz_38546 ubifs_idx_node_sz 0-2 38546 NULL ++cpu_to_node_38561 cpu_to_node 0 38561 NULL ++irda_sendmsg_dgram_38563 irda_sendmsg_dgram 4 38563 NULL ++_ipw_read32_38565 _ipw_read32 0 38565 NULL ++snd_nm256_playback_copy_38567 snd_nm256_playback_copy 5-3 38567 NULL ++copy_ctl_value_to_user_38587 copy_ctl_value_to_user 4 38587 NULL ++compat_sys_ptrace_38595 compat_sys_ptrace 3-4 38595 NULL ++reportdesc_callback_38603 reportdesc_callback 3 38603 NULL ++__css_put_38613 __css_put 2 38613 NULL ++icn_writecmd_38629 icn_writecmd 2 38629 NULL ++receive_extralen_38634 receive_extralen 0 38634 NULL ++audit_init_entry_38644 audit_init_entry 1 38644 NULL ++mmc_send_cxd_data_38655 mmc_send_cxd_data 5 38655 NULL ++nfs_dns_resolve_name_38670 nfs_dns_resolve_name 2 38670 NULL ++cfg80211_send_disassoc_38678 cfg80211_send_disassoc 3 38678 NULL ++iscsit_dump_data_payload_38683 iscsit_dump_data_payload 2 38683 NULL ++find_next_usable_block_38716 find_next_usable_block 1-3 38716 NULL ++v4l2_ctrl_new_38725 v4l2_ctrl_new 7 38725 NULL ++iwl_dbgfs_thermal_throttling_read_38779 iwl_dbgfs_thermal_throttling_read 3 38779 NULL ++snd_gus_dram_write_38784 snd_gus_dram_write 4 38784 NULL ++gre_manip_pkt_38785 gre_manip_pkt 2 38785 NULL ++err_decode_38804 err_decode 2 38804 NULL ++ipv6_renew_option_38813 ipv6_renew_option 3 38813 NULL ++sys_select_38827 sys_select 1 38827 NULL ++b43_txhdr_size_38832 b43_txhdr_size 0 38832 NULL ++direct_entry_38836 direct_entry 3 38836 NULL ++compat_udp_setsockopt_38840 compat_udp_setsockopt 5 38840 NULL ++interfaces_38859 interfaces 2 38859 NULL ++pci_msix_table_size_38867 pci_msix_table_size 0 38867 NULL ++sizeof_gpio_leds_priv_38882 sizeof_gpio_leds_priv 0-1 38882 NULL ++dbgfs_state_38894 dbgfs_state 3 38894 NULL ++ext3_trim_all_free_38929 ext3_trim_all_free 3-4-2 38929 NULL ++usb_maxpacket_38977 usb_maxpacket 0 38977 NULL ++OSDSetBlock_38986 OSDSetBlock 4-2 38986 NULL ++udf_new_block_38999 udf_new_block 4 38999 NULL ++get_nodes_39012 get_nodes 3 39012 NULL ++disp_proc_write_39024 disp_proc_write 3 39024 NULL ++acpi_install_gpe_block_39031 acpi_install_gpe_block 4 39031 NULL ++_zd_iowrite32v_async_locked_39034 _zd_iowrite32v_async_locked 3 39034 NULL ++line6_midibuf_read_39067 line6_midibuf_read 0-3 39067 NULL ++ext4_init_block_bitmap_39071 ext4_init_block_bitmap 3 39071 NULL ++tomoyo_truncate_39105 tomoyo_truncate 0 39105 NULL ++__kfifo_to_user_r_39123 __kfifo_to_user_r 3 39123 NULL ++ea_foreach_39133 ea_foreach 0 39133 NULL ++generic_permission_39150 generic_permission 0 39150 NULL ++alloc_ring_39151 alloc_ring 2-4 39151 NULL ++proc_coredump_filter_read_39153 proc_coredump_filter_read 3 39153 NULL ++create_bounce_buffer_39155 create_bounce_buffer 3 39155 NULL ++ext3_xattr_check_names_39174 ext3_xattr_check_names 0 39174 NULL ++init_list_set_39188 init_list_set 2-3 39188 NULL ++ubi_more_update_data_39189 ubi_more_update_data 4 39189 NULL ++qcam_read_bytes_39205 qcam_read_bytes 0 39205 NULL ++ivtv_v4l2_write_39226 ivtv_v4l2_write 3 39226 NULL ++drm_order_39244 drm_order 0 39244 NULL ++r128_compat_ioctl_39250 r128_compat_ioctl 2 39250 NULL ++__skb_cow_39254 __skb_cow 2 39254 NULL ++pohmelfs_setxattr_39281 pohmelfs_setxattr 4 39281 NULL ++mei_registration_cdev_39284 mei_registration_cdev 2 39284 NULL ++__vmalloc_node_39308 __vmalloc_node 1 39308 NULL ++__cfg80211_connect_result_39326 __cfg80211_connect_result 4-6 39326 NULL ++flex_array_prealloc_39330 flex_array_prealloc 2-3 39330 NULL ++wimax_msg_alloc_39343 wimax_msg_alloc 4 39343 NULL ++__cfg80211_send_deauth_39344 __cfg80211_send_deauth 3 39344 NULL ++__copy_from_user_nocache_39351 __copy_from_user_nocache 3 39351 NULL ++ide_complete_rq_39354 ide_complete_rq 3 39354 NULL ++vortex_wtdma_getlinearpos_39371 vortex_wtdma_getlinearpos 0 39371 NULL ++user_power_read_39414 user_power_read 3 39414 NULL ++alloc_agpphysmem_i8xx_39427 alloc_agpphysmem_i8xx 1 39427 NULL ++sys_semop_39457 sys_semop 3 39457 NULL ++setkey_unaligned_39474 setkey_unaligned 3 39474 NULL ++btrfs_mksubvol_39479 btrfs_mksubvol 3 39479 NULL ++ieee80211_if_fmt_dot11MeshHWMPmaxPREQretries_39499 ieee80211_if_fmt_dot11MeshHWMPmaxPREQretries 3 39499 NULL ++atomic64_read_unchecked_39505 atomic64_read_unchecked 0 39505 NULL ++wm8350_i2c_read_device_39542 wm8350_i2c_read_device 3 39542 NULL nohasharray ++int_proc_write_39542 int_proc_write 3 39542 &wm8350_i2c_read_device_39542 ++pp_write_39554 pp_write 3 39554 NULL ++ol_dqblk_block_39558 ol_dqblk_block 0-3-2 39558 NULL ++datablob_format_39571 datablob_format 2 39571 NULL nohasharray ++ieee80211_if_read_fwded_mcast_39571 ieee80211_if_read_fwded_mcast 3 39571 &datablob_format_39571 ++handle_response_icmp_39574 handle_response_icmp 7 39574 NULL ++n_tty_compat_ioctl_helper_39605 n_tty_compat_ioctl_helper 4 39605 NULL ++ext_depth_39607 ext_depth 0 39607 NULL ++sdio_readb_39618 sdio_readb 0 39618 NULL ++dm_exception_table_init_39645 dm_exception_table_init 2 39645 NULL ++snd_rme32_capture_copy_39653 snd_rme32_capture_copy 5 39653 NULL ++prism2_info_hostscanresults_39657 prism2_info_hostscanresults 3 39657 NULL ++kvm_read_guest_cached_39666 kvm_read_guest_cached 4 39666 NULL ++v4l_stk_read_39672 v4l_stk_read 3 39672 NULL ++do_surface_dirty_sou_39678 do_surface_dirty_sou 7 39678 NULL ++ftrace_pid_write_39710 ftrace_pid_write 3 39710 NULL ++tcf_csum_ipv4_tcp_39713 tcf_csum_ipv4_tcp 4 39713 NULL ++ocfs2_pages_per_cluster_39790 ocfs2_pages_per_cluster 0 39790 NULL ++security_inode_listsecurity_39812 security_inode_listsecurity 0 39812 NULL ++snd_pcm_oss_writev3_39818 snd_pcm_oss_writev3 3 39818 NULL ++sys_migrate_pages_39825 sys_migrate_pages 2 39825 NULL ++get_priv_size_39828 get_priv_size 0-1 39828 NULL ++pkt_add_39897 pkt_add 3 39897 NULL +read_file_modal_eeprom_39909 read_file_modal_eeprom 3 39909 NULL -+ipv6_recv_rxpmtu_7142 ipv6_recv_rxpmtu 3 7142 NULL -+dvb_aplay_56296 dvb_aplay 3 56296 NULL +gen_pool_add_virt_39913 gen_pool_add_virt 4 39913 NULL -+alloc_large_system_hash_64490 alloc_large_system_hash 2 64490 NULL +dw210x_op_rw_39915 dw210x_op_rw 6 39915 NULL -+p54_parse_rssical_64493 p54_parse_rssical 3 64493 NULL -+sctp_make_asconf_ack_31726 sctp_make_asconf_ack 3 31726 NULL +aes_encrypt_interrupt_read_39919 aes_encrypt_interrupt_read 3 39919 NULL -+ima_show_measurements_count_23536 ima_show_measurements_count 3 23536 NULL +exofs_read_kern_39921 exofs_read_kern 6 39921 NULL nohasharray +oom_score_adj_read_39921 oom_score_adj_read 3 39921 &exofs_read_kern_39921 -+alloc_cpu_rmap_65363 alloc_cpu_rmap 1 65363 NULL -+get_arg_5694 get_arg 3 5694 NULL -+NCR_700_change_queue_depth_31742 NCR_700_change_queue_depth 2 31742 NULL -+acpi_ut_create_string_object_15360 acpi_ut_create_string_object 1 15360 NULL -+lbs_failcount_read_31063 lbs_failcount_read 3 31063 NULL ++__spi_async_39932 __spi_async 0 39932 NULL +iwl_legacy_dbgfs_missed_beacon_read_39939 iwl_legacy_dbgfs_missed_beacon_read 3 39939 NULL -+vmw_framebuffer_surface_dirty_48132 vmw_framebuffer_surface_dirty 6 48132 NULL -+bcm_char_read_31750 bcm_char_read 3 31750 NULL -+snd_seq_device_new_31753 snd_seq_device_new 4 31753 NULL -+fwnet_pd_new_39947 fwnet_pd_new 4 39947 NULL -+compat_sys_process_vm_readv_15374 compat_sys_process_vm_readv 3-5 15374 NULL -+ses_send_diag_64527 ses_send_diag 4 64527 NULL -+tcp_match_skb_to_sack_23568 tcp_match_skb_to_sack 3-4 23568 NULL -+snd_rawmidi_read_56337 snd_rawmidi_read 3 56337 NULL -+venus_symlink_23570 venus_symlink 4-6 23570 NULL +tty_prepare_flip_string_39955 tty_prepare_flip_string 3 39955 NULL -+__tcp_push_pending_frames_48148 __tcp_push_pending_frames 2 48148 NULL -+iwl_dbgfs_interrupt_read_23574 iwl_dbgfs_interrupt_read 3 23574 NULL -+ipv6_recv_error_56347 ipv6_recv_error 3 56347 NULL -+vxge_os_dma_malloc_async_56348 vxge_os_dma_malloc_async 3 56348 NULL -+ca_extend_64541 ca_extend 2 64541 NULL -+drm_compat_ioctl_51717 drm_compat_ioctl 2 51717 NULL -+__alloc_objio_seg_7203 __alloc_objio_seg 1 7203 NULL -+cifs_spnego_key_instantiate_23588 cifs_spnego_key_instantiate 3 23588 NULL +dma_push_rx_39973 dma_push_rx 2 39973 NULL +broadsheetfb_write_39976 broadsheetfb_write 3 39976 NULL -+cfpkt_create_pfx_23594 cfpkt_create_pfx 1-2 23594 NULL -+sctp_datamsg_from_user_55342 sctp_datamsg_from_user 4 55342 NULL -+iov_iter_copy_from_user_atomic_56368 iov_iter_copy_from_user_atomic 4 56368 NULL -+pskb_network_may_pull_35336 pskb_network_may_pull 2 35336 NULL +mthca_array_init_39987 mthca_array_init 2 39987 NULL -+diva_os_alloc_message_buffer_64568 diva_os_alloc_message_buffer 1 64568 NULL -+ecryptfs_send_message_locked_31801 ecryptfs_send_message_locked 2 31801 NULL -+islpci_mgt_transaction_23610 islpci_mgt_transaction 5 23610 NULL -+init_ipath_48187 init_ipath 1 48187 NULL -+isr_rx_procs_read_31804 isr_rx_procs_read 3 31804 NULL -+__videobuf_copy_to_user_15423 __videobuf_copy_to_user 4 15423 NULL -+sys32_ipc_7238 sys32_ipc 3 7238 NULL -+sta_last_signal_read_31818 sta_last_signal_read 3 31818 NULL -+rtllib_alloc_txb_21687 rtllib_alloc_txb 1-2 21687 NULL -+msg_set_51725 msg_set 3 51725 NULL +xen_hvm_config_40018 xen_hvm_config 2 40018 NULL -+ocfs2_control_read_56405 ocfs2_control_read 3 56405 NULL -+xlog_find_verify_log_record_18870 xlog_find_verify_log_record 2 18870 NULL +ivtvfb_write_40023 ivtvfb_write 3 40023 NULL -+pmcraid_copy_sglist_38431 pmcraid_copy_sglist 3 38431 NULL -+hpsa_change_queue_depth_15449 hpsa_change_queue_depth 2 15449 NULL -+use_pool_64607 use_pool 2 64607 NULL -+__get_vm_area_caller_56416 __get_vm_area_caller 1 56416 NULL nohasharray -+acpi_os_write_memory_56416 acpi_os_write_memory 1-3 56416 &__get_vm_area_caller_56416 -+store_msg_56417 store_msg 3 56417 NULL -+pppol2tp_sendmsg_56420 pppol2tp_sendmsg 4 56420 NULL -+sel_write_enforce_48998 sel_write_enforce 3 48998 NULL ++ea_foreach_i_40028 ea_foreach_i 0 40028 NULL +datablob_hmac_append_40038 datablob_hmac_append 3 40038 NULL ++atomic_xchg_40070 atomic_xchg 0 40070 NULL ++sctp_setsockopt_delayed_ack_40129 sctp_setsockopt_delayed_ack 3 40129 NULL ++iwch_alloc_fastreg_pbl_40153 iwch_alloc_fastreg_pbl 2 40153 NULL ++pt_write_40159 pt_write 3 40159 NULL ++scsi_sg_count_40182 scsi_sg_count 0 40182 NULL ++ipr_alloc_ucode_buffer_40199 ipr_alloc_ucode_buffer 1 40199 NULL nohasharray ++devnode_find_40199 devnode_find 3-2 40199 &ipr_alloc_ucode_buffer_40199 ++allocate_probes_40204 allocate_probes 1 40204 NULL ++compat_put_long_40214 compat_put_long 1 40214 NULL ++au0828_v4l2_read_40220 au0828_v4l2_read 3 40220 NULL ++osst_read_40237 osst_read 3 40237 NULL ++ocfs2_zero_extend_get_range_40248 ocfs2_zero_extend_get_range 4 40248 NULL ++rs_sta_dbgfs_scale_table_read_40262 rs_sta_dbgfs_scale_table_read 3 40262 NULL ++rx_xfr_hint_trig_read_40283 rx_xfr_hint_trig_read 3 40283 NULL ++ubi_io_write_data_40305 ubi_io_write_data 4-5 40305 NULL ++ib_get_mad_data_offset_40336 ib_get_mad_data_offset 0 40336 NULL ++mmio_read_40348 mmio_read 4 40348 NULL ++usb_dump_interface_40353 usb_dump_interface 0 40353 NULL ++ocfs2_release_clusters_40355 ocfs2_release_clusters 4 40355 NULL ++event_rx_mem_empty_read_40363 event_rx_mem_empty_read 3 40363 NULL ++ocfs2_check_range_for_refcount_40365 ocfs2_check_range_for_refcount 2-3 40365 NULL ++tomoyo_update_policy_40458 tomoyo_update_policy 2 40458 NULL ++zd_usb_scnprint_id_40459 zd_usb_scnprint_id 0-3 40459 NULL ++devcgroup_inode_permission_40492 devcgroup_inode_permission 0 40492 NULL ++tty_write_room_40495 tty_write_room 0 40495 NULL ++sg_phys_40507 sg_phys 0 40507 NULL ++TSS_checkhmac2_40520 TSS_checkhmac2 5-7 40520 NULL ++ima_write_policy_40548 ima_write_policy 3 40548 NULL ++esp_alloc_tmp_40558 esp_alloc_tmp 3-2 40558 NULL ++ufs_inode_getfrag_40560 ufs_inode_getfrag 2-4 40560 NULL ++arch_setup_hpet_msi_40584 arch_setup_hpet_msi 1 40584 NULL ++skge_rx_get_40598 skge_rx_get 3 40598 NULL ++get_priv_descr_and_size_40612 get_priv_descr_and_size 0 40612 NULL ++sctp_manip_pkt_40620 sctp_manip_pkt 2 40620 NULL ++cpuset_sprintf_cpulist_40627 cpuset_sprintf_cpulist 0 40627 NULL ++fops_read_40672 fops_read 3 40672 NULL ++__seq_open_private_40715 __seq_open_private 3 40715 NULL ++xfs_iext_remove_direct_40744 xfs_iext_remove_direct 3 40744 NULL nohasharray ++find_next_zero_bit_le_40744 find_next_zero_bit_le 0-2-3 40744 &xfs_iext_remove_direct_40744 ++security_inode_listxattr_40752 security_inode_listxattr 0 40752 NULL ++fat_generic_compat_ioctl_40755 fat_generic_compat_ioctl 3 40755 NULL ++card_send_command_40757 card_send_command 3 40757 NULL ++ad1889_readl_40765 ad1889_readl 0 40765 NULL ++pg_write_40766 pg_write 3 40766 NULL ++ecryptfs_readlink_40775 ecryptfs_readlink 3 40775 NULL nohasharray ++show_list_40775 show_list 3 40775 &ecryptfs_readlink_40775 ++bitmap_weight_40791 bitmap_weight 0-2 40791 NULL ++netdev_alloc_skb_ip_align_40811 netdev_alloc_skb_ip_align 2 40811 NULL nohasharray ++paranoid_check_not_bad_40811 paranoid_check_not_bad 0 40811 &netdev_alloc_skb_ip_align_40811 ++nl80211_send_roamed_40825 nl80211_send_roamed 5-7 40825 NULL ++ocfs2_zero_partial_clusters_40856 ocfs2_zero_partial_clusters 2-3 40856 NULL ++v9fs_file_read_40858 v9fs_file_read 3 40858 NULL ++iwch_alloc_pbl_40885 iwch_alloc_pbl 2 40885 NULL ++read_file_queue_40895 read_file_queue 3 40895 NULL ++waiters_read_40902 waiters_read 3 40902 NULL ++isdn_add_channels_40905 isdn_add_channels 3 40905 NULL ++iwl_legacy_dbgfs_disable_ht40_read_40910 iwl_legacy_dbgfs_disable_ht40_read 3 40910 NULL ++gfs2_ea_find_40913 gfs2_ea_find 0 40913 NULL ++vol_cdev_write_40915 vol_cdev_write 3 40915 NULL ++snd_vx_create_40948 snd_vx_create 4 40948 NULL ++rds_sendmsg_40976 rds_sendmsg 4 40976 NULL ++econet_recvmsg_40978 econet_recvmsg 4 40978 NULL ++mac80211_format_buffer_41010 mac80211_format_buffer 2 41010 NULL ++_req_append_segment_41031 _req_append_segment 2 41031 NULL ++mISDN_sock_sendmsg_41035 mISDN_sock_sendmsg 4 41035 NULL ++ocfs2_xattr_index_block_find_41040 ocfs2_xattr_index_block_find 0 41040 NULL ++vfs_listxattr_41062 vfs_listxattr 0 41062 NULL ++cfg80211_inform_bss_frame_41078 cfg80211_inform_bss_frame 4 41078 NULL ++roccat_read_41093 roccat_read 3 41093 NULL ++provide_user_output_41105 provide_user_output 3 41105 NULL ++f_audio_buffer_alloc_41110 f_audio_buffer_alloc 1 41110 NULL ++oom_adjust_write_41116 oom_adjust_write 3 41116 NULL ++dvb_ca_write_41171 dvb_ca_write 3 41171 NULL ++ol_quota_chunk_block_41177 ol_quota_chunk_block 0-2 41177 NULL ++compat_sys_process_vm_writev_41194 compat_sys_process_vm_writev 3-5 41194 NULL ++dfs_file_write_41196 dfs_file_write 3 41196 NULL ++xfs_readdir_41200 xfs_readdir 3 41200 NULL ++ocfs2_read_quota_block_41207 ocfs2_read_quota_block 2 41207 NULL ++ceph_calc_raw_layout_41212 ceph_calc_raw_layout 4 41212 NULL ++nfs_page_array_len_41219 nfs_page_array_len 0-2-1 41219 NULL ++hiddev_compat_ioctl_41255 hiddev_compat_ioctl 2-3 41255 NULL ++erst_read_41260 erst_read 0 41260 NULL ++alloc_context_41283 alloc_context 1 41283 NULL ++create_bounce_buffer_41330 create_bounce_buffer 3 41330 NULL ++user_update_41332 user_update 3 41332 NULL ++twl_change_queue_depth_41342 twl_change_queue_depth 2 41342 NULL ++cnic_init_id_tbl_41354 cnic_init_id_tbl 2 41354 NULL ++jbd2_alloc_41359 jbd2_alloc 1 41359 NULL ++kmp_init_41373 kmp_init 2 41373 NULL ++isr_commands_read_41398 isr_commands_read 3 41398 NULL ++sys_flistxattr_41407 sys_flistxattr 3 41407 NULL ++xfs_iext_add_41422 xfs_iext_add 3 41422 NULL ++isdn_ppp_fill_rq_41428 isdn_ppp_fill_rq 2 41428 NULL ++lbs_rdrf_read_41431 lbs_rdrf_read 3 41431 NULL ++ext4_trim_extent_41436 ext4_trim_extent 4 41436 NULL ++ntfs_file_buffered_write_41442 ntfs_file_buffered_write 4-6 41442 NULL ++pcpu_build_alloc_info_41443 pcpu_build_alloc_info 1-2-3 41443 NULL ++layout_leb_in_gaps_41470 layout_leb_in_gaps 0 41470 NULL ++wep_interrupt_read_41492 wep_interrupt_read 3 41492 NULL ++hpfs_translate_name_41497 hpfs_translate_name 3 41497 NULL ++xfrm_hash_new_size_41505 xfrm_hash_new_size 0-1 41505 NULL ++ldisc_receive_41516 ldisc_receive 4 41516 NULL ++slab_alloc_41538 slab_alloc 0 41538 NULL ++rng_dev_read_41581 rng_dev_read 3 41581 NULL ++read_file_rx_chainmask_41605 read_file_rx_chainmask 3 41605 NULL ++vga_io_r_41609 vga_io_r 0 41609 NULL ++usb_endpoint_maxp_41613 usb_endpoint_maxp 0 41613 NULL ++lis3l02dq_read_accel_from_buffer_41615 lis3l02dq_read_accel_from_buffer 2 41615 NULL ++mempool_create_kmalloc_pool_41650 mempool_create_kmalloc_pool 1 41650 NULL ++get_std_timing_41654 get_std_timing 0 41654 NULL ++squashfs_cache_init_41656 squashfs_cache_init 2 41656 NULL ++au_nhash_alloc_41670 au_nhash_alloc 2 41670 NULL ++ieee80211_if_fmt_bssid_41677 ieee80211_if_fmt_bssid 3 41677 NULL ++params_period_bytes_41683 params_period_bytes 0 41683 NULL ++aac_src_ioremap_41688 aac_src_ioremap 2 41688 NULL ++ubi_leb_write_41691 ubi_leb_write 4-5 41691 NULL ++bdx_tx_db_init_41719 bdx_tx_db_init 2 41719 NULL ++sys_pwritev_41722 sys_pwritev 3 41722 NULL ++get_bios_ebda_41730 get_bios_ebda 0 41730 NULL ++hc_gpa_41744 hc_gpa 0-2-3 41744 NULL ++fillonedir_41746 fillonedir 3 41746 NULL ++sparse_add_one_section_41778 sparse_add_one_section 3 41778 NULL ++ocfs2_dx_dir_rebalance_41793 ocfs2_dx_dir_rebalance 7 41793 NULL ++sco_send_frame_41815 sco_send_frame 3 41815 NULL ++do_ip_setsockopt_41852 do_ip_setsockopt 5 41852 NULL ++keyctl_instantiate_key_41855 keyctl_instantiate_key 3 41855 NULL ++get_fdb_entries_41916 get_fdb_entries 3 41916 NULL ++ceph_get_direct_page_vector_41917 ceph_get_direct_page_vector 2 41917 NULL ++find_ge_pid_41918 find_ge_pid 1 41918 NULL ++build_inv_iotlb_pages_41922 build_inv_iotlb_pages 4-5 41922 NULL ++nfsd_getxattr_41934 nfsd_getxattr 0 41934 NULL ++ocfs2_xattr_bucket_get_name_value_41949 ocfs2_xattr_bucket_get_name_value 0 41949 NULL ++portnames_read_41958 portnames_read 3 41958 NULL ++dst_mtu_41969 dst_mtu 0 41969 NULL ++cx24116_writeregN_41975 cx24116_writeregN 4 41975 NULL ++ubi_io_is_bad_41983 ubi_io_is_bad 0 41983 NULL ++lguest_map_42008 lguest_map 1-2 42008 NULL ++pool_allocate_42012 pool_allocate 3 42012 NULL ++spidev_sync_read_42014 spidev_sync_read 0 42014 NULL ++ensure_wear_leveling_42029 ensure_wear_leveling 0 42029 NULL ++acpi_ut_create_buffer_object_42030 acpi_ut_create_buffer_object 1 42030 NULL ++__hwahc_op_set_gtk_42038 __hwahc_op_set_gtk 4 42038 NULL ++irda_sendmsg_ultra_42047 irda_sendmsg_ultra 4 42047 NULL ++jffs2_do_link_42048 jffs2_do_link 6 42048 NULL ++InterfaceTransmitPacket_42058 InterfaceTransmitPacket 3 42058 NULL ++brcmf_sdbrcm_downloadvars_42064 brcmf_sdbrcm_downloadvars 3 42064 NULL ++scsi_execute_req_42088 scsi_execute_req 5 42088 NULL ++sk_chk_filter_42095 sk_chk_filter 2 42095 NULL ++submit_inquiry_42108 submit_inquiry 3 42108 NULL ++sysfs_read_file_42113 sysfs_read_file 3 42113 NULL ++store_gps_42118 store_gps 4 42118 NULL ++ttm_agp_populate_42144 ttm_agp_populate 2 42144 NULL ++v9fs_alloc_rdir_buf_42150 v9fs_alloc_rdir_buf 2 42150 NULL ++mmc_align_data_size_42161 mmc_align_data_size 0-2 42161 NULL ++read_file_base_eeprom_42168 read_file_base_eeprom 3 42168 NULL ++oprofilefs_str_to_user_42182 oprofilefs_str_to_user 3 42182 NULL ++get_znodes_to_commit_42201 get_znodes_to_commit 0 42201 NULL ++btmrvl_hsmode_write_42252 btmrvl_hsmode_write 3 42252 NULL ++netxen_nic_map_indirect_address_128M_42257 netxen_nic_map_indirect_address_128M 2 42257 NULL ++snd_pcm_hw_param_value_max_42280 snd_pcm_hw_param_value_max 0 42280 NULL ++sel_read_perm_42302 sel_read_perm 3 42302 NULL ++sctp_setsockopt_del_key_42304 sctp_setsockopt_del_key 3 42304 NULL nohasharray ++ulong_read_file_42304 ulong_read_file 3 42304 &sctp_setsockopt_del_key_42304 ++hysdn_conf_read_42324 hysdn_conf_read 3 42324 NULL ++tcp_sync_mss_42330 tcp_sync_mss 0-2 42330 NULL ++snd_pcm_plug_alloc_42339 snd_pcm_plug_alloc 2 42339 NULL ++ide_raw_taskfile_42355 ide_raw_taskfile 4 42355 NULL ++msnd_fifo_read_42406 msnd_fifo_read 0-3 42406 NULL ++brn_proc_write_42407 brn_proc_write 3 42407 NULL ++krng_get_random_42420 krng_get_random 3 42420 NULL ++gsm_data_alloc_42437 gsm_data_alloc 3 42437 NULL ++key_conf_keyidx_read_42443 key_conf_keyidx_read 3 42443 NULL ++snd_pcm_action_group_42452 snd_pcm_action_group 0 42452 NULL ++tcm_loop_change_queue_depth_42454 tcm_loop_change_queue_depth 2 42454 NULL ++ext3_valid_block_bitmap_42459 ext3_valid_block_bitmap 3 42459 NULL ++follow_hugetlb_page_42486 follow_hugetlb_page 0-7 42486 NULL ++kvm_write_wall_clock_42520 kvm_write_wall_clock 2 42520 NULL ++smk_write_netlbladdr_42525 smk_write_netlbladdr 3 42525 NULL ++snd_emux_create_port_42533 snd_emux_create_port 3 42533 NULL ++dbAllocNear_42546 dbAllocNear 0 42546 NULL ++iwl_print_event_log_42566 iwl_print_event_log 0-5-7 42566 NULL ++xfrm_new_hash_mask_42579 xfrm_new_hash_mask 0-1 42579 NULL ++oom_score_adj_write_42594 oom_score_adj_write 3 42594 NULL ++map_state_42602 map_state 1 42602 NULL nohasharray ++__pskb_pull_42602 __pskb_pull 2 42602 &map_state_42602 ++sys_move_pages_42626 sys_move_pages 2 42626 NULL ++ieee80211_if_fmt_dot11MeshHWMPactivePathTimeout_42635 ieee80211_if_fmt_dot11MeshHWMPactivePathTimeout 3 42635 NULL ++scsi_activate_tcq_42640 scsi_activate_tcq 2 42640 NULL ++br_mdb_rehash_42643 br_mdb_rehash 2 42643 NULL ++_regmap_raw_write_42652 _regmap_raw_write 4 42652 NULL ++l2tp_xmit_skb_42672 l2tp_xmit_skb 3 42672 NULL ++request_key_and_link_42693 request_key_and_link 4 42693 NULL ++vb2_read_42703 vb2_read 3 42703 NULL ++__ocfs2_decrease_refcount_42717 __ocfs2_decrease_refcount 4 42717 NULL ++dvb_demux_ioctl_42733 dvb_demux_ioctl 2 42733 NULL ++set_aoe_iflist_42737 set_aoe_iflist 2 42737 NULL ++ax25_setsockopt_42740 ax25_setsockopt 5 42740 NULL ++xen_bind_pirq_gsi_to_irq_42750 xen_bind_pirq_gsi_to_irq 1 42750 NULL ++qla2x00_get_ctx_bsg_sp_42768 qla2x00_get_ctx_bsg_sp 3 42768 NULL ++snd_midi_event_decode_42780 snd_midi_event_decode 0 42780 NULL ++cryptd_hash_setkey_42781 cryptd_hash_setkey 3 42781 NULL ++koneplus_sysfs_read_42792 koneplus_sysfs_read 6 42792 NULL ++ntfs_attr_extend_allocation_42796 ntfs_attr_extend_allocation 0-2 42796 NULL ++fw_device_op_compat_ioctl_42804 fw_device_op_compat_ioctl 2-3 42804 NULL ++drm_ioctl_42813 drm_ioctl 2 42813 NULL ++iwl_dbgfs_ucode_bt_stats_read_42820 iwl_dbgfs_ucode_bt_stats_read 3 42820 NULL ++set_arg_42824 set_arg 3 42824 NULL ++ocfs2_desc_bitmap_to_cluster_off_42831 ocfs2_desc_bitmap_to_cluster_off 2 42831 NULL ++ocfs2_clusters_for_bytes_42872 ocfs2_clusters_for_bytes 0-2 42872 NULL ++pskb_expand_head_42881 pskb_expand_head 2-3 42881 NULL ++vt_compat_ioctl_42887 vt_compat_ioctl 3 42887 NULL ++tipc_port_recv_sections_42890 tipc_port_recv_sections 4 42890 NULL ++xpc_kmalloc_cacheline_aligned_42895 xpc_kmalloc_cacheline_aligned 1 42895 NULL ++hd_end_request_42904 hd_end_request 2 42904 NULL ++sctp_getsockopt_maxburst_42941 sctp_getsockopt_maxburst 2 42941 NULL ++get_unmapped_area_42944 get_unmapped_area 0 42944 NULL ++sys_sethostname_42962 sys_sethostname 2 42962 NULL ++compat_udpv6_setsockopt_42981 compat_udpv6_setsockopt 5 42981 NULL ++snd_timer_user_ioctl_compat_42985 snd_timer_user_ioctl_compat 3 42985 NULL ++nfs_idmap_get_desc_42990 nfs_idmap_get_desc 4-2 42990 NULL ++mlx4_qp_reserve_range_43000 mlx4_qp_reserve_range 2-3 43000 NULL ++isr_rx_mem_overflow_read_43025 isr_rx_mem_overflow_read 3 43025 NULL ++store_lssw_43035 store_lssw 4 43035 NULL nohasharray ++wep_default_key_count_read_43035 wep_default_key_count_read 3 43035 &store_lssw_43035 ++sep_prepare_input_output_dma_table_in_dcb_43064 sep_prepare_input_output_dma_table_in_dcb 4-5-2-3 43064 NULL ++cpuset_sprintf_memlist_43088 cpuset_sprintf_memlist 0 43088 NULL ++ieee80211_if_fmt_drop_unencrypted_43107 ieee80211_if_fmt_drop_unencrypted 3 43107 NULL ++uuid_string_43154 uuid_string 0 43154 NULL ++usb_string_sub_43164 usb_string_sub 0 43164 NULL ++ext4_xattr_ibody_get_43200 ext4_xattr_ibody_get 0 43200 NULL ++uio_write_43202 uio_write 3 43202 NULL ++iso_callback_43208 iso_callback 3 43208 NULL ++atomic_long_add_return_43217 atomic_long_add_return 1 43217 NULL ++comedi_compat_ioctl_43218 comedi_compat_ioctl 3 43218 NULL ++vmemmap_alloc_block_43245 vmemmap_alloc_block 1 43245 NULL ++fixup_leb_43256 fixup_leb 3 43256 NULL ++store_wwan_43264 store_wwan 4 43264 NULL ++ide_end_rq_43269 ide_end_rq 4 43269 NULL ++evtchn_write_43278 evtchn_write 3 43278 NULL ++filemap_write_and_wait_range_43279 filemap_write_and_wait_range 0 43279 NULL ++alloc_subdevices_43300 alloc_subdevices 2 43300 NULL ++store_ledd_43312 store_ledd 4 43312 NULL ++get_nr_irqs_gsi_43315 get_nr_irqs_gsi 0 43315 NULL ++__ext4_get_inode_loc_43332 __ext4_get_inode_loc 0 43332 NULL ++xenfb_write_43412 xenfb_write 3 43412 NULL ++__alloc_bootmem_low_43423 __alloc_bootmem_low 1 43423 NULL ++usb_alloc_urb_43436 usb_alloc_urb 1 43436 NULL ++usemap_size_43443 usemap_size 0-2-1 43443 NULL nohasharray ++usb_string_43443 usb_string 0 43443 &usemap_size_43443 ++alloc_new_reservation_43480 alloc_new_reservation 4 43480 NULL ++nf_nat_ftp_fmt_cmd_43495 nf_nat_ftp_fmt_cmd 0 43495 NULL ++ieee80211_if_fmt_dot11MeshHWMPnetDiameterTraversalTime_43505 ieee80211_if_fmt_dot11MeshHWMPnetDiameterTraversalTime 3 43505 NULL ++do_readlink_43518 do_readlink 2 43518 NULL ++dvb_ca_en50221_io_write_43533 dvb_ca_en50221_io_write 3 43533 NULL ++cachefiles_daemon_write_43535 cachefiles_daemon_write 3 43535 NULL ++ufs_alloccg_block_43540 ufs_alloccg_block 3-0 43540 NULL ++ath_rx_init_43564 ath_rx_init 2 43564 NULL nohasharray ++_send_control_msg_43564 _send_control_msg 6 43564 &ath_rx_init_43564 ++_fc_frame_alloc_43568 _fc_frame_alloc 1 43568 NULL ++rpc_malloc_43573 rpc_malloc 2 43573 NULL ++lpfc_idiag_drbacc_read_reg_43606 lpfc_idiag_drbacc_read_reg 0-3 43606 NULL ++proc_read_43614 proc_read 3 43614 NULL ++prison_create_43623 prison_create 1 43623 NULL ++bio_integrity_tag_43658 bio_integrity_tag 3 43658 NULL ++ext4_acl_count_43659 ext4_acl_count 0-1 43659 NULL ++dmam_declare_coherent_memory_43679 dmam_declare_coherent_memory 4-2 43679 NULL ++calgary_map_page_43686 calgary_map_page 3-4 43686 NULL ++user_confirm_reply_43708 user_confirm_reply 4 43708 NULL ++drbd_md_first_sector_43729 drbd_md_first_sector 0 43729 NULL ++snd_rme32_playback_copy_43732 snd_rme32_playback_copy 5 43732 NULL ++ocfs2_replace_clusters_43733 ocfs2_replace_clusters 5 43733 NULL ++fuse_conn_congestion_threshold_write_43736 fuse_conn_congestion_threshold_write 3 43736 NULL ++einj_get_parameter_address_43743 einj_get_parameter_address 0 43743 NULL ++osdv1_attr_list_elem_size_43747 osdv1_attr_list_elem_size 0-1 43747 NULL ++gigaset_initcs_43753 gigaset_initcs 2 43753 NULL ++sctp_setsockopt_active_key_43755 sctp_setsockopt_active_key 3 43755 NULL ++ocfs2_xattr_get_value_outside_43787 ocfs2_xattr_get_value_outside 0 43787 NULL nohasharray ++byte_pos_43787 byte_pos 0-2 43787 &ocfs2_xattr_get_value_outside_43787 ++btrfs_copy_from_user_43806 btrfs_copy_from_user 3-1 43806 NULL ++store_cpufv_disabled_43809 store_cpufv_disabled 4 43809 NULL ++ext4_read_block_bitmap_43814 ext4_read_block_bitmap 2 43814 NULL ++ieee80211_if_fmt_element_ttl_43825 ieee80211_if_fmt_element_ttl 3 43825 NULL ++ieee80211_alloc_hw_43829 ieee80211_alloc_hw 1 43829 NULL ++read_flush_43851 read_flush 3 43851 NULL ++ocfs2_block_group_find_clear_bits_43874 ocfs2_block_group_find_clear_bits 4 43874 NULL ++idmap_update_entry_43885 idmap_update_entry 3 43885 NULL ++xen_register_gsi_43946 xen_register_gsi 1-2 43946 NULL ++stats_dot11RTSFailureCount_read_43948 stats_dot11RTSFailureCount_read 3 43948 NULL ++__get_required_blob_size_43980 __get_required_blob_size 0-2-3 43980 NULL ++nla_reserve_43984 nla_reserve 3 43984 NULL ++scsi_command_size_43992 scsi_command_size 0 43992 NULL nohasharray ++bcm_recvmsg_43992 bcm_recvmsg 4 43992 &scsi_command_size_43992 ++write_flush_procfs_44011 write_flush_procfs 3 44011 NULL ++socket_sockcreate_sid_44074 socket_sockcreate_sid 2 44074 NULL ++xlog_recover_add_to_cont_trans_44102 xlog_recover_add_to_cont_trans 4 44102 NULL ++tracing_set_trace_read_44122 tracing_set_trace_read 3 44122 NULL ++vmw_gmr_bind_44130 vmw_gmr_bind 3 44130 NULL ++scsi_get_resid_44147 scsi_get_resid 0 44147 NULL ++ubifs_find_dirty_idx_leb_44169 ubifs_find_dirty_idx_leb 0 44169 NULL ++ocfs2_xattr_bucket_find_44174 ocfs2_xattr_bucket_find 0 44174 NULL ++handle_eviocgbit_44193 handle_eviocgbit 3 44193 NULL ++IO_APIC_get_PCI_irq_vector_44198 IO_APIC_get_PCI_irq_vector 0 44198 NULL ++claim_ptd_buffers_44213 claim_ptd_buffers 3 44213 NULL ++srp_alloc_iu_44227 srp_alloc_iu 2 44227 NULL ++ioapic_register_intr_44238 ioapic_register_intr 1 44238 NULL ++scsi_track_queue_full_44239 scsi_track_queue_full 2 44239 NULL ++enlarge_skb_44248 enlarge_skb 2 44248 NULL ++ufs_clusteracct_44293 ufs_clusteracct 3 44293 NULL ++ocfs2_zero_range_for_truncate_44294 ocfs2_zero_range_for_truncate 3 44294 NULL ++iwl3945_statistics_flag_44310 iwl3945_statistics_flag 3-0 44310 NULL ++bitmap_scnprintf_44318 bitmap_scnprintf 0-2 44318 NULL ++dispatch_proc_write_44320 dispatch_proc_write 3 44320 NULL ++blk_queue_init_tags_44355 blk_queue_init_tags 2 44355 NULL ++rts_threshold_read_44384 rts_threshold_read 3 44384 NULL ++aoedev_flush_44398 aoedev_flush 2 44398 NULL ++drm_buffer_alloc_44405 drm_buffer_alloc 2 44405 NULL ++osst_do_scsi_44410 osst_do_scsi 4 44410 NULL ++btrfs_chunk_item_size_44478 btrfs_chunk_item_size 0-1 44478 NULL ++sdio_align_size_44489 sdio_align_size 0-2 44489 NULL ++ieee80211_if_read_dropped_frames_ttl_44500 ieee80211_if_read_dropped_frames_ttl 3 44500 NULL ++security_getprocattr_44505 security_getprocattr 0 44505 NULL nohasharray ++iwl_dbgfs_sram_read_44505 iwl_dbgfs_sram_read 3 44505 &security_getprocattr_44505 ++spidev_write_44510 spidev_write 3 44510 NULL ++sys_msgsnd_44537 sys_msgsnd 3 44537 NULL nohasharray ++comm_write_44537 comm_write 3 44537 &sys_msgsnd_44537 ++snd_pcm_alloc_vmalloc_buffer_44595 snd_pcm_alloc_vmalloc_buffer 2 44595 NULL ++slip_compat_ioctl_44599 slip_compat_ioctl 4 44599 NULL ++cfpkt_add_body_44630 cfpkt_add_body 3 44630 NULL ++ext2_new_block_44645 ext2_new_block 2 44645 NULL ++alloc_ctrl_packet_44667 alloc_ctrl_packet 1 44667 NULL ++ts_read_44687 ts_read 3 44687 NULL ++security_member_sid_44712 security_member_sid 3 44712 NULL ++mempool_create_node_44715 mempool_create_node 1 44715 NULL ++_zd_iowrite32v_locked_44725 _zd_iowrite32v_locked 3 44725 NULL ++clusterip_proc_write_44729 clusterip_proc_write 3 44729 NULL ++fib_count_nexthops_44730 fib_count_nexthops 0 44730 NULL ++key_tx_rx_count_read_44742 key_tx_rx_count_read 3 44742 NULL ++tnode_new_44757 tnode_new 3 44757 NULL nohasharray ++pty_write_44757 pty_write 3 44757 &tnode_new_44757 ++__videobuf_copy_stream_44769 __videobuf_copy_stream 4 44769 NULL ++sctp_setsockopt_44788 sctp_setsockopt 5 44788 NULL ++rx_dropped_read_44799 rx_dropped_read 3 44799 NULL ++sisusb_write_44834 sisusb_write 3 44834 NULL ++nl80211_send_unprot_disassoc_44846 nl80211_send_unprot_disassoc 4 44846 NULL ++skb_availroom_44883 skb_availroom 0 44883 NULL ++nf_bridge_encap_header_len_44890 nf_bridge_encap_header_len 0 44890 NULL ++do_tty_write_44896 do_tty_write 5 44896 NULL ++tx_queue_status_read_44978 tx_queue_status_read 3 44978 NULL ++ftdi_process_packet_45005 ftdi_process_packet 5 45005 NULL ++read_block_bitmap_45021 read_block_bitmap 2 45021 NULL nohasharray ++ptrace_writedata_45021 ptrace_writedata 4-3 45021 &read_block_bitmap_45021 ++vhci_get_user_45039 vhci_get_user 3 45039 NULL ++sel_write_user_45060 sel_write_user 3 45060 NULL ++do_video_ioctl_45069 do_video_ioctl 3 45069 NULL nohasharray ++snd_mixart_BA0_read_45069 snd_mixart_BA0_read 5 45069 &do_video_ioctl_45069 ++orig_hash_del_if_45080 orig_hash_del_if 2 45080 NULL ++au_sbend_45097 au_sbend 0 45097 NULL ++alternate_node_alloc_45100 alternate_node_alloc 0 45100 NULL ++usbdev_read_45114 usbdev_read 3 45114 NULL ++send_to_tty_45141 send_to_tty 3 45141 NULL ++crypto_aead_blocksize_45148 crypto_aead_blocksize 0 45148 NULL ++gen_bitmask_string_45149 gen_bitmask_string 6 45149 NULL ++ocfs2_remove_inode_range_45156 ocfs2_remove_inode_range 3-4 45156 NULL nohasharray ++device_write_45156 device_write 3 45156 &ocfs2_remove_inode_range_45156 ++ocfs2_dq_frozen_trigger_45159 ocfs2_dq_frozen_trigger 4 45159 NULL ++tomoyo_write_self_45161 tomoyo_write_self 3 45161 NULL ++sta_agg_status_write_45164 sta_agg_status_write 3 45164 NULL ++snd_sb_csp_load_user_45190 snd_sb_csp_load_user 3 45190 NULL ++num_clusters_in_group_45194 num_clusters_in_group 2 45194 NULL ++add_child_45201 add_child 4 45201 NULL ++iso_alloc_urb_45206 iso_alloc_urb 4-5 45206 NULL ++spi_alloc_master_45223 spi_alloc_master 2 45223 NULL ++ieee80211_if_read_peer_45233 ieee80211_if_read_peer 3 45233 NULL ++vcc_compat_ioctl_45291 vcc_compat_ioctl 3 45291 NULL ++snd_pcm_oss_sync1_45298 snd_pcm_oss_sync1 2 45298 NULL ++copy_vm86_regs_from_user_45340 copy_vm86_regs_from_user 3 45340 NULL ++lane2_associate_req_45398 lane2_associate_req 4 45398 NULL ++keymap_store_45406 keymap_store 4 45406 NULL ++tty_buffer_alloc_45437 tty_buffer_alloc 2 45437 NULL ++do_mmap_pgoff_45441 do_mmap_pgoff 0 45441 NULL ++__node_remap_45458 __node_remap 4 45458 NULL ++rds_ib_set_wr_signal_state_45463 rds_ib_set_wr_signal_state 0 45463 NULL ++tracing_read_dyn_info_45468 tracing_read_dyn_info 3 45468 NULL ++rds_message_copy_from_user_45510 rds_message_copy_from_user 3 45510 NULL ++sys_lgetxattr_45531 sys_lgetxattr 4 45531 NULL ++cgroup_read_u64_45532 cgroup_read_u64 5 45532 NULL ++copy_macs_45534 copy_macs 4 45534 NULL ++nla_attr_size_45545 nla_attr_size 0-1 45545 NULL ++v9fs_direct_read_45546 v9fs_direct_read 3 45546 NULL ++cx18_copy_mdl_to_user_45549 cx18_copy_mdl_to_user 4 45549 NULL ++ext3_group_first_block_no_45555 ext3_group_first_block_no 0-2 45555 NULL ++stats_dot11ACKFailureCount_read_45558 stats_dot11ACKFailureCount_read 3 45558 NULL ++posix_acl_xattr_size_45561 posix_acl_xattr_size 0-1 45561 NULL ++venus_rmdir_45564 venus_rmdir 4 45564 NULL ++ipath_create_cq_45586 ipath_create_cq 2 45586 NULL ++rdma_set_ib_paths_45592 rdma_set_ib_paths 3 45592 NULL ++hidraw_get_report_45609 hidraw_get_report 3 45609 NULL ++audit_log_n_hex_45617 audit_log_n_hex 3 45617 NULL ++ebitmap_next_positive_45651 ebitmap_next_positive 3 45651 NULL ++dma_map_cont_45668 dma_map_cont 5 45668 NULL ++compat_mpctl_ioctl_45671 compat_mpctl_ioctl 2 45671 NULL ++dgram_sendmsg_45679 dgram_sendmsg 4 45679 NULL ++smk_write_ambient_45691 smk_write_ambient 3 45691 NULL ++dm_compat_ctl_ioctl_45692 dm_compat_ctl_ioctl 3 45692 NULL ++ip_nat_sip_expect_45693 ip_nat_sip_expect 7 45693 NULL ++unix_dgram_sendmsg_45699 unix_dgram_sendmsg 4 45699 NULL nohasharray ++bscnl_emit_45699 bscnl_emit 2-5-0 45699 &unix_dgram_sendmsg_45699 ++sg_proc_write_adio_45704 sg_proc_write_adio 3 45704 NULL ++dvb_ca_en50221_init_45718 dvb_ca_en50221_init 4 45718 NULL ++snd_cs46xx_io_read_45734 snd_cs46xx_io_read 5 45734 NULL ++v4l2_ctrl_new_std_45748 v4l2_ctrl_new_std 5 45748 NULL ++lkdtm_debugfs_read_45752 lkdtm_debugfs_read 3 45752 NULL ++nilfs_compat_ioctl_45769 nilfs_compat_ioctl 3 45769 NULL ++alloc_ts_config_45775 alloc_ts_config 1 45775 NULL ++nfs_idmap_request_key_45791 nfs_idmap_request_key 2 45791 NULL ++raw_setsockopt_45800 raw_setsockopt 5 45800 NULL ++lbs_rdbbp_read_45805 lbs_rdbbp_read 3 45805 NULL ++pcpu_alloc_alloc_info_45813 pcpu_alloc_alloc_info 1-2 45813 NULL ++fm_v4l2_init_video_device_45821 fm_v4l2_init_video_device 2 45821 NULL ++amthi_read_45831 amthi_read 4 45831 NULL ++isdn_write_45863 isdn_write 3 45863 NULL ++rbd_get_num_segments_45864 rbd_get_num_segments 0-2-3 45864 NULL ++unpack_orig_pfns_45867 unpack_orig_pfns 0 45867 NULL ++get_rdac_req_45882 get_rdac_req 3 45882 NULL ++ocfs2_xattr_block_find_45891 ocfs2_xattr_block_find 0 45891 NULL ++qla4_8xxx_pci_mem_write_2M_45906 qla4_8xxx_pci_mem_write_2M 2 45906 NULL ++dbgfs_frame_45917 dbgfs_frame 3 45917 NULL ++alloc_mr_45935 alloc_mr 1 45935 NULL ++rb_simple_read_45972 rb_simple_read 3 45972 NULL ++ezusb_writememory_45976 ezusb_writememory 4 45976 NULL ++ioat2_dca_count_dca_slots_45984 ioat2_dca_count_dca_slots 0 45984 NULL ++sierra_setup_urb_46029 sierra_setup_urb 5 46029 NULL ++get_free_entries_46030 get_free_entries 1 46030 NULL ++__access_remote_vm_46031 __access_remote_vm 0-5-3 46031 NULL ++snd_emu10k1x_ptr_read_46049 snd_emu10k1x_ptr_read 0 46049 NULL ++acpi_register_gsi_xen_hvm_46052 acpi_register_gsi_xen_hvm 2 46052 NULL ++line6_midibuf_bytes_used_46059 line6_midibuf_bytes_used 0 46059 NULL ++__ocfs2_move_extent_46060 __ocfs2_move_extent 5-6 46060 NULL nohasharray ++dma_tx_errors_read_46060 dma_tx_errors_read 3 46060 &__ocfs2_move_extent_46060 ++sel_commit_bools_write_46077 sel_commit_bools_write 3 46077 NULL ++ata_host_alloc_46094 ata_host_alloc 2 46094 NULL ++pkt_ctl_compat_ioctl_46110 pkt_ctl_compat_ioctl 3 46110 NULL ++mlx4_ib_alloc_fast_reg_page_list_46119 mlx4_ib_alloc_fast_reg_page_list 2 46119 NULL ++__netlink_change_ngroups_46156 __netlink_change_ngroups 2 46156 NULL ++qlcnic_alloc_msix_entries_46160 qlcnic_alloc_msix_entries 2 46160 NULL ++kmalloc_section_memmap_46168 kmalloc_section_memmap 3 46168 NULL ++vxge_os_dma_malloc_46184 vxge_os_dma_malloc 2 46184 NULL ++fillvdir_46193 fillvdir 3 46193 NULL ++i2400m_op_msg_from_user_46213 i2400m_op_msg_from_user 4 46213 NULL ++tm6000_i2c_recv_regs_46215 tm6000_i2c_recv_regs 5 46215 NULL ++dsp_write_46218 dsp_write 2 46218 NULL ++sg_proc_write_dressz_46316 sg_proc_write_dressz 3 46316 NULL ++__hwahc_dev_set_key_46328 __hwahc_dev_set_key 5 46328 NULL ++iwl_dbgfs_chain_noise_read_46355 iwl_dbgfs_chain_noise_read 3 46355 NULL ++smk_write_direct_46363 smk_write_direct 3 46363 NULL ++__iommu_calculate_agaw_46366 __iommu_calculate_agaw 2 46366 NULL ++fuse_file_aio_write_46399 fuse_file_aio_write 4 46399 NULL ++crypto_ablkcipher_reqsize_46411 crypto_ablkcipher_reqsize 0 46411 NULL ++cp210x_set_config_46447 cp210x_set_config 4 46447 NULL ++filldir64_46469 filldir64 3 46469 NULL ++mthca_alloc_cq_buf_46512 mthca_alloc_cq_buf 3 46512 NULL ++bdx_rxdb_create_46525 bdx_rxdb_create 1 46525 NULL ++nl80211_send_rx_assoc_46538 nl80211_send_rx_assoc 4 46538 NULL ++mv_get_hc_count_46554 mv_get_hc_count 0 46554 NULL ++link_send_sections_long_46556 link_send_sections_long 4 46556 NULL ++dn_current_mss_46574 dn_current_mss 0 46574 NULL ++serverworks_create_gatt_pages_46582 serverworks_create_gatt_pages 1 46582 NULL ++vscnprintf_46617 vscnprintf 0-2 46617 NULL ++request_key_async_with_auxdata_46624 request_key_async_with_auxdata 4 46624 NULL ++aircable_process_packet_46639 aircable_process_packet 5 46639 NULL ++cx18_v4l2_ioctl_46647 cx18_v4l2_ioctl 2 46647 NULL ++av7110_ipack_init_46655 av7110_ipack_init 2 46655 NULL ++iwl4965_ucode_rx_stats_read_46676 iwl4965_ucode_rx_stats_read 3 46676 NULL ++alloc_data_packet_46698 alloc_data_packet 1 46698 NULL ++__ilog2_u32_46706 __ilog2_u32 0 46706 NULL ++erst_dbg_write_46715 erst_dbg_write 3 46715 NULL ++hest_ghes_dev_register_46766 hest_ghes_dev_register 1 46766 NULL ++int_hw_irq_en_46776 int_hw_irq_en 3 46776 NULL ++_xfs_buf_get_pages_46811 _xfs_buf_get_pages 2 46811 NULL ++xfs_iroot_realloc_46826 xfs_iroot_realloc 2 46826 NULL ++security_validtrans_handle_fail_46843 security_validtrans_handle_fail 4 46843 NULL ++ieee80211_rx_radiotap_len_46846 ieee80211_rx_radiotap_len 0 46846 NULL ++spi_async_46857 spi_async 0 46857 NULL ++vsnprintf_46863 vsnprintf 0 46863 NULL ++rvmalloc_46873 rvmalloc 1 46873 NULL ++hpi_read_word_nolock_46881 hpi_read_word_nolock 0 46881 NULL ++sk_mem_pages_46896 sk_mem_pages 0-1 46896 NULL ++ol_dqblk_off_46904 ol_dqblk_off 3-2 46904 NULL ++tracing_ctrl_read_46922 tracing_ctrl_read 3 46922 NULL ++fb_write_46924 fb_write 3 46924 NULL ++btmrvl_curpsmode_read_46939 btmrvl_curpsmode_read 3 46939 NULL ++kvm_register_read_46948 kvm_register_read 0 46948 NULL ++__sctp_setsockopt_connectx_46949 __sctp_setsockopt_connectx 3 46949 NULL ++crypto_tfm_alg_alignmask_46971 crypto_tfm_alg_alignmask 0 46971 NULL ++ath6kl_add_bss_if_needed_46978 ath6kl_add_bss_if_needed 5 46978 NULL ++gfs2_xattr_system_set_46996 gfs2_xattr_system_set 4 46996 NULL nohasharray ++sel_write_bool_46996 sel_write_bool 3 46996 &gfs2_xattr_system_set_46996 ++ttm_bo_io_47000 ttm_bo_io 5 47000 NULL ++blk_rq_map_kern_47004 blk_rq_map_kern 4 47004 NULL ++__map_single_47020 __map_single 3-4-7 47020 NULL ++cx231xx_init_bulk_47024 cx231xx_init_bulk 3-2 47024 NULL ++ufs_new_fragments_47070 ufs_new_fragments 3-5-4 47070 NULL ++unmap_class_47076 unmap_class 0-1 47076 NULL ++scsi_deactivate_tcq_47086 scsi_deactivate_tcq 2 47086 NULL ++mousedev_read_47123 mousedev_read 3 47123 NULL ++ses_recv_diag_47143 ses_recv_diag 4 47143 NULL nohasharray ++acpi_ut_initialize_buffer_47143 acpi_ut_initialize_buffer 2 47143 &ses_recv_diag_47143 ++cxio_init_resource_fifo_random_47151 cxio_init_resource_fifo_random 3 47151 NULL ++mxms_headerlen_47161 mxms_headerlen 0 47161 NULL ++rs_sta_dbgfs_rate_scale_data_read_47165 rs_sta_dbgfs_rate_scale_data_read 3 47165 NULL ++svc_pool_map_alloc_arrays_47181 svc_pool_map_alloc_arrays 2 47181 NULL ++can_set_system_xattr_47182 can_set_system_xattr 4 47182 NULL ++ioremap_cache_47189 ioremap_cache 1-2 47189 NULL ++security_change_sid_47202 security_change_sid 3 47202 NULL ++module_alloc_update_bounds_47205 module_alloc_update_bounds 1 47205 NULL ++l2headersize_47238 l2headersize 0 47238 NULL ++options_write_47243 options_write 3 47243 NULL ++portcntrs_1_read_47253 portcntrs_1_read 3 47253 NULL ++ablkcipher_next_slow_47274 ablkcipher_next_slow 4-3 47274 NULL ++tty_audit_log_47280 tty_audit_log 8 47280 NULL ++vsnprintf_47291 vsnprintf 0 47291 NULL ++tx_internal_desc_overflow_read_47300 tx_internal_desc_overflow_read 3 47300 NULL ++channel_type_read_47308 channel_type_read 3 47308 NULL ++ieee80211_if_read_dot11MeshHoldingTimeout_47356 ieee80211_if_read_dot11MeshHoldingTimeout 3 47356 NULL ++avc_get_hash_stats_47359 avc_get_hash_stats 0 47359 NULL ++find_first_zero_bit_le_47369 find_first_zero_bit_le 2 47369 NULL ++__bio_map_kern_47379 __bio_map_kern 3 47379 NULL ++trace_options_core_read_47390 trace_options_core_read 3 47390 NULL ++pfkey_sendmsg_47394 pfkey_sendmsg 4 47394 NULL ++ocfs2_resv_end_47408 ocfs2_resv_end 0 47408 NULL ++crypto_ablkcipher_alignmask_47410 crypto_ablkcipher_alignmask 0 47410 NULL ++vzalloc_47421 vzalloc 1 47421 NULL ++posix_acl_from_disk_47445 posix_acl_from_disk 2 47445 NULL ++environ_read_47451 environ_read 3 47451 NULL ++newpart_47485 newpart 6 47485 NULL ++core_sys_select_47494 core_sys_select 1 47494 NULL ++alloc_arraycache_47505 alloc_arraycache 2 47505 NULL ++unlink_simple_47506 unlink_simple 3 47506 NULL ++ufs_inode_getblock_47512 ufs_inode_getblock 4 47512 NULL ++vscnprintf_47533 vscnprintf 0-2 47533 NULL nohasharray ++process_vm_rw_47533 process_vm_rw 3-5 47533 &vscnprintf_47533 ++ieee80211_if_fmt_min_discovery_timeout_47539 ieee80211_if_fmt_min_discovery_timeout 3 47539 NULL ++cycx_setup_47562 cycx_setup 4 47562 NULL ++read_ldt_47570 read_ldt 2 47570 NULL ++pci_iomap_47575 pci_iomap 3 47575 NULL ++rpipe_get_idx_47579 rpipe_get_idx 2 47579 NULL ++ext4_kvzalloc_47605 ext4_kvzalloc 1 47605 NULL ++sctp_ssnmap_new_47608 sctp_ssnmap_new 1-2 47608 NULL ++uea_request_47613 uea_request 4 47613 NULL ++cache_read_pipefs_47615 cache_read_pipefs 3 47615 NULL ++kvm_pv_mmu_write_47630 kvm_pv_mmu_write 2 47630 NULL ++ivtv_serialized_ioctl_47632 ivtv_serialized_ioctl 3 47632 NULL ++irq_set_chip_47638 irq_set_chip 1 47638 NULL ++__build_packet_message_47643 __build_packet_message 3-9 47643 NULL ++compute_sid_handle_invalid_context_47647 compute_sid_handle_invalid_context 3 47647 NULL ++bits_to_user_47733 bits_to_user 2-3 47733 NULL ++carl9170_debugfs_read_47738 carl9170_debugfs_read 3 47738 NULL ++ir_prepare_write_buffer_47747 ir_prepare_write_buffer 3 47747 NULL ++mvumi_alloc_mem_resource_47750 mvumi_alloc_mem_resource 3 47750 NULL ++ext3_find_near_47752 ext3_find_near 0 47752 NULL ++alloc_sched_domains_47756 alloc_sched_domains 1 47756 NULL ++i915_wedged_write_47771 i915_wedged_write 3 47771 NULL ++uwb_ie_dump_hex_47774 uwb_ie_dump_hex 4 47774 NULL ++sst_prepare_output_buffers_47781 sst_prepare_output_buffers 4 47781 NULL ++tt_len_47789 tt_len 0-1 47789 NULL ++stmmac_set_bfsize_47834 stmmac_set_bfsize 0 47834 NULL ++ubifs_unpack_nnode_47866 ubifs_unpack_nnode 0 47866 NULL ++vhci_read_47878 vhci_read 3 47878 NULL ++keyctl_instantiate_key_common_47889 keyctl_instantiate_key_common 4 47889 NULL ++osd_req_read_sg_47905 osd_req_read_sg 5 47905 NULL ++comedi_write_47926 comedi_write 3 47926 NULL ++nf_nat_ftp_47948 nf_nat_ftp 5 47948 NULL ++iwl_dbgfs_ucode_tracing_read_47983 iwl_dbgfs_ucode_tracing_read 3 47983 NULL nohasharray ++mempool_resize_47983 mempool_resize 2 47983 &iwl_dbgfs_ucode_tracing_read_47983 ++pnpacpi_parse_allocated_irqresource_47986 pnpacpi_parse_allocated_irqresource 2 47986 NULL ++mgmt_pending_add_47990 mgmt_pending_add 5 47990 NULL nohasharray ++dbg_port_buf_47990 dbg_port_buf 2 47990 &mgmt_pending_add_47990 ++ib_umad_write_47993 ib_umad_write 3 47993 NULL ++ffs_epfile_write_48014 ffs_epfile_write 3 48014 NULL ++bio_integrity_set_tag_48035 bio_integrity_set_tag 3 48035 NULL ++pppoe_sendmsg_48039 pppoe_sendmsg 4 48039 NULL ++wpan_phy_alloc_48056 wpan_phy_alloc 1 48056 NULL ++posix_acl_alloc_48063 posix_acl_alloc 1 48063 NULL ++c4iw_init_resource_fifo_48090 c4iw_init_resource_fifo 3 48090 NULL ++mmc_alloc_host_48097 mmc_alloc_host 1 48097 NULL ++skb_copy_datagram_const_iovec_48102 skb_copy_datagram_const_iovec 4-2-5 48102 NULL ++vmw_framebuffer_surface_dirty_48132 vmw_framebuffer_surface_dirty 6 48132 NULL ++rtsx_read_cfg_seq_48139 rtsx_read_cfg_seq 5-3 48139 NULL ++dn_fib_count_nhs_48145 dn_fib_count_nhs 0 48145 NULL ++bitmap_onto_48152 bitmap_onto 4 48152 NULL ++isr_dma1_done_read_48159 isr_dma1_done_read 3 48159 NULL ++ocfs2_find_next_zero_bit_unaligned_48170 ocfs2_find_next_zero_bit_unaligned 2-3 48170 NULL ++init_ipath_48187 init_ipath 1 48187 NULL ++snd_seq_dump_var_event_48209 snd_seq_dump_var_event 0 48209 NULL ++is_block_in_journal_48223 is_block_in_journal 3 48223 NULL ++uv_blade_nr_possible_cpus_48226 uv_blade_nr_possible_cpus 0 48226 NULL +read_file_recv_48232 read_file_recv 3 48232 NULL -+r128_compat_ioctl_39250 r128_compat_ioctl 2 39250 NULL -+fanotify_write_64623 fanotify_write 3 64623 NULL -+fl_create_56435 fl_create 5 56435 NULL -+gnttab_map_56439 gnttab_map 2 56439 NULL ++blk_rq_pos_48233 blk_rq_pos 0 48233 NULL +nfsctl_transaction_read_48250 nfsctl_transaction_read 3 48250 NULL -+event_rx_pool_read_25792 event_rx_pool_read 3 25792 NULL -+cx231xx_init_isoc_56453 cx231xx_init_isoc 2-3 56453 NULL -+xfs_dir2_sf_addname_hard_54254 xfs_dir2_sf_addname_hard 3 54254 NULL -+pwc_video_read_51735 pwc_video_read 3 51735 NULL +cache_write_pipefs_48270 cache_write_pipefs 3 48270 NULL -+osd_req_list_partition_objects_56464 osd_req_list_partition_objects 5 56464 NULL -+cx18_read_23699 cx18_read 3 23699 NULL -+tcf_csum_skb_nextlayer_64025 tcf_csum_skb_nextlayer 3 64025 NULL -+iwl4965_ucode_tx_stats_read_12143 iwl4965_ucode_tx_stats_read 3 12143 NULL +pkt_bio_alloc_48284 pkt_bio_alloc 1 48284 NULL -+ddb_output_write_31902 ddb_output_write 3 31902 NULL -+tun_sendmsg_10337 tun_sendmsg 4 10337 NULL -+sock_alloc_send_skb_23720 sock_alloc_send_skb 2 23720 NULL -+wep_decrypt_fail_read_58567 wep_decrypt_fail_read 3 58567 NULL +lpfc_idiag_extacc_read_48301 lpfc_idiag_extacc_read 3 48301 NULL -+p9_check_zc_errors_15534 p9_check_zc_errors 4 15534 NULL -+kmem_alloc_31920 kmem_alloc 1 31920 NULL +timblogiw_read_48305 timblogiw_read 3 48305 NULL -+mgmt_control_7349 mgmt_control 3 7349 NULL +hash_setkey_48310 hash_setkey 3 48310 NULL -+ql_process_mac_rx_page_15543 ql_process_mac_rx_page 4 15543 NULL -+sctp_setsockopt_delayed_ack_40129 sctp_setsockopt_delayed_ack 3 40129 NULL -+cfg80211_connect_result_56515 cfg80211_connect_result 4-6 56515 NULL -+iov_iter_copy_from_user_31942 iov_iter_copy_from_user 4 31942 NULL -+ql_process_mac_rx_skb_6689 ql_process_mac_rx_skb 4 6689 NULL -+ieee80211_if_read_dot11MeshHWMPactivePathTimeout_7368 ieee80211_if_read_dot11MeshHWMPactivePathTimeout 3 7368 NULL -+ieee80211_amsdu_to_8023s_15561 ieee80211_amsdu_to_8023s 5 15561 NULL -+dapm_bias_read_file_64715 dapm_bias_read_file 3 64715 NULL -+vb2_write_31948 vb2_write 3 31948 NULL -+proc_self_readlink_38094 proc_self_readlink 3 38094 NULL -+store_ledd_43312 store_ledd 4 43312 NULL -+bnx2fc_process_unsol_compl_15576 bnx2fc_process_unsol_compl 2 15576 NULL -+l1oip_socket_recv_56537 l1oip_socket_recv 6 56537 NULL -+ip_options_get_56538 ip_options_get 4 56538 NULL -+ep0_read_38095 ep0_read 3 38095 NULL -+sctp_getsockopt_sctp_status_56540 sctp_getsockopt_sctp_status 2 56540 NULL -+copy_from_user_toio_31966 copy_from_user_toio 3 31966 NULL -+pt_write_40159 pt_write 3 40159 NULL -+squashfs_read_inode_lookup_table_64739 squashfs_read_inode_lookup_table 4 64739 NULL -+sl_change_mtu_7396 sl_change_mtu 2 7396 NULL -+vm_map_ram_23078 vm_map_ram 2 23078 NULL nohasharray -+raw_sendmsg_23078 raw_sendmsg 4 23078 &vm_map_ram_23078 -+allocate_cnodes_5329 allocate_cnodes 1 5329 NULL +skb_add_data_48363 skb_add_data 3 48363 NULL -+bio_map_kern_64751 bio_map_kern 3 64751 NULL -+alloc_apertures_56561 alloc_apertures 1 56561 NULL -+iscsi_complete_pdu_48372 iscsi_complete_pdu 4 48372 NULL -+diva_alloc_dma_map_23798 diva_alloc_dma_map 2 23798 NULL -+sriov_enable_migration_14889 sriov_enable_migration 2 14889 NULL -+rx_path_reset_read_23801 rx_path_reset_read 3 23801 NULL -+rs_sta_dbgfs_stats_table_read_56573 rs_sta_dbgfs_stats_table_read 3 56573 NULL -+compat_fillonedir_15620 compat_fillonedir 3 15620 NULL -+ipr_alloc_ucode_buffer_40199 ipr_alloc_ucode_buffer 1 40199 NULL -+dsp_cmx_send_member_15625 dsp_cmx_send_member 2 15625 NULL -+portcntrs_2_read_56586 portcntrs_2_read 3 56586 NULL -+system_enable_read_25815 system_enable_read 3 25815 NULL -+kvm_pv_mmu_op_7436 kvm_pv_mmu_op 3 7436 NULL -+sd_alloc_ctl_entry_29708 sd_alloc_ctl_entry 1 29708 NULL -+proc_loginuid_read_15631 proc_loginuid_read 3 15631 NULL -+__earlyonly_bootmem_alloc_23824 __earlyonly_bootmem_alloc 2 23824 NULL -+acpi_battery_write_alarm_1240 acpi_battery_write_alarm 3 1240 NULL -+isr_low_rssi_read_64789 isr_low_rssi_read 3 64789 NULL -+ip_options_get_alloc_7448 ip_options_get_alloc 1 7448 NULL -+tomoyo_scan_bprm_15642 tomoyo_scan_bprm 2-4 15642 NULL -+joydev_handle_JSIOCSBTNMAP_15643 joydev_handle_JSIOCSBTNMAP 3 15643 NULL -+au0828_v4l2_read_40220 au0828_v4l2_read 3 40220 NULL +lbs_debugfs_write_48413 lbs_debugfs_write 3 48413 NULL -+nfsctl_transaction_write_64800 nfsctl_transaction_write 3 64800 NULL -+xfs_dir2_leaf_getdents_23841 xfs_dir2_leaf_getdents 3 23841 NULL -+ms_rw_multi_sector_7459 ms_rw_multi_sector 4-3 7459 NULL -+xsd_read_15653 xsd_read 3 15653 NULL -+compat_sys_fcntl_15654 compat_sys_fcntl 3 15654 NULL ++aufs_compat_ioctl_dir_48420 aufs_compat_ioctl_dir 3 48420 NULL +pwr_tx_without_ps_read_48423 pwr_tx_without_ps_read 3 48423 NULL -+rfkill_fop_write_64808 rfkill_fop_write 3 64808 NULL +nfs4_alloc_pages_48426 nfs4_alloc_pages 1 48426 NULL -+osst_read_40237 osst_read 3 40237 NULL -+sys_sched_setaffinity_32046 sys_sched_setaffinity 2 32046 NULL -+megaraid_change_queue_depth_64815 megaraid_change_queue_depth 2 64815 NULL -+ecryptfs_send_miscdev_64816 ecryptfs_send_miscdev 2 64816 NULL -+copy_nodes_to_user_63807 copy_nodes_to_user 2 63807 NULL -+ubi_leb_change_14899 ubi_leb_change 4 14899 NULL -+unix_bind_15668 unix_bind 3 15668 NULL +wm8994_write_48439 wm8994_write 3 48439 NULL -+compat_sys_msgrcv_7482 compat_sys_msgrcv 2 7482 NULL -+pep_alloc_skb_46303 pep_alloc_skb 3 46303 NULL -+proc_scsi_devinfo_write_32064 proc_scsi_devinfo_write 3 32064 NULL -+xip_file_read_58592 xip_file_read 3 58592 NULL -+evdev_do_ioctl_24459 evdev_do_ioctl 2 24459 NULL -+ieee80211_if_read_dot11MeshMaxPeerLinks_23878 ieee80211_if_read_dot11MeshMaxPeerLinks 3 23878 NULL -+ieee80211_if_read_channel_type_23884 ieee80211_if_read_channel_type 3 23884 NULL +tun_recvmsg_48463 tun_recvmsg 4 48463 NULL -+reqsk_queue_alloc_40272 reqsk_queue_alloc 2 40272 NULL -+sdhci_alloc_host_7509 sdhci_alloc_host 2 7509 NULL -+dlm_dir_lookup_56662 dlm_dir_lookup 4 56662 NULL -+rx_xfr_hint_trig_read_40283 rx_xfr_hint_trig_read 3 40283 NULL -+iwch_reject_cr_23901 iwch_reject_cr 3 23901 NULL -+altera_set_dr_pre_64862 altera_set_dr_pre 2 64862 NULL -+shmem_setxattr_55867 shmem_setxattr 4 55867 NULL -+ath6kl_fwlog_read_32101 ath6kl_fwlog_read 3 32101 NULL -+set_discoverable_32102 set_discoverable 4 32102 NULL +r8712_usbctrl_vendorreq_48489 r8712_usbctrl_vendorreq 6 48489 NULL -+ioremap_wc_62695 ioremap_wc 1-2 62695 NULL -+ipath_reg_phys_mr_23918 ipath_reg_phys_mr 3 23918 NULL -+ubi_io_write_data_40305 ubi_io_write_data 4-5 40305 NULL +send_control_msg_48498 send_control_msg 6 48498 NULL +mlx4_en_create_tx_ring_48501 mlx4_en_create_tx_ring 4 48501 NULL -+ffs_epfile_io_64886 ffs_epfile_io 3 64886 NULL -+iwl_legacy_dbgfs_status_read_48508 iwl_legacy_dbgfs_status_read 3 48508 NULL nohasharray -+diva_os_copy_to_user_48508 diva_os_copy_to_user 4 48508 &iwl_legacy_dbgfs_status_read_48508 -+dvb_ringbuffer_read_user_56702 dvb_ringbuffer_read_user 3 56702 NULL -+inet_dccp_listen_28565 inet_dccp_listen 2 28565 NULL -+__alloc_skb_23940 __alloc_skb 1 23940 NULL -+sta_flags_read_56710 sta_flags_read 3 56710 NULL -+ipv6_getsockopt_sticky_56711 ipv6_getsockopt_sticky 5 56711 NULL -+HiSax_readstatus_15752 HiSax_readstatus 2 15752 NULL -+l2cap_create_basic_pdu_54508 l2cap_create_basic_pdu 3 54508 NULL ++diva_os_copy_to_user_48508 diva_os_copy_to_user 4 48508 NULL nohasharray ++iwl_legacy_dbgfs_status_read_48508 iwl_legacy_dbgfs_status_read 3 48508 &diva_os_copy_to_user_48508 ++phantom_get_free_48514 phantom_get_free 0 48514 NULL +ubi_dbg_check_write_48525 ubi_dbg_check_write 5 48525 NULL -+alloc_tx_32143 alloc_tx 2 32143 NULL +wiimote_hid_send_48528 wiimote_hid_send 3 48528 NULL -+bat_ogm_queue_add_40337 bat_ogm_queue_add 3 40337 NULL -+__wa_xfer_setup_segs_56725 __wa_xfer_setup_segs 2 56725 NULL -+do_test_15766 do_test 1 15766 NULL -+mmio_read_40348 mmio_read 4 40348 NULL -+vivi_read_23073 vivi_read 3 23073 NULL -+nfsd_write_54809 nfsd_write 6 54809 NULL -+venus_link_32165 venus_link 5 32165 NULL -+st5481_setup_isocpipes_61340 st5481_setup_isocpipes 6-4 61340 NULL -+event_rx_mem_empty_read_40363 event_rx_mem_empty_read 3 40363 NULL -+drm_agp_bind_pages_56748 drm_agp_bind_pages 3 56748 NULL -+ntfs_rl_realloc_nofail_32173 ntfs_rl_realloc_nofail 3 32173 NULL -+zd_usb_iowrite16v_async_23984 zd_usb_iowrite16v_async 3 23984 NULL -+mfd_add_devices_56753 mfd_add_devices 4 56753 NULL -+ubifs_wbuf_write_nolock_64946 ubifs_wbuf_write_nolock 3 64946 NULL -+get_chars_40373 get_chars 3 40373 NULL -+smk_read_direct_15803 smk_read_direct 3 15803 NULL -+fwnet_incoming_packet_40380 fwnet_incoming_packet 3 40380 NULL -+groups_alloc_7614 groups_alloc 1 7614 NULL -+brcmf_sdcard_recv_buf_24006 brcmf_sdcard_recv_buf 6 24006 NULL -+cxgb_alloc_mem_24007 cxgb_alloc_mem 1 24007 NULL -+gnttab_expand_15817 gnttab_expand 1 15817 NULL ++ext3_splice_branch_48531 ext3_splice_branch 6 48531 NULL +ext_sd_execute_read_data_48589 ext_sd_execute_read_data 9 48589 NULL -+afs_proc_rootcell_write_15822 afs_proc_rootcell_write 3 15822 NULL -+__carl9170_rx_56784 __carl9170_rx 3 56784 NULL -+__hwahc_dev_set_key_46328 __hwahc_dev_set_key 5 46328 NULL -+oprofilefs_ulong_from_user_57251 oprofilefs_ulong_from_user 3 57251 NULL -+ioctl_private_iw_point_1273 ioctl_private_iw_point 7 1273 NULL -+tcf_csum_ipv4_tcp_39713 tcf_csum_ipv4_tcp 4 39713 NULL -+snapshot_write_28351 snapshot_write 3 28351 NULL -+event_enable_read_7074 event_enable_read 3 7074 NULL -+set_connectable_7649 set_connectable 4 7649 NULL -+sl_realloc_bufs_64086 sl_realloc_bufs 2 64086 NULL -+pskb_pull_65005 pskb_pull 2 65005 NULL -+caif_seqpkt_recvmsg_32241 caif_seqpkt_recvmsg 4 32241 NULL -+lbs_lowrssi_read_32242 lbs_lowrssi_read 3 32242 NULL -+sisusbcon_scroll_31315 sisusbcon_scroll 5-3-2 31315 NULL -+afs_cell_alloc_24052 afs_cell_alloc 2 24052 NULL -+packet_setsockopt_17662 packet_setsockopt 5 17662 NULL -+ubi_io_write_15870 ubi_io_write 4-5 15870 NULL nohasharray -+media_entity_init_15870 media_entity_init 2-4 15870 &ubi_io_write_15870 -+ntfs_rl_realloc_56831 ntfs_rl_realloc 3 56831 NULL ++ufs_dtogd_48616 ufs_dtogd 0-2 48616 NULL +do_ip_vs_set_ctl_48641 do_ip_vs_set_ctl 4 48641 NULL -+__mptctl_ioctl_15875 __mptctl_ioctl 2 15875 NULL -+ipath_cdev_init_37752 ipath_cdev_init 1 37752 NULL -+skb_copy_expand_7685 skb_copy_expand 2-3 7685 NULL nohasharray -+acpi_ex_allocate_name_string_7685 acpi_ex_allocate_name_string 2-1 7685 &skb_copy_expand_7685 -+insert_dent_65034 insert_dent 7 65034 NULL -+blkcipher_copy_iv_24075 blkcipher_copy_iv 3 24075 NULL -+acpi_os_allocate_zeroed_37422 acpi_os_allocate_zeroed 1 37422 NULL -+snd_rawmidi_kernel_write1_56847 snd_rawmidi_kernel_write1 4 56847 NULL -+brcmf_sdcard_rwdata_65041 brcmf_sdcard_rwdata 5 65041 NULL -+nfs_map_group_to_gid_15892 nfs_map_group_to_gid 3 15892 NULL +lc_create_48662 lc_create 3 48662 NULL -+l2cap_create_iframe_pdu_51801 l2cap_create_iframe_pdu 3 51801 NULL +aes_encrypt_packets_read_48666 aes_encrypt_packets_read 3 48666 NULL -+dev_write_7708 dev_write 3 7708 NULL -+ath9k_multi_regread_65056 ath9k_multi_regread 4 65056 NULL -+l3_alloc_skb_32289 l3_alloc_skb 1 32289 NULL -+l2cap_build_cmd_48676 l2cap_build_cmd 4 48676 NULL -+request_key_auth_read_24109 request_key_auth_read 3 24109 NULL -+bnx2fc_process_l2_frame_compl_65072 bnx2fc_process_l2_frame_compl 3 65072 NULL -+vmalloc_user_32308 vmalloc_user 1 32308 NULL ++sm501_create_subdev_48668 sm501_create_subdev 3-4 48668 NULL nohasharray ++sys_setgroups_48668 sys_setgroups 1 48668 &sm501_create_subdev_48668 +hysdn_log_write_48694 hysdn_log_write 3 48694 NULL -+iwl_legacy_dbgfs_stations_read_24121 iwl_legacy_dbgfs_stations_read 3 24121 NULL +altera_drscan_48698 altera_drscan 2 48698 NULL -+manip_pkt_7741 manip_pkt 3 7741 NULL +kvm_set_irq_routing_48704 kvm_set_irq_routing 3 48704 NULL -+power_read_15939 power_read 3 15939 NULL -+recv_msg_48709 recv_msg 4 48709 NULL -+ghash_async_setkey_60001 ghash_async_setkey 3 60001 NULL -+TSS_checkhmac2_40520 TSS_checkhmac2 5-7 40520 NULL -+irnet_ctrl_write_24139 irnet_ctrl_write 3 24139 NULL -+lpfc_idiag_drbacc_read_15948 lpfc_idiag_drbacc_read 3 15948 NULL -+process_vm_rw_pages_15954 process_vm_rw_pages 5-6 15954 NULL -+rxrpc_request_key_27235 rxrpc_request_key 3 27235 NULL -+t4_alloc_mem_32342 t4_alloc_mem 1 32342 NULL -+remap_pci_mem_15966 remap_pci_mem 1-2 15966 NULL -+alloc_candev_7776 alloc_candev 1-2 7776 NULL +disconnect_48738 disconnect 4 48738 NULL -+ima_write_policy_40548 ima_write_policy 3 40548 NULL -+dispatch_ioctl_32357 dispatch_ioctl 2 32357 NULL nohasharray -+rx_streaming_always_write_32357 rx_streaming_always_write 3 32357 &dispatch_ioctl_32357 -+sel_read_initcon_32362 sel_read_initcon 3 32362 NULL -+dfs_global_file_read_7787 dfs_global_file_read 3 7787 NULL -+frame_alloc_15981 frame_alloc 4 15981 NULL -+esp_alloc_tmp_40558 esp_alloc_tmp 2-3 40558 NULL -+diva_os_copy_from_user_7792 diva_os_copy_from_user 4 7792 NULL -+adu_read_24177 adu_read 3 24177 NULL -+send_mpa_reply_32372 send_mpa_reply 3 32372 NULL -+alloc_vm_area_15989 alloc_vm_area 1 15989 NULL -+variax_set_raw2_32374 variax_set_raw2 4 32374 NULL -+vfd_write_14717 vfd_write 3 14717 NULL -+usbtmc_read_32377 usbtmc_read 3 32377 NULL -+get_entry_16003 get_entry 4 16003 NULL -+event_buffer_read_48772 event_buffer_read 3 48772 NULL -+ieee80211_if_read_dot11MeshHWMPpreqMinInterval_24208 ieee80211_if_read_dot11MeshHWMPpreqMinInterval 3 24208 NULL -+viafb_vt1636_proc_write_16018 viafb_vt1636_proc_write 3 16018 NULL -+__cxio_init_resource_fifo_23447 __cxio_init_resource_fifo 3 23447 NULL -+skge_rx_get_40598 skge_rx_get 3 40598 NULL -+register_device_60015 register_device 2-3 60015 NULL -+got_frame_16028 got_frame 2 16028 NULL -+ssb_bus_register_65183 ssb_bus_register 3 65183 NULL -+snd_pcm_aio_read_13900 snd_pcm_aio_read 3 13900 NULL ++ath6kl_regwrite_read_48747 ath6kl_regwrite_read 3 48747 NULL +icmp_manip_pkt_48801 icmp_manip_pkt 2 48801 NULL -+scsi_register_49094 scsi_register 2 49094 NULL +twa_change_queue_depth_48808 twa_change_queue_depth 2 48808 NULL -+kmalloc_order_trace_21788 kmalloc_order_trace 1 21788 NULL -+vlsi_alloc_ring_57003 vlsi_alloc_ring 3-4 57003 NULL -+sctp_manip_pkt_40620 sctp_manip_pkt 2 40620 NULL -+tcp_push_one_48816 tcp_push_one 2 48816 NULL -+nfulnl_alloc_skb_65207 nfulnl_alloc_skb 2 65207 NULL -+dccp_recvmsg_16056 dccp_recvmsg 4 16056 NULL +atomic_counters_read_48827 atomic_counters_read 3 48827 NULL ++azx_get_position_48841 azx_get_position 0 48841 NULL +vc_do_resize_48842 vc_do_resize 3-4 48842 NULL -+prism2_info_scanresults_59729 prism2_info_scanresults 3 59729 NULL -+fill_readbuf_32464 fill_readbuf 3 32464 NULL -+create_gpadl_header_19064 create_gpadl_header 2 19064 NULL -+dvb_dmxdev_read_sec_7892 dvb_dmxdev_read_sec 4 7892 NULL -+snd_nm256_capture_copy_28622 snd_nm256_capture_copy 5 28622 NULL -+xfs_trans_get_efi_7898 xfs_trans_get_efi 2 7898 NULL +viafb_dvp1_proc_write_48864 viafb_dvp1_proc_write 3 48864 NULL -+osd_req_list_dev_partitions_60027 osd_req_list_dev_partitions 4 60027 NULL +__ffs_ep0_read_events_48868 __ffs_ep0_read_events 3 48868 NULL ++sys_setgroups16_48882 sys_setgroups16 1 48882 NULL ++get_num_ops_48886 get_num_ops 0 48886 NULL ++ext2_alloc_branch_48889 ext2_alloc_branch 4 48889 NULL ++crypto_cipher_ctxsize_48890 crypto_cipher_ctxsize 0 48890 NULL ++xdi_copy_to_user_48900 xdi_copy_to_user 4 48900 NULL ++msg_hdr_sz_48908 msg_hdr_sz 0 48908 NULL ++gdth_isa_probe_one_48925 gdth_isa_probe_one 1 48925 NULL ++lpfc_sli4_get_els_iocb_cnt_48926 lpfc_sli4_get_els_iocb_cnt 0 48926 NULL ++event_heart_beat_read_48961 event_heart_beat_read 3 48961 NULL ++_alloc_set_attr_list_48991 _alloc_set_attr_list 4 48991 NULL ++rds_rm_size_48996 rds_rm_size 0-2 48996 NULL ++sel_write_enforce_48998 sel_write_enforce 3 48998 NULL ++xd_rw_49020 xd_rw 3-4 49020 NULL ++transient_status_49027 transient_status 4 49027 NULL ++ubi_read_49061 ubi_read 0 49061 NULL ++vmx_set_msr_49090 vmx_set_msr 3 49090 NULL ++scsi_register_49094 scsi_register 2 49094 NULL ++compat_do_readv_writev_49102 compat_do_readv_writev 4 49102 NULL ++xfrm_replay_state_esn_len_49119 xfrm_replay_state_esn_len 0 49119 NULL ++pt_read_49136 pt_read 3 49136 NULL ++iwl_legacy_dbgfs_fh_reg_read_49144 iwl_legacy_dbgfs_fh_reg_read 3 49144 NULL nohasharray ++tipc_multicast_49144 tipc_multicast 5 49144 &iwl_legacy_dbgfs_fh_reg_read_49144 ++atyfb_setup_generic_49151 atyfb_setup_generic 3 49151 NULL ++ipwireless_tty_received_49154 ipwireless_tty_received 3 49154 NULL ++ipw_queue_tx_init_49161 ipw_queue_tx_init 3 49161 NULL ++ext4_free_clusters_after_init_49174 ext4_free_clusters_after_init 2 49174 NULL ++dvb_dvr_ioctl_49182 dvb_dvr_ioctl 2 49182 NULL ++iwl_dbgfs_ucode_general_stats_read_49199 iwl_dbgfs_ucode_general_stats_read 3 49199 NULL ++do_jffs2_getxattr_49210 do_jffs2_getxattr 0 49210 NULL ++osd_req_add_get_attr_list_49278 osd_req_add_get_attr_list 3 49278 NULL ++viafb_dfph_proc_write_49288 viafb_dfph_proc_write 3 49288 NULL ++uio_read_49300 uio_read 3 49300 NULL ++ocfs2_resmap_find_free_bits_49301 ocfs2_resmap_find_free_bits 3 49301 NULL ++cfpkt_setlen_49343 cfpkt_setlen 2 49343 NULL ++joydev_ioctl_common_49359 joydev_ioctl_common 2 49359 NULL ++ocfs2_remove_btree_range_49370 ocfs2_remove_btree_range 4-5-3 49370 NULL ++px_raw_event_49371 px_raw_event 4 49371 NULL ++iscsi_alloc_session_49390 iscsi_alloc_session 3 49390 NULL ++applesmc_create_nodes_49392 applesmc_create_nodes 2 49392 NULL ++rx_streaming_always_read_49401 rx_streaming_always_read 3 49401 NULL ++iwl_legacy_dbgfs_nvm_read_49405 iwl_legacy_dbgfs_nvm_read 3 49405 NULL ++tnode_alloc_49407 tnode_alloc 1 49407 NULL ++samples_to_bytes_49426 samples_to_bytes 0-2 49426 NULL ++md_domain_init_49432 md_domain_init 2 49432 NULL ++agp_3_5_isochronous_node_enable_49465 agp_3_5_isochronous_node_enable 3 49465 NULL ++xfs_iformat_local_49472 xfs_iformat_local 4 49472 NULL ++isr_decrypt_done_read_49490 isr_decrypt_done_read 3 49490 NULL ++emulator_write_phys_49520 emulator_write_phys 2-4 49520 NULL ++acpi_os_ioremap_49523 acpi_os_ioremap 1-2 49523 NULL ++smk_write_access_49561 smk_write_access 3 49561 NULL ++ntfs_malloc_nofs_49572 ntfs_malloc_nofs 1 49572 NULL ++alloc_chunk_49575 alloc_chunk 1 49575 NULL ++sctp_setsockopt_default_send_param_49578 sctp_setsockopt_default_send_param 3 49578 NULL ++isr_wakeups_read_49607 isr_wakeups_read 3 49607 NULL ++heap_init_49617 heap_init 2 49617 NULL ++smk_write_doi_49621 smk_write_doi 3 49621 NULL ++svm_set_msr_49643 svm_set_msr 3 49643 NULL ++____cache_alloc_49656 ____cache_alloc 0 49656 NULL ++aa_simple_write_to_buffer_49683 aa_simple_write_to_buffer 3-4 49683 NULL ++sys_gethostname_49698 sys_gethostname 2 49698 NULL ++cx2341x_ctrl_new_menu_49700 cx2341x_ctrl_new_menu 3 49700 NULL ++get_key_haup_common_49709 get_key_haup_common 4 49709 NULL ++sys_fsetxattr_49736 sys_fsetxattr 4 49736 NULL ++zd_usb_iowrite16v_49744 zd_usb_iowrite16v 3 49744 NULL ++btrfs_chunk_num_stripes_49751 btrfs_chunk_num_stripes 0 49751 NULL ++key_conf_keylen_read_49758 key_conf_keylen_read 3 49758 NULL ++fuse_conn_waiting_read_49762 fuse_conn_waiting_read 3 49762 NULL ++pohmelfs_send_xattr_req_49783 pohmelfs_send_xattr_req 6 49783 NULL ++ceph_osdc_readpages_49789 ceph_osdc_readpages 10-4 49789 NULL ++nfs4_acl_new_49806 nfs4_acl_new 1 49806 NULL ++ntfs_copy_from_user_iovec_49829 ntfs_copy_from_user_iovec 3-6-0 49829 NULL ++vmw_execbuf_process_49845 vmw_execbuf_process 5 49845 NULL ++scsi_dispatch_cmd_entry_49848 scsi_dispatch_cmd_entry 3 49848 NULL ++timeradd_entry_49850 timeradd_entry 3 49850 NULL ++sctp_setsockopt_bindx_49870 sctp_setsockopt_bindx 3 49870 NULL ++ceph_get_caps_49890 ceph_get_caps 0 49890 NULL ++__copy_from_user_inatomic_nocache_49921 __copy_from_user_inatomic_nocache 3 49921 NULL ++ieee80211_if_fmt_dtim_count_49987 ieee80211_if_fmt_dtim_count 3 49987 NULL ++dn_mss_from_pmtu_50011 dn_mss_from_pmtu 0-2 50011 NULL ++ptrace_readdata_50020 ptrace_readdata 2-4 50020 NULL ++isdn_read_50021 isdn_read 3 50021 NULL ++rbd_req_write_50041 rbd_req_write 4-5 50041 NULL ++alloc_ebda_hpc_50046 alloc_ebda_hpc 1-2 50046 NULL ++fuse_conn_max_background_write_50061 fuse_conn_max_background_write 3 50061 NULL ++vmw_surface_destroy_size_50072 vmw_surface_destroy_size 0 50072 NULL ++arch_setup_ht_irq_50073 arch_setup_ht_irq 1 50073 NULL ++dev_set_alias_50084 dev_set_alias 3 50084 NULL ++pcpu_get_vm_areas_50085 pcpu_get_vm_areas 3 50085 NULL ++sock_setsockopt_50088 sock_setsockopt 5 50088 NULL ++altera_swap_dr_50090 altera_swap_dr 2 50090 NULL ++read_file_slot_50111 read_file_slot 3 50111 NULL ++pn544_fw_read_50112 pn544_fw_read 0 50112 NULL ++copy_items_50140 copy_items 6 50140 NULL ++reiserfs_bmap_count_50160 reiserfs_bmap_count 0 50160 NULL ++aac_nark_ioremap_50163 aac_nark_ioremap 2 50163 NULL nohasharray ++kmalloc_node_50163 kmalloc_node 1 50163 &aac_nark_ioremap_50163 ++odev_update_50169 odev_update 2 50169 NULL ++ieee80211_if_fmt_dot11MeshHWMPRannInterval_50172 ieee80211_if_fmt_dot11MeshHWMPRannInterval 3 50172 NULL nohasharray ++ubi_resize_volume_50172 ubi_resize_volume 2 50172 &ieee80211_if_fmt_dot11MeshHWMPRannInterval_50172 ++ib_send_cm_drep_50186 ib_send_cm_drep 3 50186 NULL ++l2cap_sock_setsockopt_50207 l2cap_sock_setsockopt 5 50207 NULL ++ieee80211_skb_resize_50211 ieee80211_skb_resize 3 50211 NULL ++mon_bin_compat_ioctl_50234 mon_bin_compat_ioctl 3 50234 NULL ++sg_kmalloc_50240 sg_kmalloc 1 50240 NULL ++afs_extract_data_50261 afs_extract_data 5 50261 NULL ++rxrpc_setsockopt_50286 rxrpc_setsockopt 5 50286 NULL nohasharray ++gart_free_coherent_50286 gart_free_coherent 4-2 50286 &rxrpc_setsockopt_50286 ++soc_codec_reg_show_50302 soc_codec_reg_show 0 50302 NULL ++cifs_readdata_alloc_50318 cifs_readdata_alloc 1 50318 NULL ++do_launder_page_50329 do_launder_page 0 50329 NULL ++lpfc_idiag_pcicfg_read_50334 lpfc_idiag_pcicfg_read 3 50334 NULL ++ocfs2_block_to_cluster_group_50337 ocfs2_block_to_cluster_group 2 50337 NULL nohasharray ++au_br_alloc_50337 au_br_alloc 2 50337 &ocfs2_block_to_cluster_group_50337 nohasharray ++snd_pcm_lib_writev_50337 snd_pcm_lib_writev 0-3 50337 &au_br_alloc_50337 ++tpm_read_50344 tpm_read 3 50344 NULL ++isdn_ppp_read_50356 isdn_ppp_read 4 50356 NULL ++unpack_u16_chunk_50357 unpack_u16_chunk 0 50357 NULL ++xfrm_send_migrate_50365 xfrm_send_migrate 5 50365 NULL ++sl_alloc_bufs_50380 sl_alloc_bufs 2 50380 NULL ++l2tp_ip_sendmsg_50411 l2tp_ip_sendmsg 4 50411 NULL ++iscsi_create_conn_50425 iscsi_create_conn 2 50425 NULL ++pgctrl_write_50453 pgctrl_write 3 50453 NULL ++cdrom_read_cdda_50478 cdrom_read_cdda 4 50478 NULL ++pwr_rcvd_awake_beacons_read_50505 pwr_rcvd_awake_beacons_read 3 50505 NULL ++ath6kl_set_ap_probe_resp_ies_50539 ath6kl_set_ap_probe_resp_ies 3 50539 NULL ++iwl_dbgfs_missed_beacon_read_50584 iwl_dbgfs_missed_beacon_read 3 50584 NULL ++build_inv_iommu_pages_50589 build_inv_iommu_pages 2-3 50589 NULL ++__ffs_50625 __ffs 0 50625 NULL ++simple_transaction_get_50633 simple_transaction_get 3 50633 NULL ++ocfs2_readlink_50656 ocfs2_readlink 3 50656 NULL ++sys_readv_50664 sys_readv 3 50664 NULL ++ext2_try_to_allocate_with_rsv_50669 ext2_try_to_allocate_with_rsv 4-2 50669 NULL ++btmrvl_psstate_read_50683 btmrvl_psstate_read 3 50683 NULL ++get_wear_leveling_table_len_50712 get_wear_leveling_table_len 0 50712 NULL ++__ext3_get_inode_loc_50744 __ext3_get_inode_loc 0 50744 NULL ++skb_padto_50759 skb_padto 2 50759 NULL ++udp_manip_pkt_50770 udp_manip_pkt 2 50770 NULL ++ocfs2_xattr_block_get_50773 ocfs2_xattr_block_get 0 50773 NULL ++tm6000_read_write_usb_50774 tm6000_read_write_usb 7 50774 NULL ++bio_alloc_map_data_50782 bio_alloc_map_data 1-2 50782 NULL ++tpm_write_50798 tpm_write 3 50798 NULL ++tun_do_read_50800 tun_do_read 4 50800 NULL ++write_flush_50803 write_flush 3 50803 NULL ++dvb_play_50814 dvb_play 3 50814 NULL ++acpi_ev_install_gpe_block_50829 acpi_ev_install_gpe_block 2 50829 NULL ++pstore_mkfile_50830 pstore_mkfile 5 50830 NULL ++create_mem_extents_50835 create_mem_extents 0 50835 NULL ++carl9170_debugfs_write_50857 carl9170_debugfs_write 3 50857 NULL ++netlbl_secattr_catmap_walk_rng_50894 netlbl_secattr_catmap_walk_rng 0-2 50894 NULL ++osd_req_write_sg_50908 osd_req_write_sg 5 50908 NULL ++xfs_iext_remove_50909 xfs_iext_remove 3 50909 NULL ++blk_rq_cur_sectors_50910 blk_rq_cur_sectors 0 50910 NULL ++hash_recvmsg_50924 hash_recvmsg 4 50924 NULL ++chd_dec_fetch_cdata_50926 chd_dec_fetch_cdata 3 50926 NULL ++sock_bindtodevice_50942 sock_bindtodevice 3 50942 NULL ++ocfs2_add_refcount_flag_50952 ocfs2_add_refcount_flag 6 50952 NULL ++iwl_statistics_flag_50981 iwl_statistics_flag 0-3 50981 NULL ++timeout_write_50991 timeout_write 3 50991 NULL ++proc_write_51003 proc_write 3 51003 NULL ++lbs_dev_info_51023 lbs_dev_info 3 51023 NULL ++ntfs_attr_find_51028 ntfs_attr_find 0 51028 NULL nohasharray ++fuse_conn_congestion_threshold_read_51028 fuse_conn_congestion_threshold_read 3 51028 &ntfs_attr_find_51028 ++BcmGetSectionValEndOffset_51039 BcmGetSectionValEndOffset 0 51039 NULL ++dump_midi_51040 dump_midi 3 51040 NULL ++do_arpt_set_ctl_51053 do_arpt_set_ctl 4 51053 NULL ++wusb_prf_64_51065 wusb_prf_64 7 51065 NULL ++qla4_8xxx_pci_mem_write_direct_51079 qla4_8xxx_pci_mem_write_direct 2 51079 NULL ++jbd2_journal_init_revoke_51088 jbd2_journal_init_revoke 2 51088 NULL ++__ocfs2_find_path_51096 __ocfs2_find_path 0 51096 NULL ++read_file_wiphy_51103 read_file_wiphy 3 51103 NULL ++nfs_map_name_to_uid_51132 nfs_map_name_to_uid 3 51132 NULL ++alloc_rtllib_51136 alloc_rtllib 1 51136 NULL ++xfs_trans_get_efd_51148 xfs_trans_get_efd 3 51148 NULL ++snd_pcm_write_51235 snd_pcm_write 3 51235 NULL ++tipc_send_51238 tipc_send 4 51238 NULL ++drm_property_create_51239 drm_property_create 4 51239 NULL ++st_read_51251 st_read 3 51251 NULL ++compat_dccp_setsockopt_51263 compat_dccp_setsockopt 5 51263 NULL ++dvb_audio_write_51275 dvb_audio_write 3 51275 NULL ++ipwireless_network_packet_received_51277 ipwireless_network_packet_received 4 51277 NULL ++zone_reclaimable_pages_51283 zone_reclaimable_pages 0 51283 NULL ++pvr2_std_id_to_str_51288 pvr2_std_id_to_str 2 51288 NULL ++alloc_hippi_dev_51320 alloc_hippi_dev 1 51320 NULL ++ext2_xattr_get_51327 ext2_xattr_get 0 51327 NULL ++alloc_smp_req_51337 alloc_smp_req 1 51337 NULL nohasharray ++compat_arch_ptrace_51337 compat_arch_ptrace 3-4 51337 &alloc_smp_req_51337 ++ipw_get_event_log_len_51341 ipw_get_event_log_len 0 51341 NULL ++ieee80211_if_fmt_estab_plinks_51370 ieee80211_if_fmt_estab_plinks 3 51370 NULL ++radeon_kms_compat_ioctl_51371 radeon_kms_compat_ioctl 2 51371 NULL ++ieee80211_wx_set_gen_ie_51399 ieee80211_wx_set_gen_ie 3 51399 NULL ++ceph_sync_read_51410 ceph_sync_read 3 51410 NULL ++blk_register_region_51424 blk_register_region 1-2 51424 NULL ++mwifiex_rdeeprom_read_51429 mwifiex_rdeeprom_read 3 51429 NULL ++econet_sendmsg_51430 econet_sendmsg 4 51430 NULL ++ieee80211_if_read_dot11MeshHWMPRootMode_51441 ieee80211_if_read_dot11MeshHWMPRootMode 3 51441 NULL ++print_devstats_dot11ACKFailureCount_51443 print_devstats_dot11ACKFailureCount 3 51443 NULL ++____alloc_ei_netdev_51475 ____alloc_ei_netdev 1 51475 NULL ++xfs_buf_get_uncached_51477 xfs_buf_get_uncached 2 51477 NULL ++acpi_pre_map_51532 acpi_pre_map 1-2 51532 NULL ++__alloc_eip_netdev_51549 __alloc_eip_netdev 1 51549 NULL ++ixgb_get_eeprom_len_51586 ixgb_get_eeprom_len 0 51586 NULL ++raw_ioctl_51607 raw_ioctl 3 51607 NULL ++table_size_to_number_of_entries_51613 table_size_to_number_of_entries 0-1 51613 NULL ++dns_resolve_server_name_to_ip_51632 dns_resolve_server_name_to_ip 0 51632 NULL ++sctp_auth_create_key_51641 sctp_auth_create_key 1 51641 NULL ++iscsi_create_session_51647 iscsi_create_session 3 51647 NULL ++au_fidir_realloc_51650 au_fidir_realloc 2 51650 NULL ++get_new_cssid_51665 get_new_cssid 2 51665 NULL ++ps_upsd_utilization_read_51669 ps_upsd_utilization_read 3 51669 NULL ++sctp_setsockopt_associnfo_51684 sctp_setsockopt_associnfo 3 51684 NULL ++sfi_sysfs_install_table_51688 sfi_sysfs_install_table 1 51688 NULL ++sel_write_access_51704 sel_write_access 3 51704 NULL ++drm_compat_ioctl_51717 drm_compat_ioctl 2 51717 NULL ++sg_read_oxfer_51724 sg_read_oxfer 3 51724 NULL ++msg_set_51725 msg_set 3 51725 NULL ++pwc_video_read_51735 pwc_video_read 3 51735 NULL ++hid_parse_report_51737 hid_parse_report 3 51737 NULL ++get_user_pages_fast_51751 get_user_pages_fast 0 51751 NULL ++ifx_spi_insert_flip_string_51752 ifx_spi_insert_flip_string 3 51752 NULL ++if_write_51756 if_write 3 51756 NULL ++ioremap_prot_51764 ioremap_prot 1-2 51764 NULL ++iio_buffer_add_channel_sysfs_51766 iio_buffer_add_channel_sysfs 0 51766 NULL ++l2cap_create_iframe_pdu_51801 l2cap_create_iframe_pdu 3 51801 NULL ++qib_alloc_devdata_51819 qib_alloc_devdata 2 51819 NULL ++buffer_from_user_51826 buffer_from_user 3 51826 NULL ++type_attribute_bounds_av_51837 type_attribute_bounds_av 3 51837 NULL ++ioread32_51847 ioread32 0 51847 NULL nohasharray ++read_file_tgt_tx_stats_51847 read_file_tgt_tx_stats 3 51847 &ioread32_51847 ++do_readv_writev_51849 do_readv_writev 4 51849 NULL ++pointer_size_read_51863 pointer_size_read 3 51863 NULL ++mlx4_alloc_db_from_pgdir_51865 mlx4_alloc_db_from_pgdir 3 51865 NULL ++get_indirect_ea_51869 get_indirect_ea 4 51869 NULL ++user_read_51881 user_read 3 51881 NULL ++dbAdjCtl_51888 dbAdjCtl 0 51888 NULL ++virt_to_phys_51896 virt_to_phys 0 51896 NULL ++dbg_status_buf_51930 dbg_status_buf 2 51930 NULL ++xfrm_alg_len_51940 xfrm_alg_len 0 51940 NULL ++scsi_get_vpd_page_51951 scsi_get_vpd_page 4 51951 NULL ++snd_mask_min_51969 snd_mask_min 0 51969 NULL ++twl6030_init_irq_51979 twl6030_init_irq 2 51979 NULL ++ath6kl_sdio_alloc_prep_scat_req_51986 ath6kl_sdio_alloc_prep_scat_req 2 51986 NULL ++skb_copy_datagram_from_iovec_52014 skb_copy_datagram_from_iovec 4-2-5 52014 NULL ++vxge_rx_alloc_52024 vxge_rx_alloc 3 52024 NULL ++override_release_52032 override_release 2 52032 NULL ++end_port_52042 end_port 0 52042 NULL ++dma_rx_errors_read_52045 dma_rx_errors_read 3 52045 NULL ++msnd_fifo_write_52052 msnd_fifo_write 0-3 52052 NULL ++dvb_ringbuffer_avail_52057 dvb_ringbuffer_avail 0 52057 NULL ++nsm_get_handle_52089 nsm_get_handle 4 52089 NULL ++o2net_debug_read_52105 o2net_debug_read 3 52105 NULL ++retry_count_read_52129 retry_count_read 3 52129 NULL ++hysdn_conf_write_52145 hysdn_conf_write 3 52145 NULL nohasharray ++ext2_alloc_blocks_52145 ext2_alloc_blocks 2 52145 &hysdn_conf_write_52145 ++ieee80211_if_read_dot11MeshRetryTimeout_52168 ieee80211_if_read_dot11MeshRetryTimeout 3 52168 NULL ++mga_compat_ioctl_52170 mga_compat_ioctl 2 52170 NULL ++proc_pid_readlink_52186 proc_pid_readlink 3 52186 NULL ++do_dmabuf_dirty_ldu_52241 do_dmabuf_dirty_ldu 6 52241 NULL ++shrink_slab_52261 shrink_slab 2-3 52261 NULL ++sisusbcon_do_font_op_52271 sisusbcon_do_font_op 9 52271 NULL ++smk_write_load_list_52280 smk_write_load_list 3 52280 NULL ++mpol_to_str_52293 mpol_to_str 2 52293 NULL ++atomic64_read_52300 atomic64_read 0 52300 NULL ++hwflags_read_52318 hwflags_read 3 52318 NULL ++ntfs_rl_split_52328 ntfs_rl_split 2-4 52328 NULL ++test_unaligned_bulk_52333 test_unaligned_bulk 3 52333 NULL ++iwl3945_ucode_rx_stats_read_52340 iwl3945_ucode_rx_stats_read 3 52340 NULL ++bytes_to_frames_52362 bytes_to_frames 0-2 52362 NULL ++copy_entries_to_user_52367 copy_entries_to_user 1 52367 NULL ++iwl_dump_fh_52371 iwl_dump_fh 0 52371 NULL ++isdn_writebuf_stub_52383 isdn_writebuf_stub 4 52383 NULL ++jfs_setxattr_52389 jfs_setxattr 4 52389 NULL ++aer_inject_write_52399 aer_inject_write 3 52399 NULL ++aac_rx_ioremap_52410 aac_rx_ioremap 2 52410 NULL ++cgroup_file_write_52417 cgroup_file_write 3 52417 NULL ++line6_midibuf_init_52425 line6_midibuf_init 2 52425 NULL ++ieee80211_if_fmt_num_sta_ps_52438 ieee80211_if_fmt_num_sta_ps 3 52438 NULL ++nl80211_send_mgmt_tx_status_52445 nl80211_send_mgmt_tx_status 5 52445 NULL ++ieee80211_alloc_txb_52477 ieee80211_alloc_txb 1 52477 NULL ++ocfs2_extend_no_holes_52483 ocfs2_extend_no_holes 3-4 52483 NULL ++skb_cow_head_52495 skb_cow_head 2 52495 NULL ++int_tasklet_entry_52500 int_tasklet_entry 3 52500 NULL ++pm_qos_power_write_52513 pm_qos_power_write 3 52513 NULL ++dccpprobe_read_52549 dccpprobe_read 3 52549 NULL ++ocfs2_make_right_split_rec_52562 ocfs2_make_right_split_rec 3 52562 NULL ++emit_code_52583 emit_code 0-3 52583 NULL ++xfs_file_buffered_aio_write_52609 xfs_file_buffered_aio_write 4 52609 NULL ++iwl_legacy_dbgfs_channels_read_52619 iwl_legacy_dbgfs_channels_read 3 52619 NULL ++cx25840_ir_rx_read_52724 cx25840_ir_rx_read 3 52724 NULL ++blkcipher_next_slow_52733 blkcipher_next_slow 3-4 52733 NULL ++relay_alloc_page_array_52735 relay_alloc_page_array 1 52735 NULL ++__do_cache_alloc_52738 __do_cache_alloc 0 52738 NULL ++carl9170_debugfs_vif_dump_read_52755 carl9170_debugfs_vif_dump_read 3 52755 NULL ++bl_mark_sectors_init_52831 bl_mark_sectors_init 2-3 52831 NULL ++pwr_rcvd_beacons_read_52836 pwr_rcvd_beacons_read 3 52836 NULL ++ext2_xattr_set_acl_52857 ext2_xattr_set_acl 4 52857 NULL ++mon_bin_get_event_52863 mon_bin_get_event 4 52863 NULL ++pvr2_ctrl_value_to_sym_internal_52881 pvr2_ctrl_value_to_sym_internal 5 52881 NULL ++cache_read_procfs_52882 cache_read_procfs 3 52882 NULL ++__iio_device_attr_init_52936 __iio_device_attr_init 0 52936 NULL ++ip_nat_sdp_port_52938 ip_nat_sdp_port 6 52938 NULL ++__nodes_remap_52951 __nodes_remap 5 52951 NULL ++store_disp_52952 store_disp 4 52952 NULL ++send_packet_52960 send_packet 4 52960 NULL ++ieee80211_if_fmt_fwded_mcast_52961 ieee80211_if_fmt_fwded_mcast 3 52961 NULL ++compat_sock_ioctl_52964 compat_sock_ioctl 3 52964 NULL ++num_node_state_52989 num_node_state 0 52989 NULL ++bio_cur_bytes_53037 bio_cur_bytes 0 53037 NULL ++cfi_read_query_53066 cfi_read_query 0 53066 NULL ++mwifiex_debug_read_53074 mwifiex_debug_read 3 53074 NULL ++security_transition_sid_user_53075 security_transition_sid_user 3 53075 NULL ++qib_resize_cq_53090 qib_resize_cq 2 53090 NULL ++line6_dumpreq_initbuf_53123 line6_dumpreq_initbuf 3 53123 NULL ++clear_capture_buf_53192 clear_capture_buf 2 53192 NULL ++mtdoops_erase_block_53206 mtdoops_erase_block 2 53206 NULL ++btrfs_file_extent_num_bytes_53269 btrfs_file_extent_num_bytes 0 53269 NULL ++pn544_i2c_read_53270 pn544_i2c_read 0 53270 NULL ++lirc_buffer_init_53282 lirc_buffer_init 3-2 53282 NULL ++gsm_control_reply_53333 gsm_control_reply 4 53333 NULL ++get_random_bytes_arch_53370 get_random_bytes_arch 2 53370 NULL ++roccat_common_receive_53407 roccat_common_receive 4 53407 NULL ++isr_cmd_cmplt_read_53439 isr_cmd_cmplt_read 3 53439 NULL ++mwifiex_info_read_53447 mwifiex_info_read 3 53447 NULL ++apei_exec_run_optional_53452 apei_exec_run_optional 0 53452 NULL ++acpi_tb_parse_root_table_53455 acpi_tb_parse_root_table 1 53455 NULL ++n2_run_53459 n2_run 3 53459 NULL ++rds_tcp_data_recv_53476 rds_tcp_data_recv 3 53476 NULL ++iowarrior_read_53483 iowarrior_read 3 53483 NULL ++osd_req_write_kern_53486 osd_req_write_kern 5 53486 NULL ++do_verify_xattr_datum_53499 do_verify_xattr_datum 0 53499 NULL ++snd_pcm_format_physical_width_53505 snd_pcm_format_physical_width 0 53505 NULL ++dbAllocNext_53506 dbAllocNext 0 53506 NULL ++ocfs2_xattr_set_acl_53508 ocfs2_xattr_set_acl 4 53508 NULL ++check_acl_53512 check_acl 0 53512 NULL ++set_registers_53582 set_registers 3 53582 NULL ++obj_to_index_53614 obj_to_index 0 53614 NULL ++___alloc_bootmem_nopanic_53626 ___alloc_bootmem_nopanic 1 53626 NULL ++xd_write_multiple_pages_53633 xd_write_multiple_pages 6-5 53633 NULL ++ccid_getsockopt_builtin_ccids_53634 ccid_getsockopt_builtin_ccids 2 53634 NULL ++uapsd_max_sp_len_read_53651 uapsd_max_sp_len_read 3 53651 NULL ++nr_sendmsg_53656 nr_sendmsg 4 53656 NULL ++orig_hash_add_if_53676 orig_hash_add_if 2 53676 NULL nohasharray ++_preload_range_53676 _preload_range 2-3 53676 &orig_hash_add_if_53676 ++fuse_fill_write_pages_53682 fuse_fill_write_pages 4 53682 NULL ++bdev_logical_block_size_53690 bdev_logical_block_size 0 53690 NULL ++find_overflow_devnum_53711 find_overflow_devnum 0 53711 NULL ++bio_integrity_split_53714 bio_integrity_split 3 53714 NULL ++__ocfs2_resv_find_window_53721 __ocfs2_resv_find_window 3 53721 NULL ++wdm_write_53735 wdm_write 3 53735 NULL ++ext3_try_to_allocate_with_rsv_53737 ext3_try_to_allocate_with_rsv 5-3 53737 NULL ++lpfc_idiag_queacc_read_qe_53755 lpfc_idiag_queacc_read_qe 0-2 53755 NULL nohasharray ++amdtp_out_stream_get_max_payload_53755 amdtp_out_stream_get_max_payload 0 53755 &lpfc_idiag_queacc_read_qe_53755 ++ext2_acl_count_53773 ext2_acl_count 0-1 53773 NULL ++__kfifo_dma_in_prepare_r_53792 __kfifo_dma_in_prepare_r 4-5 53792 NULL ++regmap_raw_write_53803 regmap_raw_write 4 53803 NULL ++lpfc_idiag_ctlacc_read_reg_53809 lpfc_idiag_ctlacc_read_reg 0-3 53809 NULL ++nls_nullsize_53815 nls_nullsize 0 53815 NULL ++ieee80211_if_fmt_dropped_frames_congestion_53883 ieee80211_if_fmt_dropped_frames_congestion 3 53883 NULL ++ocfs2_rm_xattr_cluster_53900 ocfs2_rm_xattr_cluster 5-4-3 53900 NULL ++proc_file_read_53905 proc_file_read 3 53905 NULL ++ocfs2_make_clusters_writable_53938 ocfs2_make_clusters_writable 4 53938 NULL ++mthca_setup_cmd_doorbells_53954 mthca_setup_cmd_doorbells 2 53954 NULL ++mlx4_num_eq_uar_53965 mlx4_num_eq_uar 0 53965 NULL ++idetape_chrdev_write_53976 idetape_chrdev_write 3 53976 NULL ++__ocfs2_xattr_set_value_outside_53981 __ocfs2_xattr_set_value_outside 5 53981 NULL ++snd_pcm_lib_write_transfer_54018 snd_pcm_lib_write_transfer 4-2-5 54018 NULL ++ipxrtr_route_packet_54036 ipxrtr_route_packet 4 54036 NULL ++nl80211_send_disconnected_54056 nl80211_send_disconnected 5 54056 NULL ++_malloc_54077 _malloc 1 54077 NULL ++bitmap_bitremap_54096 bitmap_bitremap 4 54096 NULL ++altera_set_ir_pre_54103 altera_set_ir_pre 2 54103 NULL ++create_xattr_54106 create_xattr 5 54106 NULL ++strn_len_54122 strn_len 0 54122 NULL ++store_sys_acpi_54129 store_sys_acpi 4 54129 NULL ++isr_host_acknowledges_read_54136 isr_host_acknowledges_read 3 54136 NULL ++c4iw_pblpool_alloc_54148 c4iw_pblpool_alloc 2 54148 NULL ++i2400m_zrealloc_2x_54166 i2400m_zrealloc_2x 3 54166 NULL nohasharray ++memcpy_toiovec_54166 memcpy_toiovec 3 54166 &i2400m_zrealloc_2x_54166 ++acpi_os_read_memory_54186 acpi_os_read_memory 1-3 54186 NULL ++__register_chrdev_54223 __register_chrdev 2-3 54223 NULL ++_format_mac_addr_54229 _format_mac_addr 2-0 54229 NULL ++pi_read_regr_54231 pi_read_regr 0 54231 NULL ++xfs_dir2_sf_addname_hard_54254 xfs_dir2_sf_addname_hard 3 54254 NULL ++ceph_msgpool_get_54258 ceph_msgpool_get 2 54258 NULL ++wusb_prf_54261 wusb_prf 7 54261 NULL nohasharray ++audio_write_54261 audio_write 4 54261 &wusb_prf_54261 ++mwifiex_getlog_read_54269 mwifiex_getlog_read 3 54269 NULL ++ubi_calc_data_len_54279 ubi_calc_data_len 0-3 54279 NULL ++altera_set_dr_post_54291 altera_set_dr_post 2 54291 NULL ++dlm_alloc_pagevec_54296 dlm_alloc_pagevec 1 54296 NULL ++sprintf_54306 sprintf 0 54306 NULL ++br_fdb_fillbuf_54339 br_fdb_fillbuf 0 54339 NULL ++__alloc_dev_table_54343 __alloc_dev_table 2 54343 NULL ++_osd_realloc_seg_54352 _osd_realloc_seg 3 54352 NULL nohasharray ++__get_free_pages_54352 __get_free_pages 0 54352 &_osd_realloc_seg_54352 ++tcf_hash_create_54360 tcf_hash_create 4 54360 NULL ++read_file_credit_dist_stats_54367 read_file_credit_dist_stats 3 54367 NULL ++vfs_readlink_54368 vfs_readlink 3 54368 NULL ++do_dccp_setsockopt_54377 do_dccp_setsockopt 5 54377 NULL ++ah_alloc_tmp_54378 ah_alloc_tmp 3-2 54378 NULL ++gart_unmap_page_54379 gart_unmap_page 2-3 54379 NULL ++snd_pcm_oss_read2_54387 snd_pcm_oss_read2 0-3 54387 NULL ++i386_mmap_check_54388 i386_mmap_check 0 54388 NULL ++iwl_dbgfs_power_save_status_read_54392 iwl_dbgfs_power_save_status_read 3 54392 NULL ++simple_strtoull_54493 simple_strtoull 0 54493 NULL ++cifs_idmap_key_instantiate_54503 cifs_idmap_key_instantiate 3 54503 NULL ++l2cap_create_basic_pdu_54508 l2cap_create_basic_pdu 3 54508 NULL ++btrfs_ordered_sum_size_54509 btrfs_ordered_sum_size 0-2 54509 NULL ++cgroup_write_X64_54514 cgroup_write_X64 5 54514 NULL ++rfc4106_set_key_54519 rfc4106_set_key 3 54519 NULL ++viacam_read_54526 viacam_read 3 54526 NULL ++unix_dgram_connect_54535 unix_dgram_connect 3 54535 NULL ++setsockopt_54539 setsockopt 5 54539 NULL ++nfsd_vfs_write_54577 nfsd_vfs_write 6 54577 NULL ++fw_iso_buffer_init_54582 fw_iso_buffer_init 3 54582 NULL ++dns_resolver_read_54658 dns_resolver_read 3 54658 NULL ++bio_kmalloc_54672 bio_kmalloc 2 54672 NULL ++evm_read_key_54674 evm_read_key 3 54674 NULL ++resource_string_54699 resource_string 0 54699 NULL ++addtgt_54703 addtgt 3 54703 NULL ++rfkill_fop_read_54711 rfkill_fop_read 3 54711 NULL ++_add_sg_continuation_descriptor_54721 _add_sg_continuation_descriptor 3 54721 NULL ++ocfs2_control_write_54737 ocfs2_control_write 3 54737 NULL ++kzalloc_54740 kzalloc 1 54740 NULL ++drm_mode_crtc_set_gamma_size_54742 drm_mode_crtc_set_gamma_size 2 54742 NULL ++wep_iv_read_54744 wep_iv_read 3 54744 NULL ++qla4_8xxx_pci_set_window_54766 qla4_8xxx_pci_set_window 0-2 54766 NULL ++flexcop_device_kmalloc_54793 flexcop_device_kmalloc 1 54793 NULL ++domain_init_54797 domain_init 2 54797 NULL ++ext3_find_goal_54801 ext3_find_goal 0 54801 NULL ++avc_has_perm_flags_54802 avc_has_perm_flags 3 54802 NULL ++nfsd_write_54809 nfsd_write 6 54809 NULL ++aes_decrypt_fail_read_54815 aes_decrypt_fail_read 3 54815 NULL nohasharray ++crypto_tfm_ctx_alignment_54815 crypto_tfm_ctx_alignment 0 54815 &aes_decrypt_fail_read_54815 ++generic_perform_write_54832 generic_perform_write 3 54832 NULL ++write_rio_54837 write_rio 3 54837 NULL ++ext3_acl_from_disk_54839 ext3_acl_from_disk 2 54839 NULL ++edac_mc_alloc_54846 edac_mc_alloc 1 54846 NULL ++ufx_ops_write_54848 ufx_ops_write 3 54848 NULL ++printer_read_54851 printer_read 3 54851 NULL ++alloc_ep_req_54860 alloc_ep_req 2 54860 NULL ++broadsheet_spiflash_rewrite_sector_54864 broadsheet_spiflash_rewrite_sector 2 54864 NULL ++prism_build_supp_rates_54865 prism_build_supp_rates 0 54865 NULL ++tcf_csum_ipv6_tcp_54877 tcf_csum_ipv6_tcp 4 54877 NULL ++iscsi_pool_init_54913 iscsi_pool_init 2-4 54913 NULL ++btrfs_stack_chunk_num_stripes_54923 btrfs_stack_chunk_num_stripes 0 54923 NULL ++mxms_structlen_54939 mxms_structlen 0 54939 NULL ++add_port_54941 add_port 2 54941 NULL ++c4_add_card_54968 c4_add_card 3 54968 NULL ++__proc_file_read_54978 __proc_file_read 3 54978 NULL ++ext3_xattr_get_54989 ext3_xattr_get 0 54989 NULL ++cx231xx_v4l2_read_55014 cx231xx_v4l2_read 3 55014 NULL ++__netdev_alloc_skb_ip_align_55067 __netdev_alloc_skb_ip_align 2 55067 NULL ++apei_exec_run_55075 apei_exec_run 0 55075 NULL ++rxpipe_beacon_buffer_thres_host_int_trig_rx_data_read_55106 rxpipe_beacon_buffer_thres_host_int_trig_rx_data_read 3 55106 NULL ++kmalloc_large_55111 kmalloc_large 0 55111 NULL ++crypto_ahash_setkey_55134 crypto_ahash_setkey 3 55134 NULL ++ocfs2_prepare_refcount_change_for_del_55137 ocfs2_prepare_refcount_change_for_del 3 55137 NULL nohasharray ++filldir_55137 filldir 3 55137 &ocfs2_prepare_refcount_change_for_del_55137 ++ocfs2_truncate_file_55148 ocfs2_truncate_file 3 55148 NULL ++sel_write_relabel_55195 sel_write_relabel 3 55195 NULL ++sched_feat_write_55202 sched_feat_write 3 55202 NULL ++ht40allow_map_read_55209 ht40allow_map_read 3 55209 NULL ++__kfifo_dma_out_prepare_r_55211 __kfifo_dma_out_prepare_r 4-5 55211 NULL ++do_raw_setsockopt_55215 do_raw_setsockopt 5 55215 NULL ++dbAllocDmap_55227 dbAllocDmap 0 55227 NULL ++tipc_port_reject_sections_55229 tipc_port_reject_sections 5 55229 NULL ++get_nr_threads_55242 get_nr_threads 0 55242 NULL ++memcpy_fromiovec_55247 memcpy_fromiovec 3 55247 NULL ++ptrace_request_55288 ptrace_request 3 55288 NULL ++rx_streaming_interval_read_55291 rx_streaming_interval_read 3 55291 NULL ++gsm_control_modem_55303 gsm_control_modem 3 55303 NULL ++__get_vm_area_node_55305 __get_vm_area_node 1 55305 NULL ++vme_user_read_55338 vme_user_read 3 55338 NULL ++sctp_datamsg_from_user_55342 sctp_datamsg_from_user 4 55342 NULL nohasharray ++__wa_xfer_setup_sizes_55342 __wa_xfer_setup_sizes 0 55342 &sctp_datamsg_from_user_55342 ++acpi_system_read_event_55362 acpi_system_read_event 3 55362 NULL ++iwl_dbgfs_plcp_delta_read_55407 iwl_dbgfs_plcp_delta_read 3 55407 NULL ++alloc_skb_55439 alloc_skb 1 55439 NULL ++security_dump_masked_av_55447 security_dump_masked_av 3 55447 NULL ++__vxge_hw_channel_allocate_55462 __vxge_hw_channel_allocate 3 55462 NULL ++cx23888_ir_rx_read_55473 cx23888_ir_rx_read 3 55473 NULL ++snd_pcm_lib_write_55483 snd_pcm_lib_write 0-3 55483 NULL ++i2o_pool_alloc_55485 i2o_pool_alloc 4 55485 NULL ++ocfs2_rec_clusters_55501 ocfs2_rec_clusters 0 55501 NULL ++ext4_flex_bg_size_55502 ext4_flex_bg_size 0 55502 NULL ++cfpkt_pad_trail_55511 cfpkt_pad_trail 2 55511 NULL ++ea_get_55522 ea_get 0 55522 NULL ++set_msr_interception_55538 set_msr_interception 2 55538 NULL ++add_partition_55588 add_partition 2 55588 NULL ++macvtap_put_user_55609 macvtap_put_user 4 55609 NULL ++selinux_setprocattr_55611 selinux_setprocattr 4 55611 NULL ++reiserfs_xattr_get_55628 reiserfs_xattr_get 0 55628 NULL nohasharray ++pktgen_if_write_55628 pktgen_if_write 3 55628 &reiserfs_xattr_get_55628 ++dvb_dmxdev_set_buffer_size_55643 dvb_dmxdev_set_buffer_size 2 55643 NULL ++mlx4_buddy_alloc_55647 mlx4_buddy_alloc 2 55647 NULL ++xfs_bmbt_maxrecs_55649 xfs_bmbt_maxrecs 0-2 55649 NULL ++ib_umad_compat_ioctl_55650 ib_umad_compat_ioctl 3 55650 NULL ++read_oldmem_55658 read_oldmem 3 55658 NULL ++lpfc_idiag_queinfo_read_55662 lpfc_idiag_queinfo_read 3 55662 NULL ++get_info_55681 get_info 3 55681 NULL ++pm8001_store_update_fw_55716 pm8001_store_update_fw 4 55716 NULL ++mtdswap_init_55719 mtdswap_init 2 55719 NULL ++__iio_allocate_kfifo_55738 __iio_allocate_kfifo 2-3 55738 NULL ++strlen_55778 strlen 0 55778 NULL ++req_bio_endio_55786 req_bio_endio 3 55786 NULL ++uwb_rc_neh_grok_event_55799 uwb_rc_neh_grok_event 3 55799 NULL ++iwl_legacy_dbgfs_sensitivity_read_55816 iwl_legacy_dbgfs_sensitivity_read 3 55816 NULL ++sb16_copy_from_user_55836 sb16_copy_from_user 10-6-7 55836 NULL ++xfs_da_buf_make_55845 xfs_da_buf_make 1 55845 NULL ++ip_hdrlen_55849 ip_hdrlen 0 55849 NULL ++hcd_alloc_coherent_55862 hcd_alloc_coherent 5 55862 NULL ++shmem_setxattr_55867 shmem_setxattr 4 55867 NULL ++pm_qos_power_read_55891 pm_qos_power_read 3 55891 NULL ++snd_pcm_hw_param_value_min_55917 snd_pcm_hw_param_value_min 0 55917 NULL ++sel_read_policy_55947 sel_read_policy 3 55947 NULL ++handle_response_55951 handle_response 5 55951 NULL ++simple_read_from_buffer_55957 simple_read_from_buffer 2-5 55957 NULL ++ssb_bus_pcmciabus_register_56020 ssb_bus_pcmciabus_register 3 56020 NULL ++dccp_sendmsg_56058 dccp_sendmsg 4 56058 NULL ++pscsi_get_bio_56103 pscsi_get_bio 1 56103 NULL ++kmem_zalloc_large_56128 kmem_zalloc_large 1 56128 NULL ++sel_read_handle_status_56139 sel_read_handle_status 3 56139 NULL ++ath6kl_wmi_bssinfo_event_rx_56146 ath6kl_wmi_bssinfo_event_rx 3 56146 NULL ++rawv6_setsockopt_56165 rawv6_setsockopt 5 56165 NULL ++create_irq_nr_56180 create_irq_nr 1 56180 NULL ++skb_headroom_56200 skb_headroom 0 56200 NULL ++usb_dump_iad_descriptor_56204 usb_dump_iad_descriptor 0 56204 NULL ++delay_status_56215 delay_status 4 56215 NULL ++ncp_read_bounce_size_56221 ncp_read_bounce_size 0-1 56221 NULL ++ocfs2_find_xe_in_bucket_56224 ocfs2_find_xe_in_bucket 0 56224 NULL ++cp210x_get_config_56229 cp210x_get_config 4 56229 NULL ++do_ipt_set_ctl_56238 do_ipt_set_ctl 4 56238 NULL ++fd_copyin_56247 fd_copyin 3 56247 NULL ++dvb_aplay_56296 dvb_aplay 3 56296 NULL ++btmrvl_hscfgcmd_read_56303 btmrvl_hscfgcmd_read 3 56303 NULL ++compat_cdrom_read_audio_56304 compat_cdrom_read_audio 4 56304 NULL ++journal_init_revoke_table_56331 journal_init_revoke_table 1 56331 NULL ++snd_rawmidi_read_56337 snd_rawmidi_read 3 56337 NULL ++sixpack_compat_ioctl_56346 sixpack_compat_ioctl 4 56346 NULL ++vxge_os_dma_malloc_async_56348 vxge_os_dma_malloc_async 3 56348 NULL ++iov_iter_copy_from_user_atomic_56368 iov_iter_copy_from_user_atomic 4 56368 NULL ++dev_read_56369 dev_read 3 56369 NULL ++ocfs2_control_read_56405 ocfs2_control_read 3 56405 NULL ++__get_vm_area_caller_56416 __get_vm_area_caller 1 56416 NULL nohasharray ++acpi_os_write_memory_56416 acpi_os_write_memory 1-3 56416 &__get_vm_area_caller_56416 ++store_msg_56417 store_msg 3 56417 NULL ++pppol2tp_sendmsg_56420 pppol2tp_sendmsg 4 56420 NULL ++fl_create_56435 fl_create 5 56435 NULL ++gnttab_map_56439 gnttab_map 2 56439 NULL ++cx231xx_init_isoc_56453 cx231xx_init_isoc 3-2 56453 NULL ++osd_req_list_partition_objects_56464 osd_req_list_partition_objects 5 56464 NULL ++calc_linear_pos_56472 calc_linear_pos 0-3 56472 NULL ++crypto_shash_alignmask_56486 crypto_shash_alignmask 0 56486 NULL ++cfg80211_connect_result_56515 cfg80211_connect_result 4-6 56515 NULL ++iwl_legacy_dbgfs_rx_queue_read_56533 iwl_legacy_dbgfs_rx_queue_read 3 56533 NULL ++ip_options_get_56538 ip_options_get 4 56538 NULL ++ocfs2_change_extent_flag_56549 ocfs2_change_extent_flag 5 56549 NULL ++alloc_apertures_56561 alloc_apertures 1 56561 NULL ++rs_sta_dbgfs_stats_table_read_56573 rs_sta_dbgfs_stats_table_read 3 56573 NULL ++portcntrs_2_read_56586 portcntrs_2_read 3 56586 NULL ++event_filter_write_56609 event_filter_write 3 56609 NULL ++gather_array_56641 gather_array 3 56641 NULL ++dlm_dir_lookup_56662 dlm_dir_lookup 4 56662 NULL ++snd_gus_dram_read_56686 snd_gus_dram_read 4 56686 NULL ++dvb_ringbuffer_read_user_56702 dvb_ringbuffer_read_user 3 56702 NULL ++sta_flags_read_56710 sta_flags_read 3 56710 NULL ++ipv6_getsockopt_sticky_56711 ipv6_getsockopt_sticky 5 56711 NULL ++__wa_xfer_setup_segs_56725 __wa_xfer_setup_segs 2 56725 NULL ++pcpu_populate_chunk_56741 pcpu_populate_chunk 2-3 56741 NULL ++drm_agp_bind_pages_56748 drm_agp_bind_pages 3 56748 NULL ++mfd_add_devices_56753 mfd_add_devices 4 56753 NULL ++dbgaufs_xi_read_56759 dbgaufs_xi_read 3 56759 NULL ++alloc_iommu_56778 alloc_iommu 2-3 56778 NULL ++ntfs_rl_realloc_56831 ntfs_rl_realloc 3 56831 NULL ++snd_rawmidi_kernel_write1_56847 snd_rawmidi_kernel_write1 4 56847 NULL ++ext3_xattr_ibody_get_56880 ext3_xattr_ibody_get 0 56880 NULL ++pvr2_debugifc_print_status_56890 pvr2_debugifc_print_status 3 56890 NULL ++__kfifo_out_56927 __kfifo_out 0-3 56927 NULL ++journal_init_revoke_56933 journal_init_revoke 2 56933 NULL ++diva_get_driver_info_56967 diva_get_driver_info 0 56967 NULL ++vlsi_alloc_ring_57003 vlsi_alloc_ring 3-4 57003 NULL ++btrfs_super_csum_size_57004 btrfs_super_csum_size 0 57004 NULL ++skb_network_offset_57043 skb_network_offset 0 57043 NULL nohasharray ++ieee80211_if_fmt_state_57043 ieee80211_if_fmt_state 3 57043 &skb_network_offset_57043 ++bytes_to_samples_57049 bytes_to_samples 0-2 57049 NULL ++autofs_dev_ioctl_compat_57059 autofs_dev_ioctl_compat 3 57059 NULL +cx2341x_ctrl_new_std_57061 cx2341x_ctrl_new_std 4 57061 NULL -+isr_tx_exch_complete_read_16103 isr_tx_exch_complete_read 3 16103 NULL +sca3000_read_data_57064 sca3000_read_data 4 57064 NULL +pcmcia_replace_cis_57066 pcmcia_replace_cis 3 57066 NULL +sis190_try_rx_copy_57069 sis190_try_rx_copy 3 57069 NULL -+dma_tx_requested_read_16110 dma_tx_requested_read 3 16110 NULL nohasharray -+isr_hw_pm_mode_changes_read_16110 isr_hw_pm_mode_changes_read 3 16110 &dma_tx_requested_read_16110 -+do_surface_dirty_sou_7920 do_surface_dirty_sou 7 7920 NULL -+sys_setgroups16_48882 sys_setgroups16 1 48882 NULL -+kmem_zalloc_greedy_65268 kmem_zalloc_greedy 2-3 65268 NULL -+system_enable_write_61396 system_enable_write 3 61396 NULL -+f_hidg_write_7932 f_hidg_write 3 7932 NULL -+kmalloc_parameter_65279 kmalloc_parameter 1 65279 NULL -+iwl_dbgfs_channels_read_6784 iwl_dbgfs_channels_read 3 6784 NULL -+mac_drv_rx_init_48898 mac_drv_rx_init 2 48898 NULL nohasharray -+joydev_handle_JSIOCSAXMAP_48898 joydev_handle_JSIOCSAXMAP 3 48898 &mac_drv_rx_init_48898 -+compat_sys_select_16131 compat_sys_select 1 16131 NULL -+xdi_copy_to_user_48900 xdi_copy_to_user 4 48900 NULL -+compat_core_sys_select_65285 compat_core_sys_select 1 65285 NULL -+fsm_init_16134 fsm_init 2 16134 NULL -+hysdn_rx_netpkt_16136 hysdn_rx_netpkt 3 16136 NULL ++tracing_set_trace_write_57096 tracing_set_trace_write 3 57096 NULL ++crypto_compress_ctxsize_57109 crypto_compress_ctxsize 0 57109 NULL ++sysfs_write_file_57116 sysfs_write_file 3 57116 NULL ++cipso_v4_gentag_loc_57119 cipso_v4_gentag_loc 0 57119 NULL ++nl80211_send_deauth_57136 nl80211_send_deauth 4 57136 NULL nohasharray ++rds_ib_sub_signaled_57136 rds_ib_sub_signaled 2 57136 &nl80211_send_deauth_57136 nohasharray ++ima_show_htable_value_57136 ima_show_htable_value 2 57136 &rds_ib_sub_signaled_57136 ++snd_sonicvibes_getdmac_57140 snd_sonicvibes_getdmac 0 57140 NULL ++stk_prepare_sio_buffers_57168 stk_prepare_sio_buffers 2 57168 NULL ++rx_hw_stuck_read_57179 rx_hw_stuck_read 3 57179 NULL ++ieee80211_if_fmt_tsf_57249 ieee80211_if_fmt_tsf 3 57249 NULL ++oprofilefs_ulong_from_user_57251 oprofilefs_ulong_from_user 3 57251 NULL ++pstore_file_read_57288 pstore_file_read 3 57288 NULL ++snd_pcm_read_57289 snd_pcm_read 3 57289 NULL ++ftdi_elan_write_57309 ftdi_elan_write 3 57309 NULL ++ocfs2_xattr_shrink_size_57328 ocfs2_xattr_shrink_size 3 57328 NULL ++check_mirror_57342 check_mirror 1-2 57342 NULL nohasharray ++usblp_read_57342 usblp_read 3 57342 &check_mirror_57342 ++print_devstats_dot11RTSFailureCount_57347 print_devstats_dot11RTSFailureCount 3 57347 NULL ++read_file_blob_57406 read_file_blob 3 57406 NULL ++enclosure_register_57412 enclosure_register 3 57412 NULL ++compat_keyctl_instantiate_key_iov_57431 compat_keyctl_instantiate_key_iov 3 57431 NULL nohasharray ++alloc_ftrace_hash_57431 alloc_ftrace_hash 1 57431 &compat_keyctl_instantiate_key_iov_57431 ++copy_to_user_fromio_57432 copy_to_user_fromio 3 57432 NULL ++sys_pselect6_57449 sys_pselect6 1 57449 NULL ++__roundup_pow_of_two_57461 __roundup_pow_of_two 0 57461 NULL ++crypto_tfm_alg_blocksize_57463 crypto_tfm_alg_blocksize 0 57463 NULL nohasharray ++send_midi_async_57463 send_midi_async 3 57463 &crypto_tfm_alg_blocksize_57463 ++iwl4965_statistics_flag_57466 iwl4965_statistics_flag 3-0 57466 NULL nohasharray ++sisusb_clear_vram_57466 sisusb_clear_vram 3-2 57466 &iwl4965_statistics_flag_57466 ++ieee80211_if_read_flags_57470 ieee80211_if_read_flags 3 57470 NULL ++ocfs2_write_cluster_57483 ocfs2_write_cluster 8-2-9 57483 NULL ++nl80211_send_mgmt_57497 nl80211_send_mgmt 6 57497 NULL ++skb_headlen_57501 skb_headlen 0 57501 NULL ++copy_in_user_57502 copy_in_user 3 57502 NULL ++ks8842_read32_57505 ks8842_read32 0 57505 NULL nohasharray ++ckhdid_printf_57505 ckhdid_printf 2 57505 &ks8842_read32_57505 ++init_tag_map_57515 init_tag_map 3 57515 NULL ++inode_permission_57531 inode_permission 0 57531 NULL ++DoC_Probe_57534 DoC_Probe 1 57534 NULL ++ext4_group_first_block_no_57559 ext4_group_first_block_no 0-2 57559 NULL ++snd_pcm_playback_ioctl1_57569 snd_pcm_playback_ioctl1 0 57569 NULL ++sk_stream_alloc_skb_57622 sk_stream_alloc_skb 2 57622 NULL ++osdmap_set_max_osd_57630 osdmap_set_max_osd 2 57630 NULL nohasharray ++sisusbcon_putcs_57630 sisusbcon_putcs 3 57630 &osdmap_set_max_osd_57630 ++mem_read_57631 mem_read 3 57631 NULL ++sys_mq_timedsend_57661 sys_mq_timedsend 3 57661 NULL ++r3964_write_57662 r3964_write 4 57662 NULL ++__lgwrite_57669 __lgwrite 4 57669 NULL ++i2400m_rx_stats_read_57706 i2400m_rx_stats_read 3 57706 NULL ++calgary_alloc_coherent_57714 calgary_alloc_coherent 2 57714 NULL ++aa_matching_read_57720 aa_matching_read 3 57720 NULL ++compat_sys_set_mempolicy_57742 compat_sys_set_mempolicy 3 57742 NULL ++ieee80211_if_fmt_dot11MeshHWMPpreqMinInterval_57762 ieee80211_if_fmt_dot11MeshHWMPpreqMinInterval 3 57762 NULL ++ld2_57794 ld2 0 57794 NULL ++ivtv_read_57796 ivtv_read 3 57796 NULL ++generic_ptrace_peekdata_57806 generic_ptrace_peekdata 2 57806 NULL ++usb_dump_config_57817 usb_dump_config 0 57817 NULL ++bfad_debugfs_read_regrd_57830 bfad_debugfs_read_regrd 3 57830 NULL ++copy_to_user_57835 copy_to_user 3 57835 NULL ++flash_read_57843 flash_read 3 57843 NULL ++xt_alloc_table_info_57903 xt_alloc_table_info 1 57903 NULL ++emi26_writememory_57908 emi26_writememory 4 57908 NULL ++iio_read_first_n_kfifo_57910 iio_read_first_n_kfifo 2 57910 NULL ++__snd_gf1_look16_57925 __snd_gf1_look16 0 57925 NULL ++sel_read_handle_unknown_57933 sel_read_handle_unknown 3 57933 NULL ++key_algorithm_read_57946 key_algorithm_read 3 57946 NULL ++ip_set_alloc_57953 ip_set_alloc 1 57953 NULL nohasharray ++ioat3_dca_count_dca_slots_57953 ioat3_dca_count_dca_slots 0 57953 &ip_set_alloc_57953 ++i915_cache_sharing_write_57961 i915_cache_sharing_write 3 57961 NULL ++rx_reset_counter_read_58001 rx_reset_counter_read 3 58001 NULL ++regcache_rbtree_insert_to_block_58009 regcache_rbtree_insert_to_block 5 58009 NULL ++iwl_dbgfs_ucode_rx_stats_read_58023 iwl_dbgfs_ucode_rx_stats_read 3 58023 NULL ++io_playback_transfer_58030 io_playback_transfer 4 58030 NULL ++mce_async_out_58056 mce_async_out 3 58056 NULL ++ocfs2_find_leaf_58065 ocfs2_find_leaf 0 58065 NULL ++cm4040_write_58079 cm4040_write 3 58079 NULL ++socket_type_to_security_class_58118 socket_type_to_security_class 0 58118 NULL ++savemem_58129 savemem 3 58129 NULL ++ipv6_flowlabel_opt_58135 ipv6_flowlabel_opt 3 58135 NULL nohasharray ++slhc_init_58135 slhc_init 1-2 58135 &ipv6_flowlabel_opt_58135 ++garmin_write_bulk_58191 garmin_write_bulk 3 58191 NULL ++asix_write_cmd_58192 asix_write_cmd 5 58192 NULL ++ieee80211_if_fmt_flags_58205 ieee80211_if_fmt_flags 3 58205 NULL ++read_file_debug_58256 read_file_debug 3 58256 NULL ++cfg80211_mgmt_tx_status_58266 cfg80211_mgmt_tx_status 4 58266 NULL ++profile_load_58267 profile_load 3 58267 NULL ++acpi_ds_build_internal_package_obj_58271 acpi_ds_build_internal_package_obj 3 58271 NULL ++iscsi_decode_text_input_58292 iscsi_decode_text_input 4 58292 NULL ++my_skb_head_push_58297 my_skb_head_push 2 58297 NULL ++ieee80211_if_read_dot11MeshTTL_58307 ieee80211_if_read_dot11MeshTTL 3 58307 NULL ++pcim_iomap_58334 pcim_iomap 3 58334 NULL ++diva_init_dma_map_58336 diva_init_dma_map 3 58336 NULL ++next_pidmap_58347 next_pidmap 2 58347 NULL ++vmalloc_to_sg_58354 vmalloc_to_sg 2 58354 NULL ++i2400m_pld_size_58415 i2400m_pld_size 0 58415 NULL ++__iio_add_chan_devattr_58451 __iio_add_chan_devattr 0 58451 NULL ++capabilities_read_58457 capabilities_read 3 58457 NULL ++lpfc_idiag_baracc_read_58466 lpfc_idiag_baracc_read 3 58466 NULL nohasharray ++compat_do_ipt_set_ctl_58466 compat_do_ipt_set_ctl 4 58466 &lpfc_idiag_baracc_read_58466 ++snd_gf1_read_addr_58483 snd_gf1_read_addr 0 58483 NULL ++snd_rme96_capture_copy_58484 snd_rme96_capture_copy 5 58484 NULL ++rndis_add_response_58544 rndis_add_response 2 58544 NULL ++efx_tsoh_heap_alloc_58545 efx_tsoh_heap_alloc 2 58545 NULL ++gen_pool_alloc_58558 gen_pool_alloc 2 58558 NULL ++wep_decrypt_fail_read_58567 wep_decrypt_fail_read 3 58567 NULL ++scnprint_mac_oui_58578 scnprint_mac_oui 3-0 58578 NULL ++ea_read_inline_58589 ea_read_inline 0 58589 NULL ++xip_file_read_58592 xip_file_read 3 58592 NULL ++gdth_search_isa_58595 gdth_search_isa 1 58595 NULL ++ebt_buf_count_58607 ebt_buf_count 0 58607 NULL ++skb_copy_to_page_nocache_58624 skb_copy_to_page_nocache 6 58624 NULL ++module_alloc_update_bounds_rx_58634 module_alloc_update_bounds_rx 1 58634 NULL ++ocfs2_block_to_cluster_start_58653 ocfs2_block_to_cluster_start 2 58653 NULL ++uwb_bce_print_IEs_58686 uwb_bce_print_IEs 4 58686 NULL ++vmalloc_node_58700 vmalloc_node 1 58700 NULL ++csum_exist_in_range_58730 csum_exist_in_range 2 58730 NULL ++frames_to_bytes_58741 frames_to_bytes 0-2 58741 NULL +ieee80211_if_write_tkip_mic_test_58748 ieee80211_if_write_tkip_mic_test 3 58748 NULL -+__seq_open_private_40715 __seq_open_private 3 40715 NULL -+tifm_alloc_adapter_10903 tifm_alloc_adapter 1 10903 NULL ++agp_allocate_memory_58761 agp_allocate_memory 2 58761 NULL ++__do_config_autodelink_58763 __do_config_autodelink 3 58763 NULL ++regmap_calc_reg_len_58795 regmap_calc_reg_len 0 58795 NULL ++raw_send_hdrinc_58803 raw_send_hdrinc 4 58803 NULL ++ep_read_58813 ep_read 3 58813 NULL ++command_write_58841 command_write 3 58841 NULL ++ocfs2_truncate_log_append_58850 ocfs2_truncate_log_append 3 58850 NULL ++iwl_dbgfs_traffic_log_read_58870 iwl_dbgfs_traffic_log_read 3 58870 NULL ++gs_alloc_req_58883 gs_alloc_req 2 58883 NULL ++cs553x_init_one_58886 cs553x_init_one 3 58886 NULL ++raw_ctl_compat_ioctl_58905 raw_ctl_compat_ioctl 3 58905 NULL ++print_devstats_dot11FCSErrorCount_58919 print_devstats_dot11FCSErrorCount 3 58919 NULL ++tun_chr_compat_ioctl_58921 tun_chr_compat_ioctl 3 58921 NULL ++crypto_aead_ivsize_58970 crypto_aead_ivsize 0 58970 NULL ++max3107_handlerx_58978 max3107_handlerx 2 58978 NULL ++ep_write_59008 ep_write 3 59008 NULL ++selinux_transaction_write_59038 selinux_transaction_write 3 59038 NULL ++crypto_aead_reqsize_59039 crypto_aead_reqsize 0 59039 NULL ++mmc_sd_num_wr_blocks_59112 mmc_sd_num_wr_blocks 0 59112 NULL ++scsi_io_completion_59122 scsi_io_completion 2 59122 NULL ++__iio_add_event_config_attrs_59136 __iio_add_event_config_attrs 0 59136 NULL ++print_devstats_dot11RTSSuccessCount_59145 print_devstats_dot11RTSSuccessCount 3 59145 NULL nohasharray ++framebuffer_alloc_59145 framebuffer_alloc 1 59145 &print_devstats_dot11RTSSuccessCount_59145 ++radeon_compat_ioctl_59150 radeon_compat_ioctl 2 59150 NULL ++pvr2_hdw_report_clients_59152 pvr2_hdw_report_clients 3 59152 NULL ++setup_window_59178 setup_window 4-2-5-7 59178 NULL ++ocfs2_move_extent_59187 ocfs2_move_extent 3 59187 NULL ++xfs_iext_realloc_indirect_59211 xfs_iext_realloc_indirect 2 59211 NULL ++inftl_partscan_59216 inftl_partscan 0 59216 NULL ++skb_transport_header_59223 skb_transport_header 0 59223 NULL ++dt3155_read_59226 dt3155_read 3 59226 NULL ++tcp_try_rmem_schedule_59231 tcp_try_rmem_schedule 2 59231 NULL ++tty_prepare_flip_string_flags_59240 tty_prepare_flip_string_flags 4 59240 NULL ++solo_v4l2_read_59247 solo_v4l2_read 3 59247 NULL ++nla_len_59258 nla_len 0 59258 NULL ++btrfs_insert_dir_item_59304 btrfs_insert_dir_item 4 59304 NULL ++fd_copyout_59323 fd_copyout 3 59323 NULL ++read_9287_modal_eeprom_59327 read_9287_modal_eeprom 3 59327 NULL ++xfs_attrmulti_attr_set_59346 xfs_attrmulti_attr_set 4 59346 NULL ++xfs_dir2_sf_entsize_59366 xfs_dir2_sf_entsize 0-2 59366 NULL ++pvr2_debugifc_print_info_59380 pvr2_debugifc_print_info 3 59380 NULL ++fc_frame_alloc_fill_59394 fc_frame_alloc_fill 2 59394 NULL ++vxge_hw_ring_rxds_per_block_get_59425 vxge_hw_ring_rxds_per_block_get 0 59425 NULL ++squashfs_read_data_59440 squashfs_read_data 6 59440 NULL ++descriptor_loc_59446 descriptor_loc 3 59446 NULL ++dma_attach_59495 dma_attach 5-6 59495 NULL ++ib_copy_from_udata_59502 ib_copy_from_udata 3 59502 NULL ++rds_pin_pages_59507 rds_pin_pages 0 59507 NULL ++tunables_write_59563 tunables_write 3 59563 NULL ++memdup_user_59590 memdup_user 2 59590 NULL ++mtrr_write_59622 mtrr_write 3 59622 NULL ++ip_vs_icmp_xmit_59624 ip_vs_icmp_xmit 4 59624 NULL ++find_first_zero_bit_59636 find_first_zero_bit 0-2 59636 NULL ++ubifs_setxattr_59650 ubifs_setxattr 4 59650 NULL nohasharray ++hidraw_read_59650 hidraw_read 3 59650 &ubifs_setxattr_59650 ++v9fs_xattr_set_acl_59651 v9fs_xattr_set_acl 4 59651 NULL ++alloc_dca_provider_59670 alloc_dca_provider 2 59670 NULL ++sriov_enable_59689 sriov_enable 2 59689 NULL ++ieee80211_mgmt_tx_59699 ieee80211_mgmt_tx 9 59699 NULL ++mic_calc_failure_read_59700 mic_calc_failure_read 3 59700 NULL ++prism2_info_scanresults_59729 prism2_info_scanresults 3 59729 NULL ++ieee80211_if_read_fwded_unicast_59740 ieee80211_if_read_fwded_unicast 3 59740 NULL ++qib_decode_7220_sdma_errs_59745 qib_decode_7220_sdma_errs 4 59745 NULL ++strnlen_59746 strnlen 0 59746 NULL ++ext3_acl_count_59754 ext3_acl_count 0-1 59754 NULL ++long_retry_limit_read_59766 long_retry_limit_read 3 59766 NULL ++venus_remove_59781 venus_remove 4 59781 NULL ++ipw_write_59807 ipw_write 3 59807 NULL ++rtllib_wx_set_gen_ie_59808 rtllib_wx_set_gen_ie 3 59808 NULL ++ubi_dbg_check_all_ff_59810 ubi_dbg_check_all_ff 4 59810 NULL ++scsi_init_shared_tag_map_59812 scsi_init_shared_tag_map 2 59812 NULL ++ieee80211_if_read_dot11MeshHWMPmaxPREQretries_59829 ieee80211_if_read_dot11MeshHWMPmaxPREQretries 3 59829 NULL ++gspca_dev_probe2_59833 gspca_dev_probe2 4 59833 NULL ++may_create_59843 may_create 3 59843 NULL ++tun_put_user_59849 tun_put_user 4 59849 NULL ++format_array_59854 format_array 0 59854 NULL ++pvr2_ioread_set_sync_key_59882 pvr2_ioread_set_sync_key 3 59882 NULL ++shmem_zero_setup_59885 shmem_zero_setup 0 59885 NULL ++ffs_prepare_buffer_59892 ffs_prepare_buffer 2 59892 NULL ++dapm_widget_power_read_file_59950 dapm_widget_power_read_file 3 59950 NULL ++compat_ipmi_ioctl_59956 compat_ipmi_ioctl 3 59956 NULL ++fb_getput_cmap_59971 fb_getput_cmap 3 59971 NULL ++__arch_hweight16_59975 __arch_hweight16 0 59975 NULL ++osd_req_read_kern_59990 osd_req_read_kern 5 59990 NULL ++ghash_async_setkey_60001 ghash_async_setkey 3 60001 NULL ++rawsock_sendmsg_60010 rawsock_sendmsg 4 60010 NULL ++mthca_init_cq_60011 mthca_init_cq 2 60011 NULL ++register_device_60015 register_device 2-3 60015 NULL ++osd_req_list_dev_partitions_60027 osd_req_list_dev_partitions 4 60027 NULL ++xlog_bread_offset_60030 xlog_bread_offset 3 60030 NULL ++sys_sched_getaffinity_60033 sys_sched_getaffinity 2 60033 NULL ++bio_integrity_hw_sectors_60039 bio_integrity_hw_sectors 0-2 60039 NULL ++do_ip6t_set_ctl_60040 do_ip6t_set_ctl 4 60040 NULL ++pin_2_irq_60050 pin_2_irq 0-3 60050 NULL nohasharray ++vcs_size_60050 vcs_size 0 60050 &pin_2_irq_60050 ++load_module_60056 load_module 2 60056 NULL nohasharray ++gru_alloc_gts_60056 gru_alloc_gts 3-2 60056 &load_module_60056 ++compat_writev_60063 compat_writev 3 60063 NULL ++c4iw_num_stags_60073 c4iw_num_stags 0 60073 NULL ++mp_register_gsi_60079 mp_register_gsi 2 60079 NULL ++rxrpc_kernel_send_data_60083 rxrpc_kernel_send_data 3 60083 NULL ++ieee80211_if_fmt_fwded_frames_60103 ieee80211_if_fmt_fwded_frames 3 60103 NULL ++ttm_bo_kmap_60118 ttm_bo_kmap 3-2 60118 NULL ++kmem_cache_alloc_trace_60152 kmem_cache_alloc_trace 0 60152 NULL ++jmb38x_ms_count_slots_60164 jmb38x_ms_count_slots 0 60164 NULL ++init_state_60165 init_state 2 60165 NULL ++sg_build_sgat_60179 sg_build_sgat 3 60179 NULL nohasharray ++jffs2_alloc_full_dirent_60179 jffs2_alloc_full_dirent 1 60179 &sg_build_sgat_60179 ++svc_compat_ioctl_60194 svc_compat_ioctl 3 60194 NULL ++ib_send_cm_mra_60202 ib_send_cm_mra 4 60202 NULL nohasharray ++qib_reg_phys_mr_60202 qib_reg_phys_mr 3 60202 &ib_send_cm_mra_60202 ++store_iwmct_log_level_60209 store_iwmct_log_level 4 60209 NULL ++compat_sys_fcntl64_60256 compat_sys_fcntl64 3 60256 NULL ++printer_write_60276 printer_write 3 60276 NULL ++__pskb_pull_tail_60287 __pskb_pull_tail 2 60287 NULL ++do_xip_mapping_read_60297 do_xip_mapping_read 5 60297 NULL ++getDataLength_60301 getDataLength 0 60301 NULL ++ceph_parse_server_name_60318 ceph_parse_server_name 2 60318 NULL ++__kfifo_from_user_r_60345 __kfifo_from_user_r 3-5 60345 NULL ++brcmf_alloc_wdev_60347 brcmf_alloc_wdev 1 60347 NULL ++dccp_setsockopt_60367 dccp_setsockopt 5 60367 NULL ++mthca_alloc_resize_buf_60394 mthca_alloc_resize_buf 3 60394 NULL ++ocfs2_zero_extend_60396 ocfs2_zero_extend 3 60396 NULL ++tveeprom_read_60397 tveeprom_read 3 60397 NULL ++driver_names_read_60399 driver_names_read 3 60399 NULL ++simple_alloc_urb_60420 simple_alloc_urb 3 60420 NULL ++excessive_retries_read_60425 excessive_retries_read 3 60425 NULL ++tstats_write_60432 tstats_write 3 60432 NULL nohasharray ++kmalloc_60432 kmalloc 0-1 60432 &tstats_write_60432 ++tipc_buf_acquire_60437 tipc_buf_acquire 1 60437 NULL ++tcf_csum_ipv4_igmp_60446 tcf_csum_ipv4_igmp 3 60446 NULL ++crypto_shash_setkey_60483 crypto_shash_setkey 3 60483 NULL ++ath_tx_init_60515 ath_tx_init 2 60515 NULL ++v9fs_fid_readn_60544 v9fs_fid_readn 4 60544 NULL ++skb_transport_offset_60619 skb_transport_offset 0 60619 NULL ++wl1273_fm_fops_write_60621 wl1273_fm_fops_write 3 60621 NULL ++acl_alloc_stack_init_60630 acl_alloc_stack_init 1 60630 NULL ++ubifs_recover_leb_60639 ubifs_recover_leb 3 60639 NULL ++fb_get_fscreeninfo_60640 fb_get_fscreeninfo 3 60640 NULL ++if_sdio_host_to_card_60666 if_sdio_host_to_card 4 60666 NULL ++ieee80211_if_read_dot11MeshConfirmTimeout_60670 ieee80211_if_read_dot11MeshConfirmTimeout 3 60670 NULL ++init_data_container_60709 init_data_container 1 60709 NULL ++snd_ice1712_ds_read_60754 snd_ice1712_ds_read 0 60754 NULL ++sel_write_checkreqprot_60774 sel_write_checkreqprot 3 60774 NULL ++opticon_write_60775 opticon_write 4 60775 NULL ++acl_alloc_num_60778 acl_alloc_num 1-2 60778 NULL ++snd_pcm_oss_readv3_60792 snd_pcm_oss_readv3 3 60792 NULL ++mtd_compat_ioctl_60850 mtd_compat_ioctl 3 60850 NULL ++pwr_tx_with_ps_read_60851 pwr_tx_with_ps_read 3 60851 NULL ++alloc_irq_from_60868 alloc_irq_from 1 60868 NULL ++generic_writepages_60871 generic_writepages 0 60871 NULL ++mgt_set_varlen_60916 mgt_set_varlen 4 60916 NULL ++set_powered_60938 set_powered 4 60938 NULL ++pti_char_write_60960 pti_char_write 3 60960 NULL ++mwifiex_alloc_sdio_mpa_buffers_60961 mwifiex_alloc_sdio_mpa_buffers 2-3 60961 NULL ++ath6kl_lrssi_roam_read_61022 ath6kl_lrssi_roam_read 3 61022 NULL ++symtab_init_61050 symtab_init 2 61050 NULL ++fuse_send_write_61053 fuse_send_write 0 61053 NULL ++bitmap_scnlistprintf_61062 bitmap_scnlistprintf 0-4-2 61062 NULL ++ahash_align_buffer_size_61070 ahash_align_buffer_size 0-1-2 61070 NULL ++get_derived_key_61100 get_derived_key 4 61100 NULL ++alloc_chrdev_region_61112 alloc_chrdev_region 0 61112 NULL ++__probe_kernel_read_61119 __probe_kernel_read 3 61119 NULL ++proto_ports_offset_61125 proto_ports_offset 0 61125 NULL ++vmemmap_alloc_block_buf_61126 vmemmap_alloc_block_buf 1 61126 NULL ++afs_proc_cells_write_61139 afs_proc_cells_write 3 61139 NULL ++__vmalloc_61168 __vmalloc 1 61168 NULL ++event_oom_late_read_61175 event_oom_late_read 3 61175 NULL ++sys_lsetxattr_61177 sys_lsetxattr 4 61177 NULL ++arch_hibernation_header_save_61212 arch_hibernation_header_save 0 61212 NULL ++smk_read_ambient_61220 smk_read_ambient 3 61220 NULL ++ubifs_leb_write_61226 ubifs_leb_write 4-5 61226 NULL ++vortex_adbdma_getlinearpos_61283 vortex_adbdma_getlinearpos 0 61283 NULL ++sys_add_key_61288 sys_add_key 4 61288 NULL ++ext4_issue_discard_61305 ext4_issue_discard 2 61305 NULL ++xfrm_user_sec_ctx_size_61320 xfrm_user_sec_ctx_size 0 61320 NULL ++__fls_61340 __fls 0 61340 NULL nohasharray ++st5481_setup_isocpipes_61340 st5481_setup_isocpipes 6-4 61340 &__fls_61340 ++sys_ptrace_61369 sys_ptrace 3 61369 NULL ++change_xattr_61390 change_xattr 5 61390 NULL ++size_entry_mwt_61400 size_entry_mwt 0 61400 NULL ++pm860x_bulk_read_61415 pm860x_bulk_read 3 61415 NULL ++dma_ops_area_alloc_61440 dma_ops_area_alloc 3-4-5 61440 NULL ++unix_stream_sendmsg_61455 unix_stream_sendmsg 4 61455 NULL ++snd_pcm_lib_writev_transfer_61483 snd_pcm_lib_writev_transfer 4-2-5 61483 NULL ++btrfs_item_size_61485 btrfs_item_size 0 61485 NULL ++choke_len_61491 choke_len 0 61491 NULL ++clone_bio_61526 clone_bio 5 61526 NULL nohasharray ++erst_errno_61526 erst_errno 0 61526 &clone_bio_61526 ++ntfs_attr_lookup_61539 ntfs_attr_lookup 0 61539 NULL ++o2hb_pop_count_61553 o2hb_pop_count 2 61553 NULL ++dvb_net_ioctl_61559 dvb_net_ioctl 2 61559 NULL ++rbd_do_request_61561 rbd_do_request 6-7 61561 NULL ++ieee80211_if_read_rc_rateidx_mask_2ghz_61570 ieee80211_if_read_rc_rateidx_mask_2ghz 3 61570 NULL ++seq_open_private_61589 seq_open_private 3 61589 NULL ++__get_vm_area_61599 __get_vm_area 1 61599 NULL ++ncp_compat_ioctl_61608 ncp_compat_ioctl 3 61608 NULL ++configfs_write_file_61621 configfs_write_file 3 61621 NULL ++ieee80211_rx_bss_info_61630 ieee80211_rx_bss_info 3 61630 NULL ++i2o_parm_table_get_61635 i2o_parm_table_get 6 61635 NULL ++snd_pcm_oss_read3_61643 snd_pcm_oss_read3 0-3 61643 NULL ++resize_stripes_61650 resize_stripes 2 61650 NULL ++ttm_page_pool_free_61661 ttm_page_pool_free 2 61661 NULL ++insert_one_name_61668 insert_one_name 7 61668 NULL ++lock_loop_61681 lock_loop 1 61681 NULL ++filter_read_61692 filter_read 3 61692 NULL ++iov_length_61716 iov_length 0 61716 NULL ++fragmentation_threshold_read_61718 fragmentation_threshold_read 3 61718 NULL ++read_file_interrupt_61742 read_file_interrupt 3 61742 NULL nohasharray ++read_file_regval_61742 read_file_regval 3 61742 &read_file_interrupt_61742 ++bfad_debugfs_write_regwr_61841 bfad_debugfs_write_regwr 3 61841 NULL ++evdev_compute_buffer_size_61863 evdev_compute_buffer_size 0 61863 NULL ++get_fw_name_61874 get_fw_name 3 61874 NULL ++ax25_addr_size_61899 ax25_addr_size 0 61899 NULL ++clear_refs_write_61904 clear_refs_write 3 61904 NULL ++au0828_init_isoc_61917 au0828_init_isoc 3-2 61917 NULL ++sctp_sendmsg_61919 sctp_sendmsg 4 61919 NULL ++send_bulk_static_data_61932 send_bulk_static_data 3 61932 NULL ++squashfs_read_id_index_table_61961 squashfs_read_id_index_table 4 61961 NULL ++mlx4_alloc_mtt_range_61966 mlx4_alloc_mtt_range 2 61966 NULL ++ocfs2_quota_write_61972 ocfs2_quota_write 5-4 61972 NULL ++cow_file_range_61979 cow_file_range 3 61979 NULL ++virtnet_send_command_61993 virtnet_send_command 5-6 61993 NULL ++xt_compat_match_offset_62011 xt_compat_match_offset 0 62011 NULL ++jffs2_do_unlink_62020 jffs2_do_unlink 4 62020 NULL ++pmcraid_build_passthrough_ioadls_62034 pmcraid_build_passthrough_ioadls 2 62034 NULL ++proc_fdinfo_read_62043 proc_fdinfo_read 3 62043 NULL ++sctp_user_addto_chunk_62047 sctp_user_addto_chunk 2-3 62047 NULL ++do_pselect_62061 do_pselect 1 62061 NULL ++pcpu_alloc_bootmem_62074 pcpu_alloc_bootmem 2 62074 NULL ++get_domain_for_dev_62099 get_domain_for_dev 2 62099 NULL ++jffs2_security_setxattr_62107 jffs2_security_setxattr 4 62107 NULL ++llc_ui_header_len_62131 llc_ui_header_len 0 62131 NULL ++qib_diag_write_62133 qib_diag_write 3 62133 NULL ++ql_status_62135 ql_status 5 62135 NULL ++video_usercopy_62151 video_usercopy 2 62151 NULL ++prism54_wpa_bss_ie_get_62173 prism54_wpa_bss_ie_get 0 62173 NULL ++alloc_upcall_62186 alloc_upcall 2 62186 NULL ++btrfs_xattr_acl_set_62203 btrfs_xattr_acl_set 4 62203 NULL ++sock_kmalloc_62205 sock_kmalloc 2 62205 NULL ++check_unicast_packet_62217 check_unicast_packet 2 62217 NULL ++hash_new_62224 hash_new 1 62224 NULL ++nfsd_read_file_62241 nfsd_read_file 6 62241 NULL ++allocate_partition_62245 allocate_partition 4 62245 NULL ++send_control_msg_62261 send_control_msg 5 62261 NULL ++subsystem_filter_read_62310 subsystem_filter_read 3 62310 NULL ++udf_sb_alloc_partition_maps_62313 udf_sb_alloc_partition_maps 2 62313 NULL ++Wb35Reg_BurstWrite_62327 Wb35Reg_BurstWrite 4 62327 NULL ++flash_write_62354 flash_write 3 62354 NULL ++kmalloc_order_62372 kmalloc_order 0 62372 NULL ++altera_irscan_62396 altera_irscan 2 62396 NULL ++udplite_manip_pkt_62433 udplite_manip_pkt 2 62433 NULL ++netdev_alloc_skb_62437 netdev_alloc_skb 2 62437 NULL ++e1000_check_copybreak_62448 e1000_check_copybreak 3 62448 NULL ++ceph_dns_resolve_name_62488 ceph_dns_resolve_name 2 62488 NULL ++mlx4_en_create_rx_ring_62498 mlx4_en_create_rx_ring 3 62498 NULL ++pep_sendmsg_62524 pep_sendmsg 4 62524 NULL ++store_pwm1_62529 store_pwm1 4 62529 NULL ++test_iso_queue_62534 test_iso_queue 5 62534 NULL ++debugfs_read_62535 debugfs_read 3 62535 NULL ++sco_sock_sendmsg_62542 sco_sock_sendmsg 4 62542 NULL ++qib_refresh_qsfp_cache_62547 qib_refresh_qsfp_cache 0 62547 NULL ++xfrm_user_policy_62573 xfrm_user_policy 4 62573 NULL ++flex_array_get_ptr_62579 flex_array_get_ptr 2 62579 NULL ++nfsd_vfs_read_62605 nfsd_vfs_read 6 62605 NULL ++iommu_area_alloc_62619 iommu_area_alloc 2-3-4-7 62619 NULL ++ems_pcmcia_add_card_62627 ems_pcmcia_add_card 2 62627 NULL ++iwl_dbgfs_force_reset_read_62628 iwl_dbgfs_force_reset_read 3 62628 NULL ++compat_rangeinfo_62630 compat_rangeinfo 2 62630 NULL ++lpfc_sli4_queue_alloc_62646 lpfc_sli4_queue_alloc 3 62646 NULL ++tt_changes_fill_buffer_62649 tt_changes_fill_buffer 3 62649 NULL ++ima_file_mmap_62663 ima_file_mmap 0 62663 NULL ++write_62671 write 3 62671 NULL ++printer_req_alloc_62687 printer_req_alloc 2 62687 NULL nohasharray ++iwl_dbgfs_rx_statistics_read_62687 iwl_dbgfs_rx_statistics_read 3 62687 &printer_req_alloc_62687 ++adxl34x_i2c_read_block_62691 adxl34x_i2c_read_block 3 62691 NULL ++ioremap_wc_62695 ioremap_wc 1-2 62695 NULL ++bioset_integrity_create_62708 bioset_integrity_create 2 62708 NULL ++key_replays_read_62746 key_replays_read 3 62746 NULL ++init_chip_wc_pat_62768 init_chip_wc_pat 2 62768 NULL ++ax25_sendmsg_62770 ax25_sendmsg 4 62770 NULL ++scrub_chunk_62771 scrub_chunk 4 62771 NULL nohasharray ++page_key_alloc_62771 page_key_alloc 0 62771 &scrub_chunk_62771 ++tracing_total_entries_read_62817 tracing_total_entries_read 3 62817 NULL ++__rounddown_pow_of_two_62836 __rounddown_pow_of_two 0 62836 NULL ++xlog_recover_add_to_trans_62839 xlog_recover_add_to_trans 4 62839 NULL ++rx_fcs_err_read_62844 rx_fcs_err_read 3 62844 NULL ++hpi_read_word_62862 hpi_read_word 0 62862 NULL ++nfs_writedata_alloc_62868 nfs_writedata_alloc 1 62868 NULL ++aoechr_write_62883 aoechr_write 3 62883 NULL ++inode_mode_to_security_class_62886 inode_mode_to_security_class 0 62886 NULL ++resize_info_buffer_62889 resize_info_buffer 2 62889 NULL ++if_spi_host_to_card_62890 if_spi_host_to_card 4 62890 NULL ++mempool_create_slab_pool_62907 mempool_create_slab_pool 1 62907 NULL ++getdqbuf_62908 getdqbuf 1 62908 NULL ++agp_create_user_memory_62955 agp_create_user_memory 1 62955 NULL ++__vb2_perform_fileio_63033 __vb2_perform_fileio 3 63033 NULL ++scsi_host_alloc_63041 scsi_host_alloc 2 63041 NULL ++au_dir_size_63057 au_dir_size 0 63057 NULL ++unlink1_63059 unlink1 3 63059 NULL ++ocfs2_decrease_refcount_63078 ocfs2_decrease_refcount 3 63078 NULL ++iwl_dbgfs_sensitivity_read_63116 iwl_dbgfs_sensitivity_read 3 63116 NULL ++ib_send_cm_rtu_63138 ib_send_cm_rtu 3 63138 NULL ++vme_master_read_63221 vme_master_read 0 63221 NULL ++module_alloc_update_bounds_rw_63233 module_alloc_update_bounds_rw 1 63233 NULL ++ptp_read_63251 ptp_read 4 63251 NULL ++dns_resolver_instantiate_63314 dns_resolver_instantiate 3 63314 NULL ++proc_info_read_63344 proc_info_read 3 63344 NULL ++ps_upsd_max_sptime_read_63362 ps_upsd_max_sptime_read 3 63362 NULL ++idmouse_read_63374 idmouse_read 3 63374 NULL ++edac_pci_alloc_ctl_info_63388 edac_pci_alloc_ctl_info 1 63388 NULL ++rxpipe_missed_beacon_host_int_trig_rx_data_read_63405 rxpipe_missed_beacon_host_int_trig_rx_data_read 3 63405 NULL ++noack_read_63419 noack_read 3 63419 NULL ++l2cap_sock_sendmsg_63427 l2cap_sock_sendmsg 4 63427 NULL ++iwl_dbgfs_debug_level_read_63430 iwl_dbgfs_debug_level_read 3 63430 NULL ++kone_send_63435 kone_send 4 63435 NULL ++nfsd_symlink_63442 nfsd_symlink 6 63442 NULL ++snd_info_entry_write_63474 snd_info_entry_write 3 63474 NULL ++read_kcore_63488 read_kcore 3 63488 NULL ++snd_pcm_plug_write_transfer_63503 snd_pcm_plug_write_transfer 0-3 63503 NULL ++ubi_more_leb_change_data_63534 ubi_more_leb_change_data 4 63534 NULL ++if_sdio_read_scratch_63540 if_sdio_read_scratch 0 63540 NULL ++append_to_buffer_63550 append_to_buffer 3 63550 NULL ++kvm_write_guest_page_63555 kvm_write_guest_page 5 63555 NULL ++au_br_do_del_hdp_63561 au_br_do_del_hdp 3 63561 NULL ++ubifs_lpt_scan_nolock_63572 ubifs_lpt_scan_nolock 0 63572 NULL ++ocfs2_calc_trunc_pos_63576 ocfs2_calc_trunc_pos 4 63576 NULL ++ext3_clear_blocks_63597 ext3_clear_blocks 4-5 63597 NULL ++module_alloc_63630 module_alloc 1 63630 NULL ++ntfs_malloc_nofs_nofail_63631 ntfs_malloc_nofs_nofail 1 63631 NULL ++symbol_build_supp_rates_63634 symbol_build_supp_rates 0 63634 NULL ++_ubh_find_next_zero_bit__63640 _ubh_find_next_zero_bit_ 4-5-3 63640 NULL ++proc_loginuid_write_63648 proc_loginuid_write 3 63648 NULL ++nand_ecc_test_63654 nand_ecc_test 1 63654 NULL nohasharray ++ValidateDSDParamsChecksum_63654 ValidateDSDParamsChecksum 3 63654 &nand_ecc_test_63654 ++hidraw_ioctl_63658 hidraw_ioctl 2 63658 NULL ++iwl4965_rs_sta_dbgfs_scale_table_read_63672 iwl4965_rs_sta_dbgfs_scale_table_read 3 63672 NULL ++vbi_read_63673 vbi_read 3 63673 NULL nohasharray ++xen_register_pirq_63673 xen_register_pirq 1-2 63673 &vbi_read_63673 ++mkiss_compat_ioctl_63686 mkiss_compat_ioctl 4 63686 NULL ++btrfs_insert_delayed_dir_index_63720 btrfs_insert_delayed_dir_index 4 63720 NULL ++nfs4_reset_slot_table_63721 nfs4_reset_slot_table 2 63721 NULL ++au_ii_realloc_63728 au_ii_realloc 2 63728 NULL ++selinux_secctx_to_secid_63744 selinux_secctx_to_secid 2 63744 NULL ++snd_pcm_oss_read1_63771 snd_pcm_oss_read1 3 63771 NULL ++snd_opl4_mem_proc_read_63774 snd_opl4_mem_proc_read 5 63774 NULL ++spidev_compat_ioctl_63778 spidev_compat_ioctl 2-3 63778 NULL ++snapshot_compat_ioctl_63792 snapshot_compat_ioctl 3 63792 NULL ++mwifiex_11n_create_rx_reorder_tbl_63806 mwifiex_11n_create_rx_reorder_tbl 4 63806 NULL ++copy_nodes_to_user_63807 copy_nodes_to_user 2 63807 NULL ++sel_write_load_63830 sel_write_load 3 63830 NULL ++proc_pid_attr_write_63845 proc_pid_attr_write 3 63845 NULL ++ieee80211_if_fmt_channel_type_63855 ieee80211_if_fmt_channel_type 3 63855 NULL ++init_map_ipmac_63896 init_map_ipmac 4-3 63896 NULL ++divas_write_63901 divas_write 3 63901 NULL ++xhci_alloc_stream_info_63902 xhci_alloc_stream_info 3 63902 NULL ++pohmelfs_readpages_trans_complete_63912 pohmelfs_readpages_trans_complete 2 63912 NULL ++uvc_alloc_urb_buffers_63922 uvc_alloc_urb_buffers 0-3-2 63922 NULL ++acpi_ev_get_gpe_xrupt_block_63924 acpi_ev_get_gpe_xrupt_block 1 63924 NULL ++ledd_proc_write_63928 ledd_proc_write 3 63928 NULL ++tipc_send2port_63935 tipc_send2port 5 63935 NULL ++afs_send_simple_reply_63940 afs_send_simple_reply 3 63940 NULL ++macvtap_recvmsg_63949 macvtap_recvmsg 4 63949 NULL ++diva_xdi_write_63975 diva_xdi_write 4 63975 NULL ++iwl_legacy_dbgfs_tx_statistics_read_63987 iwl_legacy_dbgfs_tx_statistics_read 3 63987 NULL ++read_file_frameerrors_64001 read_file_frameerrors 3 64001 NULL ++raid_status_64011 raid_status 4 64011 NULL ++kmemdup_64015 kmemdup 2 64015 NULL ++tcf_csum_skb_nextlayer_64025 tcf_csum_skb_nextlayer 3 64025 NULL ++dbAllocDmapLev_64030 dbAllocDmapLev 0 64030 NULL ++frequency_read_64031 frequency_read 3 64031 NULL nohasharray ++resize_async_buffer_64031 resize_async_buffer 4 64031 &frequency_read_64031 ++get_u8_64076 get_u8 0 64076 NULL ++sl_realloc_bufs_64086 sl_realloc_bufs 2 64086 NULL ++lbs_highrssi_read_64089 lbs_highrssi_read 3 64089 NULL ++do_load_xattr_datum_64118 do_load_xattr_datum 0 64118 NULL ++ol_quota_entries_per_block_64122 ol_quota_entries_per_block 0 64122 NULL +init_bch_64130 init_bch 1-2 64130 NULL ++uea_idma_write_64139 uea_idma_write 3 64139 NULL ++ablkcipher_copy_iv_64140 ablkcipher_copy_iv 3 64140 NULL ++dlfb_ops_write_64150 dlfb_ops_write 3 64150 NULL ++cpumask_scnprintf_64170 cpumask_scnprintf 2 64170 NULL ++alloc_session_64171 alloc_session 2-1 64171 NULL ++redrat3_transmit_ir_64244 redrat3_transmit_ir 3 64244 NULL ++verify_ucode_size_64266 verify_ucode_size 0 64266 NULL ++io_capture_transfer_64276 io_capture_transfer 4 64276 NULL ++btrfs_file_extent_offset_64278 btrfs_file_extent_offset 0 64278 NULL ++event_id_read_64288 event_id_read 3 64288 NULL nohasharray ++xfs_dir_cilookup_result_64288 xfs_dir_cilookup_result 3 64288 &event_id_read_64288 ++ocfs2_block_check_validate_bhs_64302 ocfs2_block_check_validate_bhs 0 64302 NULL ++ffz_64324 ffz 0 64324 NULL ++sisusbcon_clear_64329 sisusbcon_clear 4-3-5 64329 NULL ++kmem_cache_alloc_trace_64334 kmem_cache_alloc_trace 0 64334 NULL ++ts_write_64336 ts_write 3 64336 NULL ++usbtmc_write_64340 usbtmc_write 3 64340 NULL ++do_write_orph_node_64343 do_write_orph_node 2 64343 NULL ++wlc_phy_loadsampletable_nphy_64367 wlc_phy_loadsampletable_nphy 3 64367 NULL ++ilo_write_64378 ilo_write 3 64378 NULL ++ir_lirc_transmit_ir_64403 ir_lirc_transmit_ir 3 64403 NULL ++pidlist_allocate_64404 pidlist_allocate 1 64404 NULL ++rx_hdr_overflow_read_64407 rx_hdr_overflow_read 3 64407 NULL ++snd_card_create_64418 snd_card_create 4 64418 NULL nohasharray ++keyctl_get_security_64418 keyctl_get_security 3 64418 &snd_card_create_64418 ++ip_vs_create_timeout_table_64478 ip_vs_create_timeout_table 2 64478 NULL ++alloc_large_system_hash_64490 alloc_large_system_hash 2 64490 NULL ++p54_parse_rssical_64493 p54_parse_rssical 3 64493 NULL ++msg_data_sz_64503 msg_data_sz 0 64503 NULL ++crypto_blkcipher_alignmask_64520 crypto_blkcipher_alignmask 0 64520 NULL ++opera1_usb_i2c_msgxfer_64521 opera1_usb_i2c_msgxfer 4 64521 NULL ++ses_send_diag_64527 ses_send_diag 4 64527 NULL ++ca_extend_64541 ca_extend 2 64541 NULL ++lm8323_read_64547 lm8323_read 4 64547 NULL ++__spi_sync_64561 __spi_sync 0 64561 NULL ++__apei_exec_run_64563 __apei_exec_run 0 64563 NULL ++fanotify_write_64623 fanotify_write 3 64623 NULL ++ocfs2_read_xattr_block_64661 ocfs2_read_xattr_block 0 64661 NULL ++nr_free_zone_pages_64680 nr_free_zone_pages 0 64680 NULL ++__feat_register_sp_64712 __feat_register_sp 6 64712 NULL ++snd_pcm_oss_capture_position_fixup_64713 snd_pcm_oss_capture_position_fixup 0 64713 NULL ++dapm_bias_read_file_64715 dapm_bias_read_file 3 64715 NULL ++atomic_add_return_64720 atomic_add_return 0-1 64720 NULL ++i2400m_msg_to_dev_64722 i2400m_msg_to_dev 3 64722 NULL ++squashfs_read_inode_lookup_table_64739 squashfs_read_inode_lookup_table 4 64739 NULL ++bio_map_kern_64751 bio_map_kern 3 64751 NULL ++rt2x00debug_write_csr_64753 rt2x00debug_write_csr 3 64753 NULL ++isr_low_rssi_read_64789 isr_low_rssi_read 3 64789 NULL ++nfsctl_transaction_write_64800 nfsctl_transaction_write 3 64800 NULL ++megaraid_change_queue_depth_64815 megaraid_change_queue_depth 2 64815 NULL ++ecryptfs_send_miscdev_64816 ecryptfs_send_miscdev 2 64816 NULL ++do_kimage_alloc_64827 do_kimage_alloc 3 64827 NULL ++altera_set_dr_pre_64862 altera_set_dr_pre 2 64862 NULL ++ffs_epfile_io_64886 ffs_epfile_io 3 64886 NULL ++ieee80211_if_read_ave_beacon_64924 ieee80211_if_read_ave_beacon 3 64924 NULL ++ubifs_wbuf_write_nolock_64946 ubifs_wbuf_write_nolock 3 64946 NULL ++snd_rawmidi_ioctl_compat_64954 snd_rawmidi_ioctl_compat 3 64954 NULL ++ip_options_get_from_user_64958 ip_options_get_from_user 4 64958 NULL ++acpi_os_install_interrupt_handler_64968 acpi_os_install_interrupt_handler 1 64968 NULL ++ext2_group_first_block_no_64972 ext2_group_first_block_no 0-2 64972 NULL ++pskb_pull_65005 pskb_pull 2 65005 NULL ++crypto_ahash_digestsize_65014 crypto_ahash_digestsize 0 65014 NULL ++c4iw_ocqp_pool_alloc_65023 c4iw_ocqp_pool_alloc 2 65023 NULL ++insert_dent_65034 insert_dent 7 65034 NULL ++compat_put_ushort_65040 compat_put_ushort 1 65040 NULL ++compat_cmdtest_65064 compat_cmdtest 2 65064 NULL ++count_run_65072 count_run 0-2-4 65072 NULL nohasharray ++bnx2fc_process_l2_frame_compl_65072 bnx2fc_process_l2_frame_compl 3 65072 &count_run_65072 ++__alloc_bootmem_node_high_65076 __alloc_bootmem_node_high 2 65076 NULL ++ocfs2_truncate_cluster_pages_65086 ocfs2_truncate_cluster_pages 2 65086 NULL ++ssb_bus_register_65183 ssb_bus_register 3 65183 NULL ++whci_n_caps_65247 whci_n_caps 0 65247 NULL ++atomic_long_read_65263 atomic_long_read 0 65263 NULL ++kmem_zalloc_greedy_65268 kmem_zalloc_greedy 3-2 65268 NULL ++kmalloc_parameter_65279 kmalloc_parameter 1 65279 NULL ++compat_core_sys_select_65285 compat_core_sys_select 1 65285 NULL +redirected_tty_write_65297 redirected_tty_write 3 65297 NULL -+ilo_read_32531 ilo_read 3 32531 NULL -+ieee80211_if_read_estab_plinks_32533 ieee80211_if_read_estab_plinks 3 32533 NULL -+smk_write_load_self_7958 smk_write_load_self 3 7958 NULL -+ioremap_23172 ioremap 1-2 23172 NULL -+sysfs_write_file_57116 sysfs_write_file 3 57116 NULL -+gdth_isa_probe_one_48925 gdth_isa_probe_one 1 48925 NULL -+kzalloc_node_24352 kzalloc_node 1 24352 NULL -+fuse_conn_max_background_read_10855 fuse_conn_max_background_read 3 10855 NULL -+trace_options_write_48275 trace_options_write 3 48275 NULL -+format_devstat_counter_32550 format_devstat_counter 3 32550 NULL -+xfs_iext_remove_direct_40744 xfs_iext_remove_direct 3 40744 NULL -+dvb_generic_ioctl_21810 dvb_generic_ioctl 2 21810 NULL -+cfi_read_pri_24366 cfi_read_pri 3 24366 NULL -+btrfs_insert_delayed_dir_index_63720 btrfs_insert_delayed_dir_index 4 63720 NULL -+aes_encrypt_fail_read_32562 aes_encrypt_fail_read 3 32562 NULL -+card_send_command_40757 card_send_command 3 40757 NULL -+sys_mbind_7990 sys_mbind 5 7990 NULL ++get_var_len_65304 get_var_len 0 65304 NULL ++unpack_array_65318 unpack_array 0 65318 NULL +dccp_setsockopt_service_65336 dccp_setsockopt_service 4 65336 NULL -+pg_write_40766 pg_write 3 40766 NULL -+sep_lock_user_pages_8000 sep_lock_user_pages 2-3 8000 NULL -+event_heart_beat_read_48961 event_heart_beat_read 3 48961 NULL -+sel_read_policy_55947 sel_read_policy 3 55947 NULL -+carl9170_rx_stream_1334 carl9170_rx_stream 3 1334 NULL -+ath_descdma_setup_12257 ath_descdma_setup 5 12257 NULL -+alloc_sched_domains_47756 alloc_sched_domains 1 47756 NULL -+mem_swapout_entry_32586 mem_swapout_entry 3 32586 NULL -+pvr2_v4l2_ioctl_24398 pvr2_v4l2_ioctl 2 24398 NULL nohasharray -+getxattr_24398 getxattr 4 24398 &pvr2_v4l2_ioctl_24398 -+stk_prepare_sio_buffers_57168 stk_prepare_sio_buffers 2 57168 NULL -+vcs_read_8017 vcs_read 3 8017 NULL -+read_file_beacon_32595 read_file_beacon 3 32595 NULL -+create_table_16213 create_table 2 16213 NULL -+ieee80211_if_read_dropped_frames_congestion_32603 ieee80211_if_read_dropped_frames_congestion 3 32603 NULL -+iwl_dbgfs_wowlan_sram_read_540 iwl_dbgfs_wowlan_sram_read 3 540 NULL -+_alloc_set_attr_list_48991 _alloc_set_attr_list 4 48991 NULL -+sys_set_mempolicy_32608 sys_set_mempolicy 3 32608 NULL -+atomic_read_file_16227 atomic_read_file 3 16227 NULL -+vhost_add_used_and_signal_n_8038 vhost_add_used_and_signal_n 4 8038 NULL -+copy_and_check_19089 copy_and_check 3 19089 NULL -+b43_debugfs_read_24425 b43_debugfs_read 3 24425 NULL -+netdev_alloc_skb_ip_align_40811 netdev_alloc_skb_ip_align 2 40811 NULL -+i915_wedged_read_35474 i915_wedged_read 3 35474 NULL -+ieee80211_rx_mgmt_beacon_24430 ieee80211_rx_mgmt_beacon 3 24430 NULL -+iser_rcv_completion_8048 iser_rcv_completion 2 8048 NULL -+trace_parser_get_init_31379 trace_parser_get_init 2 31379 NULL -+ms_read_multiple_pages_8052 ms_read_multiple_pages 4-5 8052 NULL ++dma_rx_requested_read_65354 dma_rx_requested_read 3 65354 NULL ++alloc_cpu_rmap_65363 alloc_cpu_rmap 1 65363 NULL ++strchr_65372 strchr 0 65372 NULL +__alloc_bootmem_nopanic_65397 __alloc_bootmem_nopanic 1 65397 NULL +trace_seq_to_user_65398 trace_seq_to_user 3 65398 NULL -+irda_recvmsg_dgram_32631 irda_recvmsg_dgram 4 32631 NULL -+cfg80211_roamed_32632 cfg80211_roamed 5-7 32632 NULL -+xd_rw_49020 xd_rw 4-3 49020 NULL -+megasas_change_queue_depth_32747 megasas_change_queue_depth 2 32747 NULL -+handle_response_icmp_39574 handle_response_icmp 7 39574 NULL -+kvmalloc_32646 kvmalloc 1 32646 NULL -+alloc_targets_8074 alloc_targets 2 8074 NULL -+__kmalloc_section_memmap_32651 __kmalloc_section_memmap 1 32651 NULL ++iio_device_add_channel_sysfs_65406 iio_device_add_channel_sysfs 0 65406 NULL ++ocfs2_write_begin_nolock_65410 ocfs2_write_begin_nolock 3-4 65410 NULL +drm_calloc_large_65421 drm_calloc_large 1-2 65421 NULL -+generic_readlink_32654 generic_readlink 3 32654 NULL -+skb_copy_and_csum_datagram_iovec_24466 skb_copy_and_csum_datagram_iovec 2 24466 NULL -+drbd_setsockopt_16280 drbd_setsockopt 5 16280 NULL nohasharray -+nand_bch_init_16280 nand_bch_init 2-3 16280 &drbd_setsockopt_16280 +xpc_kzalloc_cacheline_aligned_65433 xpc_kzalloc_cacheline_aligned 1 65433 NULL -+v9fs_file_read_40858 v9fs_file_read 3 40858 NULL -+fbcon_do_set_font_4079 fbcon_do_set_font 2-3 4079 NULL -+svm_set_msr_49643 svm_set_msr 3 49643 NULL -+move_addr_to_kernel_32673 move_addr_to_kernel 2 32673 NULL -+i915_wedged_write_47771 i915_wedged_write 3 47771 NULL +usb_alloc_coherent_65444 usb_alloc_coherent 2 65444 NULL -+hid_input_report_32458 hid_input_report 4 32458 NULL -+l2cap_bredr_sig_cmd_49065 l2cap_bredr_sig_cmd 3 49065 NULL -+tipc_buf_acquire_60437 tipc_buf_acquire 1 60437 NULL -+rsc_mgr_init_16299 rsc_mgr_init 3 16299 NULL -+venus_lookup_8121 venus_lookup 4 8121 NULL -+ccid3_hc_tx_getsockopt_16314 ccid3_hc_tx_getsockopt 3 16314 NULL -+dmam_declare_coherent_memory_43679 dmam_declare_coherent_memory 2-4 43679 NULL -+io_mapping_create_wc_1354 io_mapping_create_wc 1-2 1354 NULL -+pd_video_read_24510 pd_video_read 3 24510 NULL -+read_file_queue_40895 read_file_queue 3 40895 NULL -+vmx_set_msr_49090 vmx_set_msr 3 49090 NULL -+request_key_with_auxdata_24515 request_key_with_auxdata 4 24515 NULL -+waiters_read_40902 waiters_read 3 40902 NULL -+pstore_file_read_57288 pstore_file_read 3 57288 NULL -+vmalloc_node_58700 vmalloc_node 1 58700 NULL +ath_rx_edma_init_65483 ath_rx_edma_init 2 65483 NULL -+vmw_cursor_update_image_16332 vmw_cursor_update_image 3-4 16332 NULL -+compat_do_readv_writev_49102 compat_do_readv_writev 4 49102 NULL -+receive_client_update_packet_49104 receive_client_update_packet 3 49104 NULL -+iscsi_tcp_conn_setup_16376 iscsi_tcp_conn_setup 2 16376 NULL -+vol_cdev_write_40915 vol_cdev_write 3 40915 NULL -+named_prepare_buf_24532 named_prepare_buf 2 24532 NULL +alloc_dr_65495 alloc_dr 2 65495 NULL -+ath6kl_buf_alloc_57304 ath6kl_buf_alloc 1 57304 NULL -+ftdi_elan_write_57309 ftdi_elan_write 3 57309 NULL -+sys_migrate_pages_39825 sys_migrate_pages 2 39825 NULL -+mthca_init_cq_60011 mthca_init_cq 2 60011 NULL -+iio_allocate_device_18821 iio_allocate_device 1 18821 NULL -+pwr_wake_on_timer_exp_read_22640 pwr_wake_on_timer_exp_read 3 22640 NULL -+ath9k_wmi_cmd_327 ath9k_wmi_cmd 4 327 NULL -+total_ps_buffered_read_16365 total_ps_buffered_read 3 16365 NULL -+ext_sd_execute_write_data_8175 ext_sd_execute_write_data 9 8175 NULL -+pt_read_49136 pt_read 3 49136 NULL -+tsi148_alloc_resource_24563 tsi148_alloc_resource 2 24563 NULL -+snd_vx_create_40948 snd_vx_create 4 40948 NULL -+dbg_leb_write_20478 dbg_leb_write 4-5 20478 NULL -+iwl_legacy_dbgfs_fh_reg_read_49144 iwl_legacy_dbgfs_fh_reg_read 3 49144 NULL nohasharray -+tipc_multicast_49144 tipc_multicast 5 49144 &iwl_legacy_dbgfs_fh_reg_read_49144 -+__nf_nat_mangle_tcp_packet_8190 __nf_nat_mangle_tcp_packet 5-7 8190 NULL -+atyfb_setup_generic_49151 atyfb_setup_generic 3 49151 NULL diff --git a/tools/gcc/size_overflow_plugin.c b/tools/gcc/size_overflow_plugin.c new file mode 100644 -index 0000000..d52f2ee +index 0000000..63c46e5 --- /dev/null +++ b/tools/gcc/size_overflow_plugin.c -@@ -0,0 +1,1941 @@ +@@ -0,0 +1,2050 @@ +/* + * Copyright 2011, 2012 by Emese Revfy <re.emese@gmail.com> + * Licensed under the GPL v2, or (at your option) v3 @@ -92795,7 +99180,7 @@ index 0000000..d52f2ee + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed. + * + * Usage: -+ * $ gcc -I`gcc -print-file-name=plugin`/include/c-family -I`gcc -print-file-name=plugin`/include -fPIC -shared -O2 -ggdb -Wall -W -Wno-missing-field-initializers -o size_overflow_plugin.so size_overflow_plugin.c ++ * $ gcc -I`gcc -print-file-name=plugin`/include/c-family -I`gcc -print-file-name=plugin`/include -fPIC -shared -O2 -ggdb -Wall -W -o size_overflow_plugin.so size_overflow_plugin.c + * $ gcc -fplugin=size_overflow_plugin.so test.c -O2 + */ + @@ -92813,16 +99198,9 @@ index 0000000..d52f2ee +#include "tree-flow.h" +#include "plugin.h" +#include "gimple.h" -+#include "c-common.h" +#include "diagnostic.h" +#include "cfgloop.h" + -+#if BUILDING_GCC_VERSION >= 4007 -+#include "c-tree.h" -+#else -+#define C_DECL_IMPLICIT(EXP) DECL_LANG_FLAG_2 (EXP) -+#endif -+ +#if BUILDING_GCC_VERSION >= 4008 +#define TODO_dump_func 0 +#endif @@ -92835,8 +99213,12 @@ index 0000000..d52f2ee + +#include "size_overflow_hash.h" + -+enum marked { -+ MARKED_NO, MARKED_YES, MARKED_NOT_INTENTIONAL ++enum mark { ++ MARK_NO, MARK_YES, MARK_NOT_INTENTIONAL, MARK_TURN_OFF ++}; ++ ++enum err_code_conditions { ++ CAST_ONLY, FROM_CONST +}; + +static unsigned int call_count = 0; @@ -92848,9 +99230,11 @@ index 0000000..d52f2ee +#define AFTER_STMT false +#define CREATE_NEW_VAR NULL_TREE +#define CODES_LIMIT 32 -+#define MAX_PARAM 32 ++#define MAX_PARAM 31 +#define MY_STMT GF_PLF_1 +#define NO_CAST_CHECK GF_PLF_2 ++#define FROM_ARG true ++#define FROM_RET false + +#if BUILDING_GCC_VERSION == 4005 +#define DECL_CHAIN(NODE) (TREE_CHAIN(DECL_MINIMAL_CHECK(NODE))) @@ -92860,16 +99244,17 @@ index 0000000..d52f2ee +void debug_gimple_stmt(gimple gs); + +static tree expand(struct pointer_set_t *visited, tree lhs); -+static bool pre_expand(struct pointer_set_t *visited, const_tree lhs); ++static enum mark pre_expand(struct pointer_set_t *visited, bool *search_err_code, const_tree lhs); +static tree report_size_overflow_decl; +static const_tree const_char_ptr_type_node; +static unsigned int handle_function(void); +static void check_size_overflow(gimple stmt, tree size_overflow_type, tree cast_rhs, tree rhs, bool before); +static tree get_size_overflow_type(gimple stmt, const_tree node); +static tree dup_assign(struct pointer_set_t *visited, gimple oldstmt, const_tree node, tree rhs1, tree rhs2, tree __unused rhs3); ++static void print_missing_msg(tree func, unsigned int argnum); + +static struct plugin_info size_overflow_plugin_info = { -+ .version = "20130109beta", ++ .version = "20130316beta", + .help = "no-size-overflow\tturn off size overflow checking\n", +}; + @@ -92894,7 +99279,7 @@ index 0000000..d52f2ee + + for (; args; args = TREE_CHAIN(args)) { + tree position = TREE_VALUE(args); -+ if (TREE_CODE(position) != INTEGER_CST || TREE_INT_CST_HIGH(position) || TREE_INT_CST_LOW(position) < 1 || TREE_INT_CST_LOW(position) > arg_count ) { ++ if (TREE_CODE(position) != INTEGER_CST || TREE_INT_CST_LOW(position) > arg_count ) { + error("%s: parameter %u is outside range.", __func__, (unsigned int)TREE_INT_CST_LOW(position)); + *no_add_attrs = true; + } @@ -92933,9 +99318,12 @@ index 0000000..d52f2ee + return NULL_TREE; + } + ++ if (TREE_INT_CST_HIGH(TREE_VALUE(args)) != 0) ++ return NULL_TREE; ++ + for (; args; args = TREE_CHAIN(args)) { + tree position = TREE_VALUE(args); -+ if (TREE_CODE(position) != INTEGER_CST || TREE_INT_CST_HIGH(position) || TREE_INT_CST_LOW(position) > arg_count ) { ++ if (TREE_CODE(position) != INTEGER_CST || TREE_INT_CST_LOW(position) > arg_count ) { + error("%s: parameter %u is outside range.", __func__, (unsigned int)TREE_INT_CST_LOW(position)); + *no_add_attrs = true; + } @@ -93024,7 +99412,8 @@ index 0000000..d52f2ee +static inline gimple get_def_stmt(const_tree node) +{ + gcc_assert(node != NULL_TREE); -+ gcc_assert(TREE_CODE(node) == SSA_NAME); ++ if (TREE_CODE(node) != SSA_NAME) ++ return NULL; + return SSA_NAME_DEF_STMT(node); +} + @@ -93125,12 +99514,14 @@ index 0000000..d52f2ee + const struct size_overflow_hash *entry; + unsigned char tree_codes[CODES_LIMIT]; + size_t len; -+ const char *func_name = get_asm_name(fndecl); ++ const char *func_name; + ++ fndecl = get_original_function_decl(fndecl); + len = get_function_decl(fndecl, tree_codes); + if (len == 0) + return NULL; + ++ func_name = get_asm_name(fndecl); + hash = get_hash_num(func_name, (const char*) tree_codes, len, 0); + + entry = size_overflow_hash[hash]; @@ -93143,17 +99534,80 @@ index 0000000..d52f2ee + return NULL; +} + -+static void check_arg_type(const_tree arg) ++static bool is_bool(const_tree node) +{ -+ const_tree type = TREE_TYPE(arg); -+ enum tree_code code = TREE_CODE(type); ++ const_tree type; + -+ if (code == BOOLEAN_TYPE) -+ return; ++ if (node == NULL_TREE) ++ return false; + -+ gcc_assert(code == INTEGER_TYPE || code == ENUMERAL_TYPE || -+ (code == POINTER_TYPE && TREE_CODE(TREE_TYPE(type)) == VOID_TYPE) || -+ (code == POINTER_TYPE && TREE_CODE(TREE_TYPE(type)) == INTEGER_TYPE)); ++ type = TREE_TYPE(node); ++ if (!INTEGRAL_TYPE_P(type)) ++ return false; ++ if (TREE_CODE(type) == BOOLEAN_TYPE) ++ return true; ++ if (TYPE_PRECISION(type) == 1) ++ return true; ++ return false; ++} ++ ++static bool skip_types(const_tree var) ++{ ++ tree type; ++ ++ if (is_gimple_constant(var)) ++ return true; ++ ++ switch (TREE_CODE(var)) { ++ case ADDR_EXPR: ++#if BUILDING_GCC_VERSION >= 4006 ++ case MEM_REF: ++#endif ++ case ARRAY_REF: ++ case BIT_FIELD_REF: ++ case INDIRECT_REF: ++ case TARGET_MEM_REF: ++ return true; ++ case PARM_DECL: ++ case VAR_DECL: ++ case COMPONENT_REF: ++ return false; ++ default: ++ break; ++ } ++ ++ gcc_assert(TREE_CODE(var) == SSA_NAME); ++ ++ type = TREE_TYPE(var); ++ switch (TREE_CODE(type)) { ++ case INTEGER_TYPE: ++ case ENUMERAL_TYPE: ++ return false; ++ case BOOLEAN_TYPE: ++ return is_bool(var); ++ default: ++ break; ++ } ++ ++ gcc_assert(TREE_CODE(type) == POINTER_TYPE); ++ ++ type = TREE_TYPE(type); ++ gcc_assert(type != NULL_TREE); ++ switch (TREE_CODE(type)) { ++ case RECORD_TYPE: ++ case POINTER_TYPE: ++ case ARRAY_TYPE: ++ return true; ++ case VOID_TYPE: ++ case INTEGER_TYPE: ++ case UNION_TYPE: ++ return false; ++ default: ++ break; ++ } ++ ++ debug_tree((tree)var); ++ gcc_unreachable(); +} + +static unsigned int find_arg_number(const_tree arg, tree func) @@ -93164,15 +99618,14 @@ index 0000000..d52f2ee + if (TREE_CODE(arg) == SSA_NAME) + arg = SSA_NAME_VAR(arg); + -+ for (var = DECL_ARGUMENTS(func); var; var = TREE_CHAIN(var)) { -+ if (strcmp(NAME(arg), NAME(var))) { -+ argnum++; ++ for (var = DECL_ARGUMENTS(func); var; var = TREE_CHAIN(var), argnum++) { ++ if (!operand_equal_p(arg, var, 0) && strcmp(NAME(var), NAME(arg))) + continue; -+ } -+ check_arg_type(var); -+ return argnum; ++ if (!skip_types(var)) ++ return argnum; + } -+ gcc_unreachable(); ++ ++ return 0; +} + +static tree create_new_var(tree type) @@ -93203,23 +99656,6 @@ index 0000000..d52f2ee + return assign; +} + -+static bool is_bool(const_tree node) -+{ -+ const_tree type; -+ -+ if (node == NULL_TREE) -+ return false; -+ -+ type = TREE_TYPE(node); -+ if (!INTEGRAL_TYPE_P(type)) -+ return false; -+ if (TREE_CODE(type) == BOOLEAN_TYPE) -+ return true; -+ if (TYPE_PRECISION(type) == 1) -+ return true; -+ return false; -+} -+ +static tree cast_a_tree(tree type, tree var) +{ + gcc_assert(type != NULL_TREE); @@ -93229,14 +99665,55 @@ index 0000000..d52f2ee + return fold_convert(type, var); +} + -+static gimple build_cast_stmt(tree dst_type, tree rhs, tree lhs, gimple_stmt_iterator *gsi, bool before) ++static tree get_lhs(const_gimple stmt) +{ -+ gimple assign; ++ switch (gimple_code(stmt)) { ++ case GIMPLE_ASSIGN: ++ return gimple_get_lhs(stmt); ++ case GIMPLE_PHI: ++ return gimple_phi_result(stmt); ++ case GIMPLE_CALL: ++ return gimple_call_lhs(stmt); ++ default: ++ return NULL_TREE; ++ } ++} ++ ++static bool skip_cast(tree dst_type, const_tree rhs, bool force) ++{ ++ const_gimple def_stmt = get_def_stmt(rhs); ++ ++ if (force) ++ return false; ++ ++ if (is_gimple_constant(rhs)) ++ return false; ++ ++ if (!def_stmt || gimple_code(def_stmt) == GIMPLE_NOP) ++ return false; ++ ++ if (!types_compatible_p(dst_type, TREE_TYPE(rhs))) ++ return false; ++ ++ // DI type can be on 32 bit (from create_assign) but overflow type stays DI ++ if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode)) ++ return false; ++ ++ return true; ++} ++ ++static gimple build_cast_stmt(tree dst_type, tree rhs, tree lhs, gimple_stmt_iterator *gsi, bool before, bool force) ++{ ++ gimple assign, def_stmt; + + gcc_assert(dst_type != NULL_TREE && rhs != NULL_TREE); + if (gsi_end_p(*gsi) && before == AFTER_STMT) + gcc_unreachable(); + ++ def_stmt = get_def_stmt(rhs); ++ if (skip_cast(dst_type, rhs, force) && gimple_plf(def_stmt, MY_STMT)) ++ return def_stmt; ++ + if (lhs == CREATE_NEW_VAR) + lhs = create_new_var(dst_type); + @@ -93261,19 +99738,19 @@ index 0000000..d52f2ee + +static tree cast_to_new_size_overflow_type(gimple stmt, tree rhs, tree size_overflow_type, bool before) +{ -+ gimple assign; + gimple_stmt_iterator gsi; ++ tree lhs; ++ const_gimple new_stmt; + + if (rhs == NULL_TREE) + return NULL_TREE; + -+ if (types_compatible_p(TREE_TYPE(rhs), size_overflow_type) && gimple_plf(stmt, MY_STMT)) -+ return rhs; -+ + gsi = gsi_for_stmt(stmt); -+ assign = build_cast_stmt(size_overflow_type, rhs, CREATE_NEW_VAR, &gsi, before); -+ gimple_set_plf(assign, MY_STMT, true); -+ return gimple_get_lhs(assign); ++ new_stmt = build_cast_stmt(size_overflow_type, rhs, CREATE_NEW_VAR, &gsi, before, false); ++ ++ lhs = get_lhs(new_stmt); ++ gcc_assert(lhs != NULL_TREE); ++ return lhs; +} + +static tree cast_to_TI_type(gimple stmt, tree node) @@ -93286,14 +99763,31 @@ index 0000000..d52f2ee + return node; + + gsi = gsi_for_stmt(stmt); -+ cast_stmt = build_cast_stmt(intTI_type_node, node, CREATE_NEW_VAR, &gsi, BEFORE_STMT); -+ gimple_set_plf(cast_stmt, MY_STMT, true); ++ cast_stmt = build_cast_stmt(intTI_type_node, node, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false); + return gimple_get_lhs(cast_stmt); +} + ++static void check_function_hash(const_gimple stmt) ++{ ++ tree func; ++ const struct size_overflow_hash *hash; ++ ++ if (gimple_code(stmt) != GIMPLE_CALL) ++ return; ++ ++ func = gimple_call_fndecl(stmt); ++ //fs/xattr.c D.34222_15 = D.34219_14 (dentry_3(D), name_7(D), 0B, 0); ++ if (func == NULL_TREE) ++ return; ++ ++ hash = get_function_hash(func); ++ if (!hash) ++ print_missing_msg(func, 0); ++} ++ +static tree create_assign(struct pointer_set_t *visited, gimple oldstmt, tree rhs1, bool before) +{ -+ tree lhs; ++ tree lhs, new_lhs; + gimple_stmt_iterator gsi; + + if (rhs1 == NULL_TREE) { @@ -93341,7 +99835,8 @@ index 0000000..d52f2ee + oldstmt = gsi_stmt(gsi); + } + -+ return cast_to_new_size_overflow_type(oldstmt, rhs1, get_size_overflow_type(oldstmt, lhs), before); ++ new_lhs = cast_to_new_size_overflow_type(oldstmt, rhs1, get_size_overflow_type(oldstmt, lhs), before); ++ return new_lhs; +} + +static tree dup_assign(struct pointer_set_t *visited, gimple oldstmt, const_tree node, tree rhs1, tree rhs2, tree __unused rhs3) @@ -93371,10 +99866,7 @@ index 0000000..d52f2ee + + size_overflow_type = get_size_overflow_type(oldstmt, node); + -+ if (is_bool(lhs)) -+ new_var = SSA_NAME_VAR(lhs); -+ else -+ new_var = create_new_var(size_overflow_type); ++ new_var = create_new_var(size_overflow_type); + new_var = make_ssa_name(new_var, stmt); + gimple_set_lhs(stmt, new_var); + @@ -93397,141 +99889,128 @@ index 0000000..d52f2ee + return gimple_get_lhs(stmt); +} + -+static gimple overflow_create_phi_node(gimple oldstmt, tree result) -+{ -+ basic_block bb; -+ gimple phi; -+ gimple_stmt_iterator gsi = gsi_for_stmt(oldstmt); -+ gimple_seq seq; -+ -+ bb = gsi_bb(gsi); -+ -+ phi = create_phi_node(result, bb); -+ seq = phi_nodes(bb); -+ gsi = gsi_last(seq); -+ gsi_remove(&gsi, false); -+ -+ gsi = gsi_for_stmt(oldstmt); -+ gsi_insert_after(&gsi, phi, GSI_NEW_STMT); -+ gimple_set_bb(phi, bb); -+ gimple_set_plf(phi, MY_STMT, true); -+ return phi; -+} -+ -+static basic_block create_a_first_bb(void) ++static tree cast_parm_decl(tree phi_ssa_name, tree arg, tree size_overflow_type) +{ + basic_block first_bb; ++ gimple assign; ++ gimple_stmt_iterator gsi; + + first_bb = split_block_after_labels(ENTRY_BLOCK_PTR)->dest; + gcc_assert(dom_info_available_p(CDI_DOMINATORS)); + set_immediate_dominator(CDI_DOMINATORS, first_bb, ENTRY_BLOCK_PTR); -+ return first_bb; ++ ++ gsi = gsi_start_bb(first_bb); ++ assign = build_cast_stmt(size_overflow_type, arg, phi_ssa_name, &gsi, BEFORE_STMT, false); ++ return gimple_get_lhs(assign); +} + -+static tree cast_old_phi_arg(gimple oldstmt, tree size_overflow_type, tree arg, tree new_var, unsigned int i) ++static tree use_phi_ssa_name(tree phi_ssa_name, tree new_arg) +{ -+ basic_block bb; -+ const_gimple newstmt; + gimple_stmt_iterator gsi; -+ bool before = BEFORE_STMT; ++ const_gimple assign; ++ gimple def_stmt = get_def_stmt(new_arg); + -+ if (TREE_CODE(arg) == SSA_NAME && gimple_code(get_def_stmt(arg)) != GIMPLE_NOP) { -+ gsi = gsi_for_stmt(get_def_stmt(arg)); -+ newstmt = build_cast_stmt(size_overflow_type, arg, new_var, &gsi, AFTER_STMT); -+ return gimple_get_lhs(newstmt); ++ if (gimple_code(def_stmt) == GIMPLE_PHI) { ++ gsi = gsi_after_labels(gimple_bb(def_stmt)); ++ assign = build_cast_stmt(TREE_TYPE(new_arg), new_arg, phi_ssa_name, &gsi, BEFORE_STMT, true); ++ } else { ++ gsi = gsi_for_stmt(def_stmt); ++ assign = build_cast_stmt(TREE_TYPE(new_arg), new_arg, phi_ssa_name, &gsi, AFTER_STMT, true); + } + -+ bb = gimple_phi_arg_edge(oldstmt, i)->src; -+ gsi = gsi_after_labels(bb); -+ if (bb->index == 0) { -+ bb = create_a_first_bb(); -+ gsi = gsi_start_bb(bb); -+ } -+ newstmt = build_cast_stmt(size_overflow_type, arg, new_var, &gsi, before); -+ return gimple_get_lhs(newstmt); ++ return gimple_get_lhs(assign); +} + -+static const_gimple handle_new_phi_arg(const_tree arg, tree new_var, tree new_rhs) ++static tree cast_visited_phi_arg(tree phi_ssa_name, tree arg, tree size_overflow_type) +{ -+ gimple newstmt; ++ basic_block bb; + gimple_stmt_iterator gsi; -+ void (*gsi_insert)(gimple_stmt_iterator *, gimple, enum gsi_iterator_update); -+ gimple def_newstmt = get_def_stmt(new_rhs); ++ const_gimple assign, def_stmt; ++ ++ def_stmt = get_def_stmt(arg); ++ bb = gimple_bb(def_stmt); ++ gcc_assert(bb->index != 0); ++ gsi = gsi_after_labels(bb); ++ ++ assign = build_cast_stmt(size_overflow_type, arg, phi_ssa_name, &gsi, BEFORE_STMT, false); ++ return gimple_get_lhs(assign); ++} ++ ++static tree create_new_phi_arg(tree phi_ssa_name, tree new_arg, tree arg, gimple oldstmt) ++{ ++ tree size_overflow_type; ++ const_gimple def_stmt = get_def_stmt(arg); + -+ gsi_insert = gsi_insert_after; -+ gsi = gsi_for_stmt(def_newstmt); ++ if (phi_ssa_name != NULL_TREE) ++ phi_ssa_name = SSA_NAME_VAR(phi_ssa_name); + -+ switch (gimple_code(get_def_stmt(arg))) { ++ size_overflow_type = get_size_overflow_type(oldstmt, arg); ++ ++ if (new_arg != NULL_TREE) { ++ gcc_assert(types_compatible_p(TREE_TYPE(new_arg), size_overflow_type)); ++ return use_phi_ssa_name(phi_ssa_name, new_arg); ++ } ++ ++ switch(gimple_code(def_stmt)) { + case GIMPLE_PHI: -+ newstmt = gimple_build_assign(new_var, new_rhs); -+ gsi = gsi_after_labels(gimple_bb(def_newstmt)); -+ gsi_insert = gsi_insert_before; -+ break; -+ case GIMPLE_ASM: -+ case GIMPLE_CALL: -+ newstmt = gimple_build_assign(new_var, new_rhs); -+ break; -+ case GIMPLE_ASSIGN: -+ newstmt = gimple_build_assign(new_var, gimple_get_lhs(def_newstmt)); -+ break; ++ return cast_visited_phi_arg(phi_ssa_name, arg, size_overflow_type); ++ case GIMPLE_NOP: ++ return cast_parm_decl(phi_ssa_name, arg, size_overflow_type); + default: -+ /* unknown gimple_code (handle_build_new_phi_arg) */ ++ debug_gimple_stmt((gimple)def_stmt); + gcc_unreachable(); + } -+ -+ gimple_set_lhs(newstmt, make_ssa_name(new_var, newstmt)); -+ gsi_insert(&gsi, newstmt, GSI_NEW_STMT); -+ gimple_set_plf(newstmt, MY_STMT, true); -+ update_stmt(newstmt); -+ return newstmt; +} + -+static tree build_new_phi_arg(struct pointer_set_t *visited, tree size_overflow_type, tree arg, tree new_var) ++static gimple overflow_create_phi_node(gimple oldstmt, tree result) +{ -+ const_gimple newstmt; -+ gimple def_stmt; -+ tree new_rhs; ++ basic_block bb; ++ gimple phi; ++ gimple_seq seq; ++ gimple_stmt_iterator gsi = gsi_for_stmt(oldstmt); + -+ new_rhs = expand(visited, arg); -+ if (new_rhs == NULL_TREE) -+ return NULL_TREE; ++ bb = gsi_bb(gsi); + -+ def_stmt = get_def_stmt(new_rhs); -+ if (gimple_code(def_stmt) == GIMPLE_NOP) -+ return NULL_TREE; -+ new_rhs = cast_to_new_size_overflow_type(def_stmt, new_rhs, size_overflow_type, AFTER_STMT); ++ phi = create_phi_node(result, bb); ++ gimple_phi_set_result(phi, make_ssa_name(result, phi)); ++ seq = phi_nodes(bb); ++ gsi = gsi_last(seq); ++ gsi_remove(&gsi, false); + -+ newstmt = handle_new_phi_arg(arg, new_var, new_rhs); -+ return gimple_get_lhs(newstmt); ++ gsi = gsi_for_stmt(oldstmt); ++ gsi_insert_after(&gsi, phi, GSI_NEW_STMT); ++ gimple_set_bb(phi, bb); ++ gimple_set_plf(phi, MY_STMT, true); ++ return phi; +} + -+static tree build_new_phi(struct pointer_set_t *visited, tree orig_result) ++static tree handle_phi(struct pointer_set_t *visited, tree orig_result) +{ -+ gimple phi, oldstmt = get_def_stmt(orig_result); -+ tree new_result, size_overflow_type; ++ gimple new_phi = NULL; ++ gimple oldstmt = get_def_stmt(orig_result); ++ tree phi_ssa_name = NULL_TREE; + unsigned int i; -+ unsigned int n = gimple_phi_num_args(oldstmt); -+ -+ size_overflow_type = get_size_overflow_type(oldstmt, orig_result); -+ -+ new_result = create_new_var(size_overflow_type); + + pointer_set_insert(visited, oldstmt); -+ phi = overflow_create_phi_node(oldstmt, new_result); -+ for (i = 0; i < n; i++) { -+ tree arg, lhs; ++ for (i = 0; i < gimple_phi_num_args(oldstmt); i++) { ++ tree arg, new_arg; + + arg = gimple_phi_arg_def(oldstmt, i); -+ if (is_gimple_constant(arg)) -+ arg = cast_a_tree(size_overflow_type, arg); -+ lhs = build_new_phi_arg(visited, size_overflow_type, arg, new_result); -+ if (lhs == NULL_TREE) -+ lhs = cast_old_phi_arg(oldstmt, size_overflow_type, arg, new_result, i); -+ add_phi_arg(phi, lhs, gimple_phi_arg_edge(oldstmt, i), gimple_location(oldstmt)); ++ ++ new_arg = expand(visited, arg); ++ new_arg = create_new_phi_arg(phi_ssa_name, new_arg, arg, oldstmt); ++ if (i == 0) { ++ phi_ssa_name = new_arg; ++ new_phi = overflow_create_phi_node(oldstmt, SSA_NAME_VAR(phi_ssa_name)); ++ } ++ ++ gcc_assert(new_phi != NULL); ++ add_phi_arg(new_phi, new_arg, gimple_phi_arg_edge(oldstmt, i), gimple_location(oldstmt)); + } + -+ update_stmt(phi); -+ return gimple_phi_result(phi); ++ gcc_assert(new_phi != NULL); ++ update_stmt(new_phi); ++ return gimple_phi_result(new_phi); +} + +static tree change_assign_rhs(gimple stmt, const_tree orig_rhs, tree new_rhs) @@ -93542,61 +100021,10 @@ index 0000000..d52f2ee + + gcc_assert(gimple_code(stmt) == GIMPLE_ASSIGN); + -+ assign = build_cast_stmt(origtype, new_rhs, CREATE_NEW_VAR, &gsi, BEFORE_STMT); ++ assign = build_cast_stmt(origtype, new_rhs, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false); + return gimple_get_lhs(assign); +} + -+static void change_rhs1(gimple stmt, tree new_rhs1) -+{ -+ tree assign_rhs; -+ const_tree rhs = gimple_assign_rhs1(stmt); -+ -+ assign_rhs = change_assign_rhs(stmt, rhs, new_rhs1); -+ gimple_assign_set_rhs1(stmt, assign_rhs); -+ update_stmt(stmt); -+} -+ -+static bool check_mode_type(const_gimple stmt) -+{ -+ const_tree lhs = gimple_get_lhs(stmt); -+ const_tree lhs_type = TREE_TYPE(lhs); -+ const_tree rhs_type = TREE_TYPE(gimple_assign_rhs1(stmt)); -+ enum machine_mode lhs_mode = TYPE_MODE(lhs_type); -+ enum machine_mode rhs_mode = TYPE_MODE(rhs_type); -+ -+ if (rhs_mode == lhs_mode && TYPE_UNSIGNED(rhs_type) == TYPE_UNSIGNED(lhs_type)) -+ return false; -+ -+ if (rhs_mode == SImode && lhs_mode == DImode && (TYPE_UNSIGNED(rhs_type) || !TYPE_UNSIGNED(lhs_type))) -+ return false; -+ -+ // skip lhs check on signed SI -> HI cast or signed SI -> QI cast -+ if (rhs_mode == SImode && !TYPE_UNSIGNED(rhs_type) && (lhs_mode == HImode || lhs_mode == QImode)) -+ return false; -+ -+ return true; -+} -+ -+static bool check_undefined_integer_operation(const_gimple stmt) -+{ -+ const_gimple def_stmt; -+ const_tree lhs = gimple_get_lhs(stmt); -+ const_tree rhs1 = gimple_assign_rhs1(stmt); -+ const_tree rhs1_type = TREE_TYPE(rhs1); -+ const_tree lhs_type = TREE_TYPE(lhs); -+ -+ if (TYPE_MODE(rhs1_type) != TYPE_MODE(lhs_type) || TYPE_UNSIGNED(rhs1_type) == TYPE_UNSIGNED(lhs_type)) -+ return false; -+ -+ def_stmt = get_def_stmt(rhs1); -+ if (gimple_code(def_stmt) != GIMPLE_ASSIGN) -+ return false; -+ -+ if (gimple_assign_rhs_code(def_stmt) != MINUS_EXPR) -+ return false; -+ return true; -+} -+ +static bool is_a_cast_and_const_overflow(const_tree no_const_rhs) +{ + const_tree rhs1, lhs, rhs1_type, lhs_type; @@ -93631,18 +100059,80 @@ index 0000000..d52f2ee + return create_assign(visited, stmt, rhs1, AFTER_STMT); +} + -+static tree handle_unary_rhs(struct pointer_set_t *visited, gimple stmt) ++static bool skip_lhs_cast_check(const_gimple stmt) +{ -+ tree size_overflow_type, lhs = gimple_get_lhs(stmt); -+ tree new_rhs1 = NULL_TREE; -+ tree rhs1 = gimple_assign_rhs1(stmt); -+ const_tree rhs1_type = TREE_TYPE(rhs1); ++ const_tree rhs = gimple_assign_rhs1(stmt); ++ const_gimple def_stmt = get_def_stmt(rhs); ++ ++ // 3.8.2 kernel/futex_compat.c compat_exit_robust_list(): get_user() 64 ulong -> int (compat_long_t), int max ++ if (gimple_code(def_stmt) == GIMPLE_ASM) ++ return true; ++ ++ return false; ++} ++ ++static tree create_cast_overflow_check(struct pointer_set_t *visited, tree new_rhs1, gimple stmt) ++{ ++ bool cast_lhs, cast_rhs; ++ tree lhs = gimple_get_lhs(stmt); ++ tree rhs = gimple_assign_rhs1(stmt); + const_tree lhs_type = TREE_TYPE(lhs); ++ const_tree rhs_type = TREE_TYPE(rhs); ++ enum machine_mode lhs_mode = TYPE_MODE(lhs_type); ++ enum machine_mode rhs_mode = TYPE_MODE(rhs_type); ++ unsigned int lhs_size = GET_MODE_BITSIZE(lhs_mode); ++ unsigned int rhs_size = GET_MODE_BITSIZE(rhs_mode); ++ ++ static bool check_lhs[3][4] = { ++ // ss su us uu ++ { false, true, true, false }, // lhs > rhs ++ { false, false, false, false }, // lhs = rhs ++ { true, true, true, true }, // lhs < rhs ++ }; ++ ++ static bool check_rhs[3][4] = { ++ // ss su us uu ++ { true, false, true, true }, // lhs > rhs ++ { true, false, true, true }, // lhs = rhs ++ { true, false, true, true }, // lhs < rhs ++ }; ++ ++ // skip lhs check on signed SI -> HI cast or signed SI -> QI cast !!!! ++ if (rhs_mode == SImode && !TYPE_UNSIGNED(rhs_type) && (lhs_mode == HImode || lhs_mode == QImode)) ++ return create_assign(visited, stmt, lhs, AFTER_STMT); ++ ++ if (lhs_size > rhs_size) { ++ cast_lhs = check_lhs[0][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)]; ++ cast_rhs = check_rhs[0][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)]; ++ } else if (lhs_size == rhs_size) { ++ cast_lhs = check_lhs[1][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)]; ++ cast_rhs = check_rhs[1][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)]; ++ } else { ++ cast_lhs = check_lhs[2][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)]; ++ cast_rhs = check_rhs[2][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)]; ++ } ++ ++ if (!cast_lhs && !cast_rhs) ++ return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE); ++ ++ if (cast_lhs && !skip_lhs_cast_check(stmt)) ++ check_size_overflow(stmt, TREE_TYPE(new_rhs1), new_rhs1, lhs, BEFORE_STMT); ++ ++ if (cast_rhs) ++ check_size_overflow(stmt, TREE_TYPE(new_rhs1), new_rhs1, rhs, BEFORE_STMT); ++ ++ return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE); ++} ++ ++static tree handle_unary_rhs(struct pointer_set_t *visited, gimple stmt) ++{ ++ tree rhs1, new_rhs1, lhs = gimple_get_lhs(stmt); + + if (gimple_plf(stmt, MY_STMT)) + return lhs; + -+ if (TREE_CODE(rhs1_type) == POINTER_TYPE) ++ rhs1 = gimple_assign_rhs1(stmt); ++ if (TREE_CODE(TREE_TYPE(rhs1)) == POINTER_TYPE) + return create_assign(visited, stmt, lhs, AFTER_STMT); + + new_rhs1 = expand(visited, rhs1); @@ -93654,34 +100144,17 @@ index 0000000..d52f2ee + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE); + + if (gimple_assign_rhs_code(stmt) == BIT_NOT_EXPR) { -+ size_overflow_type = get_size_overflow_type(stmt, rhs1); ++ tree size_overflow_type = get_size_overflow_type(stmt, rhs1); ++ + new_rhs1 = cast_to_new_size_overflow_type(stmt, new_rhs1, size_overflow_type, BEFORE_STMT); + check_size_overflow(stmt, size_overflow_type, new_rhs1, rhs1, BEFORE_STMT); + return create_assign(visited, stmt, lhs, AFTER_STMT); + } + -+ if (!gimple_assign_cast_p(stmt) || check_undefined_integer_operation(stmt)) ++ if (!gimple_assign_cast_p(stmt)) + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE); + -+ if (TYPE_UNSIGNED(rhs1_type) != TYPE_UNSIGNED(lhs_type)) -+ return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE); -+ -+ size_overflow_type = get_size_overflow_type(stmt, rhs1); -+ new_rhs1 = cast_to_new_size_overflow_type(stmt, new_rhs1, size_overflow_type, BEFORE_STMT); -+ -+ check_size_overflow(stmt, size_overflow_type, new_rhs1, rhs1, BEFORE_STMT); -+ -+ change_rhs1(stmt, new_rhs1); -+ -+ if (!check_mode_type(stmt)) -+ return create_assign(visited, stmt, lhs, AFTER_STMT); -+ -+ size_overflow_type = get_size_overflow_type(stmt, lhs); -+ new_rhs1 = cast_to_new_size_overflow_type(stmt, new_rhs1, size_overflow_type, BEFORE_STMT); -+ -+ check_size_overflow(stmt, size_overflow_type, new_rhs1, lhs, BEFORE_STMT); -+ -+ return create_assign(visited, stmt, lhs, AFTER_STMT); ++ return create_cast_overflow_check(visited, new_rhs1, stmt); +} + +static tree handle_unary_ops(struct pointer_set_t *visited, gimple stmt) @@ -93695,7 +100168,6 @@ index 0000000..d52f2ee + if (is_gimple_constant(rhs1)) + return create_assign(visited, def_stmt, lhs, AFTER_STMT); + -+ gcc_assert(TREE_CODE(rhs1) != COND_EXPR); + switch (TREE_CODE(rhs1)) { + case SSA_NAME: + return handle_unary_rhs(visited, def_stmt); @@ -93843,7 +100315,7 @@ index 0000000..d52f2ee + if (TREE_CODE(rhs_type) == POINTER_TYPE) + return; + -+ gcc_assert(TREE_CODE(rhs_type) == INTEGER_TYPE || TREE_CODE(rhs_type) == BOOLEAN_TYPE || TREE_CODE(rhs_type) == ENUMERAL_TYPE); ++ gcc_assert(TREE_CODE(rhs_type) == INTEGER_TYPE || TREE_CODE(rhs_type) == ENUMERAL_TYPE); + + type_max = cast_a_tree(size_overflow_type, TYPE_MAX_VALUE(rhs_type)); + // typemax (-1) < typemin (0) @@ -93862,43 +100334,74 @@ index 0000000..d52f2ee + insert_check_size_overflow(stmt, LT_EXPR, cast_rhs, type_min, before, true); +} + -+static tree get_size_overflow_type_for_intentional_overflow(gimple def_stmt, tree change_rhs) ++static bool is_a_constant_overflow(const_gimple stmt, const_tree rhs) +{ -+ gimple change_rhs_def_stmt; -+ tree lhs = gimple_get_lhs(def_stmt); -+ tree lhs_type = TREE_TYPE(lhs); -+ tree rhs1_type = TREE_TYPE(gimple_assign_rhs1(def_stmt)); -+ tree rhs2_type = TREE_TYPE(gimple_assign_rhs2(def_stmt)); -+ -+ if (change_rhs == NULL_TREE) -+ return get_size_overflow_type(def_stmt, lhs); ++ if (gimple_assign_rhs_code(stmt) == MIN_EXPR) ++ return false; ++ if (!is_gimple_constant(rhs)) ++ return false; ++ return true; ++} + -+ change_rhs_def_stmt = get_def_stmt(change_rhs); ++static tree get_def_stmt_rhs(const_tree var) ++{ ++ tree rhs1, def_stmt_rhs1; ++ gimple rhs1_def_stmt, def_stmt_rhs1_def_stmt, def_stmt; + -+ if (TREE_CODE_CLASS(gimple_assign_rhs_code(def_stmt)) == tcc_comparison) -+ return get_size_overflow_type(change_rhs_def_stmt, change_rhs); ++ def_stmt = get_def_stmt(var); ++ gcc_assert(gimple_code(def_stmt) != GIMPLE_NOP && gimple_plf(def_stmt, MY_STMT) && gimple_assign_cast_p(def_stmt)); + -+ if (gimple_assign_rhs_code(def_stmt) == LSHIFT_EXPR) -+ return get_size_overflow_type(change_rhs_def_stmt, change_rhs); ++ rhs1 = gimple_assign_rhs1(def_stmt); ++ rhs1_def_stmt = get_def_stmt(rhs1); ++ if (!gimple_assign_cast_p(rhs1_def_stmt)) ++ return rhs1; + -+ if (gimple_assign_rhs_code(def_stmt) == RSHIFT_EXPR) -+ return get_size_overflow_type(change_rhs_def_stmt, change_rhs); ++ def_stmt_rhs1 = gimple_assign_rhs1(rhs1_def_stmt); ++ def_stmt_rhs1_def_stmt = get_def_stmt(def_stmt_rhs1); + -+ if (!types_compatible_p(lhs_type, rhs1_type) || !types_compatible_p(rhs1_type, rhs2_type)) { -+ debug_gimple_stmt(def_stmt); ++ switch (gimple_code(def_stmt_rhs1_def_stmt)) { ++ case GIMPLE_CALL: ++ case GIMPLE_NOP: ++ case GIMPLE_ASM: ++ case GIMPLE_PHI: ++ return def_stmt_rhs1; ++ case GIMPLE_ASSIGN: ++ return rhs1; ++ default: ++ debug_gimple_stmt(def_stmt_rhs1_def_stmt); + gcc_unreachable(); + } -+ -+ return get_size_overflow_type(def_stmt, lhs); +} + -+static bool is_a_constant_overflow(const_gimple stmt, const_tree rhs) ++static tree handle_intentional_overflow(struct pointer_set_t *visited, bool check_overflow, gimple stmt, tree change_rhs, tree new_rhs2) +{ -+ if (gimple_assign_rhs_code(stmt) == MIN_EXPR) -+ return false; -+ if (!is_gimple_constant(rhs)) -+ return false; -+ return true; ++ tree new_rhs, orig_rhs; ++ void (*gimple_assign_set_rhs)(gimple, tree); ++ tree rhs1 = gimple_assign_rhs1(stmt); ++ tree rhs2 = gimple_assign_rhs2(stmt); ++ tree lhs = gimple_get_lhs(stmt); ++ ++ if (!check_overflow) ++ return create_assign(visited, stmt, lhs, AFTER_STMT); ++ ++ if (change_rhs == NULL_TREE) ++ return create_assign(visited, stmt, lhs, AFTER_STMT); ++ ++ if (new_rhs2 == NULL_TREE) { ++ orig_rhs = rhs1; ++ gimple_assign_set_rhs = &gimple_assign_set_rhs1; ++ } else { ++ orig_rhs = rhs2; ++ gimple_assign_set_rhs = &gimple_assign_set_rhs2; ++ } ++ ++ check_size_overflow(stmt, TREE_TYPE(change_rhs), change_rhs, orig_rhs, BEFORE_STMT); ++ ++ new_rhs = change_assign_rhs(stmt, orig_rhs, change_rhs); ++ gimple_assign_set_rhs(stmt, new_rhs); ++ update_stmt(stmt); ++ ++ return create_assign(visited, stmt, lhs, AFTER_STMT); +} + +static bool is_subtraction_special(const_gimple stmt) @@ -93940,35 +100443,6 @@ index 0000000..d52f2ee + return true; +} + -+static tree get_def_stmt_rhs(const_tree var) -+{ -+ tree rhs1, def_stmt_rhs1; -+ gimple rhs1_def_stmt, def_stmt_rhs1_def_stmt, def_stmt; -+ -+ def_stmt = get_def_stmt(var); -+ gcc_assert(gimple_code(def_stmt) != GIMPLE_NOP && gimple_plf(def_stmt, MY_STMT) && gimple_assign_cast_p(def_stmt)); -+ -+ rhs1 = gimple_assign_rhs1(def_stmt); -+ rhs1_def_stmt = get_def_stmt(rhs1); -+ if (!gimple_assign_cast_p(rhs1_def_stmt)) -+ return rhs1; -+ -+ def_stmt_rhs1 = gimple_assign_rhs1(rhs1_def_stmt); -+ def_stmt_rhs1_def_stmt = get_def_stmt(def_stmt_rhs1); -+ -+ switch (gimple_code(def_stmt_rhs1_def_stmt)) { -+ case GIMPLE_CALL: -+ case GIMPLE_NOP: -+ case GIMPLE_ASM: -+ return def_stmt_rhs1; -+ case GIMPLE_ASSIGN: -+ return rhs1; -+ default: -+ debug_gimple_stmt(def_stmt_rhs1_def_stmt); -+ gcc_unreachable(); -+ } -+} -+ +static tree handle_integer_truncation(struct pointer_set_t *visited, const_tree lhs) +{ + tree new_rhs1, new_rhs2; @@ -94015,41 +100489,6 @@ index 0000000..d52f2ee + return true; +} + -+static tree handle_intentional_overflow(struct pointer_set_t *visited, bool check_overflow, gimple stmt, tree change_rhs, tree new_rhs1, tree new_rhs2) -+{ -+ tree new_rhs, size_overflow_type, orig_rhs; -+ void (*gimple_assign_set_rhs)(gimple, tree); -+ tree rhs1 = gimple_assign_rhs1(stmt); -+ tree rhs2 = gimple_assign_rhs2(stmt); -+ tree lhs = gimple_get_lhs(stmt); -+ -+ if (change_rhs == NULL_TREE) -+ return create_assign(visited, stmt, lhs, AFTER_STMT); -+ -+ if (new_rhs2 == NULL_TREE) { -+ size_overflow_type = get_size_overflow_type_for_intentional_overflow(stmt, new_rhs1); -+ new_rhs2 = cast_a_tree(size_overflow_type, rhs2); -+ orig_rhs = rhs1; -+ gimple_assign_set_rhs = &gimple_assign_set_rhs1; -+ } else { -+ size_overflow_type = get_size_overflow_type_for_intentional_overflow(stmt, new_rhs2); -+ new_rhs1 = cast_a_tree(size_overflow_type, rhs1); -+ orig_rhs = rhs2; -+ gimple_assign_set_rhs = &gimple_assign_set_rhs2; -+ } -+ -+ change_rhs = cast_to_new_size_overflow_type(stmt, change_rhs, size_overflow_type, BEFORE_STMT); -+ -+ if (check_overflow) -+ check_size_overflow(stmt, size_overflow_type, change_rhs, orig_rhs, BEFORE_STMT); -+ -+ new_rhs = change_assign_rhs(stmt, orig_rhs, change_rhs); -+ gimple_assign_set_rhs(stmt, new_rhs); -+ update_stmt(stmt); -+ -+ return create_assign(visited, stmt, lhs, AFTER_STMT); -+} -+ +static tree handle_binary_ops(struct pointer_set_t *visited, tree lhs) +{ + tree rhs1, rhs2, new_lhs; @@ -94089,14 +100528,15 @@ index 0000000..d52f2ee + new_rhs2 = expand(visited, rhs2); + + if (is_a_neg_overflow(def_stmt, rhs2)) -+ return handle_intentional_overflow(visited, true, def_stmt, new_rhs1, new_rhs1, NULL_TREE); ++ return handle_intentional_overflow(visited, true, def_stmt, new_rhs1, NULL_TREE); + if (is_a_neg_overflow(def_stmt, rhs1)) -+ return handle_intentional_overflow(visited, true, def_stmt, new_rhs2, NULL_TREE, new_rhs2); ++ return handle_intentional_overflow(visited, true, def_stmt, new_rhs2, new_rhs2); ++ + + if (is_a_constant_overflow(def_stmt, rhs2)) -+ return handle_intentional_overflow(visited, !is_a_cast_and_const_overflow(rhs1), def_stmt, new_rhs1, new_rhs1, NULL_TREE); ++ return handle_intentional_overflow(visited, !is_a_cast_and_const_overflow(rhs1), def_stmt, new_rhs1, NULL_TREE); + if (is_a_constant_overflow(def_stmt, rhs1)) -+ return handle_intentional_overflow(visited, !is_a_cast_and_const_overflow(rhs2), def_stmt, new_rhs2, NULL_TREE, new_rhs2); ++ return handle_intentional_overflow(visited, !is_a_cast_and_const_overflow(rhs2), def_stmt, new_rhs2, new_rhs2); + + return dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE); +} @@ -94171,41 +100611,34 @@ index 0000000..d52f2ee +static tree expand_visited(gimple def_stmt) +{ + const_gimple next_stmt; -+ gimple_stmt_iterator gsi = gsi_for_stmt(def_stmt); ++ gimple_stmt_iterator gsi; ++ enum gimple_code code = gimple_code(def_stmt); ++ ++ if (code == GIMPLE_ASM) ++ return NULL_TREE; + ++ gsi = gsi_for_stmt(def_stmt); + gsi_next(&gsi); ++ ++ if (gimple_code(def_stmt) == GIMPLE_PHI && gsi_end_p(gsi)) ++ return NULL_TREE; ++ gcc_assert(!gsi_end_p(gsi)); + next_stmt = gsi_stmt(gsi); + ++ if (gimple_code(def_stmt) == GIMPLE_PHI && !gimple_plf((gimple)next_stmt, MY_STMT)) ++ return NULL_TREE; + gcc_assert(gimple_plf((gimple)next_stmt, MY_STMT)); + -+ switch (gimple_code(next_stmt)) { -+ case GIMPLE_ASSIGN: -+ return gimple_get_lhs(next_stmt); -+ case GIMPLE_PHI: -+ return gimple_phi_result(next_stmt); -+ case GIMPLE_CALL: -+ return gimple_call_lhs(next_stmt); -+ default: -+ return NULL_TREE; -+ } ++ return get_lhs(next_stmt); +} + +static tree expand(struct pointer_set_t *visited, tree lhs) +{ + gimple def_stmt; -+ enum tree_code code = TREE_CODE(TREE_TYPE(lhs)); + -+ if (is_gimple_constant(lhs)) -+ return NULL_TREE; -+ -+ if (TREE_CODE(lhs) == ADDR_EXPR) -+ return NULL_TREE; -+ -+ if (code == REAL_TYPE) ++ if (skip_types(lhs)) + return NULL_TREE; + -+ gcc_assert(code == INTEGER_TYPE || code == POINTER_TYPE || code == BOOLEAN_TYPE || code == ENUMERAL_TYPE); -+ + def_stmt = get_def_stmt(lhs); + + if (!def_stmt || gimple_code(def_stmt) == GIMPLE_NOP) @@ -94219,7 +100652,7 @@ index 0000000..d52f2ee + + switch (gimple_code(def_stmt)) { + case GIMPLE_PHI: -+ return build_new_phi(visited, lhs); ++ return handle_phi(visited, lhs); + case GIMPLE_CALL: + case GIMPLE_ASM: + return create_assign(visited, def_stmt, lhs, AFTER_STMT); @@ -94241,23 +100674,30 @@ index 0000000..d52f2ee + } +} + -+static void change_function_arg(gimple stmt, const_tree origarg, unsigned int argnum, tree newarg) ++static tree get_new_tree(gimple stmt, const_tree orig_node, tree new_node) +{ + const_gimple assign; ++ tree orig_type = TREE_TYPE(orig_node); + gimple_stmt_iterator gsi = gsi_for_stmt(stmt); -+ tree origtype = TREE_TYPE(origarg); + -+ gcc_assert(gimple_code(stmt) == GIMPLE_CALL); ++ assign = build_cast_stmt(orig_type, new_node, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false); ++ return gimple_get_lhs(assign); ++} + -+ assign = build_cast_stmt(origtype, newarg, CREATE_NEW_VAR, &gsi, BEFORE_STMT); ++static void change_function_arg(gimple stmt, const_tree orig_arg, unsigned int argnum, tree new_arg) ++{ ++ gimple_call_set_arg(stmt, argnum, get_new_tree(stmt, orig_arg, new_arg)); ++ update_stmt(stmt); ++} + -+ gimple_call_set_arg(stmt, argnum, gimple_get_lhs(assign)); ++static void change_function_return(gimple stmt, const_tree orig_ret, tree new_ret) ++{ ++ gimple_return_set_retval(stmt, get_new_tree(stmt, orig_ret, new_ret)); + update_stmt(stmt); +} + +static bool get_function_arg(unsigned int* argnum, const_tree fndecl) +{ -+ const char *origid; + tree arg; + const_tree origarg; + @@ -94273,94 +100713,66 @@ index 0000000..d52f2ee + gcc_assert(*argnum == 0); + + gcc_assert(origarg != NULL_TREE); -+ origid = NAME(origarg); + *argnum = 0; -+ for (arg = DECL_ARGUMENTS(fndecl); arg; arg = TREE_CHAIN(arg)) { -+ if (!strcmp(origid, NAME(arg))) ++ for (arg = DECL_ARGUMENTS(fndecl); arg; arg = TREE_CHAIN(arg), (*argnum)++) ++ if (operand_equal_p(origarg, arg, 0) || !strcmp(NAME(origarg), NAME(arg))) + return true; -+ (*argnum)++; -+ } + return false; +} + -+static bool skip_types(const_tree var) -+{ -+ const_tree type; -+ -+ switch (TREE_CODE(var)) { -+ case ADDR_EXPR: -+#if BUILDING_GCC_VERSION >= 4006 -+ case MEM_REF: -+#endif -+ case ARRAY_REF: -+ case BIT_FIELD_REF: -+ case INDIRECT_REF: -+ case TARGET_MEM_REF: -+ case VAR_DECL: -+ return true; -+ default: -+ break; -+ } -+ -+ type = TREE_TYPE(TREE_TYPE(var)); -+ if (!type) -+ return false; -+ switch (TREE_CODE(type)) { -+ case RECORD_TYPE: -+ return true; -+ default: -+ break; -+ } -+ -+ return false; -+} -+ -+static bool walk_phi(struct pointer_set_t *visited, const_tree result) ++static enum mark walk_phi(struct pointer_set_t *visited, bool *search_err_code, const_tree result) +{ + gimple phi = get_def_stmt(result); + unsigned int i, n = gimple_phi_num_args(phi); + + if (!phi) -+ return false; ++ return MARK_NO; + + pointer_set_insert(visited, phi); + for (i = 0; i < n; i++) { ++ enum mark marked; + const_tree arg = gimple_phi_arg_def(phi, i); -+ if (pre_expand(visited, arg)) -+ return true; ++ marked = pre_expand(visited, search_err_code, arg); ++ if (marked != MARK_NO) ++ return marked; + } -+ return false; ++ return MARK_NO; +} + -+static bool walk_unary_ops(struct pointer_set_t *visited, const_tree lhs) ++static enum mark walk_unary_ops(struct pointer_set_t *visited, bool *search_err_code, const_tree lhs) +{ + gimple def_stmt = get_def_stmt(lhs); + const_tree rhs; + + if (!def_stmt) -+ return false; ++ return MARK_NO; + + rhs = gimple_assign_rhs1(def_stmt); -+ if (pre_expand(visited, rhs)) -+ return true; -+ return false; ++ ++ def_stmt = get_def_stmt(rhs); ++ if (is_gimple_constant(rhs)) ++ search_err_code[FROM_CONST] = true; ++ ++ return pre_expand(visited, search_err_code, rhs); +} + -+static bool walk_binary_ops(struct pointer_set_t *visited, const_tree lhs) ++static enum mark walk_binary_ops(struct pointer_set_t *visited, bool *search_err_code, const_tree lhs) +{ -+ bool rhs1_found, rhs2_found; + gimple def_stmt = get_def_stmt(lhs); + const_tree rhs1, rhs2; ++ enum mark marked; + + if (!def_stmt) -+ return false; ++ return MARK_NO; ++ ++ search_err_code[CAST_ONLY] = false; + + rhs1 = gimple_assign_rhs1(def_stmt); + rhs2 = gimple_assign_rhs2(def_stmt); -+ rhs1_found = pre_expand(visited, rhs1); -+ rhs2_found = pre_expand(visited, rhs2); -+ -+ return rhs1_found || rhs2_found; ++ marked = pre_expand(visited, search_err_code, rhs1); ++ if (marked != MARK_NO) ++ return marked; ++ return pre_expand(visited, search_err_code, rhs2); +} + +static const_tree search_field_decl(const_tree comp_ref) @@ -94377,25 +100789,35 @@ index 0000000..d52f2ee + return field; +} + -+static enum marked mark_status(const_tree fndecl, unsigned int argnum) ++static enum mark mark_status(const_tree fndecl, unsigned int argnum) +{ + const_tree attr, p; + ++ // mm/filemap.c D.35286_51 = D.35283_46 (file_10(D), mapping_11, pos_1, D.35273_50, D.35285_49, page.14_48, fsdata.15_47); ++ if (fndecl == NULL_TREE) ++ return MARK_NO; ++ + attr = lookup_attribute("intentional_overflow", DECL_ATTRIBUTES(fndecl)); + if (!attr || !TREE_VALUE(attr)) -+ return MARKED_NO; ++ return MARK_NO; + + p = TREE_VALUE(attr); ++ if (TREE_INT_CST_HIGH(TREE_VALUE(p)) == -1) ++ return MARK_TURN_OFF; + if (!TREE_INT_CST_LOW(TREE_VALUE(p))) -+ return MARKED_NOT_INTENTIONAL; ++ return MARK_NOT_INTENTIONAL; ++ if (argnum == 0) { ++ gcc_assert(current_function_decl == fndecl); ++ return MARK_NO; ++ } + + do { + if (argnum == TREE_INT_CST_LOW(TREE_VALUE(p))) -+ return MARKED_YES; ++ return MARK_YES; + p = TREE_CHAIN(p); + } while (p); + -+ return MARKED_NO; ++ return MARK_NO; +} + +static void print_missing_msg(tree func, unsigned int argnum) @@ -94403,8 +100825,12 @@ index 0000000..d52f2ee + unsigned int new_hash; + size_t len; + unsigned char tree_codes[CODES_LIMIT]; -+ location_t loc = DECL_SOURCE_LOCATION(func); -+ const char *curfunc = get_asm_name(func); ++ location_t loc; ++ const char *curfunc; ++ ++ func = get_original_function_decl(func); ++ loc = DECL_SOURCE_LOCATION(func); ++ curfunc = get_asm_name(func); + + len = get_function_decl(func, tree_codes); + new_hash = get_hash_num(curfunc, (const char *) tree_codes, len, 0); @@ -94413,10 +100839,10 @@ index 0000000..d52f2ee + +static unsigned int search_missing_attribute(const_tree arg) +{ -+ const_tree type = TREE_TYPE(arg); -+ tree func = get_original_function_decl(current_function_decl); + unsigned int argnum; + const struct size_overflow_hash *hash; ++ const_tree type = TREE_TYPE(arg); ++ tree func = get_original_function_decl(current_function_decl); + + gcc_assert(TREE_CODE(arg) != COMPONENT_REF); + @@ -94438,31 +100864,24 @@ index 0000000..d52f2ee + return argnum; +} + -+static bool is_already_marked(const_tree lhs) ++static enum mark is_already_marked(const_tree lhs) +{ + unsigned int argnum; + const_tree fndecl; + + argnum = search_missing_attribute(lhs); + fndecl = get_original_function_decl(current_function_decl); -+ if (argnum && mark_status(fndecl, argnum) == MARKED_YES) -+ return true; -+ return false; ++ if (argnum && mark_status(fndecl, argnum) == MARK_YES) ++ return MARK_YES; ++ return MARK_NO; +} + -+static bool pre_expand(struct pointer_set_t *visited, const_tree lhs) ++static enum mark pre_expand(struct pointer_set_t *visited, bool *search_err_code, const_tree lhs) +{ + const_gimple def_stmt; + -+ if (is_gimple_constant(lhs)) -+ return false; -+ + if (skip_types(lhs)) -+ return false; -+ -+ // skip char type (FIXME: only kernel) -+ if (TYPE_MODE(TREE_TYPE(lhs)) == QImode) -+ return false; ++ return MARK_NO; + + if (TREE_CODE(lhs) == PARM_DECL) + return is_already_marked(lhs); @@ -94473,34 +100892,39 @@ index 0000000..d52f2ee + field = search_field_decl(lhs); + attr = lookup_attribute("intentional_overflow", DECL_ATTRIBUTES(field)); + if (!attr || !TREE_VALUE(attr)) -+ return false; -+ return true; ++ return MARK_NO; ++ return MARK_YES; + } + + def_stmt = get_def_stmt(lhs); + + if (!def_stmt) -+ return false; ++ return MARK_NO; + + if (pointer_set_contains(visited, def_stmt)) -+ return false; ++ return MARK_NO; + + switch (gimple_code(def_stmt)) { + case GIMPLE_NOP: + if (TREE_CODE(SSA_NAME_VAR(lhs)) == PARM_DECL) + return is_already_marked(lhs); -+ return false; ++ return MARK_NO; + case GIMPLE_PHI: -+ return walk_phi(visited, lhs); ++ return walk_phi(visited, search_err_code, lhs); + case GIMPLE_CALL: ++ if (mark_status((gimple_call_fndecl(def_stmt)), 0) == MARK_TURN_OFF) ++ return MARK_TURN_OFF; ++ check_function_hash(def_stmt); ++ return MARK_NO; + case GIMPLE_ASM: -+ return false; ++ search_err_code[CAST_ONLY] = false; ++ return MARK_NO; + case GIMPLE_ASSIGN: + switch (gimple_num_ops(def_stmt)) { + case 2: -+ return walk_unary_ops(visited, lhs); ++ return walk_unary_ops(visited, search_err_code, lhs); + case 3: -+ return walk_binary_ops(visited, lhs); ++ return walk_binary_ops(visited, search_err_code, lhs); + } + default: + debug_gimple_stmt((gimple)def_stmt); @@ -94509,22 +100933,56 @@ index 0000000..d52f2ee + } +} + -+static bool search_attributes(tree fndecl, const_tree arg, unsigned int argnum) ++// e.g., 3.8.2, 64, arch/x86/ia32/ia32_signal.c copy_siginfo_from_user32(): compat_ptr() u32 max ++static bool skip_asm(const_tree arg) ++{ ++ gimple def_stmt = get_def_stmt(arg); ++ ++ if (!def_stmt || !gimple_assign_cast_p(def_stmt)) ++ return false; ++ ++ def_stmt = get_def_stmt(gimple_assign_rhs1(def_stmt)); ++ return def_stmt && gimple_code(def_stmt) == GIMPLE_ASM; ++} ++ ++/* ++0</MARK_YES: no dup, search attributes (so, int) ++0/MARK_NOT_INTENTIONAL: no dup, search attribute (int) ++-1/MARK_TURN_OFF: no dup, no search, current_function_decl -> no dup ++*/ ++ ++static bool search_attributes(tree fndecl, const_tree arg, unsigned int argnum, bool where) +{ + struct pointer_set_t *visited; -+ bool is_found; -+ enum marked is_marked; ++ enum mark is_marked, is_found; + location_t loc; ++ bool search_err_code[2] = {true, false}; ++ ++ is_marked = mark_status(current_function_decl, 0); ++ if (is_marked == MARK_TURN_OFF) ++ return true; ++ ++ is_marked = mark_status(fndecl, argnum + 1); ++ if (is_marked == MARK_TURN_OFF || is_marked == MARK_NOT_INTENTIONAL) ++ return true; + + visited = pointer_set_create(); -+ is_found = pre_expand(visited, arg); ++ is_found = pre_expand(visited, search_err_code, arg); + pointer_set_destroy(visited); + -+ is_marked = mark_status(fndecl, argnum + 1); -+ if ((is_found && is_marked == MARKED_YES) || is_marked == MARKED_NOT_INTENTIONAL) ++ if (where == FROM_RET && search_err_code[CAST_ONLY] && search_err_code[FROM_CONST]) ++ return true; ++ ++ if (where == FROM_ARG && skip_asm(arg)) ++ return true; ++ ++ if (is_found == MARK_TURN_OFF) + return true; + -+ if (is_found) { ++ if ((is_found == MARK_YES && is_marked == MARK_YES)) ++ return true; ++ ++ if (is_found == MARK_YES) { + loc = DECL_SOURCE_LOCATION(fndecl); + inform(loc, "The intentional_overflow attribute is missing from +%s+%u+", get_asm_name(fndecl), argnum + 1); + return true; @@ -94535,9 +100993,14 @@ index 0000000..d52f2ee +static void handle_function_arg(gimple stmt, tree fndecl, unsigned int argnum) +{ + struct pointer_set_t *visited; -+ tree arg, newarg; ++ tree arg, new_arg; + bool match; + ++ if (argnum == 0) ++ return; ++ ++ argnum--; ++ + match = get_function_arg(&argnum, fndecl); + if (!match) + return; @@ -94546,54 +101009,79 @@ index 0000000..d52f2ee + if (arg == NULL_TREE) + return; + -+ if (is_gimple_constant(arg)) -+ return; -+ -+ if (search_attributes(fndecl, arg, argnum)) ++ if (skip_types(arg)) + return; + -+ if (TREE_CODE(arg) != SSA_NAME) ++ if (search_attributes(fndecl, arg, argnum, FROM_ARG)) + return; + -+ check_arg_type(arg); -+ + visited = pointer_set_create(); -+ newarg = expand(visited, arg); ++ new_arg = expand(visited, arg); + pointer_set_destroy(visited); + -+ if (newarg == NULL_TREE) ++ if (new_arg == NULL_TREE) + return; + -+ change_function_arg(stmt, arg, argnum, newarg); -+ -+ check_size_overflow(stmt, TREE_TYPE(newarg), newarg, arg, BEFORE_STMT); ++ change_function_arg(stmt, arg, argnum, new_arg); ++ check_size_overflow(stmt, TREE_TYPE(new_arg), new_arg, arg, BEFORE_STMT); +} + +static void handle_function_by_attribute(gimple stmt, const_tree attr, tree fndecl) +{ + tree p = TREE_VALUE(attr); + do { -+ handle_function_arg(stmt, fndecl, TREE_INT_CST_LOW(TREE_VALUE(p))-1); ++ handle_function_arg(stmt, fndecl, TREE_INT_CST_LOW(TREE_VALUE(p))); + p = TREE_CHAIN(p); + } while (p); +} + +static void handle_function_by_hash(gimple stmt, tree fndecl) +{ -+ tree orig_fndecl; + unsigned int num; + const struct size_overflow_hash *hash; + -+ orig_fndecl = get_original_function_decl(fndecl); -+ if (C_DECL_IMPLICIT(orig_fndecl)) -+ return; -+ hash = get_function_hash(orig_fndecl); ++ hash = get_function_hash(fndecl); + if (!hash) + return; + -+ for (num = 1; num <= MAX_PARAM; num++) ++ for (num = 0; num <= MAX_PARAM; num++) + if (hash->param & (1U << num)) -+ handle_function_arg(stmt, fndecl, num - 1); ++ handle_function_arg(stmt, fndecl, num); ++} ++ ++static bool check_return_value(void) ++{ ++ const struct size_overflow_hash *hash; ++ ++ hash = get_function_hash(current_function_decl); ++ if (!hash || !(hash->param & 1U << 0)) ++ return false; ++ ++ return true; ++} ++ ++static void handle_return_value(gimple ret_stmt) ++{ ++ struct pointer_set_t *visited; ++ tree ret, new_ret; ++ ++ if (gimple_code(ret_stmt) != GIMPLE_RETURN) ++ return; ++ ++ ret = gimple_return_retval(ret_stmt); ++ ++ if (skip_types(ret)) ++ return; ++ ++ if (search_attributes(current_function_decl, ret, 0, FROM_RET)) ++ return; ++ ++ visited = pointer_set_create(); ++ new_ret = expand(visited, ret); ++ pointer_set_destroy(visited); ++ ++ change_function_return(ret_stmt, ret, new_ret); ++ check_size_overflow(ret_stmt, TREE_TYPE(new_ret), new_ret, ret, BEFORE_STMT); +} + +static void set_plf_false(void) @@ -94613,9 +101101,12 @@ index 0000000..d52f2ee +static unsigned int handle_function(void) +{ + basic_block next, bb = ENTRY_BLOCK_PTR->next_bb; ++ bool check_ret; + + set_plf_false(); + ++ check_ret = check_return_value(); ++ + do { + gimple_stmt_iterator gsi; + next = bb->next_bb; @@ -94624,6 +101115,9 @@ index 0000000..d52f2ee + tree fndecl, attr; + gimple stmt = gsi_stmt(gsi); + ++ if (check_ret) ++ handle_return_value(stmt); ++ + if (!(is_gimple_call(stmt))) + continue; + fndecl = gimple_call_fndecl(stmt); @@ -94661,7 +101155,7 @@ index 0000000..d52f2ee + .properties_provided = 0, + .properties_destroyed = 0, + .todo_flags_start = 0, -+ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi | TODO_cleanup_cfg | TODO_ggc_collect | TODO_verify_flow ++ .todo_flags_finish = TODO_dump_func | TODO_verify_ssa | TODO_verify_stmts | TODO_remove_unused_locals | TODO_update_ssa_no_phi | TODO_cleanup_cfg | TODO_ggc_collect | TODO_verify_flow + } +}; + @@ -95057,6 +101551,282 @@ index 0000000..ac2901e + + return 0; +} +diff --git a/tools/gcc/structleak_plugin.c b/tools/gcc/structleak_plugin.c +new file mode 100644 +index 0000000..77a6b1d +--- /dev/null ++++ b/tools/gcc/structleak_plugin.c +@@ -0,0 +1,270 @@ ++/* ++ * Copyright 2013 by PaX Team <pageexec@freemail.hu> ++ * Licensed under the GPL v2 ++ * ++ * Note: the choice of the license means that the compilation process is ++ * NOT 'eligible' as defined by gcc's library exception to the GPL v3, ++ * but for the kernel it doesn't matter since it doesn't link against ++ * any of the gcc libraries ++ * ++ * gcc plugin to forcibly initialize certain local variables that could ++ * otherwise leak kernel stack to userland if they aren't properly initialized ++ * by later code ++ * ++ * Homepage: http://pax.grsecurity.net/ ++ * ++ * Usage: ++ * $ # for 4.5/4.6/C based 4.7 ++ * $ gcc -I`gcc -print-file-name=plugin`/include -I`gcc -print-file-name=plugin`/include/c-family -fPIC -shared -O2 -o structleak_plugin.so structleak_plugin.c ++ * $ # for C++ based 4.7/4.8+ ++ * $ g++ -I`g++ -print-file-name=plugin`/include -I`g++ -print-file-name=plugin`/include/c-family -fPIC -shared -O2 -o structleak_plugin.so structleak_plugin.c ++ * $ gcc -fplugin=./structleak_plugin.so test.c -O2 ++ * ++ * TODO: eliminate redundant initializers ++ * increase type coverage ++ */ ++ ++#include "gcc-plugin.h" ++#include "config.h" ++#include "system.h" ++#include "coretypes.h" ++#include "tree.h" ++#include "tree-pass.h" ++#include "intl.h" ++#include "plugin-version.h" ++#include "tm.h" ++#include "toplev.h" ++#include "function.h" ++#include "tree-flow.h" ++#include "plugin.h" ++#include "gimple.h" ++#include "diagnostic.h" ++#include "cfgloop.h" ++#include "langhooks.h" ++ ++#if BUILDING_GCC_VERSION >= 4008 ++#define TODO_dump_func 0 ++#endif ++ ++#define NAME(node) IDENTIFIER_POINTER(DECL_NAME(node)) ++ ++// unused type flag in all versions 4.5-4.8 ++#define TYPE_USERSPACE(TYPE) TYPE_LANG_FLAG_3(TYPE) ++ ++int plugin_is_GPL_compatible; ++void debug_gimple_stmt(gimple gs); ++ ++static struct plugin_info structleak_plugin_info = { ++ .version = "201303270300", ++ .help = "disable\tdo not activate plugin\n", ++}; ++ ++static tree handle_user_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs) ++{ ++ *no_add_attrs = true; ++ ++ // check for types? for now accept everything linux has to offer ++ if (TREE_CODE(*node) != FIELD_DECL) ++ return NULL_TREE; ++ ++ *no_add_attrs = false; ++ return NULL_TREE; ++} ++ ++static struct attribute_spec user_attr = { ++ .name = "user", ++ .min_length = 0, ++ .max_length = 0, ++ .decl_required = false, ++ .type_required = false, ++ .function_type_required = false, ++ .handler = handle_user_attribute, ++#if BUILDING_GCC_VERSION >= 4007 ++ .affects_type_identity = true ++#endif ++}; ++ ++static void register_attributes(void *event_data, void *data) ++{ ++ register_attribute(&user_attr); ++// register_attribute(&force_attr); ++} ++ ++static tree get_field_type(tree field) ++{ ++ return strip_array_types(TREE_TYPE(field)); ++} ++ ++static bool is_userspace_type(tree type) ++{ ++ tree field; ++ ++ for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) { ++ tree fieldtype = get_field_type(field); ++ enum tree_code code = TREE_CODE(fieldtype); ++ ++ if (code == RECORD_TYPE || code == UNION_TYPE) ++ if (is_userspace_type(fieldtype)) ++ return true; ++ ++ if (lookup_attribute("user", DECL_ATTRIBUTES(field))) ++ return true; ++ } ++ return false; ++} ++ ++static void finish_type(void *event_data, void *data) ++{ ++ tree type = (tree)event_data; ++ ++ if (TYPE_USERSPACE(type)) ++ return; ++ ++ if (is_userspace_type(type)) ++ TYPE_USERSPACE(type) = 1; ++} ++ ++static void initialize(tree var) ++{ ++ basic_block bb; ++ gimple_stmt_iterator gsi; ++ tree initializer; ++ gimple init_stmt; ++ ++ // this is the original entry bb before the forced split ++ bb = ENTRY_BLOCK_PTR->next_bb->next_bb; ++ ++ // first check if the variable is already initialized, warn otherwise ++ for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) { ++ gimple stmt = gsi_stmt(gsi); ++ ++ // we're looking for an assignment... ++ if (!(is_gimple_assign(stmt))) ++ continue; ++ // ... of a single rhs (unary op)... ++ if (gimple_num_ops(stmt) != 2) ++ continue; ++ // ... to our variable... ++ if (gimple_get_lhs(stmt) != var) ++ continue; ++ // if it's an initializer then we're good ++ if (TREE_CODE(gimple_assign_rhs1(stmt)) == CONSTRUCTOR) ++ return; ++ } ++ ++ // build the initializer expression ++ initializer = make_node(CONSTRUCTOR); ++ TREE_TYPE(initializer) = TREE_TYPE(var); ++ ++ // build the initializer stmt ++ init_stmt = gimple_build_assign(var, initializer); ++ gsi = gsi_start_bb(ENTRY_BLOCK_PTR->next_bb); ++ gsi_insert_before(&gsi, init_stmt, GSI_NEW_STMT); ++ update_stmt(init_stmt); ++} ++ ++static unsigned int handle_function(void) ++{ ++ basic_block bb; ++ unsigned int ret = 0; ++ tree var; ++ ++#if BUILDING_GCC_VERSION == 4005 ++ tree vars; ++#else ++ unsigned int i; ++#endif ++ ++ // split the first bb where we can put the forced initializers ++ bb = split_block_after_labels(ENTRY_BLOCK_PTR)->dest; ++ if (dom_info_available_p(CDI_DOMINATORS)) ++ set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR); ++ ++ // enumarate all local variables and forcibly initialize our targets ++#if BUILDING_GCC_VERSION == 4005 ++ for (vars = cfun->local_decls; vars; vars = TREE_CHAIN(vars)) { ++ var = TREE_VALUE(vars); ++#else ++ FOR_EACH_LOCAL_DECL(cfun, i, var) { ++#endif ++ tree type = TREE_TYPE(var); ++ ++ gcc_assert(DECL_P(var)); ++ if (is_global_var(var)) ++ continue; ++ ++ // only care about structure types ++ if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE) ++ continue; ++ ++ // if the type is of interest, examine the variable ++ if (TYPE_USERSPACE(type)) ++ initialize(var); ++ } ++ ++ return ret; ++} ++ ++static struct gimple_opt_pass structleak_pass = { ++ .pass = { ++ .type = GIMPLE_PASS, ++ .name = "structleak", ++#if BUILDING_GCC_VERSION >= 4008 ++ .optinfo_flags = OPTGROUP_NONE, ++#endif ++ .gate = NULL, ++ .execute = handle_function, ++ .sub = NULL, ++ .next = NULL, ++ .static_pass_number = 0, ++ .tv_id = TV_NONE, ++ .properties_required = PROP_cfg, ++ .properties_provided = 0, ++ .properties_destroyed = 0, ++ .todo_flags_start = 0, ++ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa | TODO_ggc_collect | TODO_verify_flow ++ } ++}; ++ ++int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version) ++{ ++ int i; ++ const char * const plugin_name = plugin_info->base_name; ++ const int argc = plugin_info->argc; ++ const struct plugin_argument * const argv = plugin_info->argv; ++ bool enable = true; ++ ++ struct register_pass_info structleak_pass_info = { ++ .pass = &structleak_pass.pass, ++ .reference_pass_name = "ssa", ++ .ref_pass_instance_number = 1, ++ .pos_op = PASS_POS_INSERT_AFTER ++ }; ++ ++ if (!plugin_default_version_check(version, &gcc_version)) { ++ error(G_("incompatible gcc/plugin versions")); ++ return 1; ++ } ++ ++ if (strcmp(lang_hooks.name, "GNU C")) { ++ inform(UNKNOWN_LOCATION, G_("%s supports C only"), plugin_name); ++ enable = false; ++ } ++ ++ for (i = 0; i < argc; ++i) { ++ if (!strcmp(argv[i].key, "disable")) { ++ enable = false; ++ continue; ++ } ++ error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key); ++ } ++ ++ register_callback(plugin_name, PLUGIN_INFO, NULL, &structleak_plugin_info); ++ if (enable) { ++ register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &structleak_pass_info); ++ register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL); ++ } ++ register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL); ++ ++ return 0; ++} diff --git a/tools/perf/util/include/asm/alternative-asm.h b/tools/perf/util/include/asm/alternative-asm.h index 6789d78..4afd019e 100644 --- a/tools/perf/util/include/asm/alternative-asm.h @@ -95069,6 +101839,23 @@ index 6789d78..4afd019e 100644 + .endm + #endif +diff --git a/tools/perf/util/include/linux/compiler.h b/tools/perf/util/include/linux/compiler.h +index 547628e..74de9f2 100644 +--- a/tools/perf/util/include/linux/compiler.h ++++ b/tools/perf/util/include/linux/compiler.h +@@ -11,4 +11,12 @@ + + #define __used __attribute__((__unused__)) + ++#ifndef __size_overflow ++# define __size_overflow(...) ++#endif ++ ++#ifndef __intentional_overflow ++# define __intentional_overflow(...) ++#endif ++ + #endif diff --git a/virt/kvm/ioapic.c b/virt/kvm/ioapic.c index 3eed61e..79647cd 100644 --- a/virt/kvm/ioapic.c diff --git a/3.2.41/4425_grsec_remove_EI_PAX.patch b/3.2.42/4425_grsec_remove_EI_PAX.patch index 97e6951..97e6951 100644 --- a/3.2.41/4425_grsec_remove_EI_PAX.patch +++ b/3.2.42/4425_grsec_remove_EI_PAX.patch diff --git a/3.2.41/4430_grsec-remove-localversion-grsec.patch b/3.2.42/4430_grsec-remove-localversion-grsec.patch index 31cf878..31cf878 100644 --- a/3.2.41/4430_grsec-remove-localversion-grsec.patch +++ b/3.2.42/4430_grsec-remove-localversion-grsec.patch diff --git a/3.2.41/4435_grsec-mute-warnings.patch b/3.2.42/4435_grsec-mute-warnings.patch index e85abd6..e85abd6 100644 --- a/3.2.41/4435_grsec-mute-warnings.patch +++ b/3.2.42/4435_grsec-mute-warnings.patch diff --git a/3.2.41/4440_grsec-remove-protected-paths.patch b/3.2.42/4440_grsec-remove-protected-paths.patch index 637934a..637934a 100644 --- a/3.2.41/4440_grsec-remove-protected-paths.patch +++ b/3.2.42/4440_grsec-remove-protected-paths.patch diff --git a/3.2.41/4450_grsec-kconfig-default-gids.patch b/3.2.42/4450_grsec-kconfig-default-gids.patch index 3dfdc8f..3dfdc8f 100644 --- a/3.2.41/4450_grsec-kconfig-default-gids.patch +++ b/3.2.42/4450_grsec-kconfig-default-gids.patch diff --git a/3.2.41/4465_selinux-avc_audit-log-curr_ip.patch b/3.2.42/4465_selinux-avc_audit-log-curr_ip.patch index a7cc9cd..a7cc9cd 100644 --- a/3.2.41/4465_selinux-avc_audit-log-curr_ip.patch +++ b/3.2.42/4465_selinux-avc_audit-log-curr_ip.patch diff --git a/3.2.41/4470_disable-compat_vdso.patch b/3.2.42/4470_disable-compat_vdso.patch index c06bd8b..c06bd8b 100644 --- a/3.2.41/4470_disable-compat_vdso.patch +++ b/3.2.42/4470_disable-compat_vdso.patch diff --git a/3.8.4/1003_linux-3.8.4.patch b/3.8.4/1003_linux-3.8.4.patch deleted file mode 100644 index 132702f..0000000 --- a/3.8.4/1003_linux-3.8.4.patch +++ /dev/null @@ -1,2902 +0,0 @@ -diff --git a/Documentation/devicetree/bindings/tty/serial/of-serial.txt b/Documentation/devicetree/bindings/tty/serial/of-serial.txt -index 1e1145c..8f01cb1 100644 ---- a/Documentation/devicetree/bindings/tty/serial/of-serial.txt -+++ b/Documentation/devicetree/bindings/tty/serial/of-serial.txt -@@ -11,6 +11,9 @@ Required properties: - - "nvidia,tegra20-uart" - - "nxp,lpc3220-uart" - - "ibm,qpace-nwp-serial" -+ - "altr,16550-FIFO32" -+ - "altr,16550-FIFO64" -+ - "altr,16550-FIFO128" - - "serial" if the port type is unknown. - - reg : offset and length of the register set for the device. - - interrupts : should contain uart interrupt. -diff --git a/Makefile b/Makefile -index 8c49fc9b..e20f162 100644 ---- a/Makefile -+++ b/Makefile -@@ -1,6 +1,6 @@ - VERSION = 3 - PATCHLEVEL = 8 --SUBLEVEL = 3 -+SUBLEVEL = 4 - EXTRAVERSION = - NAME = Unicycling Gorilla - -diff --git a/arch/arm/mach-at91/board-foxg20.c b/arch/arm/mach-at91/board-foxg20.c -index 191d37c..1478294 100644 ---- a/arch/arm/mach-at91/board-foxg20.c -+++ b/arch/arm/mach-at91/board-foxg20.c -@@ -176,6 +176,7 @@ static struct w1_gpio_platform_data w1_gpio_pdata = { - /* If you choose to use a pin other than PB16 it needs to be 3.3V */ - .pin = AT91_PIN_PB16, - .is_open_drain = 1, -+ .ext_pullup_enable_pin = -EINVAL, - }; - - static struct platform_device w1_device = { -diff --git a/arch/arm/mach-at91/board-stamp9g20.c b/arch/arm/mach-at91/board-stamp9g20.c -index 48a962b..58a6758 100644 ---- a/arch/arm/mach-at91/board-stamp9g20.c -+++ b/arch/arm/mach-at91/board-stamp9g20.c -@@ -188,6 +188,7 @@ static struct spi_board_info portuxg20_spi_devices[] = { - static struct w1_gpio_platform_data w1_gpio_pdata = { - .pin = AT91_PIN_PA29, - .is_open_drain = 1, -+ .ext_pullup_enable_pin = -EINVAL, - }; - - static struct platform_device w1_device = { -diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c -index a685e97..45b7c71 100644 ---- a/arch/arm/mach-davinci/dma.c -+++ b/arch/arm/mach-davinci/dma.c -@@ -743,6 +743,9 @@ EXPORT_SYMBOL(edma_free_channel); - */ - int edma_alloc_slot(unsigned ctlr, int slot) - { -+ if (!edma_cc[ctlr]) -+ return -EINVAL; -+ - if (slot >= 0) - slot = EDMA_CHAN_SLOT(slot); - -diff --git a/arch/arm/mach-ixp4xx/vulcan-setup.c b/arch/arm/mach-ixp4xx/vulcan-setup.c -index 2798f43..1dddc1b 100644 ---- a/arch/arm/mach-ixp4xx/vulcan-setup.c -+++ b/arch/arm/mach-ixp4xx/vulcan-setup.c -@@ -163,6 +163,7 @@ static struct platform_device vulcan_max6369 = { - - static struct w1_gpio_platform_data vulcan_w1_gpio_pdata = { - .pin = 14, -+ .ext_pullup_enable_pin = -EINVAL, - }; - - static struct platform_device vulcan_w1_gpio = { -diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c -index de4fd2b..e714ead 100644 ---- a/arch/arm/mach-kirkwood/board-dt.c -+++ b/arch/arm/mach-kirkwood/board-dt.c -@@ -41,16 +41,12 @@ static void __init kirkwood_legacy_clk_init(void) - - struct device_node *np = of_find_compatible_node( - NULL, NULL, "marvell,kirkwood-gating-clock"); -- - struct of_phandle_args clkspec; -+ struct clk *clk; - - clkspec.np = np; - clkspec.args_count = 1; - -- clkspec.args[0] = CGC_BIT_GE0; -- orion_clkdev_add(NULL, "mv643xx_eth_port.0", -- of_clk_get_from_provider(&clkspec)); -- - clkspec.args[0] = CGC_BIT_PEX0; - orion_clkdev_add("0", "pcie", - of_clk_get_from_provider(&clkspec)); -@@ -63,14 +59,24 @@ static void __init kirkwood_legacy_clk_init(void) - orion_clkdev_add("1", "pcie", - of_clk_get_from_provider(&clkspec)); - -- clkspec.args[0] = CGC_BIT_GE1; -- orion_clkdev_add(NULL, "mv643xx_eth_port.1", -- of_clk_get_from_provider(&clkspec)); -- - clkspec.args[0] = CGC_BIT_SDIO; - orion_clkdev_add(NULL, "mvsdio", - of_clk_get_from_provider(&clkspec)); - -+ /* -+ * The ethernet interfaces forget the MAC address assigned by -+ * u-boot if the clocks are turned off. Until proper DT support -+ * is available we always enable them for now. -+ */ -+ clkspec.args[0] = CGC_BIT_GE0; -+ clk = of_clk_get_from_provider(&clkspec); -+ orion_clkdev_add(NULL, "mv643xx_eth_port.0", clk); -+ clk_prepare_enable(clk); -+ -+ clkspec.args[0] = CGC_BIT_GE1; -+ clk = of_clk_get_from_provider(&clkspec); -+ orion_clkdev_add(NULL, "mv643xx_eth_port.1", clk); -+ clk_prepare_enable(clk); - } - - static void __init kirkwood_of_clk_init(void) -diff --git a/arch/arm/mach-pxa/raumfeld.c b/arch/arm/mach-pxa/raumfeld.c -index 25b08bfa..6283fcb 100644 ---- a/arch/arm/mach-pxa/raumfeld.c -+++ b/arch/arm/mach-pxa/raumfeld.c -@@ -505,6 +505,7 @@ static struct w1_gpio_platform_data w1_gpio_platform_data = { - .pin = GPIO_ONE_WIRE, - .is_open_drain = 0, - .enable_external_pullup = w1_enable_external_pullup, -+ .ext_pullup_enable_pin = -EINVAL, - }; - - struct platform_device raumfeld_w1_gpio_device = { -diff --git a/arch/powerpc/include/asm/mmu-hash64.h b/arch/powerpc/include/asm/mmu-hash64.h -index 2fdb47a..b59e06f 100644 ---- a/arch/powerpc/include/asm/mmu-hash64.h -+++ b/arch/powerpc/include/asm/mmu-hash64.h -@@ -343,17 +343,16 @@ extern void slb_set_size(u16 size); - /* - * VSID allocation (256MB segment) - * -- * We first generate a 38-bit "proto-VSID". For kernel addresses this -- * is equal to the ESID | 1 << 37, for user addresses it is: -- * (context << USER_ESID_BITS) | (esid & ((1U << USER_ESID_BITS) - 1) -+ * We first generate a 37-bit "proto-VSID". Proto-VSIDs are generated -+ * from mmu context id and effective segment id of the address. - * -- * This splits the proto-VSID into the below range -- * 0 - (2^(CONTEXT_BITS + USER_ESID_BITS) - 1) : User proto-VSID range -- * 2^(CONTEXT_BITS + USER_ESID_BITS) - 2^(VSID_BITS) : Kernel proto-VSID range -- * -- * We also have CONTEXT_BITS + USER_ESID_BITS = VSID_BITS - 1 -- * That is, we assign half of the space to user processes and half -- * to the kernel. -+ * For user processes max context id is limited to ((1ul << 19) - 5) -+ * for kernel space, we use the top 4 context ids to map address as below -+ * NOTE: each context only support 64TB now. -+ * 0x7fffc - [ 0xc000000000000000 - 0xc0003fffffffffff ] -+ * 0x7fffd - [ 0xd000000000000000 - 0xd0003fffffffffff ] -+ * 0x7fffe - [ 0xe000000000000000 - 0xe0003fffffffffff ] -+ * 0x7ffff - [ 0xf000000000000000 - 0xf0003fffffffffff ] - * - * The proto-VSIDs are then scrambled into real VSIDs with the - * multiplicative hash: -@@ -363,41 +362,49 @@ extern void slb_set_size(u16 size); - * VSID_MULTIPLIER is prime, so in particular it is - * co-prime to VSID_MODULUS, making this a 1:1 scrambling function. - * Because the modulus is 2^n-1 we can compute it efficiently without -- * a divide or extra multiply (see below). -- * -- * This scheme has several advantages over older methods: -- * -- * - We have VSIDs allocated for every kernel address -- * (i.e. everything above 0xC000000000000000), except the very top -- * segment, which simplifies several things. -+ * a divide or extra multiply (see below). The scramble function gives -+ * robust scattering in the hash table (at least based on some initial -+ * results). - * -- * - We allow for USER_ESID_BITS significant bits of ESID and -- * CONTEXT_BITS bits of context for user addresses. -- * i.e. 64T (46 bits) of address space for up to half a million contexts. -+ * We also consider VSID 0 special. We use VSID 0 for slb entries mapping -+ * bad address. This enables us to consolidate bad address handling in -+ * hash_page. - * -- * - The scramble function gives robust scattering in the hash -- * table (at least based on some initial results). The previous -- * method was more susceptible to pathological cases giving excessive -- * hash collisions. -+ * We also need to avoid the last segment of the last context, because that -+ * would give a protovsid of 0x1fffffffff. That will result in a VSID 0 -+ * because of the modulo operation in vsid scramble. But the vmemmap -+ * (which is what uses region 0xf) will never be close to 64TB in size -+ * (it's 56 bytes per page of system memory). - */ - -+#define CONTEXT_BITS 19 -+#define ESID_BITS 18 -+#define ESID_BITS_1T 6 -+ -+/* -+ * 256MB segment -+ * The proto-VSID space has 2^(CONTEX_BITS + ESID_BITS) - 1 segments -+ * available for user + kernel mapping. The top 4 contexts are used for -+ * kernel mapping. Each segment contains 2^28 bytes. Each -+ * context maps 2^46 bytes (64TB) so we can support 2^19-1 contexts -+ * (19 == 37 + 28 - 46). -+ */ -+#define MAX_USER_CONTEXT ((ASM_CONST(1) << CONTEXT_BITS) - 5) -+ - /* - * This should be computed such that protovosid * vsid_mulitplier - * doesn't overflow 64 bits. It should also be co-prime to vsid_modulus - */ - #define VSID_MULTIPLIER_256M ASM_CONST(12538073) /* 24-bit prime */ --#define VSID_BITS_256M 38 -+#define VSID_BITS_256M (CONTEXT_BITS + ESID_BITS) - #define VSID_MODULUS_256M ((1UL<<VSID_BITS_256M)-1) - - #define VSID_MULTIPLIER_1T ASM_CONST(12538073) /* 24-bit prime */ --#define VSID_BITS_1T 26 -+#define VSID_BITS_1T (CONTEXT_BITS + ESID_BITS_1T) - #define VSID_MODULUS_1T ((1UL<<VSID_BITS_1T)-1) - --#define CONTEXT_BITS 19 --#define USER_ESID_BITS 18 --#define USER_ESID_BITS_1T 6 - --#define USER_VSID_RANGE (1UL << (USER_ESID_BITS + SID_SHIFT)) -+#define USER_VSID_RANGE (1UL << (ESID_BITS + SID_SHIFT)) - - /* - * This macro generates asm code to compute the VSID scramble -@@ -421,7 +428,8 @@ extern void slb_set_size(u16 size); - srdi rx,rt,VSID_BITS_##size; \ - clrldi rt,rt,(64-VSID_BITS_##size); \ - add rt,rt,rx; /* add high and low bits */ \ -- /* Now, r3 == VSID (mod 2^36-1), and lies between 0 and \ -+ /* NOTE: explanation based on VSID_BITS_##size = 36 \ -+ * Now, r3 == VSID (mod 2^36-1), and lies between 0 and \ - * 2^36-1+2^28-1. That in particular means that if r3 >= \ - * 2^36-1, then r3+1 has the 2^36 bit set. So, if r3+1 has \ - * the bit clear, r3 already has the answer we want, if it \ -@@ -513,34 +521,6 @@ typedef struct { - }) - #endif /* 1 */ - --/* -- * This is only valid for addresses >= PAGE_OFFSET -- * The proto-VSID space is divided into two class -- * User: 0 to 2^(CONTEXT_BITS + USER_ESID_BITS) -1 -- * kernel: 2^(CONTEXT_BITS + USER_ESID_BITS) to 2^(VSID_BITS) - 1 -- * -- * With KERNEL_START at 0xc000000000000000, the proto vsid for -- * the kernel ends up with 0xc00000000 (36 bits). With 64TB -- * support we need to have kernel proto-VSID in the -- * [2^37 to 2^38 - 1] range due to the increased USER_ESID_BITS. -- */ --static inline unsigned long get_kernel_vsid(unsigned long ea, int ssize) --{ -- unsigned long proto_vsid; -- /* -- * We need to make sure proto_vsid for the kernel is -- * >= 2^(CONTEXT_BITS + USER_ESID_BITS[_1T]) -- */ -- if (ssize == MMU_SEGSIZE_256M) { -- proto_vsid = ea >> SID_SHIFT; -- proto_vsid |= (1UL << (CONTEXT_BITS + USER_ESID_BITS)); -- return vsid_scramble(proto_vsid, 256M); -- } -- proto_vsid = ea >> SID_SHIFT_1T; -- proto_vsid |= (1UL << (CONTEXT_BITS + USER_ESID_BITS_1T)); -- return vsid_scramble(proto_vsid, 1T); --} -- - /* Returns the segment size indicator for a user address */ - static inline int user_segment_size(unsigned long addr) - { -@@ -550,17 +530,41 @@ static inline int user_segment_size(unsigned long addr) - return MMU_SEGSIZE_256M; - } - --/* This is only valid for user addresses (which are below 2^44) */ - static inline unsigned long get_vsid(unsigned long context, unsigned long ea, - int ssize) - { -+ /* -+ * Bad address. We return VSID 0 for that -+ */ -+ if ((ea & ~REGION_MASK) >= PGTABLE_RANGE) -+ return 0; -+ - if (ssize == MMU_SEGSIZE_256M) -- return vsid_scramble((context << USER_ESID_BITS) -+ return vsid_scramble((context << ESID_BITS) - | (ea >> SID_SHIFT), 256M); -- return vsid_scramble((context << USER_ESID_BITS_1T) -+ return vsid_scramble((context << ESID_BITS_1T) - | (ea >> SID_SHIFT_1T), 1T); - } - -+/* -+ * This is only valid for addresses >= PAGE_OFFSET -+ * -+ * For kernel space, we use the top 4 context ids to map address as below -+ * 0x7fffc - [ 0xc000000000000000 - 0xc0003fffffffffff ] -+ * 0x7fffd - [ 0xd000000000000000 - 0xd0003fffffffffff ] -+ * 0x7fffe - [ 0xe000000000000000 - 0xe0003fffffffffff ] -+ * 0x7ffff - [ 0xf000000000000000 - 0xf0003fffffffffff ] -+ */ -+static inline unsigned long get_kernel_vsid(unsigned long ea, int ssize) -+{ -+ unsigned long context; -+ -+ /* -+ * kernel take the top 4 context from the available range -+ */ -+ context = (MAX_USER_CONTEXT) + ((ea >> 60) - 0xc) + 1; -+ return get_vsid(context, ea, ssize); -+} - #endif /* __ASSEMBLY__ */ - - #endif /* _ASM_POWERPC_MMU_HASH64_H_ */ -diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c -index 75a3d71..19599ef 100644 ---- a/arch/powerpc/kernel/cputable.c -+++ b/arch/powerpc/kernel/cputable.c -@@ -275,7 +275,7 @@ static struct cpu_spec __initdata cpu_specs[] = { - .cpu_features = CPU_FTRS_PPC970, - .cpu_user_features = COMMON_USER_POWER4 | - PPC_FEATURE_HAS_ALTIVEC_COMP, -- .mmu_features = MMU_FTR_HPTE_TABLE, -+ .mmu_features = MMU_FTRS_PPC970, - .icache_bsize = 128, - .dcache_bsize = 128, - .num_pmcs = 8, -diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S -index 4665e82..3684cbd 100644 ---- a/arch/powerpc/kernel/exceptions-64s.S -+++ b/arch/powerpc/kernel/exceptions-64s.S -@@ -1268,20 +1268,36 @@ do_ste_alloc: - _GLOBAL(do_stab_bolted) - stw r9,PACA_EXSLB+EX_CCR(r13) /* save CR in exc. frame */ - std r11,PACA_EXSLB+EX_SRR0(r13) /* save SRR0 in exc. frame */ -+ mfspr r11,SPRN_DAR /* ea */ - -+ /* -+ * check for bad kernel/user address -+ * (ea & ~REGION_MASK) >= PGTABLE_RANGE -+ */ -+ rldicr. r9,r11,4,(63 - 46 - 4) -+ li r9,0 /* VSID = 0 for bad address */ -+ bne- 0f -+ -+ /* -+ * Calculate VSID: -+ * This is the kernel vsid, we take the top for context from -+ * the range. context = (MAX_USER_CONTEXT) + ((ea >> 60) - 0xc) + 1 -+ * Here we know that (ea >> 60) == 0xc -+ */ -+ lis r9,(MAX_USER_CONTEXT + 1)@ha -+ addi r9,r9,(MAX_USER_CONTEXT + 1)@l -+ -+ srdi r10,r11,SID_SHIFT -+ rldimi r10,r9,ESID_BITS,0 /* proto vsid */ -+ ASM_VSID_SCRAMBLE(r10, r9, 256M) -+ rldic r9,r10,12,16 /* r9 = vsid << 12 */ -+ -+0: - /* Hash to the primary group */ - ld r10,PACASTABVIRT(r13) -- mfspr r11,SPRN_DAR -- srdi r11,r11,28 -+ srdi r11,r11,SID_SHIFT - rldimi r10,r11,7,52 /* r10 = first ste of the group */ - -- /* Calculate VSID */ -- /* This is a kernel address, so protovsid = ESID | 1 << 37 */ -- li r9,0x1 -- rldimi r11,r9,(CONTEXT_BITS + USER_ESID_BITS),0 -- ASM_VSID_SCRAMBLE(r11, r9, 256M) -- rldic r9,r11,12,16 /* r9 = vsid << 12 */ -- - /* Search the primary group for a free entry */ - 1: ld r11,0(r10) /* Test valid bit of the current ste */ - andi. r11,r11,0x80 -diff --git a/arch/powerpc/kvm/book3s_64_mmu_host.c b/arch/powerpc/kvm/book3s_64_mmu_host.c -index ead58e3..5d7d29a 100644 ---- a/arch/powerpc/kvm/book3s_64_mmu_host.c -+++ b/arch/powerpc/kvm/book3s_64_mmu_host.c -@@ -326,8 +326,8 @@ int kvmppc_mmu_init(struct kvm_vcpu *vcpu) - vcpu3s->context_id[0] = err; - - vcpu3s->proto_vsid_max = ((vcpu3s->context_id[0] + 1) -- << USER_ESID_BITS) - 1; -- vcpu3s->proto_vsid_first = vcpu3s->context_id[0] << USER_ESID_BITS; -+ << ESID_BITS) - 1; -+ vcpu3s->proto_vsid_first = vcpu3s->context_id[0] << ESID_BITS; - vcpu3s->proto_vsid_next = vcpu3s->proto_vsid_first; - - kvmppc_mmu_hpte_init(vcpu); -diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c -index 3a292be..004630b 100644 ---- a/arch/powerpc/mm/hash_utils_64.c -+++ b/arch/powerpc/mm/hash_utils_64.c -@@ -194,6 +194,11 @@ int htab_bolt_mapping(unsigned long vstart, unsigned long vend, - unsigned long vpn = hpt_vpn(vaddr, vsid, ssize); - unsigned long tprot = prot; - -+ /* -+ * If we hit a bad address return error. -+ */ -+ if (!vsid) -+ return -1; - /* Make kernel text executable */ - if (overlaps_kernel_text(vaddr, vaddr + step)) - tprot &= ~HPTE_R_N; -@@ -758,6 +763,8 @@ void __init early_init_mmu(void) - /* Initialize stab / SLB management */ - if (mmu_has_feature(MMU_FTR_SLB)) - slb_initialize(); -+ else -+ stab_initialize(get_paca()->stab_real); - } - - #ifdef CONFIG_SMP -@@ -921,11 +928,6 @@ int hash_page(unsigned long ea, unsigned long access, unsigned long trap) - DBG_LOW("hash_page(ea=%016lx, access=%lx, trap=%lx\n", - ea, access, trap); - -- if ((ea & ~REGION_MASK) >= PGTABLE_RANGE) { -- DBG_LOW(" out of pgtable range !\n"); -- return 1; -- } -- - /* Get region & vsid */ - switch (REGION_ID(ea)) { - case USER_REGION_ID: -@@ -956,6 +958,11 @@ int hash_page(unsigned long ea, unsigned long access, unsigned long trap) - } - DBG_LOW(" mm=%p, mm->pgdir=%p, vsid=%016lx\n", mm, mm->pgd, vsid); - -+ /* Bad address. */ -+ if (!vsid) { -+ DBG_LOW("Bad address!\n"); -+ return 1; -+ } - /* Get pgdir */ - pgdir = mm->pgd; - if (pgdir == NULL) -@@ -1125,6 +1132,8 @@ void hash_preload(struct mm_struct *mm, unsigned long ea, - /* Get VSID */ - ssize = user_segment_size(ea); - vsid = get_vsid(mm->context.id, ea, ssize); -+ if (!vsid) -+ return; - - /* Hash doesn't like irqs */ - local_irq_save(flags); -@@ -1217,6 +1226,9 @@ static void kernel_map_linear_page(unsigned long vaddr, unsigned long lmi) - hash = hpt_hash(vpn, PAGE_SHIFT, mmu_kernel_ssize); - hpteg = ((hash & htab_hash_mask) * HPTES_PER_GROUP); - -+ /* Don't create HPTE entries for bad address */ -+ if (!vsid) -+ return; - ret = ppc_md.hpte_insert(hpteg, vpn, __pa(vaddr), - mode, HPTE_V_BOLTED, - mmu_linear_psize, mmu_kernel_ssize); -diff --git a/arch/powerpc/mm/mmu_context_hash64.c b/arch/powerpc/mm/mmu_context_hash64.c -index 40bc5b0..d1d1b92 100644 ---- a/arch/powerpc/mm/mmu_context_hash64.c -+++ b/arch/powerpc/mm/mmu_context_hash64.c -@@ -29,15 +29,6 @@ - static DEFINE_SPINLOCK(mmu_context_lock); - static DEFINE_IDA(mmu_context_ida); - --/* -- * 256MB segment -- * The proto-VSID space has 2^(CONTEX_BITS + USER_ESID_BITS) - 1 segments -- * available for user mappings. Each segment contains 2^28 bytes. Each -- * context maps 2^46 bytes (64TB) so we can support 2^19-1 contexts -- * (19 == 37 + 28 - 46). -- */ --#define MAX_CONTEXT ((1UL << CONTEXT_BITS) - 1) -- - int __init_new_context(void) - { - int index; -@@ -56,7 +47,7 @@ again: - else if (err) - return err; - -- if (index > MAX_CONTEXT) { -+ if (index > MAX_USER_CONTEXT) { - spin_lock(&mmu_context_lock); - ida_remove(&mmu_context_ida, index); - spin_unlock(&mmu_context_lock); -diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c -index e212a27..654258f 100644 ---- a/arch/powerpc/mm/pgtable_64.c -+++ b/arch/powerpc/mm/pgtable_64.c -@@ -61,7 +61,7 @@ - #endif - - #ifdef CONFIG_PPC_STD_MMU_64 --#if TASK_SIZE_USER64 > (1UL << (USER_ESID_BITS + SID_SHIFT)) -+#if TASK_SIZE_USER64 > (1UL << (ESID_BITS + SID_SHIFT)) - #error TASK_SIZE_USER64 exceeds user VSID range - #endif - #endif -diff --git a/arch/powerpc/mm/slb_low.S b/arch/powerpc/mm/slb_low.S -index 1a16ca2..17aa6df 100644 ---- a/arch/powerpc/mm/slb_low.S -+++ b/arch/powerpc/mm/slb_low.S -@@ -31,10 +31,15 @@ - * No other registers are examined or changed. - */ - _GLOBAL(slb_allocate_realmode) -- /* r3 = faulting address */ -+ /* -+ * check for bad kernel/user address -+ * (ea & ~REGION_MASK) >= PGTABLE_RANGE -+ */ -+ rldicr. r9,r3,4,(63 - 46 - 4) -+ bne- 8f - - srdi r9,r3,60 /* get region */ -- srdi r10,r3,28 /* get esid */ -+ srdi r10,r3,SID_SHIFT /* get esid */ - cmpldi cr7,r9,0xc /* cmp PAGE_OFFSET for later use */ - - /* r3 = address, r10 = esid, cr7 = <> PAGE_OFFSET */ -@@ -56,12 +61,14 @@ _GLOBAL(slb_allocate_realmode) - */ - _GLOBAL(slb_miss_kernel_load_linear) - li r11,0 -- li r9,0x1 - /* -- * for 1T we shift 12 bits more. slb_finish_load_1T will do -- * the necessary adjustment -+ * context = (MAX_USER_CONTEXT) + ((ea >> 60) - 0xc) + 1 -+ * r9 = region id. - */ -- rldimi r10,r9,(CONTEXT_BITS + USER_ESID_BITS),0 -+ addis r9,r9,(MAX_USER_CONTEXT - 0xc + 1)@ha -+ addi r9,r9,(MAX_USER_CONTEXT - 0xc + 1)@l -+ -+ - BEGIN_FTR_SECTION - b slb_finish_load - END_MMU_FTR_SECTION_IFCLR(MMU_FTR_1T_SEGMENT) -@@ -91,24 +98,19 @@ _GLOBAL(slb_miss_kernel_load_vmemmap) - _GLOBAL(slb_miss_kernel_load_io) - li r11,0 - 6: -- li r9,0x1 - /* -- * for 1T we shift 12 bits more. slb_finish_load_1T will do -- * the necessary adjustment -+ * context = (MAX_USER_CONTEXT) + ((ea >> 60) - 0xc) + 1 -+ * r9 = region id. - */ -- rldimi r10,r9,(CONTEXT_BITS + USER_ESID_BITS),0 -+ addis r9,r9,(MAX_USER_CONTEXT - 0xc + 1)@ha -+ addi r9,r9,(MAX_USER_CONTEXT - 0xc + 1)@l -+ - BEGIN_FTR_SECTION - b slb_finish_load - END_MMU_FTR_SECTION_IFCLR(MMU_FTR_1T_SEGMENT) - b slb_finish_load_1T - --0: /* user address: proto-VSID = context << 15 | ESID. First check -- * if the address is within the boundaries of the user region -- */ -- srdi. r9,r10,USER_ESID_BITS -- bne- 8f /* invalid ea bits set */ -- -- -+0: - /* when using slices, we extract the psize off the slice bitmaps - * and then we need to get the sllp encoding off the mmu_psize_defs - * array. -@@ -164,15 +166,13 @@ END_MMU_FTR_SECTION_IFCLR(MMU_FTR_1T_SEGMENT) - ld r9,PACACONTEXTID(r13) - BEGIN_FTR_SECTION - cmpldi r10,0x1000 --END_MMU_FTR_SECTION_IFSET(MMU_FTR_1T_SEGMENT) -- rldimi r10,r9,USER_ESID_BITS,0 --BEGIN_FTR_SECTION - bge slb_finish_load_1T - END_MMU_FTR_SECTION_IFSET(MMU_FTR_1T_SEGMENT) - b slb_finish_load - - 8: /* invalid EA */ - li r10,0 /* BAD_VSID */ -+ li r9,0 /* BAD_VSID */ - li r11,SLB_VSID_USER /* flags don't much matter */ - b slb_finish_load - -@@ -221,8 +221,6 @@ _GLOBAL(slb_allocate_user) - - /* get context to calculate proto-VSID */ - ld r9,PACACONTEXTID(r13) -- rldimi r10,r9,USER_ESID_BITS,0 -- - /* fall through slb_finish_load */ - - #endif /* __DISABLED__ */ -@@ -231,9 +229,10 @@ _GLOBAL(slb_allocate_user) - /* - * Finish loading of an SLB entry and return - * -- * r3 = EA, r10 = proto-VSID, r11 = flags, clobbers r9, cr7 = <> PAGE_OFFSET -+ * r3 = EA, r9 = context, r10 = ESID, r11 = flags, clobbers r9, cr7 = <> PAGE_OFFSET - */ - slb_finish_load: -+ rldimi r10,r9,ESID_BITS,0 - ASM_VSID_SCRAMBLE(r10,r9,256M) - /* - * bits above VSID_BITS_256M need to be ignored from r10 -@@ -298,10 +297,11 @@ _GLOBAL(slb_compare_rr_to_size) - /* - * Finish loading of a 1T SLB entry (for the kernel linear mapping) and return. - * -- * r3 = EA, r10 = proto-VSID, r11 = flags, clobbers r9 -+ * r3 = EA, r9 = context, r10 = ESID(256MB), r11 = flags, clobbers r9 - */ - slb_finish_load_1T: -- srdi r10,r10,40-28 /* get 1T ESID */ -+ srdi r10,r10,(SID_SHIFT_1T - SID_SHIFT) /* get 1T ESID */ -+ rldimi r10,r9,ESID_BITS_1T,0 - ASM_VSID_SCRAMBLE(r10,r9,1T) - /* - * bits above VSID_BITS_1T need to be ignored from r10 -diff --git a/arch/powerpc/mm/tlb_hash64.c b/arch/powerpc/mm/tlb_hash64.c -index 0d82ef5..023ec8a 100644 ---- a/arch/powerpc/mm/tlb_hash64.c -+++ b/arch/powerpc/mm/tlb_hash64.c -@@ -82,11 +82,11 @@ void hpte_need_flush(struct mm_struct *mm, unsigned long addr, - if (!is_kernel_addr(addr)) { - ssize = user_segment_size(addr); - vsid = get_vsid(mm->context.id, addr, ssize); -- WARN_ON(vsid == 0); - } else { - vsid = get_kernel_vsid(addr, mmu_kernel_ssize); - ssize = mmu_kernel_ssize; - } -+ WARN_ON(vsid == 0); - vpn = hpt_vpn(addr, vsid, ssize); - rpte = __real_pte(__pte(pte), ptep); - -diff --git a/arch/s390/include/asm/tlbflush.h b/arch/s390/include/asm/tlbflush.h -index 1d8fe2b..6b32af3 100644 ---- a/arch/s390/include/asm/tlbflush.h -+++ b/arch/s390/include/asm/tlbflush.h -@@ -74,8 +74,6 @@ static inline void __tlb_flush_idte(unsigned long asce) - - static inline void __tlb_flush_mm(struct mm_struct * mm) - { -- if (unlikely(cpumask_empty(mm_cpumask(mm)))) -- return; - /* - * If the machine has IDTE we prefer to do a per mm flush - * on all cpus instead of doing a local flush if the mm -diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S -index 5502285..94feff7 100644 ---- a/arch/s390/kernel/entry.S -+++ b/arch/s390/kernel/entry.S -@@ -636,7 +636,8 @@ ENTRY(mcck_int_handler) - UPDATE_VTIME %r14,%r15,__LC_MCCK_ENTER_TIMER - mcck_skip: - SWITCH_ASYNC __LC_GPREGS_SAVE_AREA+32,__LC_PANIC_STACK,PAGE_SHIFT -- mvc __PT_R0(64,%r11),__LC_GPREGS_SAVE_AREA -+ stm %r0,%r7,__PT_R0(%r11) -+ mvc __PT_R8(32,%r11),__LC_GPREGS_SAVE_AREA+32 - stm %r8,%r9,__PT_PSW(%r11) - xc __SF_BACKCHAIN(4,%r15),__SF_BACKCHAIN(%r15) - l %r1,BASED(.Ldo_machine_check) -diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S -index 6d34e0c..082b845 100644 ---- a/arch/s390/kernel/entry64.S -+++ b/arch/s390/kernel/entry64.S -@@ -678,8 +678,9 @@ ENTRY(mcck_int_handler) - UPDATE_VTIME %r14,__LC_MCCK_ENTER_TIMER - LAST_BREAK %r14 - mcck_skip: -- lghi %r14,__LC_GPREGS_SAVE_AREA -- mvc __PT_R0(128,%r11),0(%r14) -+ lghi %r14,__LC_GPREGS_SAVE_AREA+64 -+ stmg %r0,%r7,__PT_R0(%r11) -+ mvc __PT_R8(64,%r11),0(%r14) - stmg %r8,%r9,__PT_PSW(%r11) - xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) - lgr %r2,%r11 # pass pointer to pt_regs -diff --git a/arch/x86/kernel/cpu/perf_event_intel_ds.c b/arch/x86/kernel/cpu/perf_event_intel_ds.c -index 826054a..b05a575 100644 ---- a/arch/x86/kernel/cpu/perf_event_intel_ds.c -+++ b/arch/x86/kernel/cpu/perf_event_intel_ds.c -@@ -729,3 +729,13 @@ void intel_ds_init(void) - } - } - } -+ -+void perf_restore_debug_store(void) -+{ -+ struct debug_store *ds = __this_cpu_read(cpu_hw_events.ds); -+ -+ if (!x86_pmu.bts && !x86_pmu.pebs) -+ return; -+ -+ wrmsrl(MSR_IA32_DS_AREA, (unsigned long)ds); -+} -diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c -index 120cee1..3c68768 100644 ---- a/arch/x86/power/cpu.c -+++ b/arch/x86/power/cpu.c -@@ -11,6 +11,7 @@ - #include <linux/suspend.h> - #include <linux/export.h> - #include <linux/smp.h> -+#include <linux/perf_event.h> - - #include <asm/pgtable.h> - #include <asm/proto.h> -@@ -228,6 +229,7 @@ static void __restore_processor_state(struct saved_context *ctxt) - do_fpu_end(); - x86_platform.restore_sched_clock_state(); - mtrr_bp_restore(); -+ perf_restore_debug_store(); - } - - /* Needed by apm.c */ -diff --git a/drivers/block/loop.c b/drivers/block/loop.c -index ae12512..8bc6d39 100644 ---- a/drivers/block/loop.c -+++ b/drivers/block/loop.c -@@ -1285,11 +1285,9 @@ static int loop_set_capacity(struct loop_device *lo, struct block_device *bdev) - /* the width of sector_t may be narrow for bit-shift */ - sz = sec; - sz <<= 9; -- mutex_lock(&bdev->bd_mutex); - bd_set_size(bdev, sz); - /* let user-space know about the new size */ - kobject_uevent(&disk_to_dev(bdev->bd_disk)->kobj, KOBJ_CHANGE); -- mutex_unlock(&bdev->bd_mutex); - - out: - return err; -@@ -1858,11 +1856,15 @@ static int __init loop_init(void) - max_part = (1UL << part_shift) - 1; - } - -- if ((1UL << part_shift) > DISK_MAX_PARTS) -- return -EINVAL; -+ if ((1UL << part_shift) > DISK_MAX_PARTS) { -+ err = -EINVAL; -+ goto misc_out; -+ } - -- if (max_loop > 1UL << (MINORBITS - part_shift)) -- return -EINVAL; -+ if (max_loop > 1UL << (MINORBITS - part_shift)) { -+ err = -EINVAL; -+ goto misc_out; -+ } - - /* - * If max_loop is specified, create that many devices upfront. -@@ -1880,8 +1882,10 @@ static int __init loop_init(void) - range = 1UL << MINORBITS; - } - -- if (register_blkdev(LOOP_MAJOR, "loop")) -- return -EIO; -+ if (register_blkdev(LOOP_MAJOR, "loop")) { -+ err = -EIO; -+ goto misc_out; -+ } - - blk_register_region(MKDEV(LOOP_MAJOR, 0), range, - THIS_MODULE, loop_probe, NULL, NULL); -@@ -1894,6 +1898,10 @@ static int __init loop_init(void) - - printk(KERN_INFO "loop: module loaded\n"); - return 0; -+ -+misc_out: -+ misc_deregister(&loop_misc); -+ return err; - } - - static int loop_exit_cb(int id, void *ptr, void *data) -diff --git a/drivers/char/hw_random/virtio-rng.c b/drivers/char/hw_random/virtio-rng.c -index b65c103..1acc4e0 100644 ---- a/drivers/char/hw_random/virtio-rng.c -+++ b/drivers/char/hw_random/virtio-rng.c -@@ -92,14 +92,22 @@ static int probe_common(struct virtio_device *vdev) - { - int err; - -+ if (vq) { -+ /* We only support one device for now */ -+ return -EBUSY; -+ } - /* We expect a single virtqueue. */ - vq = virtio_find_single_vq(vdev, random_recv_done, "input"); -- if (IS_ERR(vq)) -- return PTR_ERR(vq); -+ if (IS_ERR(vq)) { -+ err = PTR_ERR(vq); -+ vq = NULL; -+ return err; -+ } - - err = hwrng_register(&virtio_hwrng); - if (err) { - vdev->config->del_vqs(vdev); -+ vq = NULL; - return err; - } - -@@ -112,6 +120,7 @@ static void remove_common(struct virtio_device *vdev) - busy = false; - hwrng_unregister(&virtio_hwrng); - vdev->config->del_vqs(vdev); -+ vq = NULL; - } - - static int virtrng_probe(struct virtio_device *vdev) -diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c -index 5206f24..99daa89 100644 ---- a/drivers/gpu/drm/i915/i915_dma.c -+++ b/drivers/gpu/drm/i915/i915_dma.c -@@ -1297,21 +1297,19 @@ static int i915_load_modeset_init(struct drm_device *dev) - if (ret) - goto cleanup_vga_switcheroo; - -- ret = drm_irq_install(dev); -- if (ret) -- goto cleanup_gem_stolen; -- -- /* Important: The output setup functions called by modeset_init need -- * working irqs for e.g. gmbus and dp aux transfers. */ - intel_modeset_init(dev); - - ret = i915_gem_init(dev); - if (ret) -- goto cleanup_irq; -+ goto cleanup_gem_stolen; -+ -+ intel_modeset_gem_init(dev); - - INIT_WORK(&dev_priv->console_resume_work, intel_console_resume); - -- intel_modeset_gem_init(dev); -+ ret = drm_irq_install(dev); -+ if (ret) -+ goto cleanup_gem; - - /* Always safe in the mode setting case. */ - /* FIXME: do pre/post-mode set stuff in core KMS code */ -@@ -1319,10 +1317,7 @@ static int i915_load_modeset_init(struct drm_device *dev) - - ret = intel_fbdev_init(dev); - if (ret) -- goto cleanup_gem; -- -- /* Only enable hotplug handling once the fbdev is fully set up. */ -- dev_priv->enable_hotplug_processing = true; -+ goto cleanup_irq; - - drm_kms_helper_poll_init(dev); - -@@ -1331,13 +1326,13 @@ static int i915_load_modeset_init(struct drm_device *dev) - - return 0; - -+cleanup_irq: -+ drm_irq_uninstall(dev); - cleanup_gem: - mutex_lock(&dev->struct_mutex); - i915_gem_cleanup_ringbuffer(dev); - mutex_unlock(&dev->struct_mutex); - i915_gem_cleanup_aliasing_ppgtt(dev); --cleanup_irq: -- drm_irq_uninstall(dev); - cleanup_gem_stolen: - i915_gem_cleanup_stolen(dev); - cleanup_vga_switcheroo: -diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c -index fb6454c..79f5fc5 100644 ---- a/drivers/gpu/drm/i915/i915_drv.c -+++ b/drivers/gpu/drm/i915/i915_drv.c -@@ -486,7 +486,6 @@ static int i915_drm_freeze(struct drm_device *dev) - intel_modeset_disable(dev); - - drm_irq_uninstall(dev); -- dev_priv->enable_hotplug_processing = false; - } - - i915_save_state(dev); -@@ -563,19 +562,9 @@ static int __i915_drm_thaw(struct drm_device *dev) - error = i915_gem_init_hw(dev); - mutex_unlock(&dev->struct_mutex); - -- /* We need working interrupts for modeset enabling ... */ -- drm_irq_install(dev); -- - intel_modeset_init_hw(dev); - intel_modeset_setup_hw_state(dev, false); -- -- /* -- * ... but also need to make sure that hotplug processing -- * doesn't cause havoc. Like in the driver load code we don't -- * bother with the tiny race here where we might loose hotplug -- * notifications. -- * */ -- dev_priv->enable_hotplug_processing = true; -+ drm_irq_install(dev); - } - - intel_opregion_init(dev); -diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h -index 66ad64f..7339a4b 100644 ---- a/drivers/gpu/drm/i915/i915_drv.h -+++ b/drivers/gpu/drm/i915/i915_drv.h -@@ -672,7 +672,6 @@ typedef struct drm_i915_private { - - u32 hotplug_supported_mask; - struct work_struct hotplug_work; -- bool enable_hotplug_processing; - - int num_pipe; - int num_pch_pll; -diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index 3c00403..fe84338 100644 ---- a/drivers/gpu/drm/i915/i915_irq.c -+++ b/drivers/gpu/drm/i915/i915_irq.c -@@ -287,10 +287,6 @@ static void i915_hotplug_work_func(struct work_struct *work) - struct drm_mode_config *mode_config = &dev->mode_config; - struct intel_encoder *encoder; - -- /* HPD irq before everything is fully set up. */ -- if (!dev_priv->enable_hotplug_processing) -- return; -- - mutex_lock(&mode_config->mutex); - DRM_DEBUG_KMS("running encoder hotplug functions\n"); - -diff --git a/drivers/hwmon/lineage-pem.c b/drivers/hwmon/lineage-pem.c -index 41df29f..ebbb9f4 100644 ---- a/drivers/hwmon/lineage-pem.c -+++ b/drivers/hwmon/lineage-pem.c -@@ -422,6 +422,7 @@ static struct attribute *pem_input_attributes[] = { - &sensor_dev_attr_in2_input.dev_attr.attr, - &sensor_dev_attr_curr1_input.dev_attr.attr, - &sensor_dev_attr_power1_input.dev_attr.attr, -+ NULL - }; - - static const struct attribute_group pem_input_group = { -@@ -432,6 +433,7 @@ static struct attribute *pem_fan_attributes[] = { - &sensor_dev_attr_fan1_input.dev_attr.attr, - &sensor_dev_attr_fan2_input.dev_attr.attr, - &sensor_dev_attr_fan3_input.dev_attr.attr, -+ NULL - }; - - static const struct attribute_group pem_fan_group = { -diff --git a/drivers/hwmon/pmbus/ltc2978.c b/drivers/hwmon/pmbus/ltc2978.c -index a58de38..6d61307 100644 ---- a/drivers/hwmon/pmbus/ltc2978.c -+++ b/drivers/hwmon/pmbus/ltc2978.c -@@ -59,7 +59,7 @@ enum chips { ltc2978, ltc3880 }; - struct ltc2978_data { - enum chips id; - int vin_min, vin_max; -- int temp_min, temp_max; -+ int temp_min, temp_max[2]; - int vout_min[8], vout_max[8]; - int iout_max[2]; - int temp2_max; -@@ -113,9 +113,10 @@ static int ltc2978_read_word_data_common(struct i2c_client *client, int page, - ret = pmbus_read_word_data(client, page, - LTC2978_MFR_TEMPERATURE_PEAK); - if (ret >= 0) { -- if (lin11_to_val(ret) > lin11_to_val(data->temp_max)) -- data->temp_max = ret; -- ret = data->temp_max; -+ if (lin11_to_val(ret) -+ > lin11_to_val(data->temp_max[page])) -+ data->temp_max[page] = ret; -+ ret = data->temp_max[page]; - } - break; - case PMBUS_VIRT_RESET_VOUT_HISTORY: -@@ -266,7 +267,7 @@ static int ltc2978_write_word_data(struct i2c_client *client, int page, - break; - case PMBUS_VIRT_RESET_TEMP_HISTORY: - data->temp_min = 0x7bff; -- data->temp_max = 0x7c00; -+ data->temp_max[page] = 0x7c00; - ret = ltc2978_clear_peaks(client, page, data->id); - break; - default: -@@ -323,7 +324,8 @@ static int ltc2978_probe(struct i2c_client *client, - data->vin_min = 0x7bff; - data->vin_max = 0x7c00; - data->temp_min = 0x7bff; -- data->temp_max = 0x7c00; -+ for (i = 0; i < ARRAY_SIZE(data->temp_max); i++) -+ data->temp_max[i] = 0x7c00; - data->temp2_max = 0x7c00; - - switch (data->id) { -diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c -index 3766682..db04f53 100644 ---- a/drivers/mtd/nand/nand_base.c -+++ b/drivers/mtd/nand/nand_base.c -@@ -1527,6 +1527,14 @@ static int nand_do_read_ops(struct mtd_info *mtd, loff_t from, - oobreadlen -= toread; - } - } -+ -+ if (chip->options & NAND_NEED_READRDY) { -+ /* Apply delay or wait for ready/busy pin */ -+ if (!chip->dev_ready) -+ udelay(chip->chip_delay); -+ else -+ nand_wait_ready(mtd); -+ } - } else { - memcpy(buf, chip->buffers->databuf + col, bytes); - buf += bytes; -@@ -1791,6 +1799,14 @@ static int nand_do_read_oob(struct mtd_info *mtd, loff_t from, - len = min(len, readlen); - buf = nand_transfer_oob(chip, buf, ops, len); - -+ if (chip->options & NAND_NEED_READRDY) { -+ /* Apply delay or wait for ready/busy pin */ -+ if (!chip->dev_ready) -+ udelay(chip->chip_delay); -+ else -+ nand_wait_ready(mtd); -+ } -+ - readlen -= len; - if (!readlen) - break; -diff --git a/drivers/mtd/nand/nand_ids.c b/drivers/mtd/nand/nand_ids.c -index e3aa274..9c61238 100644 ---- a/drivers/mtd/nand/nand_ids.c -+++ b/drivers/mtd/nand/nand_ids.c -@@ -22,49 +22,51 @@ - * 512 512 Byte page size - */ - struct nand_flash_dev nand_flash_ids[] = { -+#define SP_OPTIONS NAND_NEED_READRDY -+#define SP_OPTIONS16 (SP_OPTIONS | NAND_BUSWIDTH_16) - - #ifdef CONFIG_MTD_NAND_MUSEUM_IDS -- {"NAND 1MiB 5V 8-bit", 0x6e, 256, 1, 0x1000, 0}, -- {"NAND 2MiB 5V 8-bit", 0x64, 256, 2, 0x1000, 0}, -- {"NAND 4MiB 5V 8-bit", 0x6b, 512, 4, 0x2000, 0}, -- {"NAND 1MiB 3,3V 8-bit", 0xe8, 256, 1, 0x1000, 0}, -- {"NAND 1MiB 3,3V 8-bit", 0xec, 256, 1, 0x1000, 0}, -- {"NAND 2MiB 3,3V 8-bit", 0xea, 256, 2, 0x1000, 0}, -- {"NAND 4MiB 3,3V 8-bit", 0xd5, 512, 4, 0x2000, 0}, -- {"NAND 4MiB 3,3V 8-bit", 0xe3, 512, 4, 0x2000, 0}, -- {"NAND 4MiB 3,3V 8-bit", 0xe5, 512, 4, 0x2000, 0}, -- {"NAND 8MiB 3,3V 8-bit", 0xd6, 512, 8, 0x2000, 0}, -- -- {"NAND 8MiB 1,8V 8-bit", 0x39, 512, 8, 0x2000, 0}, -- {"NAND 8MiB 3,3V 8-bit", 0xe6, 512, 8, 0x2000, 0}, -- {"NAND 8MiB 1,8V 16-bit", 0x49, 512, 8, 0x2000, NAND_BUSWIDTH_16}, -- {"NAND 8MiB 3,3V 16-bit", 0x59, 512, 8, 0x2000, NAND_BUSWIDTH_16}, -+ {"NAND 1MiB 5V 8-bit", 0x6e, 256, 1, 0x1000, SP_OPTIONS}, -+ {"NAND 2MiB 5V 8-bit", 0x64, 256, 2, 0x1000, SP_OPTIONS}, -+ {"NAND 4MiB 5V 8-bit", 0x6b, 512, 4, 0x2000, SP_OPTIONS}, -+ {"NAND 1MiB 3,3V 8-bit", 0xe8, 256, 1, 0x1000, SP_OPTIONS}, -+ {"NAND 1MiB 3,3V 8-bit", 0xec, 256, 1, 0x1000, SP_OPTIONS}, -+ {"NAND 2MiB 3,3V 8-bit", 0xea, 256, 2, 0x1000, SP_OPTIONS}, -+ {"NAND 4MiB 3,3V 8-bit", 0xd5, 512, 4, 0x2000, SP_OPTIONS}, -+ {"NAND 4MiB 3,3V 8-bit", 0xe3, 512, 4, 0x2000, SP_OPTIONS}, -+ {"NAND 4MiB 3,3V 8-bit", 0xe5, 512, 4, 0x2000, SP_OPTIONS}, -+ {"NAND 8MiB 3,3V 8-bit", 0xd6, 512, 8, 0x2000, SP_OPTIONS}, -+ -+ {"NAND 8MiB 1,8V 8-bit", 0x39, 512, 8, 0x2000, SP_OPTIONS}, -+ {"NAND 8MiB 3,3V 8-bit", 0xe6, 512, 8, 0x2000, SP_OPTIONS}, -+ {"NAND 8MiB 1,8V 16-bit", 0x49, 512, 8, 0x2000, SP_OPTIONS16}, -+ {"NAND 8MiB 3,3V 16-bit", 0x59, 512, 8, 0x2000, SP_OPTIONS16}, - #endif - -- {"NAND 16MiB 1,8V 8-bit", 0x33, 512, 16, 0x4000, 0}, -- {"NAND 16MiB 3,3V 8-bit", 0x73, 512, 16, 0x4000, 0}, -- {"NAND 16MiB 1,8V 16-bit", 0x43, 512, 16, 0x4000, NAND_BUSWIDTH_16}, -- {"NAND 16MiB 3,3V 16-bit", 0x53, 512, 16, 0x4000, NAND_BUSWIDTH_16}, -- -- {"NAND 32MiB 1,8V 8-bit", 0x35, 512, 32, 0x4000, 0}, -- {"NAND 32MiB 3,3V 8-bit", 0x75, 512, 32, 0x4000, 0}, -- {"NAND 32MiB 1,8V 16-bit", 0x45, 512, 32, 0x4000, NAND_BUSWIDTH_16}, -- {"NAND 32MiB 3,3V 16-bit", 0x55, 512, 32, 0x4000, NAND_BUSWIDTH_16}, -- -- {"NAND 64MiB 1,8V 8-bit", 0x36, 512, 64, 0x4000, 0}, -- {"NAND 64MiB 3,3V 8-bit", 0x76, 512, 64, 0x4000, 0}, -- {"NAND 64MiB 1,8V 16-bit", 0x46, 512, 64, 0x4000, NAND_BUSWIDTH_16}, -- {"NAND 64MiB 3,3V 16-bit", 0x56, 512, 64, 0x4000, NAND_BUSWIDTH_16}, -- -- {"NAND 128MiB 1,8V 8-bit", 0x78, 512, 128, 0x4000, 0}, -- {"NAND 128MiB 1,8V 8-bit", 0x39, 512, 128, 0x4000, 0}, -- {"NAND 128MiB 3,3V 8-bit", 0x79, 512, 128, 0x4000, 0}, -- {"NAND 128MiB 1,8V 16-bit", 0x72, 512, 128, 0x4000, NAND_BUSWIDTH_16}, -- {"NAND 128MiB 1,8V 16-bit", 0x49, 512, 128, 0x4000, NAND_BUSWIDTH_16}, -- {"NAND 128MiB 3,3V 16-bit", 0x74, 512, 128, 0x4000, NAND_BUSWIDTH_16}, -- {"NAND 128MiB 3,3V 16-bit", 0x59, 512, 128, 0x4000, NAND_BUSWIDTH_16}, -- -- {"NAND 256MiB 3,3V 8-bit", 0x71, 512, 256, 0x4000, 0}, -+ {"NAND 16MiB 1,8V 8-bit", 0x33, 512, 16, 0x4000, SP_OPTIONS}, -+ {"NAND 16MiB 3,3V 8-bit", 0x73, 512, 16, 0x4000, SP_OPTIONS}, -+ {"NAND 16MiB 1,8V 16-bit", 0x43, 512, 16, 0x4000, SP_OPTIONS16}, -+ {"NAND 16MiB 3,3V 16-bit", 0x53, 512, 16, 0x4000, SP_OPTIONS16}, -+ -+ {"NAND 32MiB 1,8V 8-bit", 0x35, 512, 32, 0x4000, SP_OPTIONS}, -+ {"NAND 32MiB 3,3V 8-bit", 0x75, 512, 32, 0x4000, SP_OPTIONS}, -+ {"NAND 32MiB 1,8V 16-bit", 0x45, 512, 32, 0x4000, SP_OPTIONS16}, -+ {"NAND 32MiB 3,3V 16-bit", 0x55, 512, 32, 0x4000, SP_OPTIONS16}, -+ -+ {"NAND 64MiB 1,8V 8-bit", 0x36, 512, 64, 0x4000, SP_OPTIONS}, -+ {"NAND 64MiB 3,3V 8-bit", 0x76, 512, 64, 0x4000, SP_OPTIONS}, -+ {"NAND 64MiB 1,8V 16-bit", 0x46, 512, 64, 0x4000, SP_OPTIONS16}, -+ {"NAND 64MiB 3,3V 16-bit", 0x56, 512, 64, 0x4000, SP_OPTIONS16}, -+ -+ {"NAND 128MiB 1,8V 8-bit", 0x78, 512, 128, 0x4000, SP_OPTIONS}, -+ {"NAND 128MiB 1,8V 8-bit", 0x39, 512, 128, 0x4000, SP_OPTIONS}, -+ {"NAND 128MiB 3,3V 8-bit", 0x79, 512, 128, 0x4000, SP_OPTIONS}, -+ {"NAND 128MiB 1,8V 16-bit", 0x72, 512, 128, 0x4000, SP_OPTIONS16}, -+ {"NAND 128MiB 1,8V 16-bit", 0x49, 512, 128, 0x4000, SP_OPTIONS16}, -+ {"NAND 128MiB 3,3V 16-bit", 0x74, 512, 128, 0x4000, SP_OPTIONS16}, -+ {"NAND 128MiB 3,3V 16-bit", 0x59, 512, 128, 0x4000, SP_OPTIONS16}, -+ -+ {"NAND 256MiB 3,3V 8-bit", 0x71, 512, 256, 0x4000, SP_OPTIONS}, - - /* - * These are the new chips with large page size. The pagesize and the -diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c -index b7d45f3..a079da17 100644 ---- a/drivers/net/bonding/bond_main.c -+++ b/drivers/net/bonding/bond_main.c -@@ -1943,7 +1943,6 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev) - } - - block_netpoll_tx(); -- call_netdevice_notifiers(NETDEV_RELEASE, bond_dev); - write_lock_bh(&bond->lock); - - slave = bond_get_slave_by_dev(bond, slave_dev); -@@ -2047,8 +2046,10 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev) - write_unlock_bh(&bond->lock); - unblock_netpoll_tx(); - -- if (bond->slave_cnt == 0) -+ if (bond->slave_cnt == 0) { - call_netdevice_notifiers(NETDEV_CHANGEADDR, bond->dev); -+ call_netdevice_notifiers(NETDEV_RELEASE, bond->dev); -+ } - - bond_compute_features(bond); - if (!(bond_dev->features & NETIF_F_VLAN_CHALLENGED) && -diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c -index 0035c01..bfcb8bc 100644 ---- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c -+++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c -@@ -2075,7 +2075,7 @@ static int atl1c_tx_map(struct atl1c_adapter *adapter, - if (unlikely(pci_dma_mapping_error(adapter->pdev, - buffer_info->dma))) - goto err_dma; -- -+ ATL1C_SET_BUFFER_STATE(buffer_info, ATL1C_BUFFER_BUSY); - ATL1C_SET_PCIMAP_TYPE(buffer_info, ATL1C_PCIMAP_SINGLE, - ATL1C_PCIMAP_TODEVICE); - mapped_len += map_len; -diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c -index 88291bb..bf3f4bc 100644 ---- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c -+++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c -@@ -1434,12 +1434,11 @@ int mlx4_en_alloc_resources(struct mlx4_en_priv *priv) - } - - #ifdef CONFIG_RFS_ACCEL -- priv->dev->rx_cpu_rmap = alloc_irq_cpu_rmap(priv->mdev->dev->caps.comp_pool); -- if (!priv->dev->rx_cpu_rmap) -- goto err; -- -- INIT_LIST_HEAD(&priv->filters); -- spin_lock_init(&priv->filters_lock); -+ if (priv->mdev->dev->caps.comp_pool) { -+ priv->dev->rx_cpu_rmap = alloc_irq_cpu_rmap(priv->mdev->dev->caps.comp_pool); -+ if (!priv->dev->rx_cpu_rmap) -+ goto err; -+ } - #endif - - return 0; -@@ -1634,6 +1633,11 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port, - if (err) - goto out; - -+#ifdef CONFIG_RFS_ACCEL -+ INIT_LIST_HEAD(&priv->filters); -+ spin_lock_init(&priv->filters_lock); -+#endif -+ - /* Allocate page for receive rings */ - err = mlx4_alloc_hwq_res(mdev->dev, &priv->res, - MLX4_EN_PAGE_SIZE, MLX4_EN_PAGE_SIZE); -diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c -index d3fb97d..e5cb723 100644 ---- a/drivers/net/macvlan.c -+++ b/drivers/net/macvlan.c -@@ -628,6 +628,7 @@ void macvlan_common_setup(struct net_device *dev) - ether_setup(dev); - - dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING); -+ dev->priv_flags |= IFF_UNICAST_FLT; - dev->netdev_ops = &macvlan_netdev_ops; - dev->destructor = free_netdev; - dev->header_ops = &macvlan_hard_header_ops, -diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c -index ad86660..8efe47a 100644 ---- a/drivers/net/team/team.c -+++ b/drivers/net/team/team.c -@@ -1139,6 +1139,8 @@ static int team_port_del(struct team *team, struct net_device *port_dev) - netdev_set_master(port_dev, NULL); - team_port_disable_netpoll(port); - vlan_vids_del_by_dev(port_dev, dev); -+ dev_uc_unsync(port_dev, dev); -+ dev_mc_unsync(port_dev, dev); - dev_close(port_dev); - team_port_leave(team, port); - team_port_set_orig_dev_addr(port); -diff --git a/drivers/net/tun.c b/drivers/net/tun.c -index 2917a86..cb95fe5 100644 ---- a/drivers/net/tun.c -+++ b/drivers/net/tun.c -@@ -748,6 +748,8 @@ static netdev_tx_t tun_net_xmit(struct sk_buff *skb, struct net_device *dev) - goto drop; - skb_orphan(skb); - -+ nf_reset(skb); -+ - /* Enqueue packet */ - skb_queue_tail(&tfile->socket.sk->sk_receive_queue, skb); - -diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c -index 656230e..6993bfa 100644 ---- a/drivers/net/vxlan.c -+++ b/drivers/net/vxlan.c -@@ -1491,6 +1491,15 @@ static __net_init int vxlan_init_net(struct net *net) - static __net_exit void vxlan_exit_net(struct net *net) - { - struct vxlan_net *vn = net_generic(net, vxlan_net_id); -+ struct vxlan_dev *vxlan; -+ struct hlist_node *pos; -+ unsigned h; -+ -+ rtnl_lock(); -+ for (h = 0; h < VNI_HASH_SIZE; ++h) -+ hlist_for_each_entry(vxlan, pos, &vn->vni_list[h], hlist) -+ dev_close(vxlan->dev); -+ rtnl_unlock(); - - if (vn->sock) { - sk_release_kernel(vn->sock->sk); -diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c -index 1767998..3e7f961 100644 ---- a/drivers/staging/comedi/drivers/dt9812.c -+++ b/drivers/staging/comedi/drivers/dt9812.c -@@ -948,12 +948,13 @@ static int dt9812_di_rinsn(struct comedi_device *dev, - unsigned int *data) - { - struct comedi_dt9812 *devpriv = dev->private; -+ unsigned int channel = CR_CHAN(insn->chanspec); - int n; - u8 bits = 0; - - dt9812_digital_in(devpriv->slot, &bits); - for (n = 0; n < insn->n; n++) -- data[n] = ((1 << insn->chanspec) & bits) != 0; -+ data[n] = ((1 << channel) & bits) != 0; - return n; - } - -@@ -962,12 +963,13 @@ static int dt9812_do_winsn(struct comedi_device *dev, - unsigned int *data) - { - struct comedi_dt9812 *devpriv = dev->private; -+ unsigned int channel = CR_CHAN(insn->chanspec); - int n; - u8 bits = 0; - - dt9812_digital_out_shadow(devpriv->slot, &bits); - for (n = 0; n < insn->n; n++) { -- u8 mask = 1 << insn->chanspec; -+ u8 mask = 1 << channel; - - bits &= ~mask; - if (data[n]) -@@ -982,13 +984,13 @@ static int dt9812_ai_rinsn(struct comedi_device *dev, - unsigned int *data) - { - struct comedi_dt9812 *devpriv = dev->private; -+ unsigned int channel = CR_CHAN(insn->chanspec); - int n; - - for (n = 0; n < insn->n; n++) { - u16 value = 0; - -- dt9812_analog_in(devpriv->slot, insn->chanspec, &value, -- DT9812_GAIN_1); -+ dt9812_analog_in(devpriv->slot, channel, &value, DT9812_GAIN_1); - data[n] = value; - } - return n; -@@ -999,12 +1001,13 @@ static int dt9812_ao_rinsn(struct comedi_device *dev, - unsigned int *data) - { - struct comedi_dt9812 *devpriv = dev->private; -+ unsigned int channel = CR_CHAN(insn->chanspec); - int n; - u16 value; - - for (n = 0; n < insn->n; n++) { - value = 0; -- dt9812_analog_out_shadow(devpriv->slot, insn->chanspec, &value); -+ dt9812_analog_out_shadow(devpriv->slot, channel, &value); - data[n] = value; - } - return n; -@@ -1015,10 +1018,11 @@ static int dt9812_ao_winsn(struct comedi_device *dev, - unsigned int *data) - { - struct comedi_dt9812 *devpriv = dev->private; -+ unsigned int channel = CR_CHAN(insn->chanspec); - int n; - - for (n = 0; n < insn->n; n++) -- dt9812_analog_out(devpriv->slot, insn->chanspec, data[n]); -+ dt9812_analog_out(devpriv->slot, channel, data[n]); - return n; - } - -diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c -index f33086d..f726970 100644 ---- a/drivers/staging/vt6656/main_usb.c -+++ b/drivers/staging/vt6656/main_usb.c -@@ -644,8 +644,6 @@ static int vt6656_suspend(struct usb_interface *intf, pm_message_t message) - if (device->flags & DEVICE_FLAGS_OPENED) - device_close(device->dev); - -- usb_put_dev(interface_to_usbdev(intf)); -- - return 0; - } - -@@ -656,8 +654,6 @@ static int vt6656_resume(struct usb_interface *intf) - if (!device || !device->dev) - return -ENODEV; - -- usb_get_dev(interface_to_usbdev(intf)); -- - if (!(device->flags & DEVICE_FLAGS_OPENED)) - device_open(device->dev); - -diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c -index 79ff3a5..ac35c90 100644 ---- a/drivers/tty/pty.c -+++ b/drivers/tty/pty.c -@@ -47,7 +47,6 @@ static void pty_close(struct tty_struct *tty, struct file *filp) - /* Review - krefs on tty_link ?? */ - if (!tty->link) - return; -- tty->link->packet = 0; - set_bit(TTY_OTHER_CLOSED, &tty->link->flags); - wake_up_interruptible(&tty->link->read_wait); - wake_up_interruptible(&tty->link->write_wait); -diff --git a/drivers/tty/serial/8250/8250.c b/drivers/tty/serial/8250/8250.c -index f932043..733f22c 100644 ---- a/drivers/tty/serial/8250/8250.c -+++ b/drivers/tty/serial/8250/8250.c -@@ -308,7 +308,28 @@ static const struct serial8250_config uart_config[] = { - }, - [PORT_8250_CIR] = { - .name = "CIR port" -- } -+ }, -+ [PORT_ALTR_16550_F32] = { -+ .name = "Altera 16550 FIFO32", -+ .fifo_size = 32, -+ .tx_loadsz = 32, -+ .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10, -+ .flags = UART_CAP_FIFO | UART_CAP_AFE, -+ }, -+ [PORT_ALTR_16550_F64] = { -+ .name = "Altera 16550 FIFO64", -+ .fifo_size = 64, -+ .tx_loadsz = 64, -+ .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10, -+ .flags = UART_CAP_FIFO | UART_CAP_AFE, -+ }, -+ [PORT_ALTR_16550_F128] = { -+ .name = "Altera 16550 FIFO128", -+ .fifo_size = 128, -+ .tx_loadsz = 128, -+ .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10, -+ .flags = UART_CAP_FIFO | UART_CAP_AFE, -+ }, - }; - - /* Uart divisor latch read */ -@@ -3430,3 +3451,32 @@ module_param_array(probe_rsa, ulong, &probe_rsa_count, 0444); - MODULE_PARM_DESC(probe_rsa, "Probe I/O ports for RSA"); - #endif - MODULE_ALIAS_CHARDEV_MAJOR(TTY_MAJOR); -+ -+#ifndef MODULE -+/* This module was renamed to 8250_core in 3.7. Keep the old "8250" name -+ * working as well for the module options so we don't break people. We -+ * need to keep the names identical and the convenient macros will happily -+ * refuse to let us do that by failing the build with redefinition errors -+ * of global variables. So we stick them inside a dummy function to avoid -+ * those conflicts. The options still get parsed, and the redefined -+ * MODULE_PARAM_PREFIX lets us keep the "8250." syntax alive. -+ * -+ * This is hacky. I'm sorry. -+ */ -+static void __used s8250_options(void) -+{ -+#undef MODULE_PARAM_PREFIX -+#define MODULE_PARAM_PREFIX "8250." -+ -+ module_param_cb(share_irqs, ¶m_ops_uint, &share_irqs, 0644); -+ module_param_cb(nr_uarts, ¶m_ops_uint, &nr_uarts, 0644); -+ module_param_cb(skip_txen_test, ¶m_ops_uint, &skip_txen_test, 0644); -+#ifdef CONFIG_SERIAL_8250_RSA -+ __module_param_call(MODULE_PARAM_PREFIX, probe_rsa, -+ ¶m_array_ops, .arr = &__param_arr_probe_rsa, -+ 0444, -1); -+#endif -+} -+#else -+MODULE_ALIAS("8250"); -+#endif -diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c -index a27a98e..5cdb092 100644 ---- a/drivers/tty/serial/8250/8250_pci.c -+++ b/drivers/tty/serial/8250/8250_pci.c -@@ -1321,6 +1321,7 @@ pci_wch_ch353_setup(struct serial_private *priv, - - /* Unknown vendors/cards - this should not be in linux/pci_ids.h */ - #define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584 -+#define PCI_SUBDEVICE_ID_UNKNOWN_0x1588 0x1588 - - /* - * Master list of serial port init/setup/exit quirks. -@@ -1592,15 +1593,6 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = { - }, - { - .vendor = PCI_VENDOR_ID_PLX, -- .device = PCI_DEVICE_ID_PLX_9050, -- .subvendor = PCI_VENDOR_ID_PLX, -- .subdevice = PCI_SUBDEVICE_ID_UNKNOWN_0x1584, -- .init = pci_plx9050_init, -- .setup = pci_default_setup, -- .exit = pci_plx9050_exit, -- }, -- { -- .vendor = PCI_VENDOR_ID_PLX, - .device = PCI_DEVICE_ID_PLX_ROMULUS, - .subvendor = PCI_VENDOR_ID_PLX, - .subdevice = PCI_DEVICE_ID_PLX_ROMULUS, -@@ -3456,7 +3448,12 @@ static struct pci_device_id serial_pci_tbl[] = { - { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050, - PCI_VENDOR_ID_PLX, - PCI_SUBDEVICE_ID_UNKNOWN_0x1584, 0, 0, -- pbn_b0_4_115200 }, -+ pbn_b2_4_115200 }, -+ /* Unknown card - subdevice 0x1588 */ -+ { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050, -+ PCI_VENDOR_ID_PLX, -+ PCI_SUBDEVICE_ID_UNKNOWN_0x1588, 0, 0, -+ pbn_b2_8_115200 }, - { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050, - PCI_SUBVENDOR_ID_KEYSPAN, - PCI_SUBDEVICE_ID_KEYSPAN_SX2, 0, 0, -@@ -4449,6 +4446,10 @@ static struct pci_device_id serial_pci_tbl[] = { - PCI_VENDOR_ID_IBM, 0x0299, - 0, 0, pbn_b0_bt_2_115200 }, - -+ { PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9835, -+ 0x1000, 0x0012, -+ 0, 0, pbn_b0_bt_2_115200 }, -+ - { PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9901, - 0xA000, 0x1000, - 0, 0, pbn_b0_1_115200 }, -diff --git a/drivers/tty/serial/8250/8250_pnp.c b/drivers/tty/serial/8250/8250_pnp.c -index 35d9ab9..b3455a9 100644 ---- a/drivers/tty/serial/8250/8250_pnp.c -+++ b/drivers/tty/serial/8250/8250_pnp.c -@@ -429,6 +429,7 @@ serial_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id) - { - struct uart_8250_port uart; - int ret, line, flags = dev_id->driver_data; -+ struct resource *res = NULL; - - if (flags & UNKNOWN_DEV) { - ret = serial_pnp_guess_board(dev); -@@ -439,11 +440,12 @@ serial_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id) - memset(&uart, 0, sizeof(uart)); - if (pnp_irq_valid(dev, 0)) - uart.port.irq = pnp_irq(dev, 0); -- if ((flags & CIR_PORT) && pnp_port_valid(dev, 2)) { -- uart.port.iobase = pnp_port_start(dev, 2); -- uart.port.iotype = UPIO_PORT; -- } else if (pnp_port_valid(dev, 0)) { -- uart.port.iobase = pnp_port_start(dev, 0); -+ if ((flags & CIR_PORT) && pnp_port_valid(dev, 2)) -+ res = pnp_get_resource(dev, IORESOURCE_IO, 2); -+ else if (pnp_port_valid(dev, 0)) -+ res = pnp_get_resource(dev, IORESOURCE_IO, 0); -+ if (pnp_resource_enabled(res)) { -+ uart.port.iobase = res->start; - uart.port.iotype = UPIO_PORT; - } else if (pnp_mem_valid(dev, 0)) { - uart.port.mapbase = pnp_mem_start(dev, 0); -diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig -index 59c23d0..02e706e 100644 ---- a/drivers/tty/serial/Kconfig -+++ b/drivers/tty/serial/Kconfig -@@ -209,14 +209,14 @@ config SERIAL_SAMSUNG - config SERIAL_SAMSUNG_UARTS_4 - bool - depends on PLAT_SAMSUNG -- default y if !(CPU_S3C2410 || SERIAL_S3C2412 || CPU_S3C2440 || CPU_S3C2442) -+ default y if !(CPU_S3C2410 || CPU_S3C2412 || CPU_S3C2440 || CPU_S3C2442) - help - Internal node for the common case of 4 Samsung compatible UARTs - - config SERIAL_SAMSUNG_UARTS - int - depends on PLAT_SAMSUNG -- default 6 if ARCH_S5P6450 -+ default 6 if CPU_S5P6450 - default 4 if SERIAL_SAMSUNG_UARTS_4 || CPU_S3C2416 - default 3 - help -diff --git a/drivers/tty/serial/of_serial.c b/drivers/tty/serial/of_serial.c -index e7cae1c..3490629 100644 ---- a/drivers/tty/serial/of_serial.c -+++ b/drivers/tty/serial/of_serial.c -@@ -240,6 +240,12 @@ static struct of_device_id of_platform_serial_table[] = { - { .compatible = "ns16850", .data = (void *)PORT_16850, }, - { .compatible = "nvidia,tegra20-uart", .data = (void *)PORT_TEGRA, }, - { .compatible = "nxp,lpc3220-uart", .data = (void *)PORT_LPC3220, }, -+ { .compatible = "altr,16550-FIFO32", -+ .data = (void *)PORT_ALTR_16550_F32, }, -+ { .compatible = "altr,16550-FIFO64", -+ .data = (void *)PORT_ALTR_16550_F64, }, -+ { .compatible = "altr,16550-FIFO128", -+ .data = (void *)PORT_ALTR_16550_F128, }, - #ifdef CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL - { .compatible = "ibm,qpace-nwp-serial", - .data = (void *)PORT_NWPSERIAL, }, -diff --git a/drivers/tty/tty_buffer.c b/drivers/tty/tty_buffer.c -index 45d9161..cd1f861 100644 ---- a/drivers/tty/tty_buffer.c -+++ b/drivers/tty/tty_buffer.c -@@ -473,7 +473,7 @@ static void flush_to_ldisc(struct work_struct *work) - struct tty_ldisc *disc; - - tty = port->itty; -- if (WARN_RATELIMIT(tty == NULL, "tty is NULL\n")) -+ if (tty == NULL) - return; - - disc = tty_ldisc_ref(tty); -diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c -index 5f0cb41..122d056 100644 ---- a/drivers/usb/class/cdc-wdm.c -+++ b/drivers/usb/class/cdc-wdm.c -@@ -56,6 +56,7 @@ MODULE_DEVICE_TABLE (usb, wdm_ids); - #define WDM_RESPONDING 7 - #define WDM_SUSPENDING 8 - #define WDM_RESETTING 9 -+#define WDM_OVERFLOW 10 - - #define WDM_MAX 16 - -@@ -155,6 +156,7 @@ static void wdm_in_callback(struct urb *urb) - { - struct wdm_device *desc = urb->context; - int status = urb->status; -+ int length = urb->actual_length; - - spin_lock(&desc->iuspin); - clear_bit(WDM_RESPONDING, &desc->flags); -@@ -185,9 +187,17 @@ static void wdm_in_callback(struct urb *urb) - } - - desc->rerr = status; -- desc->reslength = urb->actual_length; -- memmove(desc->ubuf + desc->length, desc->inbuf, desc->reslength); -- desc->length += desc->reslength; -+ if (length + desc->length > desc->wMaxCommand) { -+ /* The buffer would overflow */ -+ set_bit(WDM_OVERFLOW, &desc->flags); -+ } else { -+ /* we may already be in overflow */ -+ if (!test_bit(WDM_OVERFLOW, &desc->flags)) { -+ memmove(desc->ubuf + desc->length, desc->inbuf, length); -+ desc->length += length; -+ desc->reslength = length; -+ } -+ } - skip_error: - wake_up(&desc->wait); - -@@ -435,6 +445,11 @@ retry: - rv = -ENODEV; - goto err; - } -+ if (test_bit(WDM_OVERFLOW, &desc->flags)) { -+ clear_bit(WDM_OVERFLOW, &desc->flags); -+ rv = -ENOBUFS; -+ goto err; -+ } - i++; - if (file->f_flags & O_NONBLOCK) { - if (!test_bit(WDM_READ, &desc->flags)) { -@@ -478,6 +493,7 @@ retry: - spin_unlock_irq(&desc->iuspin); - goto retry; - } -+ - if (!desc->reslength) { /* zero length read */ - dev_dbg(&desc->intf->dev, "%s: zero length - clearing WDM_READ\n", __func__); - clear_bit(WDM_READ, &desc->flags); -@@ -1004,6 +1020,7 @@ static int wdm_post_reset(struct usb_interface *intf) - struct wdm_device *desc = wdm_find_device(intf); - int rv; - -+ clear_bit(WDM_OVERFLOW, &desc->flags); - clear_bit(WDM_RESETTING, &desc->flags); - rv = recover_from_urb_loss(desc); - mutex_unlock(&desc->wlock); -diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 3a4004a..f00c749 100644 ---- a/drivers/usb/dwc3/core.c -+++ b/drivers/usb/dwc3/core.c -@@ -575,6 +575,7 @@ static int dwc3_remove(struct platform_device *pdev) - break; - } - -+ dwc3_free_event_buffers(dwc); - dwc3_core_exit(dwc); - - return 0; -diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c -index fd252f0..eda2cf4 100644 ---- a/drivers/usb/host/ehci-q.c -+++ b/drivers/usb/host/ehci-q.c -@@ -135,7 +135,7 @@ qh_refresh (struct ehci_hcd *ehci, struct ehci_qh *qh) - * qtd is updated in qh_completions(). Update the QH - * overlay here. - */ -- if (cpu_to_hc32(ehci, qtd->qtd_dma) == qh->hw->hw_current) { -+ if (qh->hw->hw_token & ACTIVE_BIT(ehci)) { - qh->hw->hw_qtd_next = qtd->hw_next; - qtd = NULL; - } -@@ -449,11 +449,19 @@ qh_completions (struct ehci_hcd *ehci, struct ehci_qh *qh) - else if (last_status == -EINPROGRESS && !urb->unlinked) - continue; - -- /* qh unlinked; token in overlay may be most current */ -- if (state == QH_STATE_IDLE -- && cpu_to_hc32(ehci, qtd->qtd_dma) -- == hw->hw_current) { -+ /* -+ * If this was the active qtd when the qh was unlinked -+ * and the overlay's token is active, then the overlay -+ * hasn't been written back to the qtd yet so use its -+ * token instead of the qtd's. After the qtd is -+ * processed and removed, the overlay won't be valid -+ * any more. -+ */ -+ if (state == QH_STATE_IDLE && -+ qh->qtd_list.next == &qtd->qtd_list && -+ (hw->hw_token & ACTIVE_BIT(ehci))) { - token = hc32_to_cpu(ehci, hw->hw_token); -+ hw->hw_token &= ~ACTIVE_BIT(ehci); - - /* An unlink may leave an incomplete - * async transaction in the TT buffer. -diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c -index edc0f0d..4747d1c 100644 ---- a/drivers/usb/serial/cp210x.c -+++ b/drivers/usb/serial/cp210x.c -@@ -85,6 +85,7 @@ static const struct usb_device_id id_table[] = { - { USB_DEVICE(0x10C4, 0x813F) }, /* Tams Master Easy Control */ - { USB_DEVICE(0x10C4, 0x814A) }, /* West Mountain Radio RIGblaster P&P */ - { USB_DEVICE(0x10C4, 0x814B) }, /* West Mountain Radio RIGtalk */ -+ { USB_DEVICE(0x2405, 0x0003) }, /* West Mountain Radio RIGblaster Advantage */ - { USB_DEVICE(0x10C4, 0x8156) }, /* B&G H3000 link cable */ - { USB_DEVICE(0x10C4, 0x815E) }, /* Helicomm IP-Link 1220-DVM */ - { USB_DEVICE(0x10C4, 0x815F) }, /* Timewave HamLinkUSB */ -@@ -150,6 +151,25 @@ static const struct usb_device_id id_table[] = { - { USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */ - { USB_DEVICE(0x1E29, 0x0102) }, /* Festo CPX-USB */ - { USB_DEVICE(0x1E29, 0x0501) }, /* Festo CMSP */ -+ { USB_DEVICE(0x1FB9, 0x0100) }, /* Lake Shore Model 121 Current Source */ -+ { USB_DEVICE(0x1FB9, 0x0200) }, /* Lake Shore Model 218A Temperature Monitor */ -+ { USB_DEVICE(0x1FB9, 0x0201) }, /* Lake Shore Model 219 Temperature Monitor */ -+ { USB_DEVICE(0x1FB9, 0x0202) }, /* Lake Shore Model 233 Temperature Transmitter */ -+ { USB_DEVICE(0x1FB9, 0x0203) }, /* Lake Shore Model 235 Temperature Transmitter */ -+ { USB_DEVICE(0x1FB9, 0x0300) }, /* Lake Shore Model 335 Temperature Controller */ -+ { USB_DEVICE(0x1FB9, 0x0301) }, /* Lake Shore Model 336 Temperature Controller */ -+ { USB_DEVICE(0x1FB9, 0x0302) }, /* Lake Shore Model 350 Temperature Controller */ -+ { USB_DEVICE(0x1FB9, 0x0303) }, /* Lake Shore Model 371 AC Bridge */ -+ { USB_DEVICE(0x1FB9, 0x0400) }, /* Lake Shore Model 411 Handheld Gaussmeter */ -+ { USB_DEVICE(0x1FB9, 0x0401) }, /* Lake Shore Model 425 Gaussmeter */ -+ { USB_DEVICE(0x1FB9, 0x0402) }, /* Lake Shore Model 455A Gaussmeter */ -+ { USB_DEVICE(0x1FB9, 0x0403) }, /* Lake Shore Model 475A Gaussmeter */ -+ { USB_DEVICE(0x1FB9, 0x0404) }, /* Lake Shore Model 465 Three Axis Gaussmeter */ -+ { USB_DEVICE(0x1FB9, 0x0600) }, /* Lake Shore Model 625A Superconducting MPS */ -+ { USB_DEVICE(0x1FB9, 0x0601) }, /* Lake Shore Model 642A Magnet Power Supply */ -+ { USB_DEVICE(0x1FB9, 0x0602) }, /* Lake Shore Model 648 Magnet Power Supply */ -+ { USB_DEVICE(0x1FB9, 0x0700) }, /* Lake Shore Model 737 VSM Controller */ -+ { USB_DEVICE(0x1FB9, 0x0701) }, /* Lake Shore Model 776 Hall Matrix */ - { USB_DEVICE(0x3195, 0xF190) }, /* Link Instruments MSO-19 */ - { USB_DEVICE(0x3195, 0xF280) }, /* Link Instruments MSO-28 */ - { USB_DEVICE(0x3195, 0xF281) }, /* Link Instruments MSO-28 */ -diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c -index f7d339d..558adfc 100644 ---- a/drivers/usb/serial/option.c -+++ b/drivers/usb/serial/option.c -@@ -341,6 +341,8 @@ static void option_instat_callback(struct urb *urb); - #define CINTERION_PRODUCT_EU3_E 0x0051 - #define CINTERION_PRODUCT_EU3_P 0x0052 - #define CINTERION_PRODUCT_PH8 0x0053 -+#define CINTERION_PRODUCT_AH6 0x0055 -+#define CINTERION_PRODUCT_PLS8 0x0060 - - /* Olivetti products */ - #define OLIVETTI_VENDOR_ID 0x0b3c -@@ -579,6 +581,7 @@ static const struct usb_device_id option_ids[] = { - { USB_DEVICE(QUANTA_VENDOR_ID, 0xea42), - .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c05, USB_CLASS_COMM, 0x02, 0xff) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c1f, USB_CLASS_COMM, 0x02, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c23, USB_CLASS_COMM, 0x02, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E173, 0xff, 0xff, 0xff), - .driver_info = (kernel_ulong_t) &net_intf1_blacklist }, -@@ -1260,6 +1263,8 @@ static const struct usb_device_id option_ids[] = { - { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_E) }, - { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_P) }, - { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8) }, -+ { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AH6) }, -+ { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PLS8) }, - { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) }, - { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDMNET) }, - { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDM) }, -diff --git a/drivers/usb/serial/qcaux.c b/drivers/usb/serial/qcaux.c -index 9b1b96f..31f81c3 100644 ---- a/drivers/usb/serial/qcaux.c -+++ b/drivers/usb/serial/qcaux.c -@@ -69,6 +69,7 @@ static struct usb_device_id id_table[] = { - { USB_VENDOR_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, 0xff, 0xfd, 0xff) }, /* NMEA */ - { USB_VENDOR_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, 0xff, 0xfe, 0xff) }, /* WMC */ - { USB_VENDOR_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, 0xff, 0xff, 0xff) }, /* DIAG */ -+ { USB_DEVICE_AND_INTERFACE_INFO(0x1fac, 0x0151, 0xff, 0xff, 0xff) }, - { }, - }; - MODULE_DEVICE_TABLE(usb, id_table); -diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c -index 2466254..59b32b7 100644 ---- a/drivers/usb/serial/qcserial.c -+++ b/drivers/usb/serial/qcserial.c -@@ -197,12 +197,15 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id) - - if (is_gobi1k) { - /* Gobi 1K USB layout: -- * 0: serial port (doesn't respond) -+ * 0: DM/DIAG (use libqcdm from ModemManager for communication) - * 1: serial port (doesn't respond) - * 2: AT-capable modem port - * 3: QMI/net - */ -- if (ifnum == 2) -+ if (ifnum == 0) { -+ dev_dbg(dev, "Gobi 1K DM/DIAG interface found\n"); -+ altsetting = 1; -+ } else if (ifnum == 2) - dev_dbg(dev, "Modem port found\n"); - else - altsetting = -1; -diff --git a/drivers/usb/storage/initializers.c b/drivers/usb/storage/initializers.c -index 7ab9046..105d900 100644 ---- a/drivers/usb/storage/initializers.c -+++ b/drivers/usb/storage/initializers.c -@@ -92,8 +92,8 @@ int usb_stor_ucr61s2b_init(struct us_data *us) - return 0; - } - --/* This places the HUAWEI usb dongles in multi-port mode */ --static int usb_stor_huawei_feature_init(struct us_data *us) -+/* This places the HUAWEI E220 devices in multi-port mode */ -+int usb_stor_huawei_e220_init(struct us_data *us) - { - int result; - -@@ -104,75 +104,3 @@ static int usb_stor_huawei_feature_init(struct us_data *us) - US_DEBUGP("Huawei mode set result is %d\n", result); - return 0; - } -- --/* -- * It will send a scsi switch command called rewind' to huawei dongle. -- * When the dongle receives this command at the first time, -- * it will reboot immediately. After rebooted, it will ignore this command. -- * So it is unnecessary to read its response. -- */ --static int usb_stor_huawei_scsi_init(struct us_data *us) --{ -- int result = 0; -- int act_len = 0; -- struct bulk_cb_wrap *bcbw = (struct bulk_cb_wrap *) us->iobuf; -- char rewind_cmd[] = {0x11, 0x06, 0x20, 0x00, 0x00, 0x01, 0x01, 0x00, -- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; -- -- bcbw->Signature = cpu_to_le32(US_BULK_CB_SIGN); -- bcbw->Tag = 0; -- bcbw->DataTransferLength = 0; -- bcbw->Flags = bcbw->Lun = 0; -- bcbw->Length = sizeof(rewind_cmd); -- memset(bcbw->CDB, 0, sizeof(bcbw->CDB)); -- memcpy(bcbw->CDB, rewind_cmd, sizeof(rewind_cmd)); -- -- result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, bcbw, -- US_BULK_CB_WRAP_LEN, &act_len); -- US_DEBUGP("transfer actual length=%d, result=%d\n", act_len, result); -- return result; --} -- --/* -- * It tries to find the supported Huawei USB dongles. -- * In Huawei, they assign the following product IDs -- * for all of their mobile broadband dongles, -- * including the new dongles in the future. -- * So if the product ID is not included in this list, -- * it means it is not Huawei's mobile broadband dongles. -- */ --static int usb_stor_huawei_dongles_pid(struct us_data *us) --{ -- struct usb_interface_descriptor *idesc; -- int idProduct; -- -- idesc = &us->pusb_intf->cur_altsetting->desc; -- idProduct = le16_to_cpu(us->pusb_dev->descriptor.idProduct); -- /* The first port is CDROM, -- * means the dongle in the single port mode, -- * and a switch command is required to be sent. */ -- if (idesc && idesc->bInterfaceNumber == 0) { -- if ((idProduct == 0x1001) -- || (idProduct == 0x1003) -- || (idProduct == 0x1004) -- || (idProduct >= 0x1401 && idProduct <= 0x1500) -- || (idProduct >= 0x1505 && idProduct <= 0x1600) -- || (idProduct >= 0x1c02 && idProduct <= 0x2202)) { -- return 1; -- } -- } -- return 0; --} -- --int usb_stor_huawei_init(struct us_data *us) --{ -- int result = 0; -- -- if (usb_stor_huawei_dongles_pid(us)) { -- if (le16_to_cpu(us->pusb_dev->descriptor.idProduct) >= 0x1446) -- result = usb_stor_huawei_scsi_init(us); -- else -- result = usb_stor_huawei_feature_init(us); -- } -- return result; --} -diff --git a/drivers/usb/storage/initializers.h b/drivers/usb/storage/initializers.h -index 5376d4f..529327f 100644 ---- a/drivers/usb/storage/initializers.h -+++ b/drivers/usb/storage/initializers.h -@@ -46,5 +46,5 @@ int usb_stor_euscsi_init(struct us_data *us); - * flash reader */ - int usb_stor_ucr61s2b_init(struct us_data *us); - --/* This places the HUAWEI usb dongles in multi-port mode */ --int usb_stor_huawei_init(struct us_data *us); -+/* This places the HUAWEI E220 devices in multi-port mode */ -+int usb_stor_huawei_e220_init(struct us_data *us); -diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h -index 72923b5..d305a5a 100644 ---- a/drivers/usb/storage/unusual_devs.h -+++ b/drivers/usb/storage/unusual_devs.h -@@ -1527,10 +1527,335 @@ UNUSUAL_DEV( 0x1210, 0x0003, 0x0100, 0x0100, - /* Reported by fangxiaozhi <huananhu@huawei.com> - * This brings the HUAWEI data card devices into multi-port mode - */ --UNUSUAL_VENDOR_INTF(0x12d1, 0x08, 0x06, 0x50, -+UNUSUAL_DEV( 0x12d1, 0x1001, 0x0000, 0x0000, - "HUAWEI MOBILE", - "Mass Storage", -- USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_init, -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1003, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1004, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1401, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1402, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1403, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1404, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1405, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1406, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1407, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1408, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1409, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x140A, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x140B, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x140C, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x140D, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x140E, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x140F, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1410, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1411, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1412, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1413, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1414, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1415, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1416, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1417, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1418, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1419, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x141A, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x141B, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x141C, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x141D, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x141E, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x141F, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1420, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1421, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1422, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1423, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1424, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1425, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1426, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1427, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1428, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1429, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x142A, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x142B, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x142C, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x142D, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x142E, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x142F, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1430, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1431, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1432, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1433, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1434, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1435, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1436, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1437, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1438, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x1439, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x143A, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x143B, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x143C, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x143D, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x143E, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, -+ 0), -+UNUSUAL_DEV( 0x12d1, 0x143F, 0x0000, 0x0000, -+ "HUAWEI MOBILE", -+ "Mass Storage", -+ USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, - 0), - - /* Reported by Vilius Bilinkevicius <vilisas AT xxx DOT lt) */ -diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c -index 12cf5f3..025428e 100644 ---- a/drivers/video/atmel_lcdfb.c -+++ b/drivers/video/atmel_lcdfb.c -@@ -422,17 +422,22 @@ static int atmel_lcdfb_check_var(struct fb_var_screeninfo *var, - = var->bits_per_pixel; - break; - case 16: -+ /* Older SOCs use IBGR:555 rather than BGR:565. */ -+ if (sinfo->have_intensity_bit) -+ var->green.length = 5; -+ else -+ var->green.length = 6; -+ - if (sinfo->lcd_wiring_mode == ATMEL_LCDC_WIRING_RGB) { -- /* RGB:565 mode */ -- var->red.offset = 11; -+ /* RGB:5X5 mode */ -+ var->red.offset = var->green.length + 5; - var->blue.offset = 0; - } else { -- /* BGR:565 mode */ -+ /* BGR:5X5 mode */ - var->red.offset = 0; -- var->blue.offset = 11; -+ var->blue.offset = var->green.length + 5; - } - var->green.offset = 5; -- var->green.length = 6; - var->red.length = var->blue.length = 5; - break; - case 32: -@@ -679,8 +684,7 @@ static int atmel_lcdfb_setcolreg(unsigned int regno, unsigned int red, - - case FB_VISUAL_PSEUDOCOLOR: - if (regno < 256) { -- if (cpu_is_at91sam9261() || cpu_is_at91sam9263() -- || cpu_is_at91sam9rl()) { -+ if (sinfo->have_intensity_bit) { - /* old style I+BGR:555 */ - val = ((red >> 11) & 0x001f); - val |= ((green >> 6) & 0x03e0); -@@ -870,6 +874,10 @@ static int __init atmel_lcdfb_probe(struct platform_device *pdev) - } - sinfo->info = info; - sinfo->pdev = pdev; -+ if (cpu_is_at91sam9261() || cpu_is_at91sam9263() || -+ cpu_is_at91sam9rl()) { -+ sinfo->have_intensity_bit = true; -+ } - - strcpy(info->fix.id, sinfo->pdev->name); - info->flags = ATMEL_LCDFB_FBINFO_DEFAULT; -diff --git a/drivers/w1/masters/w1-gpio.c b/drivers/w1/masters/w1-gpio.c -index d39dfa4..012817a 100644 ---- a/drivers/w1/masters/w1-gpio.c -+++ b/drivers/w1/masters/w1-gpio.c -@@ -158,7 +158,7 @@ static int w1_gpio_probe(struct platform_device *pdev) - return err; - } - --static int __exit w1_gpio_remove(struct platform_device *pdev) -+static int w1_gpio_remove(struct platform_device *pdev) - { - struct w1_bus_master *master = platform_get_drvdata(pdev); - struct w1_gpio_platform_data *pdata = pdev->dev.platform_data; -@@ -210,7 +210,7 @@ static struct platform_driver w1_gpio_driver = { - .of_match_table = of_match_ptr(w1_gpio_dt_ids), - }, - .probe = w1_gpio_probe, -- .remove = __exit_p(w1_gpio_remove), -+ .remove = w1_gpio_remove, - .suspend = w1_gpio_suspend, - .resume = w1_gpio_resume, - }; -diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c -index 7994d933..7ce277d 100644 ---- a/drivers/w1/w1.c -+++ b/drivers/w1/w1.c -@@ -924,7 +924,8 @@ void w1_search(struct w1_master *dev, u8 search_type, w1_slave_found_callback cb - tmp64 = (triplet_ret >> 2); - rn |= (tmp64 << i); - -- if (kthread_should_stop()) { -+ /* ensure we're called from kthread and not by netlink callback */ -+ if (!dev->priv && kthread_should_stop()) { - mutex_unlock(&dev->bus_mutex); - dev_dbg(&dev->dev, "Abort w1_search\n"); - return; -diff --git a/drivers/xen/xen-pciback/pciback_ops.c b/drivers/xen/xen-pciback/pciback_ops.c -index 37c1f82..b98cf0c 100644 ---- a/drivers/xen/xen-pciback/pciback_ops.c -+++ b/drivers/xen/xen-pciback/pciback_ops.c -@@ -113,7 +113,8 @@ void xen_pcibk_reset_device(struct pci_dev *dev) - if (dev->msi_enabled) - pci_disable_msi(dev); - #endif -- pci_disable_device(dev); -+ if (pci_is_enabled(dev)) -+ pci_disable_device(dev); - - pci_write_config_word(dev, PCI_COMMAND, 0); - -diff --git a/fs/block_dev.c b/fs/block_dev.c -index 78333a3..78edf76 100644 ---- a/fs/block_dev.c -+++ b/fs/block_dev.c -@@ -1033,7 +1033,9 @@ void bd_set_size(struct block_device *bdev, loff_t size) - { - unsigned bsize = bdev_logical_block_size(bdev); - -- bdev->bd_inode->i_size = size; -+ mutex_lock(&bdev->bd_inode->i_mutex); -+ i_size_write(bdev->bd_inode, size); -+ mutex_unlock(&bdev->bd_inode->i_mutex); - while (bsize < PAGE_CACHE_SIZE) { - if (size & bsize) - break; -diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c -index ac8ff8d..1fd234a 100644 ---- a/fs/btrfs/volumes.c -+++ b/fs/btrfs/volumes.c -@@ -681,6 +681,12 @@ int btrfs_close_devices(struct btrfs_fs_devices *fs_devices) - __btrfs_close_devices(fs_devices); - free_fs_devices(fs_devices); - } -+ /* -+ * Wait for rcu kworkers under __btrfs_close_devices -+ * to finish all blkdev_puts so device is really -+ * free when umount is done. -+ */ -+ rcu_barrier(); - return ret; - } - -diff --git a/fs/ext3/super.c b/fs/ext3/super.c -index 6e50223..0a7f2d0b 100644 ---- a/fs/ext3/super.c -+++ b/fs/ext3/super.c -@@ -353,7 +353,7 @@ static struct block_device *ext3_blkdev_get(dev_t dev, struct super_block *sb) - return bdev; - - fail: -- ext3_msg(sb, "error: failed to open journal device %s: %ld", -+ ext3_msg(sb, KERN_ERR, "error: failed to open journal device %s: %ld", - __bdevname(dev, b), PTR_ERR(bdev)); - - return NULL; -@@ -887,7 +887,7 @@ static ext3_fsblk_t get_sb_block(void **data, struct super_block *sb) - /*todo: use simple_strtoll with >32bit ext3 */ - sb_block = simple_strtoul(options, &options, 0); - if (*options && *options != ',') { -- ext3_msg(sb, "error: invalid sb specification: %s", -+ ext3_msg(sb, KERN_ERR, "error: invalid sb specification: %s", - (char *) *data); - return 1; - } -diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h -index 7ccb3c5..ef52d9c 100644 ---- a/include/linux/mtd/nand.h -+++ b/include/linux/mtd/nand.h -@@ -187,6 +187,13 @@ typedef enum { - * This happens with the Renesas AG-AND chips, possibly others. - */ - #define BBT_AUTO_REFRESH 0x00000080 -+/* -+ * Chip requires ready check on read (for auto-incremented sequential read). -+ * True only for small page devices; large page devices do not support -+ * autoincrement. -+ */ -+#define NAND_NEED_READRDY 0x00000100 -+ - /* Chip does not allow subpage writes */ - #define NAND_NO_SUBPAGE_WRITE 0x00000200 - -diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h -index 6bfb2faa..a280650 100644 ---- a/include/linux/perf_event.h -+++ b/include/linux/perf_event.h -@@ -794,6 +794,12 @@ static inline int __perf_event_disable(void *info) { return -1; } - static inline void perf_event_task_tick(void) { } - #endif - -+#if defined(CONFIG_PERF_EVENTS) && defined(CONFIG_CPU_SUP_INTEL) -+extern void perf_restore_debug_store(void); -+#else -+static inline void perf_restore_debug_store(void) { } -+#endif -+ - #define perf_output_put(handle, x) perf_output_copy((handle), &(x), sizeof(x)) - - /* -diff --git a/include/uapi/linux/serial_core.h b/include/uapi/linux/serial_core.h -index 8f6e50a..c019b24 100644 ---- a/include/uapi/linux/serial_core.h -+++ b/include/uapi/linux/serial_core.h -@@ -51,7 +51,10 @@ - #define PORT_8250_CIR 23 /* CIR infrared port, has its own driver */ - #define PORT_XR17V35X 24 /* Exar XR17V35x UARTs */ - #define PORT_BRCM_TRUMANAGE 25 --#define PORT_MAX_8250 25 /* max port ID */ -+#define PORT_ALTR_16550_F32 26 /* Altera 16550 UART with 32 FIFOs */ -+#define PORT_ALTR_16550_F64 27 /* Altera 16550 UART with 64 FIFOs */ -+#define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */ -+#define PORT_MAX_8250 28 /* max port ID */ - - /* - * ARM specific type numbers. These are not currently guaranteed -diff --git a/include/video/atmel_lcdc.h b/include/video/atmel_lcdc.h -index 28447f1..5f0e234 100644 ---- a/include/video/atmel_lcdc.h -+++ b/include/video/atmel_lcdc.h -@@ -62,6 +62,7 @@ struct atmel_lcdfb_info { - void (*atmel_lcdfb_power_control)(int on); - struct fb_monspecs *default_monspecs; - u32 pseudo_palette[16]; -+ bool have_intensity_bit; - }; - - #define ATMEL_LCDC_DMABADDR1 0x00 -diff --git a/kernel/signal.c b/kernel/signal.c -index 3d09cf6..7591ccc 100644 ---- a/kernel/signal.c -+++ b/kernel/signal.c -@@ -485,6 +485,9 @@ flush_signal_handlers(struct task_struct *t, int force_default) - if (force_default || ka->sa.sa_handler != SIG_IGN) - ka->sa.sa_handler = SIG_DFL; - ka->sa.sa_flags = 0; -+#ifdef SA_RESTORER -+ ka->sa.sa_restorer = NULL; -+#endif - sigemptyset(&ka->sa.sa_mask); - ka++; - } -diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c -index acc9f4c..2897e40 100644 ---- a/net/bridge/br_mdb.c -+++ b/net/bridge/br_mdb.c -@@ -82,6 +82,7 @@ static int br_mdb_fill_info(struct sk_buff *skb, struct netlink_callback *cb, - port = p->port; - if (port) { - struct br_mdb_entry e; -+ memset(&e, 0, sizeof(e)); - e.ifindex = port->dev->ifindex; - e.state = p->state; - if (p->addr.proto == htons(ETH_P_IP)) -@@ -138,6 +139,7 @@ static int br_mdb_dump(struct sk_buff *skb, struct netlink_callback *cb) - break; - - bpm = nlmsg_data(nlh); -+ memset(bpm, 0, sizeof(*bpm)); - bpm->ifindex = dev->ifindex; - if (br_mdb_fill_info(skb, cb, dev) < 0) - goto out; -@@ -173,6 +175,7 @@ static int nlmsg_populate_mdb_fill(struct sk_buff *skb, - return -EMSGSIZE; - - bpm = nlmsg_data(nlh); -+ memset(bpm, 0, sizeof(*bpm)); - bpm->family = AF_BRIDGE; - bpm->ifindex = dev->ifindex; - nest = nla_nest_start(skb, MDBA_MDB); -@@ -230,6 +233,7 @@ void br_mdb_notify(struct net_device *dev, struct net_bridge_port *port, - { - struct br_mdb_entry entry; - -+ memset(&entry, 0, sizeof(entry)); - entry.ifindex = port->dev->ifindex; - entry.addr.proto = group->proto; - entry.addr.u.ip4 = group->u.ip4; -diff --git a/net/core/dev.c b/net/core/dev.c -index f64e439..1339f77 100644 ---- a/net/core/dev.c -+++ b/net/core/dev.c -@@ -3419,6 +3419,7 @@ ncls: - } - switch (rx_handler(&skb)) { - case RX_HANDLER_CONSUMED: -+ ret = NET_RX_SUCCESS; - goto unlock; - case RX_HANDLER_ANOTHER: - goto another_round; -diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c -index 1868625..798f920 100644 ---- a/net/core/rtnetlink.c -+++ b/net/core/rtnetlink.c -@@ -976,6 +976,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev, - * report anything. - */ - ivi.spoofchk = -1; -+ memset(ivi.mac, 0, sizeof(ivi.mac)); - if (dev->netdev_ops->ndo_get_vf_config(dev, i, &ivi)) - break; - vf_mac.vf = -diff --git a/net/dcb/dcbnl.c b/net/dcb/dcbnl.c -index 1b588e2..21291f1 100644 ---- a/net/dcb/dcbnl.c -+++ b/net/dcb/dcbnl.c -@@ -284,6 +284,7 @@ static int dcbnl_getperm_hwaddr(struct net_device *netdev, struct nlmsghdr *nlh, - if (!netdev->dcbnl_ops->getpermhwaddr) - return -EOPNOTSUPP; - -+ memset(perm_addr, 0, sizeof(perm_addr)); - netdev->dcbnl_ops->getpermhwaddr(netdev, perm_addr); - - return nla_put(skb, DCB_ATTR_PERM_HWADDR, sizeof(perm_addr), perm_addr); -@@ -1042,6 +1043,7 @@ static int dcbnl_ieee_fill(struct sk_buff *skb, struct net_device *netdev) - - if (ops->ieee_getets) { - struct ieee_ets ets; -+ memset(&ets, 0, sizeof(ets)); - err = ops->ieee_getets(netdev, &ets); - if (!err && - nla_put(skb, DCB_ATTR_IEEE_ETS, sizeof(ets), &ets)) -@@ -1050,6 +1052,7 @@ static int dcbnl_ieee_fill(struct sk_buff *skb, struct net_device *netdev) - - if (ops->ieee_getmaxrate) { - struct ieee_maxrate maxrate; -+ memset(&maxrate, 0, sizeof(maxrate)); - err = ops->ieee_getmaxrate(netdev, &maxrate); - if (!err) { - err = nla_put(skb, DCB_ATTR_IEEE_MAXRATE, -@@ -1061,6 +1064,7 @@ static int dcbnl_ieee_fill(struct sk_buff *skb, struct net_device *netdev) - - if (ops->ieee_getpfc) { - struct ieee_pfc pfc; -+ memset(&pfc, 0, sizeof(pfc)); - err = ops->ieee_getpfc(netdev, &pfc); - if (!err && - nla_put(skb, DCB_ATTR_IEEE_PFC, sizeof(pfc), &pfc)) -@@ -1094,6 +1098,7 @@ static int dcbnl_ieee_fill(struct sk_buff *skb, struct net_device *netdev) - /* get peer info if available */ - if (ops->ieee_peer_getets) { - struct ieee_ets ets; -+ memset(&ets, 0, sizeof(ets)); - err = ops->ieee_peer_getets(netdev, &ets); - if (!err && - nla_put(skb, DCB_ATTR_IEEE_PEER_ETS, sizeof(ets), &ets)) -@@ -1102,6 +1107,7 @@ static int dcbnl_ieee_fill(struct sk_buff *skb, struct net_device *netdev) - - if (ops->ieee_peer_getpfc) { - struct ieee_pfc pfc; -+ memset(&pfc, 0, sizeof(pfc)); - err = ops->ieee_peer_getpfc(netdev, &pfc); - if (!err && - nla_put(skb, DCB_ATTR_IEEE_PEER_PFC, sizeof(pfc), &pfc)) -@@ -1280,6 +1286,7 @@ static int dcbnl_cee_fill(struct sk_buff *skb, struct net_device *netdev) - /* peer info if available */ - if (ops->cee_peer_getpg) { - struct cee_pg pg; -+ memset(&pg, 0, sizeof(pg)); - err = ops->cee_peer_getpg(netdev, &pg); - if (!err && - nla_put(skb, DCB_ATTR_CEE_PEER_PG, sizeof(pg), &pg)) -@@ -1288,6 +1295,7 @@ static int dcbnl_cee_fill(struct sk_buff *skb, struct net_device *netdev) - - if (ops->cee_peer_getpfc) { - struct cee_pfc pfc; -+ memset(&pfc, 0, sizeof(pfc)); - err = ops->cee_peer_getpfc(netdev, &pfc); - if (!err && - nla_put(skb, DCB_ATTR_CEE_PEER_PFC, sizeof(pfc), &pfc)) -diff --git a/net/ieee802154/6lowpan.h b/net/ieee802154/6lowpan.h -index 8c2251f..bba5f83 100644 ---- a/net/ieee802154/6lowpan.h -+++ b/net/ieee802154/6lowpan.h -@@ -84,7 +84,7 @@ - (memcmp(addr1, addr2, length >> 3) == 0) - - /* local link, i.e. FE80::/10 */ --#define is_addr_link_local(a) (((a)->s6_addr16[0]) == 0x80FE) -+#define is_addr_link_local(a) (((a)->s6_addr16[0]) == htons(0xFE80)) - - /* - * check whether we can compress the IID to 16 bits, -diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c -index ad70a96..66702d3 100644 ---- a/net/ipv4/tcp_input.c -+++ b/net/ipv4/tcp_input.c -@@ -5498,6 +5498,9 @@ int tcp_rcv_established(struct sock *sk, struct sk_buff *skb, - if (tcp_checksum_complete_user(sk, skb)) - goto csum_error; - -+ if ((int)skb->truesize > sk->sk_forward_alloc) -+ goto step5; -+ - /* Predicted packet is in window by definition. - * seq == rcv_nxt and rcv_wup <= rcv_nxt. - * Hence, check seq<=rcv_wup reduces to: -@@ -5509,9 +5512,6 @@ int tcp_rcv_established(struct sock *sk, struct sk_buff *skb, - - tcp_rcv_rtt_measure_ts(sk, skb); - -- if ((int)skb->truesize > sk->sk_forward_alloc) -- goto step5; -- - NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPHPHITS); - - /* Bulk data transfer: receiver */ -diff --git a/net/ipv6/ip6_input.c b/net/ipv6/ip6_input.c -index a52d864..b196852 100644 ---- a/net/ipv6/ip6_input.c -+++ b/net/ipv6/ip6_input.c -@@ -270,7 +270,8 @@ int ip6_mc_input(struct sk_buff *skb) - * IPv6 multicast router mode is now supported ;) - */ - if (dev_net(skb->dev)->ipv6.devconf_all->mc_forwarding && -- !(ipv6_addr_type(&hdr->daddr) & IPV6_ADDR_LINKLOCAL) && -+ !(ipv6_addr_type(&hdr->daddr) & -+ (IPV6_ADDR_LOOPBACK|IPV6_ADDR_LINKLOCAL)) && - likely(!(IP6CB(skb)->flags & IP6SKB_FORWARDED))) { - /* - * Okay, we try to forward - split and duplicate -diff --git a/net/ipv6/route.c b/net/ipv6/route.c -index 6f9f7b6..5845613 100644 ---- a/net/ipv6/route.c -+++ b/net/ipv6/route.c -@@ -1990,7 +1990,8 @@ void rt6_purge_dflt_routers(struct net *net) - restart: - read_lock_bh(&table->tb6_lock); - for (rt = table->tb6_root.leaf; rt; rt = rt->dst.rt6_next) { -- if (rt->rt6i_flags & (RTF_DEFAULT | RTF_ADDRCONF)) { -+ if (rt->rt6i_flags & (RTF_DEFAULT | RTF_ADDRCONF) && -+ (!rt->rt6i_idev || rt->rt6i_idev->cnf.accept_ra != 2)) { - dst_hold(&rt->dst); - read_unlock_bh(&table->tb6_lock); - ip6_del_rt(rt); -diff --git a/net/l2tp/l2tp_ppp.c b/net/l2tp/l2tp_ppp.c -index 716605c..044e9e1 100644 ---- a/net/l2tp/l2tp_ppp.c -+++ b/net/l2tp/l2tp_ppp.c -@@ -355,6 +355,7 @@ static int pppol2tp_sendmsg(struct kiocb *iocb, struct socket *sock, struct msgh - l2tp_xmit_skb(session, skb, session->hdr_len); - - sock_put(ps->tunnel_sock); -+ sock_put(sk); - - return error; - -diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c -index 847d495..8a6c6ea 100644 ---- a/net/netlabel/netlabel_unlabeled.c -+++ b/net/netlabel/netlabel_unlabeled.c -@@ -1189,8 +1189,6 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb, - struct netlbl_unlhsh_walk_arg cb_arg; - u32 skip_bkt = cb->args[0]; - u32 skip_chain = cb->args[1]; -- u32 skip_addr4 = cb->args[2]; -- u32 skip_addr6 = cb->args[3]; - u32 iter_bkt; - u32 iter_chain = 0, iter_addr4 = 0, iter_addr6 = 0; - struct netlbl_unlhsh_iface *iface; -@@ -1215,7 +1213,7 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb, - continue; - netlbl_af4list_foreach_rcu(addr4, - &iface->addr4_list) { -- if (iter_addr4++ < skip_addr4) -+ if (iter_addr4++ < cb->args[2]) - continue; - if (netlbl_unlabel_staticlist_gen( - NLBL_UNLABEL_C_STATICLIST, -@@ -1231,7 +1229,7 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb, - #if IS_ENABLED(CONFIG_IPV6) - netlbl_af6list_foreach_rcu(addr6, - &iface->addr6_list) { -- if (iter_addr6++ < skip_addr6) -+ if (iter_addr6++ < cb->args[3]) - continue; - if (netlbl_unlabel_staticlist_gen( - NLBL_UNLABEL_C_STATICLIST, -@@ -1250,10 +1248,10 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb, - - unlabel_staticlist_return: - rcu_read_unlock(); -- cb->args[0] = skip_bkt; -- cb->args[1] = skip_chain; -- cb->args[2] = skip_addr4; -- cb->args[3] = skip_addr6; -+ cb->args[0] = iter_bkt; -+ cb->args[1] = iter_chain; -+ cb->args[2] = iter_addr4; -+ cb->args[3] = iter_addr6; - return skb->len; - } - -@@ -1273,12 +1271,9 @@ static int netlbl_unlabel_staticlistdef(struct sk_buff *skb, - { - struct netlbl_unlhsh_walk_arg cb_arg; - struct netlbl_unlhsh_iface *iface; -- u32 skip_addr4 = cb->args[0]; -- u32 skip_addr6 = cb->args[1]; -- u32 iter_addr4 = 0; -+ u32 iter_addr4 = 0, iter_addr6 = 0; - struct netlbl_af4list *addr4; - #if IS_ENABLED(CONFIG_IPV6) -- u32 iter_addr6 = 0; - struct netlbl_af6list *addr6; - #endif - -@@ -1292,7 +1287,7 @@ static int netlbl_unlabel_staticlistdef(struct sk_buff *skb, - goto unlabel_staticlistdef_return; - - netlbl_af4list_foreach_rcu(addr4, &iface->addr4_list) { -- if (iter_addr4++ < skip_addr4) -+ if (iter_addr4++ < cb->args[0]) - continue; - if (netlbl_unlabel_staticlist_gen(NLBL_UNLABEL_C_STATICLISTDEF, - iface, -@@ -1305,7 +1300,7 @@ static int netlbl_unlabel_staticlistdef(struct sk_buff *skb, - } - #if IS_ENABLED(CONFIG_IPV6) - netlbl_af6list_foreach_rcu(addr6, &iface->addr6_list) { -- if (iter_addr6++ < skip_addr6) -+ if (iter_addr6++ < cb->args[1]) - continue; - if (netlbl_unlabel_staticlist_gen(NLBL_UNLABEL_C_STATICLISTDEF, - iface, -@@ -1320,8 +1315,8 @@ static int netlbl_unlabel_staticlistdef(struct sk_buff *skb, - - unlabel_staticlistdef_return: - rcu_read_unlock(); -- cb->args[0] = skip_addr4; -- cb->args[1] = skip_addr6; -+ cb->args[0] = iter_addr4; -+ cb->args[1] = iter_addr6; - return skb->len; - } - -diff --git a/net/rds/message.c b/net/rds/message.c -index f0a4658..aff589c 100644 ---- a/net/rds/message.c -+++ b/net/rds/message.c -@@ -197,6 +197,9 @@ struct rds_message *rds_message_alloc(unsigned int extra_len, gfp_t gfp) - { - struct rds_message *rm; - -+ if (extra_len > KMALLOC_MAX_SIZE - sizeof(struct rds_message)) -+ return NULL; -+ - rm = kzalloc(sizeof(struct rds_message) + extra_len, gfp); - if (!rm) - goto out; -diff --git a/net/sctp/socket.c b/net/sctp/socket.c -index cedd9bf..9ef5c73 100644 ---- a/net/sctp/socket.c -+++ b/net/sctp/socket.c -@@ -5653,6 +5653,9 @@ static int sctp_getsockopt_assoc_stats(struct sock *sk, int len, - if (len < sizeof(sctp_assoc_t)) - return -EINVAL; - -+ /* Allow the struct to grow and fill in as much as possible */ -+ len = min_t(size_t, len, sizeof(sas)); -+ - if (copy_from_user(&sas, optval, len)) - return -EFAULT; - -@@ -5686,9 +5689,6 @@ static int sctp_getsockopt_assoc_stats(struct sock *sk, int len, - /* Mark beginning of a new observation period */ - asoc->stats.max_obs_rto = asoc->rto_min; - -- /* Allow the struct to grow and fill in as much as possible */ -- len = min_t(size_t, len, sizeof(sas)); -- - if (put_user(len, optlen)) - return -EFAULT; - -diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst -index 06ba4a7..e253917 100644 ---- a/scripts/Makefile.headersinst -+++ b/scripts/Makefile.headersinst -@@ -8,7 +8,7 @@ - # ========================================================================== - - # called may set destination dir (when installing to asm/) --_dst := $(or $(destination-y),$(dst),$(obj)) -+_dst := $(if $(destination-y),$(destination-y),$(if $(dst),$(dst),$(obj))) - - # generated header directory - gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj))) -@@ -48,13 +48,14 @@ all-files := $(header-y) $(genhdr-y) $(wrapper-files) - output-files := $(addprefix $(installdir)/, $(all-files)) - - input-files := $(foreach hdr, $(header-y), \ -- $(or \ -+ $(if $(wildcard $(srcdir)/$(hdr)), \ - $(wildcard $(srcdir)/$(hdr)), \ -- $(wildcard $(oldsrcdir)/$(hdr)), \ -- $(error Missing UAPI file $(srcdir)/$(hdr)) \ -+ $(if $(wildcard $(oldsrcdir)/$(hdr)), \ -+ $(wildcard $(oldsrcdir)/$(hdr)), \ -+ $(error Missing UAPI file $(srcdir)/$(hdr))) \ - )) \ - $(foreach hdr, $(genhdr-y), \ -- $(or \ -+ $(if $(wildcard $(gendir)/$(hdr)), \ - $(wildcard $(gendir)/$(hdr)), \ - $(error Missing generated UAPI file $(gendir)/$(hdr)) \ - )) -diff --git a/security/selinux/xfrm.c b/security/selinux/xfrm.c -index 48665ec..8ab2951 100644 ---- a/security/selinux/xfrm.c -+++ b/security/selinux/xfrm.c -@@ -310,7 +310,7 @@ int selinux_xfrm_policy_clone(struct xfrm_sec_ctx *old_ctx, - - if (old_ctx) { - new_ctx = kmalloc(sizeof(*old_ctx) + old_ctx->ctx_len, -- GFP_KERNEL); -+ GFP_ATOMIC); - if (!new_ctx) - return -ENOMEM; - -diff --git a/sound/core/seq/seq_timer.c b/sound/core/seq/seq_timer.c -index 160b1bd..24d44b2 100644 ---- a/sound/core/seq/seq_timer.c -+++ b/sound/core/seq/seq_timer.c -@@ -290,10 +290,10 @@ int snd_seq_timer_open(struct snd_seq_queue *q) - tid.device = SNDRV_TIMER_GLOBAL_SYSTEM; - err = snd_timer_open(&t, str, &tid, q->queue); - } -- if (err < 0) { -- snd_printk(KERN_ERR "seq fatal error: cannot create timer (%i)\n", err); -- return err; -- } -+ } -+ if (err < 0) { -+ snd_printk(KERN_ERR "seq fatal error: cannot create timer (%i)\n", err); -+ return err; - } - t->callback = snd_seq_timer_interrupt; - t->callback_data = q; -diff --git a/tools/usb/ffs-test.c b/tools/usb/ffs-test.c -index 8674b9e..fe1e66b 100644 ---- a/tools/usb/ffs-test.c -+++ b/tools/usb/ffs-test.c -@@ -38,7 +38,7 @@ - #include <unistd.h> - #include <tools/le_byteshift.h> - --#include "../../include/linux/usb/functionfs.h" -+#include "../../include/uapi/linux/usb/functionfs.h" - - - /******************** Little Endian Handling ********************************/ diff --git a/3.8.4/0000_README b/3.8.5/0000_README index a73b3de..0016017 100644 --- a/3.8.4/0000_README +++ b/3.8.5/0000_README @@ -2,11 +2,11 @@ README ----------------------------------------------------------------------------- Individual Patch Descriptions: ----------------------------------------------------------------------------- -Patch: 1003_linux-3.8.4.patch +Patch: 1004_linux-3.8.5.patch From: http://www.kernel.org -Desc: Linux 3.8.4 +Desc: Linux 3.8.5 -Patch: 4420_grsecurity-2.9.1-3.8.4-201303252035.patch +Patch: 4420_grsecurity-2.9.1-3.8.5-201303292018.patch From: http://www.grsecurity.net Desc: hardened-sources base patch from upstream grsecurity diff --git a/3.8.5/1004_linux-3.8.5.patch b/3.8.5/1004_linux-3.8.5.patch new file mode 100644 index 0000000..27b152f --- /dev/null +++ b/3.8.5/1004_linux-3.8.5.patch @@ -0,0 +1,3805 @@ +diff --git a/Makefile b/Makefile +index e20f162..14b38cf 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,8 +1,8 @@ + VERSION = 3 + PATCHLEVEL = 8 +-SUBLEVEL = 4 ++SUBLEVEL = 5 + EXTRAVERSION = +-NAME = Unicycling Gorilla ++NAME = Displaced Humerus Anterior + + # *DOCUMENTATION* + # To see a list of typical targets execute "make help" +diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi +index b8effa1..4ceb266 100644 +--- a/arch/arm/boot/dts/tegra20.dtsi ++++ b/arch/arm/boot/dts/tegra20.dtsi +@@ -314,7 +314,7 @@ + + spi@7000d800 { + compatible = "nvidia,tegra20-slink"; +- reg = <0x7000d480 0x200>; ++ reg = <0x7000d800 0x200>; + interrupts = <0 83 0x04>; + nvidia,dma-request-selector = <&apbdma 17>; + #address-cells = <1>; +diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi +index 529fdb8..aeea838 100644 +--- a/arch/arm/boot/dts/tegra30.dtsi ++++ b/arch/arm/boot/dts/tegra30.dtsi +@@ -309,7 +309,7 @@ + + spi@7000d800 { + compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink"; +- reg = <0x7000d480 0x200>; ++ reg = <0x7000d800 0x200>; + interrupts = <0 83 0x04>; + nvidia,dma-request-selector = <&apbdma 17>; + #address-cells = <1>; +diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c +index dda3904..5397da0 100644 +--- a/arch/arm/mm/dma-mapping.c ++++ b/arch/arm/mm/dma-mapping.c +@@ -330,6 +330,7 @@ static int __init atomic_pool_init(void) + { + struct dma_pool *pool = &atomic_pool; + pgprot_t prot = pgprot_dmacoherent(pgprot_kernel); ++ gfp_t gfp = GFP_KERNEL | GFP_DMA; + unsigned long nr_pages = pool->size >> PAGE_SHIFT; + unsigned long *bitmap; + struct page *page; +@@ -348,8 +349,8 @@ static int __init atomic_pool_init(void) + if (IS_ENABLED(CONFIG_CMA)) + ptr = __alloc_from_contiguous(NULL, pool->size, prot, &page); + else +- ptr = __alloc_remap_buffer(NULL, pool->size, GFP_KERNEL, prot, +- &page, NULL); ++ ptr = __alloc_remap_buffer(NULL, pool->size, gfp, prot, &page, ++ NULL); + if (ptr) { + int i; + +diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c +index 05928aa..906fea3 100644 +--- a/arch/x86/lib/usercopy_64.c ++++ b/arch/x86/lib/usercopy_64.c +@@ -74,10 +74,10 @@ copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest) + char c; + unsigned zero_len; + +- for (; len; --len) { ++ for (; len; --len, to++) { + if (__get_user_nocheck(c, from++, sizeof(char))) + break; +- if (__put_user_nocheck(c, to++, sizeof(char))) ++ if (__put_user_nocheck(c, to, sizeof(char))) + break; + } + +diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c +index 35da181..e9e486f 100644 +--- a/drivers/acpi/glue.c ++++ b/drivers/acpi/glue.c +@@ -95,40 +95,31 @@ static int acpi_find_bridge_device(struct device *dev, acpi_handle * handle) + return ret; + } + +-/* Get device's handler per its address under its parent */ +-struct acpi_find_child { +- acpi_handle handle; +- u64 address; +-}; +- +-static acpi_status +-do_acpi_find_child(acpi_handle handle, u32 lvl, void *context, void **rv) ++static acpi_status do_acpi_find_child(acpi_handle handle, u32 lvl_not_used, ++ void *addr_p, void **ret_p) + { ++ unsigned long long addr; + acpi_status status; +- struct acpi_device_info *info; +- struct acpi_find_child *find = context; +- +- status = acpi_get_object_info(handle, &info); +- if (ACPI_SUCCESS(status)) { +- if ((info->address == find->address) +- && (info->valid & ACPI_VALID_ADR)) +- find->handle = handle; +- kfree(info); ++ ++ status = acpi_evaluate_integer(handle, METHOD_NAME__ADR, NULL, &addr); ++ if (ACPI_SUCCESS(status) && addr == *((u64 *)addr_p)) { ++ *ret_p = handle; ++ return AE_CTRL_TERMINATE; + } + return AE_OK; + } + + acpi_handle acpi_get_child(acpi_handle parent, u64 address) + { +- struct acpi_find_child find = { NULL, address }; ++ void *ret = NULL; + + if (!parent) + return NULL; +- acpi_walk_namespace(ACPI_TYPE_DEVICE, parent, +- 1, do_acpi_find_child, NULL, &find, NULL); +- return find.handle; +-} + ++ acpi_walk_namespace(ACPI_TYPE_DEVICE, parent, 1, NULL, ++ do_acpi_find_child, &address, &ret); ++ return (acpi_handle)ret; ++} + EXPORT_SYMBOL(acpi_get_child); + + static int acpi_bind_one(struct device *dev, acpi_handle handle) +diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig +index 9b00072..42c759a 100644 +--- a/drivers/firmware/Kconfig ++++ b/drivers/firmware/Kconfig +@@ -53,6 +53,24 @@ config EFI_VARS + Subsequent efibootmgr releases may be found at: + <http://linux.dell.com/efibootmgr> + ++config EFI_VARS_PSTORE ++ bool "Register efivars backend for pstore" ++ depends on EFI_VARS && PSTORE ++ default y ++ help ++ Say Y here to enable use efivars as a backend to pstore. This ++ will allow writing console messages, crash dumps, or anything ++ else supported by pstore to EFI variables. ++ ++config EFI_VARS_PSTORE_DEFAULT_DISABLE ++ bool "Disable using efivars as a pstore backend by default" ++ depends on EFI_VARS_PSTORE ++ default n ++ help ++ Saying Y here will disable the use of efivars as a storage ++ backend for pstore by default. This setting can be overridden ++ using the efivars module's pstore_disable parameter. ++ + config EFI_PCDP + bool "Console device selection via EFI PCDP or HCDP table" + depends on ACPI && EFI && IA64 +diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c +index 2a2e145..e1d6253 100644 +--- a/drivers/firmware/efivars.c ++++ b/drivers/firmware/efivars.c +@@ -103,6 +103,11 @@ MODULE_VERSION(EFIVARS_VERSION); + */ + #define GUID_LEN 36 + ++static bool efivars_pstore_disable = ++ IS_ENABLED(CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE); ++ ++module_param_named(pstore_disable, efivars_pstore_disable, bool, 0644); ++ + /* + * The maximum size of VariableName + Data = 1024 + * Therefore, it's reasonable to save that much +@@ -1301,9 +1306,7 @@ static const struct inode_operations efivarfs_dir_inode_operations = { + .create = efivarfs_create, + }; + +-static struct pstore_info efi_pstore_info; +- +-#ifdef CONFIG_PSTORE ++#ifdef CONFIG_EFI_VARS_PSTORE + + static int efi_pstore_open(struct pstore_info *psi) + { +@@ -1500,38 +1503,6 @@ static int efi_pstore_erase(enum pstore_type_id type, u64 id, int count, + + return 0; + } +-#else +-static int efi_pstore_open(struct pstore_info *psi) +-{ +- return 0; +-} +- +-static int efi_pstore_close(struct pstore_info *psi) +-{ +- return 0; +-} +- +-static ssize_t efi_pstore_read(u64 *id, enum pstore_type_id *type, int *count, +- struct timespec *timespec, +- char **buf, struct pstore_info *psi) +-{ +- return -1; +-} +- +-static int efi_pstore_write(enum pstore_type_id type, +- enum kmsg_dump_reason reason, u64 *id, +- unsigned int part, int count, size_t size, +- struct pstore_info *psi) +-{ +- return 0; +-} +- +-static int efi_pstore_erase(enum pstore_type_id type, u64 id, int count, +- struct timespec time, struct pstore_info *psi) +-{ +- return 0; +-} +-#endif + + static struct pstore_info efi_pstore_info = { + .owner = THIS_MODULE, +@@ -1543,6 +1514,24 @@ static struct pstore_info efi_pstore_info = { + .erase = efi_pstore_erase, + }; + ++static void efivar_pstore_register(struct efivars *efivars) ++{ ++ efivars->efi_pstore_info = efi_pstore_info; ++ efivars->efi_pstore_info.buf = kmalloc(4096, GFP_KERNEL); ++ if (efivars->efi_pstore_info.buf) { ++ efivars->efi_pstore_info.bufsize = 1024; ++ efivars->efi_pstore_info.data = efivars; ++ spin_lock_init(&efivars->efi_pstore_info.buf_lock); ++ pstore_register(&efivars->efi_pstore_info); ++ } ++} ++#else ++static void efivar_pstore_register(struct efivars *efivars) ++{ ++ return; ++} ++#endif ++ + static ssize_t efivar_create(struct file *filp, struct kobject *kobj, + struct bin_attribute *bin_attr, + char *buf, loff_t pos, size_t count) +@@ -1942,15 +1931,8 @@ int register_efivars(struct efivars *efivars, + if (error) + unregister_efivars(efivars); + +- efivars->efi_pstore_info = efi_pstore_info; +- +- efivars->efi_pstore_info.buf = kmalloc(4096, GFP_KERNEL); +- if (efivars->efi_pstore_info.buf) { +- efivars->efi_pstore_info.bufsize = 1024; +- efivars->efi_pstore_info.data = efivars; +- spin_lock_init(&efivars->efi_pstore_info.buf_lock); +- pstore_register(&efivars->efi_pstore_info); +- } ++ if (!efivars_pstore_disable) ++ efivar_pstore_register(efivars); + + register_filesystem(&efivarfs_type); + +diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c +index aaded22..dfd9ed3 100644 +--- a/drivers/gpu/drm/drm_edid.c ++++ b/drivers/gpu/drm/drm_edid.c +@@ -894,7 +894,7 @@ static struct drm_display_mode *drm_mode_detailed(struct drm_device *dev, + unsigned vblank = (pt->vactive_vblank_hi & 0xf) << 8 | pt->vblank_lo; + unsigned hsync_offset = (pt->hsync_vsync_offset_pulse_width_hi & 0xc0) << 2 | pt->hsync_offset_lo; + unsigned hsync_pulse_width = (pt->hsync_vsync_offset_pulse_width_hi & 0x30) << 4 | pt->hsync_pulse_width_lo; +- unsigned vsync_offset = (pt->hsync_vsync_offset_pulse_width_hi & 0xc) >> 2 | pt->vsync_offset_pulse_width_lo >> 4; ++ unsigned vsync_offset = (pt->hsync_vsync_offset_pulse_width_hi & 0xc) << 2 | pt->vsync_offset_pulse_width_lo >> 4; + unsigned vsync_pulse_width = (pt->hsync_vsync_offset_pulse_width_hi & 0x3) << 4 | (pt->vsync_offset_pulse_width_lo & 0xf); + + /* ignore tiny modes */ +@@ -975,6 +975,7 @@ set_size: + } + + mode->type = DRM_MODE_TYPE_DRIVER; ++ mode->vrefresh = drm_mode_vrefresh(mode); + drm_mode_set_name(mode); + + return mode; +diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c +index 8a7c48b..261efc8e 100644 +--- a/drivers/gpu/drm/i915/i915_debugfs.c ++++ b/drivers/gpu/drm/i915/i915_debugfs.c +@@ -103,7 +103,7 @@ static const char *cache_level_str(int type) + static void + describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj) + { +- seq_printf(m, "%p: %s%s %8zdKiB %04x %04x %d %d %d%s%s%s", ++ seq_printf(m, "%pK: %s%s %8zdKiB %04x %04x %d %d %d%s%s%s", + &obj->base, + get_pin_flag(obj), + get_tiling_flag(obj), +diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c +index 26d08bb..7adf5a7 100644 +--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c ++++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c +@@ -706,15 +706,20 @@ validate_exec_list(struct drm_i915_gem_exec_object2 *exec, + int count) + { + int i; ++ int relocs_total = 0; ++ int relocs_max = INT_MAX / sizeof(struct drm_i915_gem_relocation_entry); + + for (i = 0; i < count; i++) { + char __user *ptr = (char __user *)(uintptr_t)exec[i].relocs_ptr; + int length; /* limited by fault_in_pages_readable() */ + +- /* First check for malicious input causing overflow */ +- if (exec[i].relocation_count > +- INT_MAX / sizeof(struct drm_i915_gem_relocation_entry)) ++ /* First check for malicious input causing overflow in ++ * the worst case where we need to allocate the entire ++ * relocation tree as a single array. ++ */ ++ if (exec[i].relocation_count > relocs_max - relocs_total) + return -EINVAL; ++ relocs_total += exec[i].relocation_count; + + length = exec[i].relocation_count * + sizeof(struct drm_i915_gem_relocation_entry); +diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c +index fb3715b..2e1c10a 100644 +--- a/drivers/gpu/drm/i915/intel_dp.c ++++ b/drivers/gpu/drm/i915/intel_dp.c +@@ -1850,7 +1850,7 @@ intel_dp_start_link_train(struct intel_dp *intel_dp) + for (i = 0; i < intel_dp->lane_count; i++) + if ((intel_dp->train_set[i] & DP_TRAIN_MAX_SWING_REACHED) == 0) + break; +- if (i == intel_dp->lane_count && voltage_tries == 5) { ++ if (i == intel_dp->lane_count) { + ++loop_tries; + if (loop_tries == 5) { + DRM_DEBUG_KMS("too many full retries, give up\n"); +diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c +index a3730e0..bee8cb6 100644 +--- a/drivers/gpu/drm/i915/intel_panel.c ++++ b/drivers/gpu/drm/i915/intel_panel.c +@@ -321,9 +321,6 @@ void intel_panel_enable_backlight(struct drm_device *dev, + if (dev_priv->backlight_level == 0) + dev_priv->backlight_level = intel_panel_get_max_backlight(dev); + +- dev_priv->backlight_enabled = true; +- intel_panel_actually_set_backlight(dev, dev_priv->backlight_level); +- + if (INTEL_INFO(dev)->gen >= 4) { + uint32_t reg, tmp; + +@@ -359,12 +356,12 @@ void intel_panel_enable_backlight(struct drm_device *dev, + } + + set_level: +- /* Check the current backlight level and try to set again if it's zero. +- * On some machines, BLC_PWM_CPU_CTL is cleared to zero automatically +- * when BLC_PWM_CPU_CTL2 and BLC_PWM_PCH_CTL1 are written. ++ /* Call below after setting BLC_PWM_CPU_CTL2 and BLC_PWM_PCH_CTL1. ++ * BLC_PWM_CPU_CTL may be cleared to zero automatically when these ++ * registers are set. + */ +- if (!intel_panel_get_backlight(dev)) +- intel_panel_actually_set_backlight(dev, dev_priv->backlight_level); ++ dev_priv->backlight_enabled = true; ++ intel_panel_actually_set_backlight(dev, dev_priv->backlight_level); + } + + static void intel_panel_init_backlight(struct drm_device *dev) +diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c +index d3d99a2..4f50c40 100644 +--- a/drivers/gpu/drm/mgag200/mgag200_mode.c ++++ b/drivers/gpu/drm/mgag200/mgag200_mode.c +@@ -382,19 +382,19 @@ static int mga_g200eh_set_plls(struct mga_device *mdev, long clock) + m = n = p = 0; + vcomax = 800000; + vcomin = 400000; +- pllreffreq = 3333; ++ pllreffreq = 33333; + + delta = 0xffffffff; + permitteddelta = clock * 5 / 1000; + +- for (testp = 16; testp > 0; testp--) { ++ for (testp = 16; testp > 0; testp >>= 1) { + if (clock * testp > vcomax) + continue; + if (clock * testp < vcomin) + continue; + + for (testm = 1; testm < 33; testm++) { +- for (testn = 1; testn < 257; testn++) { ++ for (testn = 17; testn < 257; testn++) { + computed = (pllreffreq * testn) / + (testm * testp); + if (computed > clock) +@@ -404,11 +404,11 @@ static int mga_g200eh_set_plls(struct mga_device *mdev, long clock) + if (tmpdelta < delta) { + delta = tmpdelta; + n = testn - 1; +- m = (testm - 1) | ((n >> 1) & 0x80); ++ m = (testm - 1); + p = testp - 1; + } + if ((clock * testp) >= 600000) +- p |= 80; ++ p |= 0x80; + } + } + } +diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c +index 835992d..b64e55d 100644 +--- a/drivers/gpu/drm/radeon/ni.c ++++ b/drivers/gpu/drm/radeon/ni.c +@@ -466,13 +466,19 @@ static void cayman_gpu_init(struct radeon_device *rdev) + (rdev->pdev->device == 0x9907) || + (rdev->pdev->device == 0x9908) || + (rdev->pdev->device == 0x9909) || ++ (rdev->pdev->device == 0x990B) || ++ (rdev->pdev->device == 0x990C) || ++ (rdev->pdev->device == 0x990F) || + (rdev->pdev->device == 0x9910) || +- (rdev->pdev->device == 0x9917)) { ++ (rdev->pdev->device == 0x9917) || ++ (rdev->pdev->device == 0x9999)) { + rdev->config.cayman.max_simds_per_se = 6; + rdev->config.cayman.max_backends_per_se = 2; + } else if ((rdev->pdev->device == 0x9903) || + (rdev->pdev->device == 0x9904) || + (rdev->pdev->device == 0x990A) || ++ (rdev->pdev->device == 0x990D) || ++ (rdev->pdev->device == 0x990E) || + (rdev->pdev->device == 0x9913) || + (rdev->pdev->device == 0x9918)) { + rdev->config.cayman.max_simds_per_se = 4; +@@ -481,6 +487,9 @@ static void cayman_gpu_init(struct radeon_device *rdev) + (rdev->pdev->device == 0x9990) || + (rdev->pdev->device == 0x9991) || + (rdev->pdev->device == 0x9994) || ++ (rdev->pdev->device == 0x9995) || ++ (rdev->pdev->device == 0x9996) || ++ (rdev->pdev->device == 0x999A) || + (rdev->pdev->device == 0x99A0)) { + rdev->config.cayman.max_simds_per_se = 3; + rdev->config.cayman.max_backends_per_se = 1; +@@ -614,11 +623,22 @@ static void cayman_gpu_init(struct radeon_device *rdev) + WREG32(DMA_TILING_CONFIG + DMA0_REGISTER_OFFSET, gb_addr_config); + WREG32(DMA_TILING_CONFIG + DMA1_REGISTER_OFFSET, gb_addr_config); + +- tmp = gb_addr_config & NUM_PIPES_MASK; +- tmp = r6xx_remap_render_backend(rdev, tmp, +- rdev->config.cayman.max_backends_per_se * +- rdev->config.cayman.max_shader_engines, +- CAYMAN_MAX_BACKENDS, disabled_rb_mask); ++ if ((rdev->config.cayman.max_backends_per_se == 1) && ++ (rdev->flags & RADEON_IS_IGP)) { ++ if ((disabled_rb_mask & 3) == 1) { ++ /* RB0 disabled, RB1 enabled */ ++ tmp = 0x11111111; ++ } else { ++ /* RB1 disabled, RB0 enabled */ ++ tmp = 0x00000000; ++ } ++ } else { ++ tmp = gb_addr_config & NUM_PIPES_MASK; ++ tmp = r6xx_remap_render_backend(rdev, tmp, ++ rdev->config.cayman.max_backends_per_se * ++ rdev->config.cayman.max_shader_engines, ++ CAYMAN_MAX_BACKENDS, disabled_rb_mask); ++ } + WREG32(GB_BACKEND_MAP, tmp); + + cgts_tcc_disable = 0xffff0000; +@@ -1662,6 +1682,7 @@ int cayman_resume(struct radeon_device *rdev) + int cayman_suspend(struct radeon_device *rdev) + { + r600_audio_fini(rdev); ++ radeon_vm_manager_fini(rdev); + cayman_cp_enable(rdev, false); + cayman_dma_stop(rdev); + evergreen_irq_suspend(rdev); +diff --git a/drivers/gpu/drm/radeon/radeon_benchmark.c b/drivers/gpu/drm/radeon/radeon_benchmark.c +index bedda9c..a2f0c24 100644 +--- a/drivers/gpu/drm/radeon/radeon_benchmark.c ++++ b/drivers/gpu/drm/radeon/radeon_benchmark.c +@@ -135,13 +135,15 @@ static void radeon_benchmark_move(struct radeon_device *rdev, unsigned size, + sdomain, ddomain, "dma"); + } + +- time = radeon_benchmark_do_move(rdev, size, saddr, daddr, +- RADEON_BENCHMARK_COPY_BLIT, n); +- if (time < 0) +- goto out_cleanup; +- if (time > 0) +- radeon_benchmark_log_results(n, size, time, +- sdomain, ddomain, "blit"); ++ if (rdev->asic->copy.blit) { ++ time = radeon_benchmark_do_move(rdev, size, saddr, daddr, ++ RADEON_BENCHMARK_COPY_BLIT, n); ++ if (time < 0) ++ goto out_cleanup; ++ if (time > 0) ++ radeon_benchmark_log_results(n, size, time, ++ sdomain, ddomain, "blit"); ++ } + + out_cleanup: + if (sobj) { +diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c +index ae8b482..dd00721 100644 +--- a/drivers/gpu/drm/radeon/si.c ++++ b/drivers/gpu/drm/radeon/si.c +@@ -4232,6 +4232,7 @@ int si_resume(struct radeon_device *rdev) + + int si_suspend(struct radeon_device *rdev) + { ++ radeon_vm_manager_fini(rdev); + si_cp_enable(rdev, false); + cayman_dma_stop(rdev); + si_irq_suspend(rdev); +diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c +index 7b38877..9e622b7 100644 +--- a/drivers/i2c/busses/i2c-tegra.c ++++ b/drivers/i2c/busses/i2c-tegra.c +@@ -392,7 +392,11 @@ static int tegra_i2c_init(struct tegra_i2c_dev *i2c_dev) + u32 val; + int err = 0; + +- tegra_i2c_clock_enable(i2c_dev); ++ err = tegra_i2c_clock_enable(i2c_dev); ++ if (err < 0) { ++ dev_err(i2c_dev->dev, "Clock enable failed %d\n", err); ++ return err; ++ } + + tegra_periph_reset_assert(i2c_dev->div_clk); + udelay(2); +@@ -599,7 +603,12 @@ static int tegra_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], + if (i2c_dev->is_suspended) + return -EBUSY; + +- tegra_i2c_clock_enable(i2c_dev); ++ ret = tegra_i2c_clock_enable(i2c_dev); ++ if (ret < 0) { ++ dev_err(i2c_dev->dev, "Clock enable failed %d\n", ret); ++ return ret; ++ } ++ + for (i = 0; i < num; i++) { + enum msg_end_type end_type = MSG_END_STOP; + if (i < (num - 1)) { +diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c +index 67b0c1d..1ef880d 100644 +--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c ++++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c +@@ -758,9 +758,13 @@ void ipoib_cm_send(struct net_device *dev, struct sk_buff *skb, struct ipoib_cm_ + if (++priv->tx_outstanding == ipoib_sendq_size) { + ipoib_dbg(priv, "TX ring 0x%x full, stopping kernel net queue\n", + tx->qp->qp_num); +- if (ib_req_notify_cq(priv->send_cq, IB_CQ_NEXT_COMP)) +- ipoib_warn(priv, "request notify on send CQ failed\n"); + netif_stop_queue(dev); ++ rc = ib_req_notify_cq(priv->send_cq, ++ IB_CQ_NEXT_COMP | IB_CQ_REPORT_MISSED_EVENTS); ++ if (rc < 0) ++ ipoib_warn(priv, "request notify on send CQ failed\n"); ++ else if (rc) ++ ipoib_send_comp_handler(priv->send_cq, dev); + } + } + } +diff --git a/drivers/md/dm-bufio.c b/drivers/md/dm-bufio.c +index 651ca79..64eff90 100644 +--- a/drivers/md/dm-bufio.c ++++ b/drivers/md/dm-bufio.c +@@ -1026,6 +1026,8 @@ void dm_bufio_prefetch(struct dm_bufio_client *c, + { + struct blk_plug plug; + ++ BUG_ON(dm_bufio_in_request()); ++ + blk_start_plug(&plug); + dm_bufio_lock(c); + +diff --git a/drivers/md/dm-thin.c b/drivers/md/dm-thin.c +index 7a66d73..2d3a2af 100644 +--- a/drivers/md/dm-thin.c ++++ b/drivers/md/dm-thin.c +@@ -2479,7 +2479,7 @@ static struct target_type pool_target = { + .name = "thin-pool", + .features = DM_TARGET_SINGLETON | DM_TARGET_ALWAYS_WRITEABLE | + DM_TARGET_IMMUTABLE, +- .version = {1, 6, 1}, ++ .version = {1, 7, 0}, + .module = THIS_MODULE, + .ctr = pool_ctr, + .dtr = pool_dtr, +@@ -2766,7 +2766,7 @@ static int thin_iterate_devices(struct dm_target *ti, + + static struct target_type thin_target = { + .name = "thin", +- .version = {1, 7, 1}, ++ .version = {1, 8, 0}, + .module = THIS_MODULE, + .ctr = thin_ctr, + .dtr = thin_dtr, +diff --git a/drivers/md/dm-verity.c b/drivers/md/dm-verity.c +index 6ad5383..a746f1d 100644 +--- a/drivers/md/dm-verity.c ++++ b/drivers/md/dm-verity.c +@@ -93,6 +93,13 @@ struct dm_verity_io { + */ + }; + ++struct dm_verity_prefetch_work { ++ struct work_struct work; ++ struct dm_verity *v; ++ sector_t block; ++ unsigned n_blocks; ++}; ++ + static struct shash_desc *io_hash_desc(struct dm_verity *v, struct dm_verity_io *io) + { + return (struct shash_desc *)(io + 1); +@@ -424,15 +431,18 @@ static void verity_end_io(struct bio *bio, int error) + * The root buffer is not prefetched, it is assumed that it will be cached + * all the time. + */ +-static void verity_prefetch_io(struct dm_verity *v, struct dm_verity_io *io) ++static void verity_prefetch_io(struct work_struct *work) + { ++ struct dm_verity_prefetch_work *pw = ++ container_of(work, struct dm_verity_prefetch_work, work); ++ struct dm_verity *v = pw->v; + int i; + + for (i = v->levels - 2; i >= 0; i--) { + sector_t hash_block_start; + sector_t hash_block_end; +- verity_hash_at_level(v, io->block, i, &hash_block_start, NULL); +- verity_hash_at_level(v, io->block + io->n_blocks - 1, i, &hash_block_end, NULL); ++ verity_hash_at_level(v, pw->block, i, &hash_block_start, NULL); ++ verity_hash_at_level(v, pw->block + pw->n_blocks - 1, i, &hash_block_end, NULL); + if (!i) { + unsigned cluster = ACCESS_ONCE(dm_verity_prefetch_cluster); + +@@ -452,6 +462,25 @@ no_prefetch_cluster: + dm_bufio_prefetch(v->bufio, hash_block_start, + hash_block_end - hash_block_start + 1); + } ++ ++ kfree(pw); ++} ++ ++static void verity_submit_prefetch(struct dm_verity *v, struct dm_verity_io *io) ++{ ++ struct dm_verity_prefetch_work *pw; ++ ++ pw = kmalloc(sizeof(struct dm_verity_prefetch_work), ++ GFP_NOIO | __GFP_NORETRY | __GFP_NOMEMALLOC | __GFP_NOWARN); ++ ++ if (!pw) ++ return; ++ ++ INIT_WORK(&pw->work, verity_prefetch_io); ++ pw->v = v; ++ pw->block = io->block; ++ pw->n_blocks = io->n_blocks; ++ queue_work(v->verify_wq, &pw->work); + } + + /* +@@ -498,7 +527,7 @@ static int verity_map(struct dm_target *ti, struct bio *bio) + memcpy(io->io_vec, bio_iovec(bio), + io->io_vec_size * sizeof(struct bio_vec)); + +- verity_prefetch_io(v, io); ++ verity_submit_prefetch(v, io); + + generic_make_request(bio); + +@@ -858,7 +887,7 @@ bad: + + static struct target_type verity_target = { + .name = "verity", +- .version = {1, 1, 1}, ++ .version = {1, 2, 0}, + .module = THIS_MODULE, + .ctr = verity_ctr, + .dtr = verity_dtr, +diff --git a/drivers/md/persistent-data/dm-btree-remove.c b/drivers/md/persistent-data/dm-btree-remove.c +index c4f2813..b88757c 100644 +--- a/drivers/md/persistent-data/dm-btree-remove.c ++++ b/drivers/md/persistent-data/dm-btree-remove.c +@@ -139,15 +139,8 @@ struct child { + struct btree_node *n; + }; + +-static struct dm_btree_value_type le64_type = { +- .context = NULL, +- .size = sizeof(__le64), +- .inc = NULL, +- .dec = NULL, +- .equal = NULL +-}; +- +-static int init_child(struct dm_btree_info *info, struct btree_node *parent, ++static int init_child(struct dm_btree_info *info, struct dm_btree_value_type *vt, ++ struct btree_node *parent, + unsigned index, struct child *result) + { + int r, inc; +@@ -164,7 +157,7 @@ static int init_child(struct dm_btree_info *info, struct btree_node *parent, + result->n = dm_block_data(result->block); + + if (inc) +- inc_children(info->tm, result->n, &le64_type); ++ inc_children(info->tm, result->n, vt); + + *((__le64 *) value_ptr(parent, index)) = + cpu_to_le64(dm_block_location(result->block)); +@@ -236,7 +229,7 @@ static void __rebalance2(struct dm_btree_info *info, struct btree_node *parent, + } + + static int rebalance2(struct shadow_spine *s, struct dm_btree_info *info, +- unsigned left_index) ++ struct dm_btree_value_type *vt, unsigned left_index) + { + int r; + struct btree_node *parent; +@@ -244,11 +237,11 @@ static int rebalance2(struct shadow_spine *s, struct dm_btree_info *info, + + parent = dm_block_data(shadow_current(s)); + +- r = init_child(info, parent, left_index, &left); ++ r = init_child(info, vt, parent, left_index, &left); + if (r) + return r; + +- r = init_child(info, parent, left_index + 1, &right); ++ r = init_child(info, vt, parent, left_index + 1, &right); + if (r) { + exit_child(info, &left); + return r; +@@ -368,7 +361,7 @@ static void __rebalance3(struct dm_btree_info *info, struct btree_node *parent, + } + + static int rebalance3(struct shadow_spine *s, struct dm_btree_info *info, +- unsigned left_index) ++ struct dm_btree_value_type *vt, unsigned left_index) + { + int r; + struct btree_node *parent = dm_block_data(shadow_current(s)); +@@ -377,17 +370,17 @@ static int rebalance3(struct shadow_spine *s, struct dm_btree_info *info, + /* + * FIXME: fill out an array? + */ +- r = init_child(info, parent, left_index, &left); ++ r = init_child(info, vt, parent, left_index, &left); + if (r) + return r; + +- r = init_child(info, parent, left_index + 1, ¢er); ++ r = init_child(info, vt, parent, left_index + 1, ¢er); + if (r) { + exit_child(info, &left); + return r; + } + +- r = init_child(info, parent, left_index + 2, &right); ++ r = init_child(info, vt, parent, left_index + 2, &right); + if (r) { + exit_child(info, &left); + exit_child(info, ¢er); +@@ -434,7 +427,8 @@ static int get_nr_entries(struct dm_transaction_manager *tm, + } + + static int rebalance_children(struct shadow_spine *s, +- struct dm_btree_info *info, uint64_t key) ++ struct dm_btree_info *info, ++ struct dm_btree_value_type *vt, uint64_t key) + { + int i, r, has_left_sibling, has_right_sibling; + uint32_t child_entries; +@@ -472,13 +466,13 @@ static int rebalance_children(struct shadow_spine *s, + has_right_sibling = i < (le32_to_cpu(n->header.nr_entries) - 1); + + if (!has_left_sibling) +- r = rebalance2(s, info, i); ++ r = rebalance2(s, info, vt, i); + + else if (!has_right_sibling) +- r = rebalance2(s, info, i - 1); ++ r = rebalance2(s, info, vt, i - 1); + + else +- r = rebalance3(s, info, i - 1); ++ r = rebalance3(s, info, vt, i - 1); + + return r; + } +@@ -529,7 +523,7 @@ static int remove_raw(struct shadow_spine *s, struct dm_btree_info *info, + if (le32_to_cpu(n->header.flags) & LEAF_NODE) + return do_leaf(n, key, index); + +- r = rebalance_children(s, info, key); ++ r = rebalance_children(s, info, vt, key); + if (r) + break; + +@@ -550,6 +544,14 @@ static int remove_raw(struct shadow_spine *s, struct dm_btree_info *info, + return r; + } + ++static struct dm_btree_value_type le64_type = { ++ .context = NULL, ++ .size = sizeof(__le64), ++ .inc = NULL, ++ .dec = NULL, ++ .equal = NULL ++}; ++ + int dm_btree_remove(struct dm_btree_info *info, dm_block_t root, + uint64_t *keys, dm_block_t *new_root) + { +diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c +index 19d77a0..94ce78e 100644 +--- a/drivers/md/raid5.c ++++ b/drivers/md/raid5.c +@@ -674,9 +674,11 @@ static void ops_run_io(struct stripe_head *sh, struct stripe_head_state *s) + bi->bi_next = NULL; + if (rrdev) + set_bit(R5_DOUBLE_LOCKED, &sh->dev[i].flags); +- trace_block_bio_remap(bdev_get_queue(bi->bi_bdev), +- bi, disk_devt(conf->mddev->gendisk), +- sh->dev[i].sector); ++ ++ if (conf->mddev->gendisk) ++ trace_block_bio_remap(bdev_get_queue(bi->bi_bdev), ++ bi, disk_devt(conf->mddev->gendisk), ++ sh->dev[i].sector); + generic_make_request(bi); + } + if (rrdev) { +@@ -704,9 +706,10 @@ static void ops_run_io(struct stripe_head *sh, struct stripe_head_state *s) + rbi->bi_io_vec[0].bv_offset = 0; + rbi->bi_size = STRIPE_SIZE; + rbi->bi_next = NULL; +- trace_block_bio_remap(bdev_get_queue(rbi->bi_bdev), +- rbi, disk_devt(conf->mddev->gendisk), +- sh->dev[i].sector); ++ if (conf->mddev->gendisk) ++ trace_block_bio_remap(bdev_get_queue(rbi->bi_bdev), ++ rbi, disk_devt(conf->mddev->gendisk), ++ sh->dev[i].sector); + generic_make_request(rbi); + } + if (!rdev && !rrdev) { +@@ -2319,17 +2322,6 @@ schedule_reconstruction(struct stripe_head *sh, struct stripe_head_state *s, + int level = conf->level; + + if (rcw) { +- /* if we are not expanding this is a proper write request, and +- * there will be bios with new data to be drained into the +- * stripe cache +- */ +- if (!expand) { +- sh->reconstruct_state = reconstruct_state_drain_run; +- set_bit(STRIPE_OP_BIODRAIN, &s->ops_request); +- } else +- sh->reconstruct_state = reconstruct_state_run; +- +- set_bit(STRIPE_OP_RECONSTRUCT, &s->ops_request); + + for (i = disks; i--; ) { + struct r5dev *dev = &sh->dev[i]; +@@ -2342,6 +2334,21 @@ schedule_reconstruction(struct stripe_head *sh, struct stripe_head_state *s, + s->locked++; + } + } ++ /* if we are not expanding this is a proper write request, and ++ * there will be bios with new data to be drained into the ++ * stripe cache ++ */ ++ if (!expand) { ++ if (!s->locked) ++ /* False alarm, nothing to do */ ++ return; ++ sh->reconstruct_state = reconstruct_state_drain_run; ++ set_bit(STRIPE_OP_BIODRAIN, &s->ops_request); ++ } else ++ sh->reconstruct_state = reconstruct_state_run; ++ ++ set_bit(STRIPE_OP_RECONSTRUCT, &s->ops_request); ++ + if (s->locked + conf->max_degraded == disks) + if (!test_and_set_bit(STRIPE_FULL_WRITE, &sh->state)) + atomic_inc(&conf->pending_full_writes); +@@ -2350,11 +2357,6 @@ schedule_reconstruction(struct stripe_head *sh, struct stripe_head_state *s, + BUG_ON(!(test_bit(R5_UPTODATE, &sh->dev[pd_idx].flags) || + test_bit(R5_Wantcompute, &sh->dev[pd_idx].flags))); + +- sh->reconstruct_state = reconstruct_state_prexor_drain_run; +- set_bit(STRIPE_OP_PREXOR, &s->ops_request); +- set_bit(STRIPE_OP_BIODRAIN, &s->ops_request); +- set_bit(STRIPE_OP_RECONSTRUCT, &s->ops_request); +- + for (i = disks; i--; ) { + struct r5dev *dev = &sh->dev[i]; + if (i == pd_idx) +@@ -2369,6 +2371,13 @@ schedule_reconstruction(struct stripe_head *sh, struct stripe_head_state *s, + s->locked++; + } + } ++ if (!s->locked) ++ /* False alarm - nothing to do */ ++ return; ++ sh->reconstruct_state = reconstruct_state_prexor_drain_run; ++ set_bit(STRIPE_OP_PREXOR, &s->ops_request); ++ set_bit(STRIPE_OP_BIODRAIN, &s->ops_request); ++ set_bit(STRIPE_OP_RECONSTRUCT, &s->ops_request); + } + + /* keep the parity disk(s) locked while asynchronous operations +@@ -2603,6 +2612,8 @@ handle_failed_sync(struct r5conf *conf, struct stripe_head *sh, + int i; + + clear_bit(STRIPE_SYNCING, &sh->state); ++ if (test_and_clear_bit(R5_Overlap, &sh->dev[sh->pd_idx].flags)) ++ wake_up(&conf->wait_for_overlap); + s->syncing = 0; + s->replacing = 0; + /* There is nothing more to do for sync/check/repair. +@@ -2776,6 +2787,7 @@ static void handle_stripe_clean_event(struct r5conf *conf, + { + int i; + struct r5dev *dev; ++ int discard_pending = 0; + + for (i = disks; i--; ) + if (sh->dev[i].written) { +@@ -2804,9 +2816,23 @@ static void handle_stripe_clean_event(struct r5conf *conf, + STRIPE_SECTORS, + !test_bit(STRIPE_DEGRADED, &sh->state), + 0); +- } +- } else if (test_bit(R5_Discard, &sh->dev[i].flags)) +- clear_bit(R5_Discard, &sh->dev[i].flags); ++ } else if (test_bit(R5_Discard, &dev->flags)) ++ discard_pending = 1; ++ } ++ if (!discard_pending && ++ test_bit(R5_Discard, &sh->dev[sh->pd_idx].flags)) { ++ clear_bit(R5_Discard, &sh->dev[sh->pd_idx].flags); ++ clear_bit(R5_UPTODATE, &sh->dev[sh->pd_idx].flags); ++ if (sh->qd_idx >= 0) { ++ clear_bit(R5_Discard, &sh->dev[sh->qd_idx].flags); ++ clear_bit(R5_UPTODATE, &sh->dev[sh->qd_idx].flags); ++ } ++ /* now that discard is done we can proceed with any sync */ ++ clear_bit(STRIPE_DISCARD, &sh->state); ++ if (test_bit(STRIPE_SYNC_REQUESTED, &sh->state)) ++ set_bit(STRIPE_HANDLE, &sh->state); ++ ++ } + + if (test_and_clear_bit(STRIPE_FULL_WRITE, &sh->state)) + if (atomic_dec_and_test(&conf->pending_full_writes)) +@@ -2865,8 +2891,10 @@ static void handle_stripe_dirtying(struct r5conf *conf, + set_bit(STRIPE_HANDLE, &sh->state); + if (rmw < rcw && rmw > 0) { + /* prefer read-modify-write, but need to get some data */ +- blk_add_trace_msg(conf->mddev->queue, "raid5 rmw %llu %d", +- (unsigned long long)sh->sector, rmw); ++ if (conf->mddev->queue) ++ blk_add_trace_msg(conf->mddev->queue, ++ "raid5 rmw %llu %d", ++ (unsigned long long)sh->sector, rmw); + for (i = disks; i--; ) { + struct r5dev *dev = &sh->dev[i]; + if ((dev->towrite || i == sh->pd_idx) && +@@ -2916,7 +2944,7 @@ static void handle_stripe_dirtying(struct r5conf *conf, + } + } + } +- if (rcw) ++ if (rcw && conf->mddev->queue) + blk_add_trace_msg(conf->mddev->queue, "raid5 rcw %llu %d %d %d", + (unsigned long long)sh->sector, + rcw, qread, test_bit(STRIPE_DELAYED, &sh->state)); +@@ -3456,9 +3484,15 @@ static void handle_stripe(struct stripe_head *sh) + return; + } + +- if (test_and_clear_bit(STRIPE_SYNC_REQUESTED, &sh->state)) { +- set_bit(STRIPE_SYNCING, &sh->state); +- clear_bit(STRIPE_INSYNC, &sh->state); ++ if (test_bit(STRIPE_SYNC_REQUESTED, &sh->state)) { ++ spin_lock(&sh->stripe_lock); ++ /* Cannot process 'sync' concurrently with 'discard' */ ++ if (!test_bit(STRIPE_DISCARD, &sh->state) && ++ test_and_clear_bit(STRIPE_SYNC_REQUESTED, &sh->state)) { ++ set_bit(STRIPE_SYNCING, &sh->state); ++ clear_bit(STRIPE_INSYNC, &sh->state); ++ } ++ spin_unlock(&sh->stripe_lock); + } + clear_bit(STRIPE_DELAYED, &sh->state); + +@@ -3618,6 +3652,8 @@ static void handle_stripe(struct stripe_head *sh) + test_bit(STRIPE_INSYNC, &sh->state)) { + md_done_sync(conf->mddev, STRIPE_SECTORS, 1); + clear_bit(STRIPE_SYNCING, &sh->state); ++ if (test_and_clear_bit(R5_Overlap, &sh->dev[sh->pd_idx].flags)) ++ wake_up(&conf->wait_for_overlap); + } + + /* If the failed drives are just a ReadError, then we might need +@@ -4023,9 +4059,10 @@ static int chunk_aligned_read(struct mddev *mddev, struct bio * raid_bio) + atomic_inc(&conf->active_aligned_reads); + spin_unlock_irq(&conf->device_lock); + +- trace_block_bio_remap(bdev_get_queue(align_bi->bi_bdev), +- align_bi, disk_devt(mddev->gendisk), +- raid_bio->bi_sector); ++ if (mddev->gendisk) ++ trace_block_bio_remap(bdev_get_queue(align_bi->bi_bdev), ++ align_bi, disk_devt(mddev->gendisk), ++ raid_bio->bi_sector); + generic_make_request(align_bi); + return 1; + } else { +@@ -4119,7 +4156,8 @@ static void raid5_unplug(struct blk_plug_cb *blk_cb, bool from_schedule) + } + spin_unlock_irq(&conf->device_lock); + } +- trace_block_unplug(mddev->queue, cnt, !from_schedule); ++ if (mddev->queue) ++ trace_block_unplug(mddev->queue, cnt, !from_schedule); + kfree(cb); + } + +@@ -4182,6 +4220,13 @@ static void make_discard_request(struct mddev *mddev, struct bio *bi) + sh = get_active_stripe(conf, logical_sector, 0, 0, 0); + prepare_to_wait(&conf->wait_for_overlap, &w, + TASK_UNINTERRUPTIBLE); ++ set_bit(R5_Overlap, &sh->dev[sh->pd_idx].flags); ++ if (test_bit(STRIPE_SYNCING, &sh->state)) { ++ release_stripe(sh); ++ schedule(); ++ goto again; ++ } ++ clear_bit(R5_Overlap, &sh->dev[sh->pd_idx].flags); + spin_lock_irq(&sh->stripe_lock); + for (d = 0; d < conf->raid_disks; d++) { + if (d == sh->pd_idx || d == sh->qd_idx) +@@ -4194,6 +4239,7 @@ static void make_discard_request(struct mddev *mddev, struct bio *bi) + goto again; + } + } ++ set_bit(STRIPE_DISCARD, &sh->state); + finish_wait(&conf->wait_for_overlap, &w); + for (d = 0; d < conf->raid_disks; d++) { + if (d == sh->pd_idx || d == sh->qd_idx) +diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h +index 18b2c4a..050a334 100644 +--- a/drivers/md/raid5.h ++++ b/drivers/md/raid5.h +@@ -323,6 +323,7 @@ enum { + STRIPE_COMPUTE_RUN, + STRIPE_OPS_REQ_PENDING, + STRIPE_ON_UNPLUG_LIST, ++ STRIPE_DISCARD, + }; + + /* +diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c +index a079da17..272f81a 100644 +--- a/drivers/net/bonding/bond_main.c ++++ b/drivers/net/bonding/bond_main.c +@@ -1728,6 +1728,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) + + bond_compute_features(bond); + ++ bond_update_speed_duplex(new_slave); ++ + read_lock(&bond->lock); + + new_slave->last_arp_rx = jiffies - +@@ -1780,8 +1782,6 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) + new_slave->link == BOND_LINK_DOWN ? "DOWN" : + (new_slave->link == BOND_LINK_UP ? "UP" : "BACK")); + +- bond_update_speed_duplex(new_slave); +- + if (USES_PRIMARY(bond->params.mode) && bond->params.primary[0]) { + /* if there is a primary slave, remember it */ + if (strcmp(bond->params.primary, new_slave->dev->name) == 0) { +@@ -2463,8 +2463,6 @@ static void bond_miimon_commit(struct bonding *bond) + bond_set_backup_slave(slave); + } + +- bond_update_speed_duplex(slave); +- + pr_info("%s: link status definitely up for interface %s, %u Mbps %s duplex.\n", + bond->dev->name, slave->dev->name, + slave->speed, slave->duplex ? "full" : "half"); +diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +index a5edac8..3a73bb9 100644 +--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c ++++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +@@ -2523,6 +2523,7 @@ load_error2: + bp->port.pmf = 0; + load_error1: + bnx2x_napi_disable(bp); ++ bnx2x_del_all_napi(bp); + /* clear pf_load status, as it was already set */ + bnx2x_clear_pf_load(bp); + load_error0: +diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.h +index b4d7b26..937f5b5 100644 +--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.h ++++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.h +@@ -456,8 +456,9 @@ struct bnx2x_fw_port_stats_old { + + #define UPDATE_QSTAT(s, t) \ + do { \ +- qstats->t##_hi = qstats_old->t##_hi + le32_to_cpu(s.hi); \ + qstats->t##_lo = qstats_old->t##_lo + le32_to_cpu(s.lo); \ ++ qstats->t##_hi = qstats_old->t##_hi + le32_to_cpu(s.hi) \ ++ + ((qstats->t##_lo < qstats_old->t##_lo) ? 1 : 0); \ + } while (0) + + #define UPDATE_QSTAT_OLD(f) \ +diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c +index f0b38fa..3ec98f2 100644 +--- a/drivers/net/ethernet/broadcom/tg3.c ++++ b/drivers/net/ethernet/broadcom/tg3.c +@@ -4093,6 +4093,14 @@ static void tg3_phy_copper_begin(struct tg3 *tp) + tp->link_config.active_speed = tp->link_config.speed; + tp->link_config.active_duplex = tp->link_config.duplex; + ++ if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5714) { ++ /* With autoneg disabled, 5715 only links up when the ++ * advertisement register has the configured speed ++ * enabled. ++ */ ++ tg3_writephy(tp, MII_ADVERTISE, ADVERTISE_ALL); ++ } ++ + bmcr = 0; + switch (tp->link_config.speed) { + default: +diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c +index bf57b3c..0bc0099 100644 +--- a/drivers/net/ethernet/sfc/efx.c ++++ b/drivers/net/ethernet/sfc/efx.c +@@ -779,6 +779,7 @@ efx_realloc_channels(struct efx_nic *efx, u32 rxq_entries, u32 txq_entries) + tx_queue->txd.entries); + } + ++ efx_device_detach_sync(efx); + efx_stop_all(efx); + efx_stop_interrupts(efx, true); + +@@ -832,6 +833,7 @@ out: + + efx_start_interrupts(efx, true); + efx_start_all(efx); ++ netif_device_attach(efx->net_dev); + return rc; + + rollback: +@@ -1641,8 +1643,12 @@ static void efx_stop_all(struct efx_nic *efx) + /* Flush efx_mac_work(), refill_workqueue, monitor_work */ + efx_flush_all(efx); + +- /* Stop the kernel transmit interface late, so the watchdog +- * timer isn't ticking over the flush */ ++ /* Stop the kernel transmit interface. This is only valid if ++ * the device is stopped or detached; otherwise the watchdog ++ * may fire immediately. ++ */ ++ WARN_ON(netif_running(efx->net_dev) && ++ netif_device_present(efx->net_dev)); + netif_tx_disable(efx->net_dev); + + efx_stop_datapath(efx); +@@ -1963,16 +1969,18 @@ static int efx_change_mtu(struct net_device *net_dev, int new_mtu) + if (new_mtu > EFX_MAX_MTU) + return -EINVAL; + +- efx_stop_all(efx); +- + netif_dbg(efx, drv, efx->net_dev, "changing MTU to %d\n", new_mtu); + ++ efx_device_detach_sync(efx); ++ efx_stop_all(efx); ++ + mutex_lock(&efx->mac_lock); + net_dev->mtu = new_mtu; + efx->type->reconfigure_mac(efx); + mutex_unlock(&efx->mac_lock); + + efx_start_all(efx); ++ netif_device_attach(efx->net_dev); + return 0; + } + +diff --git a/drivers/net/ethernet/sfc/efx.h b/drivers/net/ethernet/sfc/efx.h +index 50247df..d2f790d 100644 +--- a/drivers/net/ethernet/sfc/efx.h ++++ b/drivers/net/ethernet/sfc/efx.h +@@ -171,9 +171,9 @@ static inline void efx_device_detach_sync(struct efx_nic *efx) + * TX scheduler is stopped when we're done and before + * netif_device_present() becomes false. + */ +- netif_tx_lock(dev); ++ netif_tx_lock_bh(dev); + netif_device_detach(dev); +- netif_tx_unlock(dev); ++ netif_tx_unlock_bh(dev); + } + + #endif /* EFX_EFX_H */ +diff --git a/drivers/net/ethernet/sfc/net_driver.h b/drivers/net/ethernet/sfc/net_driver.h +index 2d756c1..0a90abd 100644 +--- a/drivers/net/ethernet/sfc/net_driver.h ++++ b/drivers/net/ethernet/sfc/net_driver.h +@@ -210,6 +210,7 @@ struct efx_tx_queue { + * Will be %NULL if the buffer slot is currently free. + * @page: The associated page buffer. Valif iff @flags & %EFX_RX_BUF_PAGE. + * Will be %NULL if the buffer slot is currently free. ++ * @page_offset: Offset within page. Valid iff @flags & %EFX_RX_BUF_PAGE. + * @len: Buffer length, in bytes. + * @flags: Flags for buffer and packet state. + */ +@@ -219,7 +220,8 @@ struct efx_rx_buffer { + struct sk_buff *skb; + struct page *page; + } u; +- unsigned int len; ++ u16 page_offset; ++ u16 len; + u16 flags; + }; + #define EFX_RX_BUF_PAGE 0x0001 +diff --git a/drivers/net/ethernet/sfc/nic.c b/drivers/net/ethernet/sfc/nic.c +index 0ad790c..eaa8e87 100644 +--- a/drivers/net/ethernet/sfc/nic.c ++++ b/drivers/net/ethernet/sfc/nic.c +@@ -376,7 +376,8 @@ efx_may_push_tx_desc(struct efx_tx_queue *tx_queue, unsigned int write_count) + return false; + + tx_queue->empty_read_count = 0; +- return ((empty_read_count ^ write_count) & ~EFX_EMPTY_COUNT_VALID) == 0; ++ return ((empty_read_count ^ write_count) & ~EFX_EMPTY_COUNT_VALID) == 0 ++ && tx_queue->write_count - write_count == 1; + } + + /* For each entry inserted into the software descriptor ring, create a +diff --git a/drivers/net/ethernet/sfc/ptp.c b/drivers/net/ethernet/sfc/ptp.c +index 0767043f..3f93624 100644 +--- a/drivers/net/ethernet/sfc/ptp.c ++++ b/drivers/net/ethernet/sfc/ptp.c +@@ -1439,7 +1439,7 @@ static int efx_phc_settime(struct ptp_clock_info *ptp, + + delta = timespec_sub(*e_ts, time_now); + +- efx_phc_adjtime(ptp, timespec_to_ns(&delta)); ++ rc = efx_phc_adjtime(ptp, timespec_to_ns(&delta)); + if (rc != 0) + return rc; + +diff --git a/drivers/net/ethernet/sfc/rx.c b/drivers/net/ethernet/sfc/rx.c +index d780a0d..bb579a6 100644 +--- a/drivers/net/ethernet/sfc/rx.c ++++ b/drivers/net/ethernet/sfc/rx.c +@@ -90,11 +90,7 @@ static unsigned int rx_refill_threshold; + static inline unsigned int efx_rx_buf_offset(struct efx_nic *efx, + struct efx_rx_buffer *buf) + { +- /* Offset is always within one page, so we don't need to consider +- * the page order. +- */ +- return ((unsigned int) buf->dma_addr & (PAGE_SIZE - 1)) + +- efx->type->rx_buffer_hash_size; ++ return buf->page_offset + efx->type->rx_buffer_hash_size; + } + static inline unsigned int efx_rx_buf_size(struct efx_nic *efx) + { +@@ -187,6 +183,7 @@ static int efx_init_rx_buffers_page(struct efx_rx_queue *rx_queue) + struct efx_nic *efx = rx_queue->efx; + struct efx_rx_buffer *rx_buf; + struct page *page; ++ unsigned int page_offset; + struct efx_rx_page_state *state; + dma_addr_t dma_addr; + unsigned index, count; +@@ -211,12 +208,14 @@ static int efx_init_rx_buffers_page(struct efx_rx_queue *rx_queue) + state->dma_addr = dma_addr; + + dma_addr += sizeof(struct efx_rx_page_state); ++ page_offset = sizeof(struct efx_rx_page_state); + + split: + index = rx_queue->added_count & rx_queue->ptr_mask; + rx_buf = efx_rx_buffer(rx_queue, index); + rx_buf->dma_addr = dma_addr + EFX_PAGE_IP_ALIGN; + rx_buf->u.page = page; ++ rx_buf->page_offset = page_offset + EFX_PAGE_IP_ALIGN; + rx_buf->len = efx->rx_buffer_len - EFX_PAGE_IP_ALIGN; + rx_buf->flags = EFX_RX_BUF_PAGE; + ++rx_queue->added_count; +@@ -227,6 +226,7 @@ static int efx_init_rx_buffers_page(struct efx_rx_queue *rx_queue) + /* Use the second half of the page */ + get_page(page); + dma_addr += (PAGE_SIZE >> 1); ++ page_offset += (PAGE_SIZE >> 1); + ++count; + goto split; + } +@@ -236,7 +236,8 @@ static int efx_init_rx_buffers_page(struct efx_rx_queue *rx_queue) + } + + static void efx_unmap_rx_buffer(struct efx_nic *efx, +- struct efx_rx_buffer *rx_buf) ++ struct efx_rx_buffer *rx_buf, ++ unsigned int used_len) + { + if ((rx_buf->flags & EFX_RX_BUF_PAGE) && rx_buf->u.page) { + struct efx_rx_page_state *state; +@@ -247,6 +248,10 @@ static void efx_unmap_rx_buffer(struct efx_nic *efx, + state->dma_addr, + efx_rx_buf_size(efx), + DMA_FROM_DEVICE); ++ } else if (used_len) { ++ dma_sync_single_for_cpu(&efx->pci_dev->dev, ++ rx_buf->dma_addr, used_len, ++ DMA_FROM_DEVICE); + } + } else if (!(rx_buf->flags & EFX_RX_BUF_PAGE) && rx_buf->u.skb) { + dma_unmap_single(&efx->pci_dev->dev, rx_buf->dma_addr, +@@ -269,7 +274,7 @@ static void efx_free_rx_buffer(struct efx_nic *efx, + static void efx_fini_rx_buffer(struct efx_rx_queue *rx_queue, + struct efx_rx_buffer *rx_buf) + { +- efx_unmap_rx_buffer(rx_queue->efx, rx_buf); ++ efx_unmap_rx_buffer(rx_queue->efx, rx_buf, 0); + efx_free_rx_buffer(rx_queue->efx, rx_buf); + } + +@@ -535,10 +540,10 @@ void efx_rx_packet(struct efx_rx_queue *rx_queue, unsigned int index, + goto out; + } + +- /* Release card resources - assumes all RX buffers consumed in-order +- * per RX queue ++ /* Release and/or sync DMA mapping - assumes all RX buffers ++ * consumed in-order per RX queue + */ +- efx_unmap_rx_buffer(efx, rx_buf); ++ efx_unmap_rx_buffer(efx, rx_buf, len); + + /* Prefetch nice and early so data will (hopefully) be in cache by + * the time we look at it. +diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c +index 6989ebe..21a942c 100644 +--- a/drivers/net/netconsole.c ++++ b/drivers/net/netconsole.c +@@ -630,6 +630,7 @@ static int netconsole_netdev_event(struct notifier_block *this, + goto done; + + spin_lock_irqsave(&target_list_lock, flags); ++restart: + list_for_each_entry(nt, &target_list, list) { + netconsole_target_get(nt); + if (nt->np.dev == dev) { +@@ -642,15 +643,17 @@ static int netconsole_netdev_event(struct notifier_block *this, + case NETDEV_UNREGISTER: + /* + * rtnl_lock already held ++ * we might sleep in __netpoll_cleanup() + */ +- if (nt->np.dev) { +- __netpoll_cleanup(&nt->np); +- dev_put(nt->np.dev); +- nt->np.dev = NULL; +- } ++ spin_unlock_irqrestore(&target_list_lock, flags); ++ __netpoll_cleanup(&nt->np); ++ spin_lock_irqsave(&target_list_lock, flags); ++ dev_put(nt->np.dev); ++ nt->np.dev = NULL; + nt->enabled = 0; + stopped = true; +- break; ++ netconsole_target_put(nt); ++ goto restart; + } + } + netconsole_target_put(nt); +diff --git a/drivers/net/usb/cdc_mbim.c b/drivers/net/usb/cdc_mbim.c +index 248d2dc..16c8429 100644 +--- a/drivers/net/usb/cdc_mbim.c ++++ b/drivers/net/usb/cdc_mbim.c +@@ -68,18 +68,9 @@ static int cdc_mbim_bind(struct usbnet *dev, struct usb_interface *intf) + struct cdc_ncm_ctx *ctx; + struct usb_driver *subdriver = ERR_PTR(-ENODEV); + int ret = -ENODEV; +- u8 data_altsetting = CDC_NCM_DATA_ALTSETTING_NCM; ++ u8 data_altsetting = cdc_ncm_select_altsetting(dev, intf); + struct cdc_mbim_state *info = (void *)&dev->data; + +- /* see if interface supports MBIM alternate setting */ +- if (intf->num_altsetting == 2) { +- if (!cdc_ncm_comm_intf_is_mbim(intf->cur_altsetting)) +- usb_set_interface(dev->udev, +- intf->cur_altsetting->desc.bInterfaceNumber, +- CDC_NCM_COMM_ALTSETTING_MBIM); +- data_altsetting = CDC_NCM_DATA_ALTSETTING_MBIM; +- } +- + /* Probably NCM, defer for cdc_ncm_bind */ + if (!cdc_ncm_comm_intf_is_mbim(intf->cur_altsetting)) + goto err; +diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c +index 6d25439..70fb846 100644 +--- a/drivers/net/usb/cdc_ncm.c ++++ b/drivers/net/usb/cdc_ncm.c +@@ -55,6 +55,14 @@ + + #define DRIVER_VERSION "14-Mar-2012" + ++#if IS_ENABLED(CONFIG_USB_NET_CDC_MBIM) ++static bool prefer_mbim = true; ++#else ++static bool prefer_mbim; ++#endif ++module_param(prefer_mbim, bool, S_IRUGO | S_IWUSR); ++MODULE_PARM_DESC(prefer_mbim, "Prefer MBIM setting on dual NCM/MBIM functions"); ++ + static void cdc_ncm_txpath_bh(unsigned long param); + static void cdc_ncm_tx_timeout_start(struct cdc_ncm_ctx *ctx); + static enum hrtimer_restart cdc_ncm_tx_timer_cb(struct hrtimer *hr_timer); +@@ -550,9 +558,12 @@ void cdc_ncm_unbind(struct usbnet *dev, struct usb_interface *intf) + } + EXPORT_SYMBOL_GPL(cdc_ncm_unbind); + +-static int cdc_ncm_bind(struct usbnet *dev, struct usb_interface *intf) ++/* Select the MBIM altsetting iff it is preferred and available, ++ * returning the number of the corresponding data interface altsetting ++ */ ++u8 cdc_ncm_select_altsetting(struct usbnet *dev, struct usb_interface *intf) + { +- int ret; ++ struct usb_host_interface *alt; + + /* The MBIM spec defines a NCM compatible default altsetting, + * which we may have matched: +@@ -568,23 +579,27 @@ static int cdc_ncm_bind(struct usbnet *dev, struct usb_interface *intf) + * endpoint descriptors, shall be constructed according to + * the rules given in section 6 (USB Device Model) of this + * specification." +- * +- * Do not bind to such interfaces, allowing cdc_mbim to handle +- * them + */ +-#if IS_ENABLED(CONFIG_USB_NET_CDC_MBIM) +- if ((intf->num_altsetting == 2) && +- !usb_set_interface(dev->udev, +- intf->cur_altsetting->desc.bInterfaceNumber, +- CDC_NCM_COMM_ALTSETTING_MBIM)) { +- if (cdc_ncm_comm_intf_is_mbim(intf->cur_altsetting)) +- return -ENODEV; +- else +- usb_set_interface(dev->udev, +- intf->cur_altsetting->desc.bInterfaceNumber, +- CDC_NCM_COMM_ALTSETTING_NCM); ++ if (prefer_mbim && intf->num_altsetting == 2) { ++ alt = usb_altnum_to_altsetting(intf, CDC_NCM_COMM_ALTSETTING_MBIM); ++ if (alt && cdc_ncm_comm_intf_is_mbim(alt) && ++ !usb_set_interface(dev->udev, ++ intf->cur_altsetting->desc.bInterfaceNumber, ++ CDC_NCM_COMM_ALTSETTING_MBIM)) ++ return CDC_NCM_DATA_ALTSETTING_MBIM; + } +-#endif ++ return CDC_NCM_DATA_ALTSETTING_NCM; ++} ++EXPORT_SYMBOL_GPL(cdc_ncm_select_altsetting); ++ ++static int cdc_ncm_bind(struct usbnet *dev, struct usb_interface *intf) ++{ ++ int ret; ++ ++ /* MBIM backwards compatible function? */ ++ cdc_ncm_select_altsetting(dev, intf); ++ if (cdc_ncm_comm_intf_is_mbim(intf->cur_altsetting)) ++ return -ENODEV; + + /* NCM data altsetting is always 1 */ + ret = cdc_ncm_bind_common(dev, intf, 1); +diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c +index 19d9035..b69ca0f 100644 +--- a/drivers/net/usb/qmi_wwan.c ++++ b/drivers/net/usb/qmi_wwan.c +@@ -139,16 +139,9 @@ static int qmi_wwan_bind(struct usbnet *dev, struct usb_interface *intf) + + BUILD_BUG_ON((sizeof(((struct usbnet *)0)->data) < sizeof(struct qmi_wwan_state))); + +- /* control and data is shared? */ +- if (intf->cur_altsetting->desc.bNumEndpoints == 3) { +- info->control = intf; +- info->data = intf; +- goto shared; +- } +- +- /* else require a single interrupt status endpoint on control intf */ +- if (intf->cur_altsetting->desc.bNumEndpoints != 1) +- goto err; ++ /* set up initial state */ ++ info->control = intf; ++ info->data = intf; + + /* and a number of CDC descriptors */ + while (len > 3) { +@@ -207,25 +200,14 @@ next_desc: + buf += h->bLength; + } + +- /* did we find all the required ones? */ +- if (!(found & (1 << USB_CDC_HEADER_TYPE)) || +- !(found & (1 << USB_CDC_UNION_TYPE))) { +- dev_err(&intf->dev, "CDC functional descriptors missing\n"); +- goto err; +- } +- +- /* verify CDC Union */ +- if (desc->bInterfaceNumber != cdc_union->bMasterInterface0) { +- dev_err(&intf->dev, "bogus CDC Union: master=%u\n", cdc_union->bMasterInterface0); +- goto err; +- } +- +- /* need to save these for unbind */ +- info->control = intf; +- info->data = usb_ifnum_to_if(dev->udev, cdc_union->bSlaveInterface0); +- if (!info->data) { +- dev_err(&intf->dev, "bogus CDC Union: slave=%u\n", cdc_union->bSlaveInterface0); +- goto err; ++ /* Use separate control and data interfaces if we found a CDC Union */ ++ if (cdc_union) { ++ info->data = usb_ifnum_to_if(dev->udev, cdc_union->bSlaveInterface0); ++ if (desc->bInterfaceNumber != cdc_union->bMasterInterface0 || !info->data) { ++ dev_err(&intf->dev, "bogus CDC Union: master=%u, slave=%u\n", ++ cdc_union->bMasterInterface0, cdc_union->bSlaveInterface0); ++ goto err; ++ } + } + + /* errors aren't fatal - we can live with the dynamic address */ +@@ -235,11 +217,12 @@ next_desc: + } + + /* claim data interface and set it up */ +- status = usb_driver_claim_interface(driver, info->data, dev); +- if (status < 0) +- goto err; ++ if (info->control != info->data) { ++ status = usb_driver_claim_interface(driver, info->data, dev); ++ if (status < 0) ++ goto err; ++ } + +-shared: + status = qmi_wwan_register_subdriver(dev); + if (status < 0 && info->control != info->data) { + usb_set_intfdata(info->data, NULL); +diff --git a/drivers/net/wireless/mwifiex/join.c b/drivers/net/wireless/mwifiex/join.c +index 88664ae..3473876 100644 +--- a/drivers/net/wireless/mwifiex/join.c ++++ b/drivers/net/wireless/mwifiex/join.c +@@ -1092,10 +1092,9 @@ mwifiex_cmd_802_11_ad_hoc_join(struct mwifiex_private *priv, + adhoc_join->bss_descriptor.bssid, + adhoc_join->bss_descriptor.ssid); + +- for (i = 0; bss_desc->supported_rates[i] && +- i < MWIFIEX_SUPPORTED_RATES; +- i++) +- ; ++ for (i = 0; i < MWIFIEX_SUPPORTED_RATES && ++ bss_desc->supported_rates[i]; i++) ++ ; + rates_size = i; + + /* Copy Data Rates from the Rates recorded in scan response */ +diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c +index 44f8b3f..cdbfc30 100644 +--- a/drivers/net/wireless/rt2x00/rt2x00dev.c ++++ b/drivers/net/wireless/rt2x00/rt2x00dev.c +@@ -1209,7 +1209,9 @@ int rt2x00lib_probe_dev(struct rt2x00_dev *rt2x00dev) + rt2x00dev->hw->wiphy->interface_modes |= + BIT(NL80211_IFTYPE_ADHOC) | + BIT(NL80211_IFTYPE_AP) | ++#ifdef CONFIG_MAC80211_MESH + BIT(NL80211_IFTYPE_MESH_POINT) | ++#endif + BIT(NL80211_IFTYPE_WDS); + + rt2x00dev->hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN; +diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c b/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c +index b1ccff4..c08d0f4 100644 +--- a/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c ++++ b/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c +@@ -1377,74 +1377,57 @@ void rtl92cu_card_disable(struct ieee80211_hw *hw) + + void rtl92cu_set_check_bssid(struct ieee80211_hw *hw, bool check_bssid) + { +- /* dummy routine needed for callback from rtl_op_configure_filter() */ +-} +- +-/*========================================================================== */ +- +-static void _rtl92cu_set_check_bssid(struct ieee80211_hw *hw, +- enum nl80211_iftype type) +-{ + struct rtl_priv *rtlpriv = rtl_priv(hw); +- u32 reg_rcr = rtl_read_dword(rtlpriv, REG_RCR); + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); +- struct rtl_phy *rtlphy = &(rtlpriv->phy); +- u8 filterout_non_associated_bssid = false; ++ u32 reg_rcr = rtl_read_dword(rtlpriv, REG_RCR); + +- switch (type) { +- case NL80211_IFTYPE_ADHOC: +- case NL80211_IFTYPE_STATION: +- filterout_non_associated_bssid = true; +- break; +- case NL80211_IFTYPE_UNSPECIFIED: +- case NL80211_IFTYPE_AP: +- default: +- break; +- } +- if (filterout_non_associated_bssid) { ++ if (rtlpriv->psc.rfpwr_state != ERFON) ++ return; ++ ++ if (check_bssid) { ++ u8 tmp; + if (IS_NORMAL_CHIP(rtlhal->version)) { +- switch (rtlphy->current_io_type) { +- case IO_CMD_RESUME_DM_BY_SCAN: +- reg_rcr |= (RCR_CBSSID_DATA | RCR_CBSSID_BCN); +- rtlpriv->cfg->ops->set_hw_reg(hw, +- HW_VAR_RCR, (u8 *)(®_rcr)); +- /* enable update TSF */ +- _rtl92cu_set_bcn_ctrl_reg(hw, 0, BIT(4)); +- break; +- case IO_CMD_PAUSE_DM_BY_SCAN: +- reg_rcr &= ~(RCR_CBSSID_DATA | RCR_CBSSID_BCN); +- rtlpriv->cfg->ops->set_hw_reg(hw, +- HW_VAR_RCR, (u8 *)(®_rcr)); +- /* disable update TSF */ +- _rtl92cu_set_bcn_ctrl_reg(hw, BIT(4), 0); +- break; +- } ++ reg_rcr |= (RCR_CBSSID_DATA | RCR_CBSSID_BCN); ++ tmp = BIT(4); + } else { +- reg_rcr |= (RCR_CBSSID); +- rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, +- (u8 *)(®_rcr)); +- _rtl92cu_set_bcn_ctrl_reg(hw, 0, (BIT(4)|BIT(5))); ++ reg_rcr |= RCR_CBSSID; ++ tmp = BIT(4) | BIT(5); + } +- } else if (filterout_non_associated_bssid == false) { ++ rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, ++ (u8 *) (®_rcr)); ++ _rtl92cu_set_bcn_ctrl_reg(hw, 0, tmp); ++ } else { ++ u8 tmp; + if (IS_NORMAL_CHIP(rtlhal->version)) { +- reg_rcr &= (~(RCR_CBSSID_DATA | RCR_CBSSID_BCN)); +- rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, +- (u8 *)(®_rcr)); +- _rtl92cu_set_bcn_ctrl_reg(hw, BIT(4), 0); ++ reg_rcr &= ~(RCR_CBSSID_DATA | RCR_CBSSID_BCN); ++ tmp = BIT(4); + } else { +- reg_rcr &= (~RCR_CBSSID); +- rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, +- (u8 *)(®_rcr)); +- _rtl92cu_set_bcn_ctrl_reg(hw, (BIT(4)|BIT(5)), 0); ++ reg_rcr &= ~RCR_CBSSID; ++ tmp = BIT(4) | BIT(5); + } ++ reg_rcr &= (~(RCR_CBSSID_DATA | RCR_CBSSID_BCN)); ++ rtlpriv->cfg->ops->set_hw_reg(hw, ++ HW_VAR_RCR, (u8 *) (®_rcr)); ++ _rtl92cu_set_bcn_ctrl_reg(hw, tmp, 0); + } + } + ++/*========================================================================== */ ++ + int rtl92cu_set_network_type(struct ieee80211_hw *hw, enum nl80211_iftype type) + { ++ struct rtl_priv *rtlpriv = rtl_priv(hw); ++ + if (_rtl92cu_set_media_status(hw, type)) + return -EOPNOTSUPP; +- _rtl92cu_set_check_bssid(hw, type); ++ ++ if (rtlpriv->mac80211.link_state == MAC80211_LINKED) { ++ if (type != NL80211_IFTYPE_AP) ++ rtl92cu_set_check_bssid(hw, true); ++ } else { ++ rtl92cu_set_check_bssid(hw, false); ++ } ++ + return 0; + } + +@@ -2058,8 +2041,6 @@ void rtl92cu_update_hal_rate_table(struct ieee80211_hw *hw, + (shortgi_rate << 4) | (shortgi_rate); + } + rtl_write_dword(rtlpriv, REG_ARFR0 + ratr_index * 4, ratr_value); +- RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, "%x\n", +- rtl_read_dword(rtlpriv, REG_ARFR0)); + } + + void rtl92cu_update_hal_rate_mask(struct ieee80211_hw *hw, u8 rssi_level) +diff --git a/drivers/rtc/rtc-at91rm9200.c b/drivers/rtc/rtc-at91rm9200.c +index b6469e2..d38b267 100644 +--- a/drivers/rtc/rtc-at91rm9200.c ++++ b/drivers/rtc/rtc-at91rm9200.c +@@ -44,6 +44,7 @@ static DECLARE_COMPLETION(at91_rtc_updated); + static unsigned int at91_alarm_year = AT91_RTC_EPOCH; + static void __iomem *at91_rtc_regs; + static int irq; ++static u32 at91_rtc_imr; + + /* + * Decode time/date into rtc_time structure +@@ -108,9 +109,11 @@ static int at91_rtc_settime(struct device *dev, struct rtc_time *tm) + cr = at91_rtc_read(AT91_RTC_CR); + at91_rtc_write(AT91_RTC_CR, cr | AT91_RTC_UPDCAL | AT91_RTC_UPDTIM); + ++ at91_rtc_imr |= AT91_RTC_ACKUPD; + at91_rtc_write(AT91_RTC_IER, AT91_RTC_ACKUPD); + wait_for_completion(&at91_rtc_updated); /* wait for ACKUPD interrupt */ + at91_rtc_write(AT91_RTC_IDR, AT91_RTC_ACKUPD); ++ at91_rtc_imr &= ~AT91_RTC_ACKUPD; + + at91_rtc_write(AT91_RTC_TIMR, + bin2bcd(tm->tm_sec) << 0 +@@ -142,7 +145,7 @@ static int at91_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm) + tm->tm_yday = rtc_year_days(tm->tm_mday, tm->tm_mon, tm->tm_year); + tm->tm_year = at91_alarm_year - 1900; + +- alrm->enabled = (at91_rtc_read(AT91_RTC_IMR) & AT91_RTC_ALARM) ++ alrm->enabled = (at91_rtc_imr & AT91_RTC_ALARM) + ? 1 : 0; + + pr_debug("%s(): %4d-%02d-%02d %02d:%02d:%02d\n", __func__, +@@ -168,6 +171,7 @@ static int at91_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm) + tm.tm_sec = alrm->time.tm_sec; + + at91_rtc_write(AT91_RTC_IDR, AT91_RTC_ALARM); ++ at91_rtc_imr &= ~AT91_RTC_ALARM; + at91_rtc_write(AT91_RTC_TIMALR, + bin2bcd(tm.tm_sec) << 0 + | bin2bcd(tm.tm_min) << 8 +@@ -180,6 +184,7 @@ static int at91_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm) + + if (alrm->enabled) { + at91_rtc_write(AT91_RTC_SCCR, AT91_RTC_ALARM); ++ at91_rtc_imr |= AT91_RTC_ALARM; + at91_rtc_write(AT91_RTC_IER, AT91_RTC_ALARM); + } + +@@ -196,9 +201,12 @@ static int at91_rtc_alarm_irq_enable(struct device *dev, unsigned int enabled) + + if (enabled) { + at91_rtc_write(AT91_RTC_SCCR, AT91_RTC_ALARM); ++ at91_rtc_imr |= AT91_RTC_ALARM; + at91_rtc_write(AT91_RTC_IER, AT91_RTC_ALARM); +- } else ++ } else { + at91_rtc_write(AT91_RTC_IDR, AT91_RTC_ALARM); ++ at91_rtc_imr &= ~AT91_RTC_ALARM; ++ } + + return 0; + } +@@ -207,12 +215,10 @@ static int at91_rtc_alarm_irq_enable(struct device *dev, unsigned int enabled) + */ + static int at91_rtc_proc(struct device *dev, struct seq_file *seq) + { +- unsigned long imr = at91_rtc_read(AT91_RTC_IMR); +- + seq_printf(seq, "update_IRQ\t: %s\n", +- (imr & AT91_RTC_ACKUPD) ? "yes" : "no"); ++ (at91_rtc_imr & AT91_RTC_ACKUPD) ? "yes" : "no"); + seq_printf(seq, "periodic_IRQ\t: %s\n", +- (imr & AT91_RTC_SECEV) ? "yes" : "no"); ++ (at91_rtc_imr & AT91_RTC_SECEV) ? "yes" : "no"); + + return 0; + } +@@ -227,7 +233,7 @@ static irqreturn_t at91_rtc_interrupt(int irq, void *dev_id) + unsigned int rtsr; + unsigned long events = 0; + +- rtsr = at91_rtc_read(AT91_RTC_SR) & at91_rtc_read(AT91_RTC_IMR); ++ rtsr = at91_rtc_read(AT91_RTC_SR) & at91_rtc_imr; + if (rtsr) { /* this interrupt is shared! Is it ours? */ + if (rtsr & AT91_RTC_ALARM) + events |= (RTC_AF | RTC_IRQF); +@@ -291,6 +297,7 @@ static int __init at91_rtc_probe(struct platform_device *pdev) + at91_rtc_write(AT91_RTC_IDR, AT91_RTC_ACKUPD | AT91_RTC_ALARM | + AT91_RTC_SECEV | AT91_RTC_TIMEV | + AT91_RTC_CALEV); ++ at91_rtc_imr = 0; + + ret = request_irq(irq, at91_rtc_interrupt, + IRQF_SHARED, +@@ -330,6 +337,7 @@ static int __exit at91_rtc_remove(struct platform_device *pdev) + at91_rtc_write(AT91_RTC_IDR, AT91_RTC_ACKUPD | AT91_RTC_ALARM | + AT91_RTC_SECEV | AT91_RTC_TIMEV | + AT91_RTC_CALEV); ++ at91_rtc_imr = 0; + free_irq(irq, pdev); + + rtc_device_unregister(rtc); +@@ -342,31 +350,35 @@ static int __exit at91_rtc_remove(struct platform_device *pdev) + + /* AT91RM9200 RTC Power management control */ + +-static u32 at91_rtc_imr; ++static u32 at91_rtc_bkpimr; ++ + + static int at91_rtc_suspend(struct device *dev) + { + /* this IRQ is shared with DBGU and other hardware which isn't + * necessarily doing PM like we are... + */ +- at91_rtc_imr = at91_rtc_read(AT91_RTC_IMR) +- & (AT91_RTC_ALARM|AT91_RTC_SECEV); +- if (at91_rtc_imr) { +- if (device_may_wakeup(dev)) ++ at91_rtc_bkpimr = at91_rtc_imr & (AT91_RTC_ALARM|AT91_RTC_SECEV); ++ if (at91_rtc_bkpimr) { ++ if (device_may_wakeup(dev)) { + enable_irq_wake(irq); +- else +- at91_rtc_write(AT91_RTC_IDR, at91_rtc_imr); +- } ++ } else { ++ at91_rtc_write(AT91_RTC_IDR, at91_rtc_bkpimr); ++ at91_rtc_imr &= ~at91_rtc_bkpimr; ++ } ++} + return 0; + } + + static int at91_rtc_resume(struct device *dev) + { +- if (at91_rtc_imr) { +- if (device_may_wakeup(dev)) ++ if (at91_rtc_bkpimr) { ++ if (device_may_wakeup(dev)) { + disable_irq_wake(irq); +- else +- at91_rtc_write(AT91_RTC_IER, at91_rtc_imr); ++ } else { ++ at91_rtc_imr |= at91_rtc_bkpimr; ++ at91_rtc_write(AT91_RTC_IER, at91_rtc_bkpimr); ++ } + } + return 0; + } +diff --git a/drivers/rtc/rtc-at91rm9200.h b/drivers/rtc/rtc-at91rm9200.h +index da1945e..5f940b6 100644 +--- a/drivers/rtc/rtc-at91rm9200.h ++++ b/drivers/rtc/rtc-at91rm9200.h +@@ -64,7 +64,6 @@ + #define AT91_RTC_SCCR 0x1c /* Status Clear Command Register */ + #define AT91_RTC_IER 0x20 /* Interrupt Enable Register */ + #define AT91_RTC_IDR 0x24 /* Interrupt Disable Register */ +-#define AT91_RTC_IMR 0x28 /* Interrupt Mask Register */ + + #define AT91_RTC_VER 0x2c /* Valid Entry Register */ + #define AT91_RTC_NVTIM (1 << 0) /* Non valid Time */ +diff --git a/drivers/target/iscsi/iscsi_target_auth.c b/drivers/target/iscsi/iscsi_target_auth.c +index db0cf7c..a0fc7b9 100644 +--- a/drivers/target/iscsi/iscsi_target_auth.c ++++ b/drivers/target/iscsi/iscsi_target_auth.c +@@ -166,6 +166,7 @@ static int chap_server_compute_md5( + { + char *endptr; + unsigned long id; ++ unsigned char id_as_uchar; + unsigned char digest[MD5_SIGNATURE_SIZE]; + unsigned char type, response[MD5_SIGNATURE_SIZE * 2 + 2]; + unsigned char identifier[10], *challenge = NULL; +@@ -355,7 +356,9 @@ static int chap_server_compute_md5( + goto out; + } + +- sg_init_one(&sg, &id, 1); ++ /* To handle both endiannesses */ ++ id_as_uchar = id; ++ sg_init_one(&sg, &id_as_uchar, 1); + ret = crypto_hash_update(&desc, &sg, 1); + if (ret < 0) { + pr_err("crypto_hash_update() failed for id\n"); +diff --git a/drivers/target/target_core_file.h b/drivers/target/target_core_file.h +index bc02b01..37ffc5b 100644 +--- a/drivers/target/target_core_file.h ++++ b/drivers/target/target_core_file.h +@@ -7,7 +7,7 @@ + #define FD_DEVICE_QUEUE_DEPTH 32 + #define FD_MAX_DEVICE_QUEUE_DEPTH 128 + #define FD_BLOCKSIZE 512 +-#define FD_MAX_SECTORS 1024 ++#define FD_MAX_SECTORS 2048 + + #define RRF_EMULATE_CDB 0x01 + #define RRF_GOT_LBA 0x02 +diff --git a/drivers/tty/serial/sunsu.c b/drivers/tty/serial/sunsu.c +index 220da3f..94b0ad7 100644 +--- a/drivers/tty/serial/sunsu.c ++++ b/drivers/tty/serial/sunsu.c +@@ -974,6 +974,7 @@ static struct uart_ops sunsu_pops = { + #define UART_NR 4 + + static struct uart_sunsu_port sunsu_ports[UART_NR]; ++static int nr_inst; /* Number of already registered ports */ + + #ifdef CONFIG_SERIO + +@@ -1343,13 +1344,8 @@ static int __init sunsu_console_setup(struct console *co, char *options) + printk("Console: ttyS%d (SU)\n", + (sunsu_reg.minor - 64) + co->index); + +- /* +- * Check whether an invalid uart number has been specified, and +- * if so, search for the first available port that does have +- * console support. +- */ +- if (co->index >= UART_NR) +- co->index = 0; ++ if (co->index > nr_inst) ++ return -ENODEV; + port = &sunsu_ports[co->index].port; + + /* +@@ -1414,7 +1410,6 @@ static enum su_type su_get_type(struct device_node *dp) + + static int su_probe(struct platform_device *op) + { +- static int inst; + struct device_node *dp = op->dev.of_node; + struct uart_sunsu_port *up; + struct resource *rp; +@@ -1424,16 +1419,16 @@ static int su_probe(struct platform_device *op) + + type = su_get_type(dp); + if (type == SU_PORT_PORT) { +- if (inst >= UART_NR) ++ if (nr_inst >= UART_NR) + return -EINVAL; +- up = &sunsu_ports[inst]; ++ up = &sunsu_ports[nr_inst]; + } else { + up = kzalloc(sizeof(*up), GFP_KERNEL); + if (!up) + return -ENOMEM; + } + +- up->port.line = inst; ++ up->port.line = nr_inst; + + spin_lock_init(&up->port.lock); + +@@ -1467,6 +1462,8 @@ static int su_probe(struct platform_device *op) + } + dev_set_drvdata(&op->dev, up); + ++ nr_inst++; ++ + return 0; + } + +@@ -1494,7 +1491,7 @@ static int su_probe(struct platform_device *op) + + dev_set_drvdata(&op->dev, up); + +- inst++; ++ nr_inst++; + + return 0; + +diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c +index 2d92cce..35d2cf1 100644 +--- a/drivers/usb/class/cdc-acm.c ++++ b/drivers/usb/class/cdc-acm.c +@@ -600,7 +600,6 @@ static void acm_port_destruct(struct tty_port *port) + + dev_dbg(&acm->control->dev, "%s\n", __func__); + +- tty_unregister_device(acm_tty_driver, acm->minor); + acm_release_minor(acm); + usb_put_intf(acm->control); + kfree(acm->country_codes); +@@ -1418,6 +1417,8 @@ static void acm_disconnect(struct usb_interface *intf) + + stop_data_traffic(acm); + ++ tty_unregister_device(acm_tty_driver, acm->minor); ++ + usb_free_urb(acm->ctrlurb); + for (i = 0; i < ACM_NW; i++) + usb_free_urb(acm->wb[i].urb); +diff --git a/drivers/usb/core/hcd-pci.c b/drivers/usb/core/hcd-pci.c +index 622b4a4..2b487d4 100644 +--- a/drivers/usb/core/hcd-pci.c ++++ b/drivers/usb/core/hcd-pci.c +@@ -173,6 +173,7 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) + struct hc_driver *driver; + struct usb_hcd *hcd; + int retval; ++ int hcd_irq = 0; + + if (usb_disabled()) + return -ENODEV; +@@ -187,15 +188,19 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) + return -ENODEV; + dev->current_state = PCI_D0; + +- /* The xHCI driver supports MSI and MSI-X, +- * so don't fail if the BIOS doesn't provide a legacy IRQ. ++ /* ++ * The xHCI driver has its own irq management ++ * make sure irq setup is not touched for xhci in generic hcd code + */ +- if (!dev->irq && (driver->flags & HCD_MASK) != HCD_USB3) { +- dev_err(&dev->dev, +- "Found HC with no IRQ. Check BIOS/PCI %s setup!\n", +- pci_name(dev)); +- retval = -ENODEV; +- goto disable_pci; ++ if ((driver->flags & HCD_MASK) != HCD_USB3) { ++ if (!dev->irq) { ++ dev_err(&dev->dev, ++ "Found HC with no IRQ. Check BIOS/PCI %s setup!\n", ++ pci_name(dev)); ++ retval = -ENODEV; ++ goto disable_pci; ++ } ++ hcd_irq = dev->irq; + } + + hcd = usb_create_hcd(driver, &dev->dev, pci_name(dev)); +@@ -245,7 +250,7 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) + + pci_set_master(dev); + +- retval = usb_add_hcd(hcd, dev->irq, IRQF_SHARED); ++ retval = usb_add_hcd(hcd, hcd_irq, IRQF_SHARED); + if (retval != 0) + goto unmap_registers; + set_hs_companion(dev, hcd); +diff --git a/drivers/usb/gadget/g_ffs.c b/drivers/usb/gadget/g_ffs.c +index 3953dd4..3b343b2 100644 +--- a/drivers/usb/gadget/g_ffs.c ++++ b/drivers/usb/gadget/g_ffs.c +@@ -357,7 +357,7 @@ static int gfs_bind(struct usb_composite_dev *cdev) + goto error; + gfs_dev_desc.iProduct = gfs_strings[USB_GADGET_PRODUCT_IDX].id; + +- for (i = func_num; --i; ) { ++ for (i = func_num; i--; ) { + ret = functionfs_bind(ffs_tab[i].ffs_data, cdev); + if (unlikely(ret < 0)) { + while (++i < func_num) +@@ -413,7 +413,7 @@ static int gfs_unbind(struct usb_composite_dev *cdev) + gether_cleanup(); + gfs_ether_setup = false; + +- for (i = func_num; --i; ) ++ for (i = func_num; i--; ) + if (ffs_tab[i].ffs_data) + functionfs_unbind(ffs_tab[i].ffs_data); + +diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c +index b416a3f..416a6dc 100644 +--- a/drivers/usb/host/ehci-hcd.c ++++ b/drivers/usb/host/ehci-hcd.c +@@ -302,6 +302,7 @@ static void ehci_quiesce (struct ehci_hcd *ehci) + + static void end_unlink_async(struct ehci_hcd *ehci); + static void unlink_empty_async(struct ehci_hcd *ehci); ++static void unlink_empty_async_suspended(struct ehci_hcd *ehci); + static void ehci_work(struct ehci_hcd *ehci); + static void start_unlink_intr(struct ehci_hcd *ehci, struct ehci_qh *qh); + static void end_unlink_intr(struct ehci_hcd *ehci, struct ehci_qh *qh); +@@ -748,11 +749,9 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd) + /* guard against (alleged) silicon errata */ + if (cmd & CMD_IAAD) + ehci_dbg(ehci, "IAA with IAAD still set?\n"); +- if (ehci->async_iaa) { ++ if (ehci->async_iaa) + COUNT(ehci->stats.iaa); +- end_unlink_async(ehci); +- } else +- ehci_dbg(ehci, "IAA with nothing unlinked?\n"); ++ end_unlink_async(ehci); + } + + /* remote wakeup [4.3.1] */ +diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c +index 4d3b294..7d06e77 100644 +--- a/drivers/usb/host/ehci-hub.c ++++ b/drivers/usb/host/ehci-hub.c +@@ -328,7 +328,7 @@ static int ehci_bus_suspend (struct usb_hcd *hcd) + ehci->rh_state = EHCI_RH_SUSPENDED; + + end_unlink_async(ehci); +- unlink_empty_async(ehci); ++ unlink_empty_async_suspended(ehci); + ehci_handle_intr_unlinks(ehci); + end_free_itds(ehci); + +diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c +index eda2cf4..23d1369 100644 +--- a/drivers/usb/host/ehci-q.c ++++ b/drivers/usb/host/ehci-q.c +@@ -1178,7 +1178,7 @@ static void single_unlink_async(struct ehci_hcd *ehci, struct ehci_qh *qh) + struct ehci_qh *prev; + + /* Add to the end of the list of QHs waiting for the next IAAD */ +- qh->qh_state = QH_STATE_UNLINK; ++ qh->qh_state = QH_STATE_UNLINK_WAIT; + if (ehci->async_unlink) + ehci->async_unlink_last->unlink_next = qh; + else +@@ -1221,9 +1221,19 @@ static void start_iaa_cycle(struct ehci_hcd *ehci, bool nested) + + /* Do only the first waiting QH (nVidia bug?) */ + qh = ehci->async_unlink; +- ehci->async_iaa = qh; +- ehci->async_unlink = qh->unlink_next; +- qh->unlink_next = NULL; ++ ++ /* ++ * Intel (?) bug: The HC can write back the overlay region ++ * even after the IAA interrupt occurs. In self-defense, ++ * always go through two IAA cycles for each QH. ++ */ ++ if (qh->qh_state == QH_STATE_UNLINK_WAIT) { ++ qh->qh_state = QH_STATE_UNLINK; ++ } else { ++ ehci->async_iaa = qh; ++ ehci->async_unlink = qh->unlink_next; ++ qh->unlink_next = NULL; ++ } + + /* Make sure the unlinks are all visible to the hardware */ + wmb(); +@@ -1306,6 +1316,19 @@ static void unlink_empty_async(struct ehci_hcd *ehci) + } + } + ++/* The root hub is suspended; unlink all the async QHs */ ++static void unlink_empty_async_suspended(struct ehci_hcd *ehci) ++{ ++ struct ehci_qh *qh; ++ ++ while (ehci->async->qh_next.qh) { ++ qh = ehci->async->qh_next.qh; ++ WARN_ON(!list_empty(&qh->qtd_list)); ++ single_unlink_async(ehci, qh); ++ } ++ start_iaa_cycle(ehci, false); ++} ++ + /* makes sure the async qh will become idle */ + /* caller must own ehci->lock */ + +diff --git a/drivers/usb/host/ehci-timer.c b/drivers/usb/host/ehci-timer.c +index 20dbdcb..c3fa130 100644 +--- a/drivers/usb/host/ehci-timer.c ++++ b/drivers/usb/host/ehci-timer.c +@@ -304,7 +304,7 @@ static void ehci_iaa_watchdog(struct ehci_hcd *ehci) + * (a) SMP races against real IAA firing and retriggering, and + * (b) clean HC shutdown, when IAA watchdog was pending. + */ +- if (ehci->async_iaa) { ++ if (1) { + u32 cmd, status; + + /* If we get here, IAA is *REALLY* late. It's barely +diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c +index f1f01a8..849470b 100644 +--- a/drivers/usb/host/xhci.c ++++ b/drivers/usb/host/xhci.c +@@ -350,7 +350,7 @@ static int xhci_try_enable_msi(struct usb_hcd *hcd) + * generate interrupts. Don't even try to enable MSI. + */ + if (xhci->quirks & XHCI_BROKEN_MSI) +- return 0; ++ goto legacy_irq; + + /* unregister the legacy interrupt */ + if (hcd->irq) +@@ -371,6 +371,7 @@ static int xhci_try_enable_msi(struct usb_hcd *hcd) + return -EINVAL; + } + ++ legacy_irq: + /* fall back to legacy interrupt*/ + ret = request_irq(pdev->irq, &usb_hcd_irq, IRQF_SHARED, + hcd->irq_descr, hcd); +diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h +index f791bd0..2c510e4 100644 +--- a/drivers/usb/host/xhci.h ++++ b/drivers/usb/host/xhci.h +@@ -206,8 +206,8 @@ struct xhci_op_regs { + /* bits 12:31 are reserved (and should be preserved on writes). */ + + /* IMAN - Interrupt Management Register */ +-#define IMAN_IP (1 << 1) +-#define IMAN_IE (1 << 0) ++#define IMAN_IE (1 << 1) ++#define IMAN_IP (1 << 0) + + /* USBSTS - USB status - status bitmasks */ + /* HC not running - set to 1 when run/stop bit is cleared. */ +diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c +index 7c71769d..41613a2 100644 +--- a/drivers/usb/musb/da8xx.c ++++ b/drivers/usb/musb/da8xx.c +@@ -327,7 +327,7 @@ static irqreturn_t da8xx_musb_interrupt(int irq, void *hci) + u8 devctl = musb_readb(mregs, MUSB_DEVCTL); + int err; + +- err = musb->int_usb & USB_INTR_VBUSERROR; ++ err = musb->int_usb & MUSB_INTR_VBUSERROR; + if (err) { + /* + * The Mentor core doesn't debounce VBUS as needed +diff --git a/drivers/usb/serial/garmin_gps.c b/drivers/usb/serial/garmin_gps.c +index 203358d..34e702b 100644 +--- a/drivers/usb/serial/garmin_gps.c ++++ b/drivers/usb/serial/garmin_gps.c +@@ -959,10 +959,7 @@ static void garmin_close(struct usb_serial_port *port) + if (!serial) + return; + +- mutex_lock(&port->serial->disc_mutex); +- +- if (!port->serial->disconnected) +- garmin_clear(garmin_data_p); ++ garmin_clear(garmin_data_p); + + /* shutdown our urbs */ + usb_kill_urb(port->read_urb); +@@ -971,8 +968,6 @@ static void garmin_close(struct usb_serial_port *port) + /* keep reset state so we know that we must start a new session */ + if (garmin_data_p->state != STATE_RESET) + garmin_data_p->state = STATE_DISCONNECTED; +- +- mutex_unlock(&port->serial->disc_mutex); + } + + +diff --git a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c +index 82afc4d..aa6462f 100644 +--- a/drivers/usb/serial/io_ti.c ++++ b/drivers/usb/serial/io_ti.c +@@ -2702,6 +2702,7 @@ static struct usb_serial_driver edgeport_2port_device = { + .set_termios = edge_set_termios, + .tiocmget = edge_tiocmget, + .tiocmset = edge_tiocmset, ++ .get_icount = edge_get_icount, + .write = edge_write, + .write_room = edge_write_room, + .chars_in_buffer = edge_chars_in_buffer, +diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c +index 15af799..3dc3ad2 100644 +--- a/drivers/usb/serial/usb-serial.c ++++ b/drivers/usb/serial/usb-serial.c +@@ -151,6 +151,7 @@ static void destroy_serial(struct kref *kref) + } + } + ++ usb_put_intf(serial->interface); + usb_put_dev(serial->dev); + kfree(serial); + } +@@ -614,7 +615,7 @@ static struct usb_serial *create_serial(struct usb_device *dev, + } + serial->dev = usb_get_dev(dev); + serial->type = driver; +- serial->interface = interface; ++ serial->interface = usb_get_intf(interface); + kref_init(&serial->kref); + mutex_init(&serial->disc_mutex); + serial->minor = SERIAL_TTY_NO_MINOR; +diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h +index d305a5a..b75e90b 100644 +--- a/drivers/usb/storage/unusual_devs.h ++++ b/drivers/usb/storage/unusual_devs.h +@@ -488,6 +488,13 @@ UNUSUAL_DEV( 0x04e8, 0x5122, 0x0000, 0x9999, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_MAX_SECTORS_64 | US_FL_BULK_IGNORE_TAG), + ++/* Added by Dmitry Artamonow <mad_soft@inbox.ru> */ ++UNUSUAL_DEV( 0x04e8, 0x5136, 0x0000, 0x9999, ++ "Samsung", ++ "YP-Z3", ++ USB_SC_DEVICE, USB_PR_DEVICE, NULL, ++ US_FL_MAX_SECTORS_64), ++ + /* Entry and supporting patch by Theodore Kilgore <kilgota@auburn.edu>. + * Device uses standards-violating 32-byte Bulk Command Block Wrappers and + * reports itself as "Proprietary SCSI Bulk." Cf. device entry 0x084d:0x0011. +diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c +index 959b1cd..ec6fb3f 100644 +--- a/drivers/vhost/net.c ++++ b/drivers/vhost/net.c +@@ -339,7 +339,8 @@ static void handle_tx(struct vhost_net *net) + msg.msg_controllen = 0; + ubufs = NULL; + } else { +- struct ubuf_info *ubuf = &vq->ubuf_info[head]; ++ struct ubuf_info *ubuf; ++ ubuf = vq->ubuf_info + vq->upend_idx; + + vq->heads[vq->upend_idx].len = + VHOST_DMA_IN_PROGRESS; +diff --git a/drivers/video/ep93xx-fb.c b/drivers/video/ep93xx-fb.c +index 3f2519d..e06cd5d 100644 +--- a/drivers/video/ep93xx-fb.c ++++ b/drivers/video/ep93xx-fb.c +@@ -23,6 +23,7 @@ + #include <linux/slab.h> + #include <linux/clk.h> + #include <linux/fb.h> ++#include <linux/io.h> + + #include <linux/platform_data/video-ep93xx.h> + +diff --git a/drivers/watchdog/sp5100_tco.c b/drivers/watchdog/sp5100_tco.c +index e3b8f75..0e9d8c4 100644 +--- a/drivers/watchdog/sp5100_tco.c ++++ b/drivers/watchdog/sp5100_tco.c +@@ -40,13 +40,12 @@ + #include "sp5100_tco.h" + + /* Module and version information */ +-#define TCO_VERSION "0.03" ++#define TCO_VERSION "0.05" + #define TCO_MODULE_NAME "SP5100 TCO timer" + #define TCO_DRIVER_NAME TCO_MODULE_NAME ", v" TCO_VERSION + + /* internal variables */ + static u32 tcobase_phys; +-static u32 resbase_phys; + static u32 tco_wdt_fired; + static void __iomem *tcobase; + static unsigned int pm_iobase; +@@ -54,10 +53,6 @@ static DEFINE_SPINLOCK(tco_lock); /* Guards the hardware */ + static unsigned long timer_alive; + static char tco_expect_close; + static struct pci_dev *sp5100_tco_pci; +-static struct resource wdt_res = { +- .name = "Watchdog Timer", +- .flags = IORESOURCE_MEM, +-}; + + /* the watchdog platform device */ + static struct platform_device *sp5100_tco_platform_device; +@@ -75,12 +70,6 @@ module_param(nowayout, bool, 0); + MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started." + " (default=" __MODULE_STRING(WATCHDOG_NOWAYOUT) ")"); + +-static unsigned int force_addr; +-module_param(force_addr, uint, 0); +-MODULE_PARM_DESC(force_addr, "Force the use of specified MMIO address." +- " ONLY USE THIS PARAMETER IF YOU REALLY KNOW" +- " WHAT YOU ARE DOING (default=none)"); +- + /* + * Some TCO specific functions + */ +@@ -176,39 +165,6 @@ static void tco_timer_enable(void) + } + } + +-static void tco_timer_disable(void) +-{ +- int val; +- +- if (sp5100_tco_pci->revision >= 0x40) { +- /* For SB800 or later */ +- /* Enable watchdog decode bit and Disable watchdog timer */ +- outb(SB800_PM_WATCHDOG_CONTROL, SB800_IO_PM_INDEX_REG); +- val = inb(SB800_IO_PM_DATA_REG); +- val |= SB800_PCI_WATCHDOG_DECODE_EN; +- val |= SB800_PM_WATCHDOG_DISABLE; +- outb(val, SB800_IO_PM_DATA_REG); +- } else { +- /* For SP5100 or SB7x0 */ +- /* Enable watchdog decode bit */ +- pci_read_config_dword(sp5100_tco_pci, +- SP5100_PCI_WATCHDOG_MISC_REG, +- &val); +- +- val |= SP5100_PCI_WATCHDOG_DECODE_EN; +- +- pci_write_config_dword(sp5100_tco_pci, +- SP5100_PCI_WATCHDOG_MISC_REG, +- val); +- +- /* Disable Watchdog timer */ +- outb(SP5100_PM_WATCHDOG_CONTROL, SP5100_IO_PM_INDEX_REG); +- val = inb(SP5100_IO_PM_DATA_REG); +- val |= SP5100_PM_WATCHDOG_DISABLE; +- outb(val, SP5100_IO_PM_DATA_REG); +- } +-} +- + /* + * /dev/watchdog handling + */ +@@ -361,7 +317,7 @@ static unsigned char sp5100_tco_setupdevice(void) + { + struct pci_dev *dev = NULL; + const char *dev_name = NULL; +- u32 val, tmp_val; ++ u32 val; + u32 index_reg, data_reg, base_addr; + + /* Match the PCI device */ +@@ -459,63 +415,8 @@ static unsigned char sp5100_tco_setupdevice(void) + } else + pr_debug("SBResource_MMIO is disabled(0x%04x)\n", val); + +- /* +- * Lastly re-programming the watchdog timer MMIO address, +- * This method is a last resort... +- * +- * Before re-programming, to ensure that the watchdog timer +- * is disabled, disable the watchdog timer. +- */ +- tco_timer_disable(); +- +- if (force_addr) { +- /* +- * Force the use of watchdog timer MMIO address, and aligned to +- * 8byte boundary. +- */ +- force_addr &= ~0x7; +- val = force_addr; +- +- pr_info("Force the use of 0x%04x as MMIO address\n", val); +- } else { +- /* +- * Get empty slot into the resource tree for watchdog timer. +- */ +- if (allocate_resource(&iomem_resource, +- &wdt_res, +- SP5100_WDT_MEM_MAP_SIZE, +- 0xf0000000, +- 0xfffffff8, +- 0x8, +- NULL, +- NULL)) { +- pr_err("MMIO allocation failed\n"); +- goto unreg_region; +- } +- +- val = resbase_phys = wdt_res.start; +- pr_debug("Got 0x%04x from resource tree\n", val); +- } +- +- /* Restore to the low three bits */ +- outb(base_addr+0, index_reg); +- tmp_val = val | (inb(data_reg) & 0x7); +- +- /* Re-programming the watchdog timer base address */ +- outb(base_addr+0, index_reg); +- outb((tmp_val >> 0) & 0xff, data_reg); +- outb(base_addr+1, index_reg); +- outb((tmp_val >> 8) & 0xff, data_reg); +- outb(base_addr+2, index_reg); +- outb((tmp_val >> 16) & 0xff, data_reg); +- outb(base_addr+3, index_reg); +- outb((tmp_val >> 24) & 0xff, data_reg); +- +- if (!request_mem_region_exclusive(val, SP5100_WDT_MEM_MAP_SIZE, +- dev_name)) { +- pr_err("MMIO address 0x%04x already in use\n", val); +- goto unreg_resource; +- } ++ pr_notice("failed to find MMIO address, giving up.\n"); ++ goto unreg_region; + + setup_wdt: + tcobase_phys = val; +@@ -555,9 +456,6 @@ setup_wdt: + + unreg_mem_region: + release_mem_region(tcobase_phys, SP5100_WDT_MEM_MAP_SIZE); +-unreg_resource: +- if (resbase_phys) +- release_resource(&wdt_res); + unreg_region: + release_region(pm_iobase, SP5100_PM_IOPORTS_SIZE); + exit: +@@ -567,7 +465,6 @@ exit: + static int sp5100_tco_init(struct platform_device *dev) + { + int ret; +- char addr_str[16]; + + /* + * Check whether or not the hardware watchdog is there. If found, then +@@ -599,23 +496,14 @@ static int sp5100_tco_init(struct platform_device *dev) + clear_bit(0, &timer_alive); + + /* Show module parameters */ +- if (force_addr == tcobase_phys) +- /* The force_addr is vaild */ +- sprintf(addr_str, "0x%04x", force_addr); +- else +- strcpy(addr_str, "none"); +- +- pr_info("initialized (0x%p). heartbeat=%d sec (nowayout=%d, " +- "force_addr=%s)\n", +- tcobase, heartbeat, nowayout, addr_str); ++ pr_info("initialized (0x%p). heartbeat=%d sec (nowayout=%d)\n", ++ tcobase, heartbeat, nowayout); + + return 0; + + exit: + iounmap(tcobase); + release_mem_region(tcobase_phys, SP5100_WDT_MEM_MAP_SIZE); +- if (resbase_phys) +- release_resource(&wdt_res); + release_region(pm_iobase, SP5100_PM_IOPORTS_SIZE); + return ret; + } +@@ -630,8 +518,6 @@ static void sp5100_tco_cleanup(void) + misc_deregister(&sp5100_tco_miscdev); + iounmap(tcobase); + release_mem_region(tcobase_phys, SP5100_WDT_MEM_MAP_SIZE); +- if (resbase_phys) +- release_resource(&wdt_res); + release_region(pm_iobase, SP5100_PM_IOPORTS_SIZE); + } + +diff --git a/drivers/watchdog/sp5100_tco.h b/drivers/watchdog/sp5100_tco.h +index 71594a0..2b28c00 100644 +--- a/drivers/watchdog/sp5100_tco.h ++++ b/drivers/watchdog/sp5100_tco.h +@@ -57,7 +57,7 @@ + #define SB800_PM_WATCHDOG_DISABLE (1 << 2) + #define SB800_PM_WATCHDOG_SECOND_RES (3 << 0) + #define SB800_ACPI_MMIO_DECODE_EN (1 << 0) +-#define SB800_ACPI_MMIO_SEL (1 << 2) ++#define SB800_ACPI_MMIO_SEL (1 << 1) + + + #define SB800_PM_WDT_MMIO_OFFSET 0xB00 +diff --git a/fs/cifs/asn1.c b/fs/cifs/asn1.c +index cfd1ce3..1d36db1 100644 +--- a/fs/cifs/asn1.c ++++ b/fs/cifs/asn1.c +@@ -614,53 +614,10 @@ decode_negTokenInit(unsigned char *security_blob, int length, + } + } + +- /* mechlistMIC */ +- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { +- /* Check if we have reached the end of the blob, but with +- no mechListMic (e.g. NTLMSSP instead of KRB5) */ +- if (ctx.error == ASN1_ERR_DEC_EMPTY) +- goto decode_negtoken_exit; +- cFYI(1, "Error decoding last part negTokenInit exit3"); +- return 0; +- } else if ((cls != ASN1_CTX) || (con != ASN1_CON)) { +- /* tag = 3 indicating mechListMIC */ +- cFYI(1, "Exit 4 cls = %d con = %d tag = %d end = %p (%d)", +- cls, con, tag, end, *end); +- return 0; +- } +- +- /* sequence */ +- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { +- cFYI(1, "Error decoding last part negTokenInit exit5"); +- return 0; +- } else if ((cls != ASN1_UNI) || (con != ASN1_CON) +- || (tag != ASN1_SEQ)) { +- cFYI(1, "cls = %d con = %d tag = %d end = %p (%d)", +- cls, con, tag, end, *end); +- } +- +- /* sequence of */ +- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { +- cFYI(1, "Error decoding last part negTokenInit exit 7"); +- return 0; +- } else if ((cls != ASN1_CTX) || (con != ASN1_CON)) { +- cFYI(1, "Exit 8 cls = %d con = %d tag = %d end = %p (%d)", +- cls, con, tag, end, *end); +- return 0; +- } +- +- /* general string */ +- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { +- cFYI(1, "Error decoding last part negTokenInit exit9"); +- return 0; +- } else if ((cls != ASN1_UNI) || (con != ASN1_PRI) +- || (tag != ASN1_GENSTR)) { +- cFYI(1, "Exit10 cls = %d con = %d tag = %d end = %p (%d)", +- cls, con, tag, end, *end); +- return 0; +- } +- cFYI(1, "Need to call asn1_octets_decode() function for %s", +- ctx.pointer); /* is this UTF-8 or ASCII? */ +-decode_negtoken_exit: ++ /* ++ * We currently ignore anything at the end of the SPNEGO blob after ++ * the mechTypes have been parsed, since none of that info is ++ * used at the moment. ++ */ + return 1; + } +diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c +index e328339..b9db388 100644 +--- a/fs/cifs/cifsfs.c ++++ b/fs/cifs/cifsfs.c +@@ -91,6 +91,30 @@ struct workqueue_struct *cifsiod_wq; + __u8 cifs_client_guid[SMB2_CLIENT_GUID_SIZE]; + #endif + ++/* ++ * Bumps refcount for cifs super block. ++ * Note that it should be only called if a referece to VFS super block is ++ * already held, e.g. in open-type syscalls context. Otherwise it can race with ++ * atomic_dec_and_test in deactivate_locked_super. ++ */ ++void ++cifs_sb_active(struct super_block *sb) ++{ ++ struct cifs_sb_info *server = CIFS_SB(sb); ++ ++ if (atomic_inc_return(&server->active) == 1) ++ atomic_inc(&sb->s_active); ++} ++ ++void ++cifs_sb_deactive(struct super_block *sb) ++{ ++ struct cifs_sb_info *server = CIFS_SB(sb); ++ ++ if (atomic_dec_and_test(&server->active)) ++ deactivate_super(sb); ++} ++ + static int + cifs_read_super(struct super_block *sb) + { +diff --git a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h +index 7163419..0e32c34 100644 +--- a/fs/cifs/cifsfs.h ++++ b/fs/cifs/cifsfs.h +@@ -41,6 +41,10 @@ extern struct file_system_type cifs_fs_type; + extern const struct address_space_operations cifs_addr_ops; + extern const struct address_space_operations cifs_addr_ops_smallbuf; + ++/* Functions related to super block operations */ ++extern void cifs_sb_active(struct super_block *sb); ++extern void cifs_sb_deactive(struct super_block *sb); ++ + /* Functions related to inodes */ + extern const struct inode_operations cifs_dir_inode_ops; + extern struct inode *cifs_root_iget(struct super_block *); +diff --git a/fs/cifs/file.c b/fs/cifs/file.c +index 8ea6ca5..1d93ee8 100644 +--- a/fs/cifs/file.c ++++ b/fs/cifs/file.c +@@ -294,6 +294,8 @@ cifs_new_fileinfo(struct cifs_fid *fid, struct file *file, + INIT_WORK(&cfile->oplock_break, cifs_oplock_break); + mutex_init(&cfile->fh_mutex); + ++ cifs_sb_active(inode->i_sb); ++ + /* + * If the server returned a read oplock and we have mandatory brlocks, + * set oplock level to None. +@@ -343,7 +345,8 @@ void cifsFileInfo_put(struct cifsFileInfo *cifs_file) + struct cifs_tcon *tcon = tlink_tcon(cifs_file->tlink); + struct TCP_Server_Info *server = tcon->ses->server; + struct cifsInodeInfo *cifsi = CIFS_I(inode); +- struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb); ++ struct super_block *sb = inode->i_sb; ++ struct cifs_sb_info *cifs_sb = CIFS_SB(sb); + struct cifsLockInfo *li, *tmp; + struct cifs_fid fid; + struct cifs_pending_open open; +@@ -408,6 +411,7 @@ void cifsFileInfo_put(struct cifsFileInfo *cifs_file) + + cifs_put_tlink(cifs_file->tlink); + dput(cifs_file->dentry); ++ cifs_sb_deactive(sb); + kfree(cifs_file); + } + +diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h +index 8462eb3..bbcd6a0 100644 +--- a/fs/ext4/ext4.h ++++ b/fs/ext4/ext4.h +@@ -338,9 +338,9 @@ struct ext4_group_desc + */ + + struct flex_groups { +- atomic_t free_inodes; +- atomic_t free_clusters; +- atomic_t used_dirs; ++ atomic64_t free_clusters; ++ atomic_t free_inodes; ++ atomic_t used_dirs; + }; + + #define EXT4_BG_INODE_UNINIT 0x0001 /* Inode table/bitmap not in use */ +diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c +index d42a8c4..4d315a0 100644 +--- a/fs/ext4/extents.c ++++ b/fs/ext4/extents.c +@@ -3089,6 +3089,7 @@ static int ext4_split_extent(handle_t *handle, + int err = 0; + int uninitialized; + int split_flag1, flags1; ++ int allocated = map->m_len; + + depth = ext_depth(inode); + ex = path[depth].p_ext; +@@ -3108,6 +3109,8 @@ static int ext4_split_extent(handle_t *handle, + map->m_lblk + map->m_len, split_flag1, flags1); + if (err) + goto out; ++ } else { ++ allocated = ee_len - (map->m_lblk - ee_block); + } + + ext4_ext_drop_refs(path); +@@ -3130,7 +3133,7 @@ static int ext4_split_extent(handle_t *handle, + + ext4_ext_show_leaf(inode, path); + out: +- return err ? err : map->m_len; ++ return err ? err : allocated; + } + + /* +@@ -3275,7 +3278,7 @@ static int ext4_ext_convert_to_initialized(handle_t *handle, + + if (EXT4_EXT_MAY_ZEROOUT & split_flag) + max_zeroout = sbi->s_extent_max_zeroout_kb >> +- inode->i_sb->s_blocksize_bits; ++ (inode->i_sb->s_blocksize_bits - 10); + + /* If extent is less than s_max_zeroout_kb, zeroout directly */ + if (max_zeroout && (ee_len <= max_zeroout)) { +@@ -3720,6 +3723,7 @@ out: + allocated - map->m_len); + allocated = map->m_len; + } ++ map->m_len = allocated; + + /* + * If we have done fallocate with the offset that is already +diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c +index 3f32c80..ec2909e 100644 +--- a/fs/ext4/ialloc.c ++++ b/fs/ext4/ialloc.c +@@ -324,8 +324,8 @@ error_return: + } + + struct orlov_stats { ++ __u64 free_clusters; + __u32 free_inodes; +- __u32 free_clusters; + __u32 used_dirs; + }; + +@@ -342,7 +342,7 @@ static void get_orlov_stats(struct super_block *sb, ext4_group_t g, + + if (flex_size > 1) { + stats->free_inodes = atomic_read(&flex_group[g].free_inodes); +- stats->free_clusters = atomic_read(&flex_group[g].free_clusters); ++ stats->free_clusters = atomic64_read(&flex_group[g].free_clusters); + stats->used_dirs = atomic_read(&flex_group[g].used_dirs); + return; + } +diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c +index 39f1fa7..22c5c67 100644 +--- a/fs/ext4/inode.c ++++ b/fs/ext4/inode.c +@@ -211,7 +211,8 @@ void ext4_evict_inode(struct inode *inode) + * don't use page cache. + */ + if (ext4_should_journal_data(inode) && +- (S_ISLNK(inode->i_mode) || S_ISREG(inode->i_mode))) { ++ (S_ISLNK(inode->i_mode) || S_ISREG(inode->i_mode)) && ++ inode->i_ino != EXT4_JOURNAL_INO) { + journal_t *journal = EXT4_SB(inode->i_sb)->s_journal; + tid_t commit_tid = EXT4_I(inode)->i_datasync_tid; + +diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c +index 28bbf9b..82f8c2d 100644 +--- a/fs/ext4/mballoc.c ++++ b/fs/ext4/mballoc.c +@@ -2829,8 +2829,8 @@ ext4_mb_mark_diskspace_used(struct ext4_allocation_context *ac, + if (sbi->s_log_groups_per_flex) { + ext4_group_t flex_group = ext4_flex_group(sbi, + ac->ac_b_ex.fe_group); +- atomic_sub(ac->ac_b_ex.fe_len, +- &sbi->s_flex_groups[flex_group].free_clusters); ++ atomic64_sub(ac->ac_b_ex.fe_len, ++ &sbi->s_flex_groups[flex_group].free_clusters); + } + + err = ext4_handle_dirty_metadata(handle, NULL, bitmap_bh); +@@ -4691,8 +4691,8 @@ do_more: + + if (sbi->s_log_groups_per_flex) { + ext4_group_t flex_group = ext4_flex_group(sbi, block_group); +- atomic_add(count_clusters, +- &sbi->s_flex_groups[flex_group].free_clusters); ++ atomic64_add(count_clusters, ++ &sbi->s_flex_groups[flex_group].free_clusters); + } + + ext4_mb_unload_buddy(&e4b); +@@ -4836,8 +4836,8 @@ int ext4_group_add_blocks(handle_t *handle, struct super_block *sb, + + if (sbi->s_log_groups_per_flex) { + ext4_group_t flex_group = ext4_flex_group(sbi, block_group); +- atomic_add(EXT4_NUM_B2C(sbi, blocks_freed), +- &sbi->s_flex_groups[flex_group].free_clusters); ++ atomic64_add(EXT4_NUM_B2C(sbi, blocks_freed), ++ &sbi->s_flex_groups[flex_group].free_clusters); + } + + ext4_mb_unload_buddy(&e4b); +diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c +index 1aab70d..9eace36 100644 +--- a/fs/ext4/resize.c ++++ b/fs/ext4/resize.c +@@ -1360,8 +1360,8 @@ static void ext4_update_super(struct super_block *sb, + sbi->s_log_groups_per_flex) { + ext4_group_t flex_group; + flex_group = ext4_flex_group(sbi, group_data[0].group); +- atomic_add(EXT4_NUM_B2C(sbi, free_blocks), +- &sbi->s_flex_groups[flex_group].free_clusters); ++ atomic64_add(EXT4_NUM_B2C(sbi, free_blocks), ++ &sbi->s_flex_groups[flex_group].free_clusters); + atomic_add(EXT4_INODES_PER_GROUP(sb) * flex_gd->count, + &sbi->s_flex_groups[flex_group].free_inodes); + } +diff --git a/fs/ext4/super.c b/fs/ext4/super.c +index 5fa223d..24c767d 100644 +--- a/fs/ext4/super.c ++++ b/fs/ext4/super.c +@@ -1979,8 +1979,8 @@ static int ext4_fill_flex_info(struct super_block *sb) + flex_group = ext4_flex_group(sbi, i); + atomic_add(ext4_free_inodes_count(sb, gdp), + &sbi->s_flex_groups[flex_group].free_inodes); +- atomic_add(ext4_free_group_clusters(sb, gdp), +- &sbi->s_flex_groups[flex_group].free_clusters); ++ atomic64_add(ext4_free_group_clusters(sb, gdp), ++ &sbi->s_flex_groups[flex_group].free_clusters); + atomic_add(ext4_used_dirs_count(sb, gdp), + &sbi->s_flex_groups[flex_group].used_dirs); + } +diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c +index df9f297..73b9253 100644 +--- a/fs/jbd2/transaction.c ++++ b/fs/jbd2/transaction.c +@@ -1047,9 +1047,12 @@ out: + void jbd2_journal_set_triggers(struct buffer_head *bh, + struct jbd2_buffer_trigger_type *type) + { +- struct journal_head *jh = bh2jh(bh); ++ struct journal_head *jh = jbd2_journal_grab_journal_head(bh); + ++ if (WARN_ON(!jh)) ++ return; + jh->b_triggers = type; ++ jbd2_journal_put_journal_head(jh); + } + + void jbd2_buffer_frozen_trigger(struct journal_head *jh, void *mapped_data, +@@ -1101,17 +1104,18 @@ int jbd2_journal_dirty_metadata(handle_t *handle, struct buffer_head *bh) + { + transaction_t *transaction = handle->h_transaction; + journal_t *journal = transaction->t_journal; +- struct journal_head *jh = bh2jh(bh); ++ struct journal_head *jh; + int ret = 0; + +- jbd_debug(5, "journal_head %p\n", jh); +- JBUFFER_TRACE(jh, "entry"); + if (is_handle_aborted(handle)) + goto out; +- if (!buffer_jbd(bh)) { ++ jh = jbd2_journal_grab_journal_head(bh); ++ if (!jh) { + ret = -EUCLEAN; + goto out; + } ++ jbd_debug(5, "journal_head %p\n", jh); ++ JBUFFER_TRACE(jh, "entry"); + + jbd_lock_bh_state(bh); + +@@ -1202,6 +1206,7 @@ int jbd2_journal_dirty_metadata(handle_t *handle, struct buffer_head *bh) + spin_unlock(&journal->j_list_lock); + out_unlock_bh: + jbd_unlock_bh_state(bh); ++ jbd2_journal_put_journal_head(jh); + out: + JBUFFER_TRACE(jh, "exit"); + WARN_ON(ret); /* All errors are bugs, so dump the stack */ +diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c +index d586117..69c6413 100644 +--- a/fs/nfsd/vfs.c ++++ b/fs/nfsd/vfs.c +@@ -1013,6 +1013,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file, + int host_err; + int stable = *stablep; + int use_wgather; ++ loff_t pos = offset; + + dentry = file->f_path.dentry; + inode = dentry->d_inode; +@@ -1025,7 +1026,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file, + + /* Write the data. */ + oldfs = get_fs(); set_fs(KERNEL_DS); +- host_err = vfs_writev(file, (struct iovec __user *)vec, vlen, &offset); ++ host_err = vfs_writev(file, (struct iovec __user *)vec, vlen, &pos); + set_fs(oldfs); + if (host_err < 0) + goto out_nfserr; +diff --git a/fs/proc/generic.c b/fs/proc/generic.c +index 76ddae8..b796da2 100644 +--- a/fs/proc/generic.c ++++ b/fs/proc/generic.c +@@ -412,8 +412,7 @@ static const struct dentry_operations proc_dentry_operations = + struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *dir, + struct dentry *dentry) + { +- struct inode *inode = NULL; +- int error = -ENOENT; ++ struct inode *inode; + + spin_lock(&proc_subdir_lock); + for (de = de->subdir; de ; de = de->next) { +@@ -422,22 +421,16 @@ struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *dir, + if (!memcmp(dentry->d_name.name, de->name, de->namelen)) { + pde_get(de); + spin_unlock(&proc_subdir_lock); +- error = -ENOMEM; + inode = proc_get_inode(dir->i_sb, de); +- goto out_unlock; ++ if (!inode) ++ return ERR_PTR(-ENOMEM); ++ d_set_d_op(dentry, &proc_dentry_operations); ++ d_add(dentry, inode); ++ return NULL; + } + } + spin_unlock(&proc_subdir_lock); +-out_unlock: +- +- if (inode) { +- d_set_d_op(dentry, &proc_dentry_operations); +- d_add(dentry, inode); +- return NULL; +- } +- if (de) +- pde_put(de); +- return ERR_PTR(error); ++ return ERR_PTR(-ENOENT); + } + + struct dentry *proc_lookup(struct inode *dir, struct dentry *dentry, +diff --git a/fs/proc/inode.c b/fs/proc/inode.c +index 439ae688..0ac1e1b 100644 +--- a/fs/proc/inode.c ++++ b/fs/proc/inode.c +@@ -445,12 +445,10 @@ static const struct file_operations proc_reg_file_ops_no_compat = { + + struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de) + { +- struct inode * inode; ++ struct inode *inode = new_inode_pseudo(sb); + +- inode = iget_locked(sb, de->low_ino); +- if (!inode) +- return NULL; +- if (inode->i_state & I_NEW) { ++ if (inode) { ++ inode->i_ino = de->low_ino; + inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; + PROC_I(inode)->pde = de; + +@@ -478,11 +476,10 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de) + inode->i_fop = de->proc_fops; + } + } +- unlock_new_inode(inode); + } else + pde_put(de); + return inode; +-} ++} + + int proc_fill_super(struct super_block *s) + { +@@ -499,6 +496,5 @@ int proc_fill_super(struct super_block *s) + return 0; + + printk("proc_read_super: get root inode failed\n"); +- pde_put(&proc_root); + return -ENOMEM; + } +diff --git a/fs/udf/udf_sb.h b/fs/udf/udf_sb.h +index 5f02722..8d1c9d4 100644 +--- a/fs/udf/udf_sb.h ++++ b/fs/udf/udf_sb.h +@@ -82,7 +82,7 @@ struct udf_virtual_data { + struct udf_bitmap { + __u32 s_extLength; + __u32 s_extPosition; +- __u16 s_nr_groups; ++ int s_nr_groups; + struct buffer_head **s_block_bitmap; + }; + +diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h +index c5c35e6..1cdbfe9 100644 +--- a/include/drm/drm_pciids.h ++++ b/include/drm/drm_pciids.h +@@ -568,7 +568,11 @@ + {0x1002, 0x9908, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x9909, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x990A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ +- {0x1002, 0x990F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ ++ {0x1002, 0x990B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ ++ {0x1002, 0x990C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ ++ {0x1002, 0x990D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ ++ {0x1002, 0x990E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ ++ {0x1002, 0x990F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x9910, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x9913, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x9917, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ +@@ -579,6 +583,13 @@ + {0x1002, 0x9992, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x9993, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x9994, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ ++ {0x1002, 0x9995, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ ++ {0x1002, 0x9996, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ ++ {0x1002, 0x9997, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ ++ {0x1002, 0x9998, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ ++ {0x1002, 0x9999, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ ++ {0x1002, 0x999A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ ++ {0x1002, 0x999B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x99A0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x99A2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x99A4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ +diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h +index 320e976..98399e2 100644 +--- a/include/linux/skbuff.h ++++ b/include/linux/skbuff.h +@@ -491,7 +491,7 @@ struct sk_buff { + union { + __u32 mark; + __u32 dropcount; +- __u32 avail_size; ++ __u32 reserved_tailroom; + }; + + sk_buff_data_t inner_transport_header; +@@ -1269,11 +1269,13 @@ static inline void __skb_fill_page_desc(struct sk_buff *skb, int i, + * do not lose pfmemalloc information as the pages would not be + * allocated using __GFP_MEMALLOC. + */ +- if (page->pfmemalloc && !page->mapping) +- skb->pfmemalloc = true; + frag->page.p = page; + frag->page_offset = off; + skb_frag_size_set(frag, size); ++ ++ page = compound_head(page); ++ if (page->pfmemalloc && !page->mapping) ++ skb->pfmemalloc = true; + } + + /** +@@ -1428,7 +1430,10 @@ static inline int skb_tailroom(const struct sk_buff *skb) + */ + static inline int skb_availroom(const struct sk_buff *skb) + { +- return skb_is_nonlinear(skb) ? 0 : skb->avail_size - skb->len; ++ if (skb_is_nonlinear(skb)) ++ return 0; ++ ++ return skb->end - skb->tail - skb->reserved_tailroom; + } + + /** +diff --git a/include/linux/usb/cdc_ncm.h b/include/linux/usb/cdc_ncm.h +index 3b8f9d4..cc25b70 100644 +--- a/include/linux/usb/cdc_ncm.h ++++ b/include/linux/usb/cdc_ncm.h +@@ -127,6 +127,7 @@ struct cdc_ncm_ctx { + u16 connected; + }; + ++extern u8 cdc_ncm_select_altsetting(struct usbnet *dev, struct usb_interface *intf); + extern int cdc_ncm_bind_common(struct usbnet *dev, struct usb_interface *intf, u8 data_altsetting); + extern void cdc_ncm_unbind(struct usbnet *dev, struct usb_interface *intf); + extern struct sk_buff *cdc_ncm_fill_tx_frame(struct cdc_ncm_ctx *ctx, struct sk_buff *skb, __le32 sign); +diff --git a/include/net/inet_frag.h b/include/net/inet_frag.h +index 32786a0..2ab2e43 100644 +--- a/include/net/inet_frag.h ++++ b/include/net/inet_frag.h +@@ -35,6 +35,13 @@ struct inet_frag_queue { + + #define INETFRAGS_HASHSZ 64 + ++/* averaged: ++ * max_depth = default ipfrag_high_thresh / INETFRAGS_HASHSZ / ++ * rounded up (SKB_TRUELEN(0) + sizeof(struct ipq or ++ * struct frag_queue)) ++ */ ++#define INETFRAGS_MAXDEPTH 128 ++ + struct inet_frags { + struct hlist_head hash[INETFRAGS_HASHSZ]; + rwlock_t lock; +@@ -65,6 +72,8 @@ int inet_frag_evictor(struct netns_frags *nf, struct inet_frags *f, bool force); + struct inet_frag_queue *inet_frag_find(struct netns_frags *nf, + struct inet_frags *f, void *key, unsigned int hash) + __releases(&f->lock); ++void inet_frag_maybe_warn_overflow(struct inet_frag_queue *q, ++ const char *prefix); + + static inline void inet_frag_put(struct inet_frag_queue *q, struct inet_frags *f) + { +diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h +index 9497be1..e49db91 100644 +--- a/include/net/ip_fib.h ++++ b/include/net/ip_fib.h +@@ -152,18 +152,16 @@ struct fib_result_nl { + }; + + #ifdef CONFIG_IP_ROUTE_MULTIPATH +- + #define FIB_RES_NH(res) ((res).fi->fib_nh[(res).nh_sel]) +- +-#define FIB_TABLE_HASHSZ 2 +- + #else /* CONFIG_IP_ROUTE_MULTIPATH */ +- + #define FIB_RES_NH(res) ((res).fi->fib_nh[0]) ++#endif /* CONFIG_IP_ROUTE_MULTIPATH */ + ++#ifdef CONFIG_IP_MULTIPLE_TABLES + #define FIB_TABLE_HASHSZ 256 +- +-#endif /* CONFIG_IP_ROUTE_MULTIPATH */ ++#else ++#define FIB_TABLE_HASHSZ 2 ++#endif + + extern __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh); + +diff --git a/ipc/mqueue.c b/ipc/mqueue.c +index 71a3ca1..6ebfbf5 100644 +--- a/ipc/mqueue.c ++++ b/ipc/mqueue.c +@@ -840,7 +840,8 @@ out_putfd: + fd = error; + } + mutex_unlock(&root->d_inode->i_mutex); +- mnt_drop_write(mnt); ++ if (!ro) ++ mnt_drop_write(mnt); + out_putname: + putname(name); + return fd; +diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c +index f113755..a13987a 100644 +--- a/kernel/time/tick-broadcast.c ++++ b/kernel/time/tick-broadcast.c +@@ -66,7 +66,8 @@ static void tick_broadcast_start_periodic(struct clock_event_device *bc) + */ + int tick_check_broadcast_device(struct clock_event_device *dev) + { +- if ((tick_broadcast_device.evtdev && ++ if ((dev->features & CLOCK_EVT_FEAT_DUMMY) || ++ (tick_broadcast_device.evtdev && + tick_broadcast_device.evtdev->rating >= dev->rating) || + (dev->features & CLOCK_EVT_FEAT_C3STOP)) + return 0; +diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c +index 43defd1..b27052c 100644 +--- a/kernel/trace/ftrace.c ++++ b/kernel/trace/ftrace.c +@@ -3082,8 +3082,8 @@ __unregister_ftrace_function_probe(char *glob, struct ftrace_probe_ops *ops, + continue; + } + +- hlist_del(&entry->node); +- call_rcu(&entry->rcu, ftrace_free_entry_rcu); ++ hlist_del_rcu(&entry->node); ++ call_rcu_sched(&entry->rcu, ftrace_free_entry_rcu); + } + } + __disable_ftrace_function_probe(); +diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c +index 3c13e46..2ffbc24 100644 +--- a/kernel/trace/trace.c ++++ b/kernel/trace/trace.c +@@ -703,7 +703,7 @@ __update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu) + void + update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu) + { +- struct ring_buffer *buf = tr->buffer; ++ struct ring_buffer *buf; + + if (trace_stop_count) + return; +@@ -715,6 +715,7 @@ update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu) + } + arch_spin_lock(&ftrace_max_lock); + ++ buf = tr->buffer; + tr->buffer = max_tr.buffer; + max_tr.buffer = buf; + +@@ -2849,8 +2850,12 @@ static void set_tracer_flags(unsigned int mask, int enabled) + if (mask == TRACE_ITER_RECORD_CMD) + trace_event_enable_cmd_record(enabled); + +- if (mask == TRACE_ITER_OVERWRITE) ++ if (mask == TRACE_ITER_OVERWRITE) { + ring_buffer_change_overwrite(global_trace.buffer, enabled); ++#ifdef CONFIG_TRACER_MAX_TRACE ++ ring_buffer_change_overwrite(max_tr.buffer, enabled); ++#endif ++ } + + if (mask == TRACE_ITER_PRINTK) + trace_printk_start_stop_comm(enabled); +@@ -2870,6 +2875,8 @@ static int trace_set_options(char *option) + cmp += 2; + } + ++ mutex_lock(&trace_types_lock); ++ + for (i = 0; trace_options[i]; i++) { + if (strcmp(cmp, trace_options[i]) == 0) { + set_tracer_flags(1 << i, !neg); +@@ -2878,11 +2885,10 @@ static int trace_set_options(char *option) + } + + /* If no option could be set, test the specific tracer options */ +- if (!trace_options[i]) { +- mutex_lock(&trace_types_lock); ++ if (!trace_options[i]) + ret = set_tracer_option(current_trace, cmp, neg); +- mutex_unlock(&trace_types_lock); +- } ++ ++ mutex_unlock(&trace_types_lock); + + return ret; + } +@@ -4640,7 +4646,10 @@ trace_options_core_write(struct file *filp, const char __user *ubuf, size_t cnt, + + if (val != 0 && val != 1) + return -EINVAL; ++ ++ mutex_lock(&trace_types_lock); + set_tracer_flags(1 << index, val); ++ mutex_unlock(&trace_types_lock); + + *ppos += cnt; + +diff --git a/mm/hugetlb.c b/mm/hugetlb.c +index 546db81..d7cec92 100644 +--- a/mm/hugetlb.c ++++ b/mm/hugetlb.c +@@ -2127,8 +2127,12 @@ int hugetlb_report_node_meminfo(int nid, char *buf) + /* Return the number pages of memory we physically have, in PAGE_SIZE units. */ + unsigned long hugetlb_total_pages(void) + { +- struct hstate *h = &default_hstate; +- return h->nr_huge_pages * pages_per_huge_page(h); ++ struct hstate *h; ++ unsigned long nr_total_pages = 0; ++ ++ for_each_hstate(h) ++ nr_total_pages += h->nr_huge_pages * pages_per_huge_page(h); ++ return nr_total_pages; + } + + static int hugetlb_acct_memory(struct hstate *h, long delta) +diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c +index 7d02ebd..1ee94d0 100644 +--- a/net/batman-adv/bat_iv_ogm.c ++++ b/net/batman-adv/bat_iv_ogm.c +@@ -1298,7 +1298,8 @@ static int batadv_iv_ogm_receive(struct sk_buff *skb, + batadv_ogm_packet = (struct batadv_ogm_packet *)packet_buff; + + /* unpack the aggregated packets and process them one by one */ +- do { ++ while (batadv_iv_ogm_aggr_packet(buff_pos, packet_len, ++ batadv_ogm_packet->tt_num_changes)) { + tt_buff = packet_buff + buff_pos + BATADV_OGM_HLEN; + + batadv_iv_ogm_process(ethhdr, batadv_ogm_packet, tt_buff, +@@ -1309,8 +1310,7 @@ static int batadv_iv_ogm_receive(struct sk_buff *skb, + + packet_pos = packet_buff + buff_pos; + batadv_ogm_packet = (struct batadv_ogm_packet *)packet_pos; +- } while (batadv_iv_ogm_aggr_packet(buff_pos, packet_len, +- batadv_ogm_packet->tt_num_changes)); ++ } + + kfree_skb(skb); + return NET_RX_SUCCESS; +diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c +index 5dc66ab..580e176 100644 +--- a/net/bridge/br_netlink.c ++++ b/net/bridge/br_netlink.c +@@ -28,6 +28,7 @@ static inline size_t br_port_info_size(void) + + nla_total_size(1) /* IFLA_BRPORT_MODE */ + + nla_total_size(1) /* IFLA_BRPORT_GUARD */ + + nla_total_size(1) /* IFLA_BRPORT_PROTECT */ ++ + nla_total_size(1) /* IFLA_BRPORT_FAST_LEAVE */ + + 0; + } + +diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c +index 798f920..6212ec9 100644 +--- a/net/core/rtnetlink.c ++++ b/net/core/rtnetlink.c +@@ -2539,7 +2539,7 @@ static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) + struct rtattr *attr = (void *)nlh + NLMSG_ALIGN(min_len); + + while (RTA_OK(attr, attrlen)) { +- unsigned int flavor = attr->rta_type; ++ unsigned int flavor = attr->rta_type & NLA_TYPE_MASK; + if (flavor) { + if (flavor > rta_max[sz_idx]) + return -EINVAL; +diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c +index 4750d2b..03f5af7 100644 +--- a/net/ipv4/inet_fragment.c ++++ b/net/ipv4/inet_fragment.c +@@ -21,6 +21,7 @@ + #include <linux/rtnetlink.h> + #include <linux/slab.h> + ++#include <net/sock.h> + #include <net/inet_frag.h> + + static void inet_frag_secret_rebuild(unsigned long dummy) +@@ -276,6 +277,7 @@ struct inet_frag_queue *inet_frag_find(struct netns_frags *nf, + { + struct inet_frag_queue *q; + struct hlist_node *n; ++ int depth = 0; + + hlist_for_each_entry(q, n, &f->hash[hash], list) { + if (q->net == nf && f->match(q, key)) { +@@ -283,9 +285,25 @@ struct inet_frag_queue *inet_frag_find(struct netns_frags *nf, + read_unlock(&f->lock); + return q; + } ++ depth++; + } + read_unlock(&f->lock); + +- return inet_frag_create(nf, f, key); ++ if (depth <= INETFRAGS_MAXDEPTH) ++ return inet_frag_create(nf, f, key); ++ else ++ return ERR_PTR(-ENOBUFS); + } + EXPORT_SYMBOL(inet_frag_find); ++ ++void inet_frag_maybe_warn_overflow(struct inet_frag_queue *q, ++ const char *prefix) ++{ ++ static const char msg[] = "inet_frag_find: Fragment hash bucket" ++ " list length grew over limit " __stringify(INETFRAGS_MAXDEPTH) ++ ". Dropping fragment.\n"; ++ ++ if (PTR_ERR(q) == -ENOBUFS) ++ LIMIT_NETDEBUG(KERN_WARNING "%s%s", prefix, msg); ++} ++EXPORT_SYMBOL(inet_frag_maybe_warn_overflow); +diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c +index eb9d63a..a8fc332 100644 +--- a/net/ipv4/ip_fragment.c ++++ b/net/ipv4/ip_fragment.c +@@ -299,14 +299,11 @@ static inline struct ipq *ip_find(struct net *net, struct iphdr *iph, u32 user) + hash = ipqhashfn(iph->id, iph->saddr, iph->daddr, iph->protocol); + + q = inet_frag_find(&net->ipv4.frags, &ip4_frags, &arg, hash); +- if (q == NULL) +- goto out_nomem; +- ++ if (IS_ERR_OR_NULL(q)) { ++ inet_frag_maybe_warn_overflow(q, pr_fmt()); ++ return NULL; ++ } + return container_of(q, struct ipq, q); +- +-out_nomem: +- LIMIT_NETDEBUG(KERN_ERR pr_fmt("ip_frag_create: no memory left !\n")); +- return NULL; + } + + /* Is the fragment too far ahead to be part of ipq? */ +diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c +index e81b1ca..a85062b 100644 +--- a/net/ipv4/ip_gre.c ++++ b/net/ipv4/ip_gre.c +@@ -761,10 +761,7 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev + + if (dev->header_ops && dev->type == ARPHRD_IPGRE) { + gre_hlen = 0; +- if (skb->protocol == htons(ETH_P_IP)) +- tiph = (const struct iphdr *)skb->data; +- else +- tiph = &tunnel->parms.iph; ++ tiph = (const struct iphdr *)skb->data; + } else { + gre_hlen = tunnel->hlen; + tiph = &tunnel->parms.iph; +diff --git a/net/ipv4/ip_options.c b/net/ipv4/ip_options.c +index f6289bf..9100fe0 100644 +--- a/net/ipv4/ip_options.c ++++ b/net/ipv4/ip_options.c +@@ -370,7 +370,6 @@ int ip_options_compile(struct net *net, + } + switch (optptr[3]&0xF) { + case IPOPT_TS_TSONLY: +- opt->ts = optptr - iph; + if (skb) + timeptr = &optptr[optptr[2]-1]; + opt->ts_needtime = 1; +@@ -381,7 +380,6 @@ int ip_options_compile(struct net *net, + pp_ptr = optptr + 2; + goto error; + } +- opt->ts = optptr - iph; + if (rt) { + spec_dst_fill(&spec_dst, skb); + memcpy(&optptr[optptr[2]-1], &spec_dst, 4); +@@ -396,7 +394,6 @@ int ip_options_compile(struct net *net, + pp_ptr = optptr + 2; + goto error; + } +- opt->ts = optptr - iph; + { + __be32 addr; + memcpy(&addr, &optptr[optptr[2]-1], 4); +@@ -429,12 +426,12 @@ int ip_options_compile(struct net *net, + pp_ptr = optptr + 3; + goto error; + } +- opt->ts = optptr - iph; + if (skb) { + optptr[3] = (optptr[3]&0xF)|((overflow+1)<<4); + opt->is_changed = 1; + } + } ++ opt->ts = optptr - iph; + break; + case IPOPT_RA: + if (optlen < 4) { +diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c +index 2aa69c8..45b63ca 100644 +--- a/net/ipv4/tcp.c ++++ b/net/ipv4/tcp.c +@@ -773,7 +773,7 @@ struct sk_buff *sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp) + * Make sure that we have exactly size bytes + * available to the caller, no more, no less. + */ +- skb->avail_size = size; ++ skb->reserved_tailroom = skb->end - skb->tail - size; + return skb; + } + __kfree_skb(skb); +diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c +index eadb693..d9130a9 100644 +--- a/net/ipv4/tcp_ipv4.c ++++ b/net/ipv4/tcp_ipv4.c +@@ -274,13 +274,6 @@ static void tcp_v4_mtu_reduced(struct sock *sk) + struct inet_sock *inet = inet_sk(sk); + u32 mtu = tcp_sk(sk)->mtu_info; + +- /* We are not interested in TCP_LISTEN and open_requests (SYN-ACKs +- * send out by Linux are always <576bytes so they should go through +- * unfragmented). +- */ +- if (sk->sk_state == TCP_LISTEN) +- return; +- + dst = inet_csk_update_pmtu(sk, mtu); + if (!dst) + return; +@@ -408,6 +401,13 @@ void tcp_v4_err(struct sk_buff *icmp_skb, u32 info) + goto out; + + if (code == ICMP_FRAG_NEEDED) { /* PMTU discovery (RFC1191) */ ++ /* We are not interested in TCP_LISTEN and open_requests ++ * (SYN-ACKs send out by Linux are always <576bytes so ++ * they should go through unfragmented). ++ */ ++ if (sk->sk_state == TCP_LISTEN) ++ goto out; ++ + tp->mtu_info = info; + if (!sock_owned_by_user(sk)) { + tcp_v4_mtu_reduced(sk); +diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c +index ff031a5..c36c6c2 100644 +--- a/net/ipv4/tcp_output.c ++++ b/net/ipv4/tcp_output.c +@@ -1298,7 +1298,6 @@ static void __pskb_trim_head(struct sk_buff *skb, int len) + eat = min_t(int, len, skb_headlen(skb)); + if (eat) { + __skb_pull(skb, eat); +- skb->avail_size -= eat; + len -= eat; + if (!len) + return; +diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c +index 3dacecc..2f3a018 100644 +--- a/net/ipv6/netfilter/nf_conntrack_reasm.c ++++ b/net/ipv6/netfilter/nf_conntrack_reasm.c +@@ -14,6 +14,8 @@ + * 2 of the License, or (at your option) any later version. + */ + ++#define pr_fmt(fmt) "IPv6-nf: " fmt ++ + #include <linux/errno.h> + #include <linux/types.h> + #include <linux/string.h> +@@ -180,13 +182,11 @@ static inline struct frag_queue *fq_find(struct net *net, __be32 id, + + q = inet_frag_find(&net->nf_frag.frags, &nf_frags, &arg, hash); + local_bh_enable(); +- if (q == NULL) +- goto oom; +- ++ if (IS_ERR_OR_NULL(q)) { ++ inet_frag_maybe_warn_overflow(q, pr_fmt()); ++ return NULL; ++ } + return container_of(q, struct frag_queue, q); +- +-oom: +- return NULL; + } + + +diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c +index e5253ec..d9ba8a2 100644 +--- a/net/ipv6/reassembly.c ++++ b/net/ipv6/reassembly.c +@@ -26,6 +26,9 @@ + * YOSHIFUJI,H. @USAGI Always remove fragment header to + * calculate ICV correctly. + */ ++ ++#define pr_fmt(fmt) "IPv6: " fmt ++ + #include <linux/errno.h> + #include <linux/types.h> + #include <linux/string.h> +@@ -197,9 +200,10 @@ fq_find(struct net *net, __be32 id, const struct in6_addr *src, const struct in6 + hash = inet6_hash_frag(id, src, dst, ip6_frags.rnd); + + q = inet_frag_find(&net->ipv6.frags, &ip6_frags, &arg, hash); +- if (q == NULL) ++ if (IS_ERR_OR_NULL(q)) { ++ inet_frag_maybe_warn_overflow(q, pr_fmt()); + return NULL; +- ++ } + return container_of(q, struct frag_queue, q); + } + +diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c +index 4f435371..8d19346 100644 +--- a/net/ipv6/tcp_ipv6.c ++++ b/net/ipv6/tcp_ipv6.c +@@ -389,6 +389,13 @@ static void tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, + } + + if (type == ICMPV6_PKT_TOOBIG) { ++ /* We are not interested in TCP_LISTEN and open_requests ++ * (SYN-ACKs send out by Linux are always <576bytes so ++ * they should go through unfragmented). ++ */ ++ if (sk->sk_state == TCP_LISTEN) ++ goto out; ++ + tp->mtu_info = ntohl(info); + if (!sock_owned_by_user(sk)) + tcp_v6_mtu_reduced(sk); +diff --git a/net/sctp/associola.c b/net/sctp/associola.c +index b45ed1f..67c6823 100644 +--- a/net/sctp/associola.c ++++ b/net/sctp/associola.c +@@ -1080,7 +1080,7 @@ struct sctp_transport *sctp_assoc_lookup_tsn(struct sctp_association *asoc, + transports) { + + if (transport == active) +- break; ++ continue; + list_for_each_entry(chunk, &transport->transmitted, + transmitted_list) { + if (key == chunk->subh.data_hdr->tsn) { +diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c +index 5131fcf..de1a013 100644 +--- a/net/sctp/sm_statefuns.c ++++ b/net/sctp/sm_statefuns.c +@@ -2082,7 +2082,7 @@ sctp_disposition_t sctp_sf_do_5_2_4_dupcook(struct net *net, + } + + /* Delete the tempory new association. */ +- sctp_add_cmd_sf(commands, SCTP_CMD_NEW_ASOC, SCTP_ASOC(new_asoc)); ++ sctp_add_cmd_sf(commands, SCTP_CMD_SET_ASOC, SCTP_ASOC(new_asoc)); + sctp_add_cmd_sf(commands, SCTP_CMD_DELETE_TCB, SCTP_NULL()); + + /* Restore association pointer to provide SCTP command interpeter +diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c +index 713e9af..e46b6a3 100644 +--- a/sound/pci/hda/hda_codec.c ++++ b/sound/pci/hda/hda_codec.c +@@ -2967,7 +2967,7 @@ static unsigned int convert_to_spdif_status(unsigned short val) + if (val & AC_DIG1_PROFESSIONAL) + sbits |= IEC958_AES0_PROFESSIONAL; + if (sbits & IEC958_AES0_PROFESSIONAL) { +- if (sbits & AC_DIG1_EMPHASIS) ++ if (val & AC_DIG1_EMPHASIS) + sbits |= IEC958_AES0_PRO_EMPHASIS_5015; + } else { + if (val & AC_DIG1_EMPHASIS) +diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c +index 009b77a..09fae16 100644 +--- a/sound/pci/hda/patch_conexant.c ++++ b/sound/pci/hda/patch_conexant.c +@@ -1175,7 +1175,7 @@ static int patch_cxt5045(struct hda_codec *codec) + } + + if (spec->beep_amp) +- snd_hda_attach_beep_device(codec, spec->beep_amp); ++ snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); + + return 0; + } +@@ -1954,7 +1954,7 @@ static int patch_cxt5051(struct hda_codec *codec) + } + + if (spec->beep_amp) +- snd_hda_attach_beep_device(codec, spec->beep_amp); ++ snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); + + return 0; + } +@@ -3136,7 +3136,7 @@ static int patch_cxt5066(struct hda_codec *codec) + } + + if (spec->beep_amp) +- snd_hda_attach_beep_device(codec, spec->beep_amp); ++ snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); + + return 0; + } +@@ -4576,7 +4576,7 @@ static int patch_conexant_auto(struct hda_codec *codec) + spec->capture_stream = &cx_auto_pcm_analog_capture; + codec->patch_ops = cx_auto_patch_ops; + if (spec->beep_amp) +- snd_hda_attach_beep_device(codec, spec->beep_amp); ++ snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); + + /* Some laptops with Conexant chips show stalls in S3 resume, + * which falls into the single-cmd mode. +diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c +index e90daf8..64a564d 100644 +--- a/sound/usb/mixer.c ++++ b/sound/usb/mixer.c +@@ -715,8 +715,9 @@ static int check_input_term(struct mixer_build *state, int id, struct usb_audio_ + case UAC2_CLOCK_SELECTOR: { + struct uac_selector_unit_descriptor *d = p1; + /* call recursively to retrieve the channel info */ +- if (check_input_term(state, d->baSourceID[0], term) < 0) +- return -ENODEV; ++ err = check_input_term(state, d->baSourceID[0], term); ++ if (err < 0) ++ return err; + term->type = d->bDescriptorSubtype << 16; /* virtual type */ + term->id = id; + term->name = uac_selector_unit_iSelector(d); +@@ -725,7 +726,8 @@ static int check_input_term(struct mixer_build *state, int id, struct usb_audio_ + case UAC1_PROCESSING_UNIT: + case UAC1_EXTENSION_UNIT: + /* UAC2_PROCESSING_UNIT_V2 */ +- /* UAC2_EFFECT_UNIT */ { ++ /* UAC2_EFFECT_UNIT */ ++ case UAC2_EXTENSION_UNIT_V2: { + struct uac_processing_unit_descriptor *d = p1; + + if (state->mixer->protocol == UAC_VERSION_2 && +@@ -1355,8 +1357,9 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void + return err; + + /* determine the input source type and name */ +- if (check_input_term(state, hdr->bSourceID, &iterm) < 0) +- return -EINVAL; ++ err = check_input_term(state, hdr->bSourceID, &iterm); ++ if (err < 0) ++ return err; + + master_bits = snd_usb_combine_bytes(bmaControls, csize); + /* master configuration quirks */ +@@ -2051,6 +2054,8 @@ static int parse_audio_unit(struct mixer_build *state, int unitid) + return parse_audio_extension_unit(state, unitid, p1); + else /* UAC_VERSION_2 */ + return parse_audio_processing_unit(state, unitid, p1); ++ case UAC2_EXTENSION_UNIT_V2: ++ return parse_audio_extension_unit(state, unitid, p1); + default: + snd_printk(KERN_ERR "usbaudio: unit %u: unexpected type 0x%02x\n", unitid, p1[2]); + return -EINVAL; +@@ -2117,7 +2122,7 @@ static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer) + state.oterm.type = le16_to_cpu(desc->wTerminalType); + state.oterm.name = desc->iTerminal; + err = parse_audio_unit(&state, desc->bSourceID); +- if (err < 0) ++ if (err < 0 && err != -EINVAL) + return err; + } else { /* UAC_VERSION_2 */ + struct uac2_output_terminal_descriptor *desc = p; +@@ -2129,12 +2134,12 @@ static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer) + state.oterm.type = le16_to_cpu(desc->wTerminalType); + state.oterm.name = desc->iTerminal; + err = parse_audio_unit(&state, desc->bSourceID); +- if (err < 0) ++ if (err < 0 && err != -EINVAL) + return err; + + /* for UAC2, use the same approach to also add the clock selectors */ + err = parse_audio_unit(&state, desc->bCSourceID); +- if (err < 0) ++ if (err < 0 && err != -EINVAL) + return err; + } + } diff --git a/3.8.4/4420_grsecurity-2.9.1-3.8.4-201303252035.patch b/3.8.5/4420_grsecurity-2.9.1-3.8.5-201303292018.patch index 2dd0931..1affb1b 100644 --- a/3.8.4/4420_grsecurity-2.9.1-3.8.4-201303252035.patch +++ b/3.8.5/4420_grsecurity-2.9.1-3.8.5-201303292018.patch @@ -259,7 +259,7 @@ index 986614d..e8bfedc 100644 pcd. [PARIDE] diff --git a/Makefile b/Makefile -index e20f162..7090f4a 100644 +index 14b38cf..90b3a74 100644 --- a/Makefile +++ b/Makefile @@ -241,8 +241,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ @@ -285,7 +285,7 @@ index e20f162..7090f4a 100644 $(Q)$(MAKE) $(build)=scripts/basic $(Q)rm -f .tmp_quiet_recordmcount -@@ -575,6 +576,62 @@ else +@@ -575,6 +576,65 @@ else KBUILD_CFLAGS += -O2 endif @@ -323,9 +323,12 @@ index e20f162..7090f4a 100644 +ifdef CONFIG_PAX_LATENT_ENTROPY +LATENT_ENTROPY_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/latent_entropy_plugin.so -DLATENT_ENTROPY_PLUGIN +endif ++ifdef CONFIG_PAX_MEMORY_STRUCTLEAK ++STRUCTLEAK_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/structleak_plugin.so -DSTRUCTLEAK_PLUGIN ++endif +GCC_PLUGINS_CFLAGS := $(CONSTIFY_PLUGIN_CFLAGS) $(STACKLEAK_PLUGIN_CFLAGS) $(KALLOCSTAT_PLUGIN_CFLAGS) +GCC_PLUGINS_CFLAGS += $(KERNEXEC_PLUGIN_CFLAGS) $(CHECKER_PLUGIN_CFLAGS) $(COLORIZE_PLUGIN_CFLAGS) -+GCC_PLUGINS_CFLAGS += $(SIZE_OVERFLOW_PLUGIN_CFLAGS) $(LATENT_ENTROPY_PLUGIN_CFLAGS) ++GCC_PLUGINS_CFLAGS += $(SIZE_OVERFLOW_PLUGIN_CFLAGS) $(LATENT_ENTROPY_PLUGIN_CFLAGS) $(STRUCTLEAK_PLUGIN_CFLAGS) +GCC_PLUGINS_AFLAGS := $(KERNEXEC_PLUGIN_AFLAGS) +export PLUGINCC GCC_PLUGINS_CFLAGS GCC_PLUGINS_AFLAGS CONSTIFY_PLUGIN +ifeq ($(KBUILD_EXTMOD),) @@ -348,7 +351,7 @@ index e20f162..7090f4a 100644 include $(srctree)/arch/$(SRCARCH)/Makefile ifdef CONFIG_READABLE_ASM -@@ -731,7 +788,7 @@ export mod_sign_cmd +@@ -731,7 +791,7 @@ export mod_sign_cmd ifeq ($(KBUILD_EXTMOD),) @@ -357,7 +360,7 @@ index e20f162..7090f4a 100644 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ -@@ -778,6 +835,8 @@ endif +@@ -778,6 +838,8 @@ endif # The actual objects are generated when descending, # make sure no implicit rule kicks in @@ -366,7 +369,7 @@ index e20f162..7090f4a 100644 $(sort $(vmlinux-deps)): $(vmlinux-dirs) ; # Handle descending into subdirectories listed in $(vmlinux-dirs) -@@ -787,7 +846,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ; +@@ -787,7 +849,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ; # Error messages still appears in the original language PHONY += $(vmlinux-dirs) @@ -375,7 +378,7 @@ index e20f162..7090f4a 100644 $(Q)$(MAKE) $(build)=$@ # Store (new) KERNELRELASE string in include/config/kernel.release -@@ -831,6 +890,7 @@ prepare0: archprepare FORCE +@@ -831,6 +893,7 @@ prepare0: archprepare FORCE $(Q)$(MAKE) $(build)=. # All the preparing.. @@ -383,7 +386,7 @@ index e20f162..7090f4a 100644 prepare: prepare0 # Generate some files -@@ -938,6 +998,8 @@ all: modules +@@ -938,6 +1001,8 @@ all: modules # using awk while concatenating to the final file. PHONY += modules @@ -392,7 +395,7 @@ index e20f162..7090f4a 100644 modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order @$(kecho) ' Building modules, stage 2.'; -@@ -953,7 +1015,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin) +@@ -953,7 +1018,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin) # Target to prepare building external modules PHONY += modules_prepare @@ -401,7 +404,7 @@ index e20f162..7090f4a 100644 # Target to install modules PHONY += modules_install -@@ -1019,7 +1081,7 @@ MRPROPER_FILES += .config .config.old .version .old_version $(version_h) \ +@@ -1019,7 +1084,7 @@ MRPROPER_FILES += .config .config.old .version .old_version $(version_h) \ Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \ signing_key.priv signing_key.x509 x509.genkey \ extra_certificates signing_key.x509.keyid \ @@ -410,7 +413,7 @@ index e20f162..7090f4a 100644 # clean - Delete most, but leave enough to build external modules # -@@ -1059,6 +1121,7 @@ distclean: mrproper +@@ -1059,6 +1124,7 @@ distclean: mrproper \( -name '*.orig' -o -name '*.rej' -o -name '*~' \ -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ -o -name '.*.rej' \ @@ -418,7 +421,7 @@ index e20f162..7090f4a 100644 -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \ -type f -print | xargs rm -f -@@ -1219,6 +1282,8 @@ PHONY += $(module-dirs) modules +@@ -1219,6 +1285,8 @@ PHONY += $(module-dirs) modules $(module-dirs): crmodverdir $(objtree)/Module.symvers $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@) @@ -427,7 +430,7 @@ index e20f162..7090f4a 100644 modules: $(module-dirs) @$(kecho) ' Building modules, stage 2.'; $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost -@@ -1355,17 +1420,21 @@ else +@@ -1355,17 +1423,21 @@ else target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@)) endif @@ -453,7 +456,7 @@ index e20f162..7090f4a 100644 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) %.symtypes: %.c prepare scripts FORCE $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) -@@ -1375,11 +1444,15 @@ endif +@@ -1375,11 +1447,15 @@ endif $(cmd_crmodverdir) $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \ $(build)=$(build-dir) @@ -1977,7 +1980,7 @@ index a3f3792..7b932a6 100644 #define L_PTE_DIRTY_HIGH (1 << (55 - 32)) diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h -index c094749..fd8272e 100644 +index c094749..a6ff605 100644 --- a/arch/arm/include/asm/pgtable.h +++ b/arch/arm/include/asm/pgtable.h @@ -30,6 +30,9 @@ @@ -2062,13 +2065,12 @@ index c094749..fd8272e 100644 */ #define _L_PTE_DEFAULT L_PTE_PRESENT | L_PTE_YOUNG -@@ -240,8 +290,7 @@ static inline pte_t pte_mkspecial(pte_t pte) { return pte; } - +@@ -241,7 +291,7 @@ static inline pte_t pte_mkspecial(pte_t pte) { return pte; } static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { -- const pteval_t mask = L_PTE_XN | L_PTE_RDONLY | L_PTE_USER | + const pteval_t mask = L_PTE_XN | L_PTE_RDONLY | L_PTE_USER | - L_PTE_NONE | L_PTE_VALID; -+ const pteval_t mask = L_PTE_XN | L_PTE_RDONLY | L_PTE_USER | L_PTE_NONE | L_PTE_VALID | __supported_pte_mask; ++ L_PTE_NONE | L_PTE_VALID | __supported_pte_mask; pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask); return pte; } @@ -3251,10 +3253,10 @@ index 7d08b43..f7ca7ea 100644 #include "csumpartialcopygeneric.S" diff --git a/arch/arm/lib/delay.c b/arch/arm/lib/delay.c -index 6b93f6a..88d9b64 100644 +index 6b93f6a..1aa92d0 100644 --- a/arch/arm/lib/delay.c +++ b/arch/arm/lib/delay.c -@@ -28,12 +28,14 @@ +@@ -28,12 +28,15 @@ /* * Default to the loop-based delay implementation. */ @@ -3263,6 +3265,7 @@ index 6b93f6a..88d9b64 100644 .delay = __loop_delay, .const_udelay = __loop_const_udelay, .udelay = __loop_udelay, ++ .const_clock = false, }; +struct arm_delay_ops *arm_delay_ops __read_only = &arm_loop_delay_ops; @@ -3270,7 +3273,7 @@ index 6b93f6a..88d9b64 100644 static const struct delay_timer *delay_timer; static bool delay_calibrated; -@@ -67,6 +69,13 @@ static void __timer_udelay(unsigned long usecs) +@@ -67,6 +70,13 @@ static void __timer_udelay(unsigned long usecs) __timer_const_udelay(usecs * UDELAY_MULT); } @@ -3284,7 +3287,7 @@ index 6b93f6a..88d9b64 100644 void __init register_current_timer_delay(const struct delay_timer *timer) { if (!delay_calibrated) { -@@ -74,10 +83,7 @@ void __init register_current_timer_delay(const struct delay_timer *timer) +@@ -74,10 +84,7 @@ void __init register_current_timer_delay(const struct delay_timer *timer) delay_timer = timer; lpj_fine = timer->freq / HZ; loops_per_jiffy = lpj_fine; @@ -11712,7 +11715,7 @@ index 142c4ce..19b683f 100644 END(ia32_syscall) diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c -index d0b689b..34be51d 100644 +index d0b689b..6811ddc 100644 --- a/arch/x86/ia32/sys_ia32.c +++ b/arch/x86/ia32/sys_ia32.c @@ -69,8 +69,8 @@ asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low, @@ -11735,7 +11738,14 @@ index d0b689b..34be51d 100644 set_fs(old_fs); if (put_compat_timespec(&t, interval)) return -EFAULT; -@@ -319,7 +319,7 @@ asmlinkage long sys32_rt_sigpending(compat_sigset_t __user *set, +@@ -313,13 +313,13 @@ asmlinkage long sys32_sched_rr_get_interval(compat_pid_t pid, + asmlinkage long sys32_rt_sigpending(compat_sigset_t __user *set, + compat_size_t sigsetsize) + { +- sigset_t s; ++ sigset_t s = { }; + compat_sigset_t s32; + int ret; mm_segment_t old_fs = get_fs(); set_fs(KERNEL_DS); @@ -12960,6 +12970,19 @@ index 8d871ea..c1a0dc9 100644 #define __add(ptr, inc, lock) \ ({ \ __typeof__ (*(ptr)) __ret = (inc); \ +diff --git a/arch/x86/include/asm/compat.h b/arch/x86/include/asm/compat.h +index 59c6c40..5e0b22c 100644 +--- a/arch/x86/include/asm/compat.h ++++ b/arch/x86/include/asm/compat.h +@@ -41,7 +41,7 @@ typedef s64 __attribute__((aligned(4))) compat_s64; + typedef u32 compat_uint_t; + typedef u32 compat_ulong_t; + typedef u64 __attribute__((aligned(4))) compat_u64; +-typedef u32 compat_uptr_t; ++typedef u32 __user compat_uptr_t; + + struct compat_timespec { + compat_time_t tv_sec; diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h index 2d9075e..b75a844 100644 --- a/arch/x86/include/asm/cpufeature.h @@ -26976,7 +26999,7 @@ index f0312d7..9c39d63 100644 +EXPORT_SYMBOL(set_fs); +#endif diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c -index 05928aa..b33dea1 100644 +index 906fea3..ee8a097 100644 --- a/arch/x86/lib/usercopy_64.c +++ b/arch/x86/lib/usercopy_64.c @@ -39,7 +39,7 @@ unsigned long __clear_user(void __user *addr, unsigned long size) @@ -27085,7 +27108,7 @@ index 903ec1e..c4166b2 100644 } diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c -index fb674fd..1be28b9 100644 +index fb674fd..223a693 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -13,12 +13,19 @@ @@ -27195,15 +27218,16 @@ index fb674fd..1be28b9 100644 + pmd_t *ret; +#else list_for_each_entry(page, &pgd_list, lru) { -+ pgd_t *pgd = page_address(page); ++ pgd_t *pgd; spinlock_t *pgt_lock; pmd_t *ret; -@@ -243,8 +296,13 @@ void vmalloc_sync_all(void) +@@ -243,8 +296,14 @@ void vmalloc_sync_all(void) pgt_lock = &pgd_page_get_mm(page)->page_table_lock; spin_lock(pgt_lock); - ret = vmalloc_sync_one(page_address(page), address); ++ pgd = page_address(page); +#endif + + ret = vmalloc_sync_one(pgd, address); @@ -27214,7 +27238,7 @@ index fb674fd..1be28b9 100644 if (!ret) break; -@@ -278,6 +336,11 @@ static noinline __kprobes int vmalloc_fault(unsigned long address) +@@ -278,6 +337,11 @@ static noinline __kprobes int vmalloc_fault(unsigned long address) * an interrupt in the middle of a task switch.. */ pgd_paddr = read_cr3(); @@ -27226,7 +27250,7 @@ index fb674fd..1be28b9 100644 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address); if (!pmd_k) return -1; -@@ -373,7 +436,14 @@ static noinline __kprobes int vmalloc_fault(unsigned long address) +@@ -373,7 +437,14 @@ static noinline __kprobes int vmalloc_fault(unsigned long address) * happen within a race in page table update. In the later * case just flush: */ @@ -27241,7 +27265,7 @@ index fb674fd..1be28b9 100644 pgd_ref = pgd_offset_k(address); if (pgd_none(*pgd_ref)) return -1; -@@ -541,7 +611,7 @@ static int is_errata93(struct pt_regs *regs, unsigned long address) +@@ -541,7 +612,7 @@ static int is_errata93(struct pt_regs *regs, unsigned long address) static int is_errata100(struct pt_regs *regs, unsigned long address) { #ifdef CONFIG_X86_64 @@ -27250,7 +27274,7 @@ index fb674fd..1be28b9 100644 return 1; #endif return 0; -@@ -568,7 +638,7 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address) +@@ -568,7 +639,7 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address) } static const char nx_warning[] = KERN_CRIT @@ -27259,7 +27283,7 @@ index fb674fd..1be28b9 100644 static void show_fault_oops(struct pt_regs *regs, unsigned long error_code, -@@ -577,15 +647,27 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code, +@@ -577,15 +648,27 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code, if (!oops_may_print()) return; @@ -27289,7 +27313,7 @@ index fb674fd..1be28b9 100644 printk(KERN_ALERT "BUG: unable to handle kernel "); if (address < PAGE_SIZE) printk(KERN_CONT "NULL pointer dereference"); -@@ -748,6 +830,22 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code, +@@ -748,6 +831,22 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code, return; } #endif @@ -27312,7 +27336,7 @@ index fb674fd..1be28b9 100644 /* Kernel addresses are always protection faults: */ if (address >= TASK_SIZE) error_code |= PF_PROT; -@@ -833,7 +931,7 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address, +@@ -833,7 +932,7 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address, if (fault & (VM_FAULT_HWPOISON|VM_FAULT_HWPOISON_LARGE)) { printk(KERN_ERR "MCE: Killing %s:%d due to hardware memory corruption fault at %lx\n", @@ -27321,7 +27345,7 @@ index fb674fd..1be28b9 100644 code = BUS_MCEERR_AR; } #endif -@@ -896,6 +994,99 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte) +@@ -896,6 +995,99 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte) return 1; } @@ -27421,7 +27445,7 @@ index fb674fd..1be28b9 100644 /* * Handle a spurious fault caused by a stale TLB entry. * -@@ -968,6 +1159,9 @@ int show_unhandled_signals = 1; +@@ -968,6 +1160,9 @@ int show_unhandled_signals = 1; static inline int access_error(unsigned long error_code, struct vm_area_struct *vma) { @@ -27431,7 +27455,7 @@ index fb674fd..1be28b9 100644 if (error_code & PF_WRITE) { /* write, present and write, not present: */ if (unlikely(!(vma->vm_flags & VM_WRITE))) -@@ -996,7 +1190,7 @@ static inline bool smap_violation(int error_code, struct pt_regs *regs) +@@ -996,7 +1191,7 @@ static inline bool smap_violation(int error_code, struct pt_regs *regs) if (error_code & PF_USER) return false; @@ -27440,7 +27464,7 @@ index fb674fd..1be28b9 100644 return false; return true; -@@ -1012,18 +1206,33 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code) +@@ -1012,18 +1207,33 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code) { struct vm_area_struct *vma; struct task_struct *tsk; @@ -27479,7 +27503,7 @@ index fb674fd..1be28b9 100644 /* * Detect and handle instructions that would cause a page fault for -@@ -1084,7 +1293,7 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code) +@@ -1084,7 +1294,7 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code) * User-mode registers count as a user access even for any * potential system fault or CPU buglet: */ @@ -27488,7 +27512,7 @@ index fb674fd..1be28b9 100644 local_irq_enable(); error_code |= PF_USER; } else { -@@ -1146,6 +1355,11 @@ retry: +@@ -1146,6 +1356,11 @@ retry: might_sleep(); } @@ -27500,7 +27524,7 @@ index fb674fd..1be28b9 100644 vma = find_vma(mm, address); if (unlikely(!vma)) { bad_area(regs, error_code, address); -@@ -1157,18 +1371,24 @@ retry: +@@ -1157,18 +1372,24 @@ retry: bad_area(regs, error_code, address); return; } @@ -27536,7 +27560,7 @@ index fb674fd..1be28b9 100644 if (unlikely(expand_stack(vma, address))) { bad_area(regs, error_code, address); return; -@@ -1232,3 +1452,292 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code) +@@ -1232,3 +1453,292 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code) __do_page_fault(regs, error_code); exception_exit(regs); } @@ -34576,10 +34600,10 @@ index 4cd392d..4b629e1 100644 iounmap(buf); return 0; diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c -index 2a2e145..73745e79 100644 +index e1d6253..bd00f91 100644 --- a/drivers/firmware/efivars.c +++ b/drivers/firmware/efivars.c -@@ -133,7 +133,7 @@ struct efivar_attribute { +@@ -138,7 +138,7 @@ struct efivar_attribute { }; static struct efivars __efivars; @@ -34588,7 +34612,7 @@ index 2a2e145..73745e79 100644 #define PSTORE_EFI_ATTRIBUTES \ (EFI_VARIABLE_NON_VOLATILE | \ -@@ -1798,7 +1798,7 @@ efivar_create_sysfs_entry(struct efivars *efivars, +@@ -1787,7 +1787,7 @@ efivar_create_sysfs_entry(struct efivars *efivars, static int create_efivars_bin_attributes(struct efivars *efivars) { @@ -35002,18 +35026,9 @@ index 6e0acad..93c8289 100644 int front_offset; } drm_i810_private_t; diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c -index 8a7c48b..27af8a5 100644 +index 261efc8e..27af8a5 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c -@@ -103,7 +103,7 @@ static const char *cache_level_str(int type) - static void - describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj) - { -- seq_printf(m, "%p: %s%s %8zdKiB %04x %04x %d %d %d%s%s%s", -+ seq_printf(m, "%pK: %s%s %8zdKiB %04x %04x %d %d %d%s%s%s", - &obj->base, - get_pin_flag(obj), - get_tiling_flag(obj), @@ -496,7 +496,7 @@ static int i915_interrupt_info(struct seq_file *m, void *data) I915_READ(GTIMR)); } @@ -35068,7 +35083,7 @@ index 7339a4b..445aaba 100644 return container_of(adapter, struct intel_gmbus, adapter)->force_bit; } diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c -index 26d08bb..e24fb51 100644 +index 7adf5a7..e24fb51 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -672,7 +672,7 @@ i915_gem_execbuffer_move_to_gpu(struct intel_ring_buffer *ring, @@ -35080,7 +35095,7 @@ index 26d08bb..e24fb51 100644 flush_domains |= obj->base.write_domain; } -@@ -703,18 +703,23 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec) +@@ -703,9 +703,9 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec) static int validate_exec_list(struct drm_i915_gem_exec_object2 *exec, @@ -35089,27 +35104,10 @@ index 26d08bb..e24fb51 100644 { - int i; + unsigned int i; -+ int relocs_total = 0; -+ int relocs_max = INT_MAX / sizeof(struct drm_i915_gem_relocation_entry); - - for (i = 0; i < count; i++) { - char __user *ptr = (char __user *)(uintptr_t)exec[i].relocs_ptr; - int length; /* limited by fault_in_pages_readable() */ - -- /* First check for malicious input causing overflow */ -- if (exec[i].relocation_count > -- INT_MAX / sizeof(struct drm_i915_gem_relocation_entry)) -+ /* First check for malicious input causing overflow in -+ * the worst case where we need to allocate the entire -+ * relocation tree as a single array. -+ */ -+ if (exec[i].relocation_count > relocs_max - relocs_total) - return -EINVAL; -+ relocs_total += exec[i].relocation_count; + int relocs_total = 0; + int relocs_max = INT_MAX / sizeof(struct drm_i915_gem_relocation_entry); - length = exec[i].relocation_count * - sizeof(struct drm_i915_gem_relocation_entry); -@@ -1197,7 +1202,7 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data, +@@ -1202,7 +1202,7 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data, return -ENOMEM; } ret = copy_from_user(exec2_list, @@ -38069,10 +38067,10 @@ index 8d925dc..11d674f 100644 rdev_dec_pending(rdev, mddev); diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c -index 19d77a0..56051b92 100644 +index 94ce78e..df99e24 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c -@@ -1797,21 +1797,21 @@ static void raid5_end_read_request(struct bio * bi, int error) +@@ -1800,21 +1800,21 @@ static void raid5_end_read_request(struct bio * bi, int error) mdname(conf->mddev), STRIPE_SECTORS, (unsigned long long)s, bdevname(rdev->bdev, b)); @@ -38098,7 +38096,7 @@ index 19d77a0..56051b92 100644 if (test_bit(R5_ReadRepl, &sh->dev[i].flags)) printk_ratelimited( KERN_WARNING -@@ -1839,7 +1839,7 @@ static void raid5_end_read_request(struct bio * bi, int error) +@@ -1842,7 +1842,7 @@ static void raid5_end_read_request(struct bio * bi, int error) mdname(conf->mddev), (unsigned long long)s, bdn); @@ -39207,10 +39205,10 @@ index 8dd6ba5..419cc1d 100644 struct sm_sysfs_attribute *vendor_attribute; diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c -index a079da17..f86ffd5 100644 +index 272f81a..c3d767c 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c -@@ -4862,7 +4862,7 @@ static unsigned int bond_get_num_tx_queues(void) +@@ -4860,7 +4860,7 @@ static unsigned int bond_get_num_tx_queues(void) return tx_queues; } @@ -39289,10 +39287,10 @@ index adbd91b..58ec94a 100644 /** * bnx2x_config_rx_mode - Send and RX_MODE ramrod according to the provided parameters. diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c -index f0b38fa..3a312b5 100644 +index 3ec98f2..b9980e0 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c -@@ -14395,8 +14395,10 @@ static void tg3_read_vpd(struct tg3 *tp) +@@ -14403,8 +14403,10 @@ static void tg3_read_vpd(struct tg3 *tp) if (j + len > block_end) goto partno; @@ -39461,7 +39459,7 @@ index 998974f..ecd26db 100644 int (*set_speed)(struct net_device *, u8 aneg, u16 sp, u8 dpx, u32 adv); int (*get_settings)(struct net_device *, struct ethtool_cmd *); diff --git a/drivers/net/ethernet/sfc/ptp.c b/drivers/net/ethernet/sfc/ptp.c -index 0767043f..08c2553 100644 +index 3f93624..cf01144 100644 --- a/drivers/net/ethernet/sfc/ptp.c +++ b/drivers/net/ethernet/sfc/ptp.c @@ -553,7 +553,7 @@ static int efx_ptp_synchronize(struct efx_nic *efx, unsigned int num_readings) @@ -44240,6 +44238,19 @@ index 5f3bcd3..bfca43f 100644 usb_autopm_put_interface(serial->interface); error_get_interface: usb_serial_put(serial); +diff --git a/drivers/usb/storage/realtek_cr.c b/drivers/usb/storage/realtek_cr.c +index 6c3586a..a94e621 100644 +--- a/drivers/usb/storage/realtek_cr.c ++++ b/drivers/usb/storage/realtek_cr.c +@@ -429,7 +429,7 @@ static int rts51x_read_status(struct us_data *us, + + buf = kmalloc(len, GFP_NOIO); + if (buf == NULL) +- return USB_STOR_TRANSPORT_ERROR; ++ return -ENOMEM; + + US_DEBUGP("%s, lun = %d\n", __func__, lun); + diff --git a/drivers/usb/storage/usb.h b/drivers/usb/storage/usb.h index 75f70f0..d467e1a 100644 --- a/drivers/usb/storage/usb.h @@ -47879,7 +47890,7 @@ index 6043567..16a9239 100644 fd_offset + ex.a_text); if (error != N_DATADDR(ex)) { diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c -index 0c42cdb..f23778b 100644 +index 0c42cdb..b62581e9 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c @@ -33,6 +33,7 @@ @@ -48418,7 +48429,7 @@ index 0c42cdb..f23778b 100644 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT + if ((current->mm->pax_flags & MF_PAX_PAGEEXEC) && !(__supported_pte_mask & _PAGE_NX)) { + current->mm->context.user_cs_limit = PAGE_SIZE; -+ current->mm->def_flags |= VM_PAGEEXEC; ++ current->mm->def_flags |= VM_PAGEEXEC | VM_NOHUGEPAGE; + } +#endif + @@ -49102,69 +49113,6 @@ index 8c1aabe..bbf856a 100644 int err; u32 ftype; struct ceph_mds_reply_info_parsed *rinfo; -diff --git a/fs/cifs/asn1.c b/fs/cifs/asn1.c -index cfd1ce3..1d36db1 100644 ---- a/fs/cifs/asn1.c -+++ b/fs/cifs/asn1.c -@@ -614,53 +614,10 @@ decode_negTokenInit(unsigned char *security_blob, int length, - } - } - -- /* mechlistMIC */ -- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { -- /* Check if we have reached the end of the blob, but with -- no mechListMic (e.g. NTLMSSP instead of KRB5) */ -- if (ctx.error == ASN1_ERR_DEC_EMPTY) -- goto decode_negtoken_exit; -- cFYI(1, "Error decoding last part negTokenInit exit3"); -- return 0; -- } else if ((cls != ASN1_CTX) || (con != ASN1_CON)) { -- /* tag = 3 indicating mechListMIC */ -- cFYI(1, "Exit 4 cls = %d con = %d tag = %d end = %p (%d)", -- cls, con, tag, end, *end); -- return 0; -- } -- -- /* sequence */ -- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { -- cFYI(1, "Error decoding last part negTokenInit exit5"); -- return 0; -- } else if ((cls != ASN1_UNI) || (con != ASN1_CON) -- || (tag != ASN1_SEQ)) { -- cFYI(1, "cls = %d con = %d tag = %d end = %p (%d)", -- cls, con, tag, end, *end); -- } -- -- /* sequence of */ -- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { -- cFYI(1, "Error decoding last part negTokenInit exit 7"); -- return 0; -- } else if ((cls != ASN1_CTX) || (con != ASN1_CON)) { -- cFYI(1, "Exit 8 cls = %d con = %d tag = %d end = %p (%d)", -- cls, con, tag, end, *end); -- return 0; -- } -- -- /* general string */ -- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { -- cFYI(1, "Error decoding last part negTokenInit exit9"); -- return 0; -- } else if ((cls != ASN1_UNI) || (con != ASN1_PRI) -- || (tag != ASN1_GENSTR)) { -- cFYI(1, "Exit10 cls = %d con = %d tag = %d end = %p (%d)", -- cls, con, tag, end, *end); -- return 0; -- } -- cFYI(1, "Need to call asn1_octets_decode() function for %s", -- ctx.pointer); /* is this UTF-8 or ASCII? */ --decode_negtoken_exit: -+ /* -+ * We currently ignore anything at the end of the SPNEGO blob after -+ * the mechTypes have been parsed, since none of that info is -+ * used at the moment. -+ */ - return 1; - } diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c index d9ea6ed..1e6c8ac 100644 --- a/fs/cifs/cifs_debug.c @@ -49210,10 +49158,10 @@ index d9ea6ed..1e6c8ac 100644 server->ops->print_stats(m, tcon); } diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c -index e328339..322228b 100644 +index b9db388..9a73d6d 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c -@@ -1002,7 +1002,7 @@ cifs_init_request_bufs(void) +@@ -1026,7 +1026,7 @@ cifs_init_request_bufs(void) /* cERROR(1, "CIFSMaxBufSize %d 0x%x",CIFSMaxBufSize,CIFSMaxBufSize); */ cifs_req_cachep = kmem_cache_create("cifs_request", CIFSMaxBufSize + max_hdr_size, 0, @@ -49222,7 +49170,7 @@ index e328339..322228b 100644 if (cifs_req_cachep == NULL) return -ENOMEM; -@@ -1029,7 +1029,7 @@ cifs_init_request_bufs(void) +@@ -1053,7 +1053,7 @@ cifs_init_request_bufs(void) efficient to alloc 1 per page off the slab compared to 17K (5page) alloc of large cifs buffers even when page debugging is on */ cifs_sm_req_cachep = kmem_cache_create("cifs_small_rq", @@ -49231,7 +49179,7 @@ index e328339..322228b 100644 NULL); if (cifs_sm_req_cachep == NULL) { mempool_destroy(cifs_req_poolp); -@@ -1114,8 +1114,8 @@ init_cifs(void) +@@ -1138,8 +1138,8 @@ init_cifs(void) atomic_set(&bufAllocCount, 0); atomic_set(&smBufAllocCount, 0); #ifdef CONFIG_CIFS_STATS2 @@ -50164,7 +50112,7 @@ index b2a34a1..162fa69 100644 return rc; } diff --git a/fs/exec.c b/fs/exec.c -index 20df02c..09b65a1 100644 +index 20df02c..1b1d946 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -55,6 +55,17 @@ @@ -50836,21 +50784,21 @@ index 20df02c..09b65a1 100644 +#endif +} + -+static __noreturn void pax_report_usercopy(const void *ptr, unsigned long len, bool to, const char *type) ++static __noreturn void pax_report_usercopy(const void *ptr, unsigned long len, bool to_user, const char *type) +{ + if (current->signal->curr_ip) + printk(KERN_ERR "PAX: From %pI4: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n", -+ ¤t->signal->curr_ip, to ? "leak" : "overwrite", to ? "from" : "to", ptr, type ? : "unknown", len); ++ ¤t->signal->curr_ip, to_user ? "leak" : "overwrite", to_user ? "from" : "to", ptr, type ? : "unknown", len); + else + printk(KERN_ERR "PAX: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n", -+ to ? "leak" : "overwrite", to ? "from" : "to", ptr, type ? : "unknown", len); ++ to_user ? "leak" : "overwrite", to_user ? "from" : "to", ptr, type ? : "unknown", len); + dump_stack(); + gr_handle_kernel_exploit(); + do_group_exit(SIGKILL); +} +#endif + -+void __check_object_size(const void *ptr, unsigned long n, bool to) ++void __check_object_size(const void *ptr, unsigned long n, bool to_user) +{ + +#ifdef CONFIG_PAX_USERCOPY @@ -50866,7 +50814,7 @@ index 20df02c..09b65a1 100644 + type = "<process stack>"; + } + -+ pax_report_usercopy(ptr, n, to, type); ++ pax_report_usercopy(ptr, n, to_user, type); +#endif + +} @@ -50942,7 +50890,7 @@ index 92e68b3..115d987 100644 if (free_clusters >= (nclusters + dirty_clusters)) return 1; diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h -index 8462eb3..4a71af6 100644 +index bbcd6a0..2824592 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -1265,19 +1265,19 @@ struct ext4_sb_info { @@ -50976,7 +50924,7 @@ index 8462eb3..4a71af6 100644 /* locality groups */ diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c -index 28bbf9b..75ca7c1 100644 +index 82f8c2d..ce7c889 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c @@ -1747,7 +1747,7 @@ void ext4_mb_simple_scan_group(struct ext4_allocation_context *ac, @@ -51093,7 +51041,7 @@ index 28bbf9b..75ca7c1 100644 return 0; diff --git a/fs/ext4/super.c b/fs/ext4/super.c -index 5fa223d..12fa738 100644 +index 24c767d..893aa55 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -2429,7 +2429,7 @@ struct ext4_attr { @@ -53693,9 +53641,18 @@ index 9d1c5db..1e13db8 100644 static struct nfsd4_operation nfsd4_ops[]; diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c -index 0dc1158..ccf0338 100644 +index 0dc1158..32ac0e8 100644 --- a/fs/nfsd/nfs4xdr.c +++ b/fs/nfsd/nfs4xdr.c +@@ -264,7 +264,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval, + iattr->ia_valid |= ATTR_SIZE; + } + if (bmval[0] & FATTR4_WORD0_ACL) { +- int nace; ++ u32 nace; + struct nfs4_ace *ace; + + READ_BUF(4); len += 4; @@ -1456,7 +1456,7 @@ nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p) typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *); @@ -53724,7 +53681,7 @@ index 0dc1158..ccf0338 100644 }; diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c -index d586117..143d568 100644 +index 69c6413..c0408d2 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c @@ -939,7 +939,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file, @@ -53736,16 +53693,16 @@ index d586117..143d568 100644 set_fs(oldfs); } -@@ -1025,7 +1025,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file, +@@ -1026,7 +1026,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file, /* Write the data. */ oldfs = get_fs(); set_fs(KERNEL_DS); -- host_err = vfs_writev(file, (struct iovec __user *)vec, vlen, &offset); -+ host_err = vfs_writev(file, (struct iovec __force_user *)vec, vlen, &offset); +- host_err = vfs_writev(file, (struct iovec __user *)vec, vlen, &pos); ++ host_err = vfs_writev(file, (struct iovec __force_user *)vec, vlen, &pos); set_fs(oldfs); if (host_err < 0) goto out_nfserr; -@@ -1571,7 +1571,7 @@ nfsd_readlink(struct svc_rqst *rqstp, struct svc_fh *fhp, char *buf, int *lenp) +@@ -1572,7 +1572,7 @@ nfsd_readlink(struct svc_rqst *rqstp, struct svc_fh *fhp, char *buf, int *lenp) */ oldfs = get_fs(); set_fs(KERNEL_DS); @@ -54927,7 +54884,7 @@ index d7a4a28..0201742 100644 } diff --git a/fs/proc/inode.c b/fs/proc/inode.c -index 439ae688..c0e4d63 100644 +index 0ac1e1b..0497e58 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c @@ -21,11 +21,17 @@ @@ -54962,22 +54919,7 @@ index 439ae688..c0e4d63 100644 } static struct kmem_cache * proc_inode_cachep; -@@ -445,19 +458,21 @@ static const struct file_operations proc_reg_file_ops_no_compat = { - - struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de) - { -- struct inode * inode; -+ struct inode *inode = new_inode_pseudo(sb); - -- inode = iget_locked(sb, de->low_ino); -- if (!inode) -- return NULL; -- if (inode->i_state & I_NEW) { -+ if (inode) { -+ inode->i_ino = de->low_ino; - inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; - PROC_I(inode)->pde = de; - +@@ -455,7 +468,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de) if (de->mode) { inode->i_mode = de->mode; inode->i_uid = de->uid; @@ -54989,14 +54931,6 @@ index 439ae688..c0e4d63 100644 } if (de->size) inode->i_size = de->size; -@@ -478,7 +493,6 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de) - inode->i_fop = de->proc_fops; - } - } -- unlock_new_inode(inode); - } else - pde_put(de); - return inode; diff --git a/fs/proc/internal.h b/fs/proc/internal.h index 252544c..04395b9 100644 --- a/fs/proc/internal.h @@ -67192,7 +67126,7 @@ index 662fd1b..e801992 100644 #if __GNUC_MINOR__ >= 6 diff --git a/include/linux/compiler.h b/include/linux/compiler.h -index dd852b7..72924c0 100644 +index dd852b7..1ad5fba 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@ -5,11 +5,14 @@ @@ -67210,7 +67144,7 @@ index dd852b7..72924c0 100644 # define __must_hold(x) __attribute__((context(x,1,1))) # define __acquires(x) __attribute__((context(x,0,1))) # define __releases(x) __attribute__((context(x,1,0))) -@@ -17,20 +20,48 @@ +@@ -17,20 +20,37 @@ # define __release(x) __context__(x,-1) # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0) # define __percpu __attribute__((noderef, address_space(3))) @@ -67224,33 +67158,24 @@ index dd852b7..72924c0 100644 #endif extern void __chk_user_ptr(const volatile void __user *); extern void __chk_io_ptr(const volatile void __iomem *); -+#elif defined(CHECKER_PLUGIN) -+//# define __user -+//# define __force_user -+//# define __kernel -+//# define __force_kernel -+# define __safe -+# define __force -+# define __nocast -+# define __iomem -+# define __force_iomem -+# define __chk_user_ptr(x) (void)0 -+# define __chk_io_ptr(x) (void)0 -+# define __builtin_warning(x, y...) (1) -+# define __acquires(x) -+# define __releases(x) -+# define __acquire(x) (void)0 -+# define __release(x) (void)0 -+# define __cond_lock(x,c) (c) -+# define __percpu -+# define __force_percpu -+# define __rcu -+# define __force_rcu #else - # define __user -+# define __force_user - # define __kernel -+# define __force_kernel +-# define __user +-# define __kernel ++# ifdef CHECKER_PLUGIN ++//# define __user ++//# define __force_user ++//# define __kernel ++//# define __force_kernel ++# else ++# ifdef STRUCTLEAK_PLUGIN ++# define __user __attribute__((user)) ++# else ++# define __user ++# endif ++# define __force_user ++# define __kernel ++# define __force_kernel ++# endif # define __safe # define __force # define __nocast @@ -67259,7 +67184,7 @@ index dd852b7..72924c0 100644 # define __chk_user_ptr(x) (void)0 # define __chk_io_ptr(x) (void)0 # define __builtin_warning(x, y...) (1) -@@ -41,7 +72,9 @@ extern void __chk_io_ptr(const volatile void __iomem *); +@@ -41,7 +61,9 @@ extern void __chk_io_ptr(const volatile void __iomem *); # define __release(x) (void)0 # define __cond_lock(x,c) (c) # define __percpu @@ -67269,7 +67194,7 @@ index dd852b7..72924c0 100644 #endif /* Indirect macros required for expanded argument pasting, eg. __LINE__. */ -@@ -275,6 +308,26 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); +@@ -275,6 +297,26 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); # define __attribute_const__ /* unimplemented */ #endif @@ -67296,7 +67221,7 @@ index dd852b7..72924c0 100644 /* * Tell gcc if a function is cold. The compiler will assume any path * directly leading to the call is unlikely. -@@ -284,6 +337,22 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); +@@ -284,6 +326,22 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); #define __cold #endif @@ -67319,7 +67244,7 @@ index dd852b7..72924c0 100644 /* Simple shorthand for a section definition */ #ifndef __section # define __section(S) __attribute__ ((__section__(#S))) -@@ -323,6 +392,7 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); +@@ -323,6 +381,7 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); * use is to mediate communication between process-level code and irq/NMI * handlers, all running on the same CPU. */ @@ -70333,7 +70258,7 @@ index 9afc01e..92c32e8 100644 void log_buf_kexec_setup(void); void __init setup_log_buf(int early); diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h -index 32676b3..8f7a182 100644 +index 32676b3..e46f2c0 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h @@ -159,6 +159,18 @@ static inline struct proc_dir_entry *proc_create(const char *name, umode_t mode, @@ -70355,6 +70280,15 @@ index 32676b3..8f7a182 100644 static inline struct proc_dir_entry *create_proc_read_entry(const char *name, umode_t mode, struct proc_dir_entry *base, read_proc_t *read_proc, void * data) +@@ -268,7 +280,7 @@ struct proc_ns_operations { + void (*put)(void *ns); + int (*install)(struct nsproxy *nsproxy, void *ns); + unsigned int (*inum)(void *ns); +-}; ++} __do_const; + extern const struct proc_ns_operations netns_operations; + extern const struct proc_ns_operations utsns_operations; + extern const struct proc_ns_operations ipcns_operations; diff --git a/include/linux/random.h b/include/linux/random.h index d984608..d6f0042 100644 --- a/include/linux/random.h @@ -70826,7 +70760,7 @@ index 429c199..4d42e38 100644 /* shm_mode upper byte flags */ diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h -index 320e976..fd52553 100644 +index 98399e2..6e225e9 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -590,7 +590,7 @@ extern bool skb_try_coalesce(struct sk_buff *to, struct sk_buff *from, @@ -70865,7 +70799,7 @@ index 320e976..fd52553 100644 } /** -@@ -1722,7 +1722,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len) +@@ -1727,7 +1727,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len) * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8) */ #ifndef NET_SKB_PAD @@ -70874,7 +70808,7 @@ index 320e976..fd52553 100644 #endif extern int ___pskb_trim(struct sk_buff *skb, unsigned int len); -@@ -2300,7 +2300,7 @@ extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, +@@ -2305,7 +2305,7 @@ extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, int noblock, int *err); extern unsigned int datagram_poll(struct file *file, struct socket *sock, struct poll_table_struct *wait); @@ -71262,6 +71196,19 @@ index 071d62c..4ccc7ac 100644 extern dma_addr_t swiotlb_map_page(struct device *dev, struct page *page, unsigned long offset, size_t size, +diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h +index 45e2db2..1635156a 100644 +--- a/include/linux/syscalls.h ++++ b/include/linux/syscalls.h +@@ -615,7 +615,7 @@ asmlinkage long sys_getsockname(int, struct sockaddr __user *, int __user *); + asmlinkage long sys_getpeername(int, struct sockaddr __user *, int __user *); + asmlinkage long sys_send(int, void __user *, size_t, unsigned); + asmlinkage long sys_sendto(int, void __user *, size_t, unsigned, +- struct sockaddr __user *, int); ++ struct sockaddr __user *, int) __intentional_overflow(0); + asmlinkage long sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags); + asmlinkage long sys_sendmmsg(int fd, struct mmsghdr __user *msg, + unsigned int vlen, unsigned flags); diff --git a/include/linux/syscore_ops.h b/include/linux/syscore_ops.h index 27b3b0b..e093dd9 100644 --- a/include/linux/syscore_ops.h @@ -71365,20 +71312,20 @@ index 7faf933..4657127 100644 #ifdef CONFIG_MAGIC_SYSRQ diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h -index e7e0473..39b7b52 100644 +index e7e0473..7989295 100644 --- a/include/linux/thread_info.h +++ b/include/linux/thread_info.h @@ -148,6 +148,15 @@ static inline bool test_and_clear_restore_sigmask(void) #error "no set_restore_sigmask() provided and default one won't work" #endif -+extern void __check_object_size(const void *ptr, unsigned long n, bool to); -+static inline void check_object_size(const void *ptr, unsigned long n, bool to) ++extern void __check_object_size(const void *ptr, unsigned long n, bool to_user); ++static inline void check_object_size(const void *ptr, unsigned long n, bool to_user) +{ +#ifndef CONFIG_PAX_USERCOPY_DEBUG + if (!__builtin_constant_p(n)) +#endif -+ __check_object_size(ptr, n, to); ++ __check_object_size(ptr, n, to_user); +} + #endif /* __KERNEL__ */ @@ -71976,10 +71923,10 @@ index a68f838..74518ab 100644 { return test_bit(port, sysctl_local_reserved_ports); diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h -index 9497be1..5a4fafe 100644 +index e49db91..76a81de 100644 --- a/include/net/ip_fib.h +++ b/include/net/ip_fib.h -@@ -169,7 +169,7 @@ extern __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh); +@@ -167,7 +167,7 @@ extern __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh); #define FIB_RES_SADDR(net, res) \ ((FIB_RES_NH(res).nh_saddr_genid == \ @@ -73456,7 +73403,7 @@ index 383d638..943fdbb 100644 mq_table.data = get_mq(table); diff --git a/ipc/mqueue.c b/ipc/mqueue.c -index 71a3ca1..c750fff 100644 +index 6ebfbf5..c750fff 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c @@ -278,6 +278,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb, @@ -73467,16 +73414,6 @@ index 71a3ca1..c750fff 100644 spin_lock(&mq_lock); if (u->mq_bytes + mq_bytes < u->mq_bytes || u->mq_bytes + mq_bytes > rlimit(RLIMIT_MSGQUEUE)) { -@@ -840,7 +841,8 @@ out_putfd: - fd = error; - } - mutex_unlock(&root->d_inode->i_mutex); -- mnt_drop_write(mnt); -+ if (!ro) -+ mnt_drop_write(mnt); - out_putname: - putname(name); - return fd; diff --git a/ipc/msg.c b/ipc/msg.c index 31cd1bf..362ea07 100644 --- a/ipc/msg.c @@ -74762,6 +74699,19 @@ index 8879430..31696f1 100644 for (i = 0; i < ARRAY_SIZE(futex_queues); i++) { plist_head_init(&futex_queues[i].chain); +diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c +index a9642d5..51eb98c 100644 +--- a/kernel/futex_compat.c ++++ b/kernel/futex_compat.c +@@ -31,7 +31,7 @@ fetch_robust_entry(compat_uptr_t *uentry, struct robust_list __user **entry, + return 0; + } + +-static void __user *futex_uaddr(struct robust_list __user *entry, ++static void __user __intentional_overflow(-1) *futex_uaddr(struct robust_list __user *entry, + compat_long_t futex_offset) + { + compat_uptr_t base = ptr_to_compat(entry); diff --git a/kernel/gcov/base.c b/kernel/gcov/base.c index 9b22d03..6295b62 100644 --- a/kernel/gcov/base.c @@ -78478,10 +78428,10 @@ index f11d83b..d016d91 100644 .clock_get = alarm_clock_get, .timer_create = alarm_timer_create, diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c -index f113755..ec24223 100644 +index a13987a..36cd791 100644 --- a/kernel/time/tick-broadcast.c +++ b/kernel/time/tick-broadcast.c -@@ -115,7 +115,7 @@ int tick_device_uses_broadcast(struct clock_event_device *dev, int cpu) +@@ -116,7 +116,7 @@ int tick_device_uses_broadcast(struct clock_event_device *dev, int cpu) * then clear the broadcast bit. */ if (!(dev->features & CLOCK_EVT_FEAT_C3STOP)) { @@ -78692,7 +78642,7 @@ index c0bd030..62a1927 100644 ret = -EIO; bt->dropped_file = debugfs_create_file("dropped", 0444, dir, bt, diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c -index 43defd1..76da436 100644 +index b27052c..0e1af95 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -1874,12 +1874,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec) @@ -79042,10 +78992,10 @@ index ce8514f..8233573 100644 *data_page = bpage; diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 3c13e46..883d039 100644 +index 2ffbc24..76105a2 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -4465,10 +4465,9 @@ static const struct file_operations tracing_dyn_info_fops = { +@@ -4471,10 +4471,9 @@ static const struct file_operations tracing_dyn_info_fops = { }; #endif @@ -79057,7 +79007,7 @@ index 3c13e46..883d039 100644 static int once; if (d_tracer) -@@ -4488,10 +4487,9 @@ struct dentry *tracing_init_dentry(void) +@@ -4494,10 +4493,9 @@ struct dentry *tracing_init_dentry(void) return d_tracer; } @@ -79561,7 +79511,7 @@ index e07ee1f..998489d 100644 enum kobj_ns_type type = ops->type; int error; diff --git a/lib/list_debug.c b/lib/list_debug.c -index c24c2f7..0475b78 100644 +index c24c2f7..06e070b 100644 --- a/lib/list_debug.c +++ b/lib/list_debug.c @@ -11,7 +11,9 @@ @@ -79597,11 +79547,12 @@ index c24c2f7..0475b78 100644 "next (%p), but was %p. (prev=%p).\n", - next, prev->next, prev); - WARN(new == prev || new == next, +- "list_add double add: new=%p, prev=%p, next=%p.\n", +- new, prev, next); + next, prev->next, prev) || + WARN(new == prev || new == next, - "list_add double add: new=%p, prev=%p, next=%p.\n", -- new, prev, next); -+ new, prev, next)) ++ "list_add double add: new=%p, prev=%p, next=%p.\n", ++ new, prev, next)) + return false; + return true; +} @@ -80015,7 +79966,7 @@ index b32b70c..e512eb0 100644 set_page_address(page, (void *)vaddr); diff --git a/mm/hugetlb.c b/mm/hugetlb.c -index 546db81..34830af 100644 +index d7cec92..b05cc33 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -2008,15 +2008,17 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy, @@ -80060,7 +80011,7 @@ index 546db81..34830af 100644 if (ret) goto out; -@@ -2511,6 +2515,27 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma, +@@ -2515,6 +2519,27 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma, return 1; } @@ -80088,7 +80039,7 @@ index 546db81..34830af 100644 /* * Hugetlb_cow() should be called with page lock of the original hugepage held. * Called with hugetlb_instantiation_mutex held and pte_page locked so we -@@ -2629,6 +2654,11 @@ retry_avoidcopy: +@@ -2633,6 +2658,11 @@ retry_avoidcopy: make_huge_pte(vma, new_page, 1)); page_remove_rmap(old_page); hugepage_add_new_anon_rmap(new_page, vma, address); @@ -80100,7 +80051,7 @@ index 546db81..34830af 100644 /* Make the old page be freed below */ new_page = old_page; } -@@ -2788,6 +2818,10 @@ retry: +@@ -2792,6 +2822,10 @@ retry: && (vma->vm_flags & VM_SHARED))); set_huge_pte_at(mm, address, ptep, new_pte); @@ -80111,7 +80062,7 @@ index 546db81..34830af 100644 if ((flags & FAULT_FLAG_WRITE) && !(vma->vm_flags & VM_SHARED)) { /* Optimization, do the COW without a second fault */ ret = hugetlb_cow(mm, vma, address, ptep, new_pte, page); -@@ -2817,6 +2851,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, +@@ -2821,6 +2855,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, static DEFINE_MUTEX(hugetlb_instantiation_mutex); struct hstate *h = hstate_vma(vma); @@ -80122,7 +80073,7 @@ index 546db81..34830af 100644 address &= huge_page_mask(h); ptep = huge_pte_offset(mm, address); -@@ -2830,6 +2868,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, +@@ -2834,6 +2872,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, VM_FAULT_SET_HINDEX(hstate_index(h)); } @@ -83112,7 +83063,7 @@ index efd0b3a..994b702 100644 return -ENOMEM; diff --git a/mm/slab.c b/mm/slab.c -index e7667a3..b62c169 100644 +index e7667a3..a48e73b 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -306,7 +306,7 @@ struct kmem_list3 { @@ -83223,7 +83174,15 @@ index e7667a3..b62c169 100644 sizes++; names++; } -@@ -4365,10 +4379,10 @@ void slabinfo_show_stats(struct seq_file *m, struct kmem_cache *cachep) +@@ -3924,6 +3938,7 @@ void kfree(const void *objp) + + if (unlikely(ZERO_OR_NULL_PTR(objp))) + return; ++ VM_BUG_ON(!virt_addr_valid(objp)); + local_irq_save(flags); + kfree_debugcheck(objp); + c = virt_to_cache(objp); +@@ -4365,10 +4380,10 @@ void slabinfo_show_stats(struct seq_file *m, struct kmem_cache *cachep) } /* cpu stats */ { @@ -83238,7 +83197,7 @@ index e7667a3..b62c169 100644 seq_printf(m, " : cpustat %6lu %6lu %6lu %6lu", allochit, allocmiss, freehit, freemiss); -@@ -4600,13 +4614,71 @@ static const struct file_operations proc_slabstats_operations = { +@@ -4600,13 +4615,71 @@ static const struct file_operations proc_slabstats_operations = { static int __init slab_proc_init(void) { #ifdef CONFIG_DEBUG_SLAB_LEAK @@ -83385,7 +83344,7 @@ index 3f3cd97..93b0236 100644 } diff --git a/mm/slob.c b/mm/slob.c -index a99fdf7..f5b6577 100644 +index a99fdf7..6ee34ec 100644 --- a/mm/slob.c +++ b/mm/slob.c @@ -157,7 +157,7 @@ static void set_slob(slob_t *s, slobidx_t size, slob_t *next) @@ -83537,9 +83496,11 @@ index a99fdf7..f5b6577 100644 return ret; } -@@ -494,33 +513,110 @@ void kfree(const void *block) +@@ -493,34 +512,112 @@ void kfree(const void *block) + return; kmemleak_free(block); ++ VM_BUG_ON(!virt_addr_valid(block)); sp = virt_to_page(block); - if (PageSlab(sp)) { + VM_BUG_ON(!PageSlab(sp)); @@ -83657,7 +83618,7 @@ index a99fdf7..f5b6577 100644 } EXPORT_SYMBOL(ksize); -@@ -536,23 +632,33 @@ int __kmem_cache_create(struct kmem_cache *c, unsigned long flags) +@@ -536,23 +633,33 @@ int __kmem_cache_create(struct kmem_cache *c, unsigned long flags) void *kmem_cache_alloc_node(struct kmem_cache *c, gfp_t flags, int node) { @@ -83693,7 +83654,7 @@ index a99fdf7..f5b6577 100644 if (c->ctor) c->ctor(b); -@@ -564,10 +670,14 @@ EXPORT_SYMBOL(kmem_cache_alloc_node); +@@ -564,10 +671,14 @@ EXPORT_SYMBOL(kmem_cache_alloc_node); static void __kmem_cache_free(void *b, int size) { @@ -83710,7 +83671,7 @@ index a99fdf7..f5b6577 100644 } static void kmem_rcu_free(struct rcu_head *head) -@@ -580,17 +690,31 @@ static void kmem_rcu_free(struct rcu_head *head) +@@ -580,17 +691,31 @@ static void kmem_rcu_free(struct rcu_head *head) void kmem_cache_free(struct kmem_cache *c, void *b) { @@ -83746,7 +83707,7 @@ index a99fdf7..f5b6577 100644 EXPORT_SYMBOL(kmem_cache_free); diff --git a/mm/slub.c b/mm/slub.c -index ba2ca53..00b1f4e 100644 +index ba2ca53..991c4f7 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -197,7 +197,7 @@ struct track { @@ -83861,7 +83822,15 @@ index ba2ca53..00b1f4e 100644 size_t ksize(const void *object) { struct page *page; -@@ -3712,17 +3776,17 @@ void __init kmem_cache_init(void) +@@ -3404,6 +3468,7 @@ void kfree(const void *x) + if (unlikely(ZERO_OR_NULL_PTR(x))) + return; + ++ VM_BUG_ON(!virt_addr_valid(x)); + page = virt_to_head_page(x); + if (unlikely(!PageSlab(page))) { + BUG_ON(!PageCompound(page)); +@@ -3712,17 +3777,17 @@ void __init kmem_cache_init(void) /* Caches that are not of the two-to-the-power-of size */ if (KMALLOC_MIN_SIZE <= 32) { @@ -83882,7 +83851,7 @@ index ba2ca53..00b1f4e 100644 caches++; } -@@ -3764,6 +3828,22 @@ void __init kmem_cache_init(void) +@@ -3764,6 +3829,22 @@ void __init kmem_cache_init(void) } } #endif @@ -83905,7 +83874,7 @@ index ba2ca53..00b1f4e 100644 printk(KERN_INFO "SLUB: Genslabs=%d, HWalign=%d, Order=%d-%d, MinObjects=%d," " CPUs=%d, Nodes=%d\n", -@@ -3790,7 +3870,7 @@ static int slab_unmergeable(struct kmem_cache *s) +@@ -3790,7 +3871,7 @@ static int slab_unmergeable(struct kmem_cache *s) /* * We may have set a slab to be unmergeable during bootstrap. */ @@ -83914,7 +83883,7 @@ index ba2ca53..00b1f4e 100644 return 1; return 0; -@@ -3848,7 +3928,7 @@ __kmem_cache_alias(struct mem_cgroup *memcg, const char *name, size_t size, +@@ -3848,7 +3929,7 @@ __kmem_cache_alias(struct mem_cgroup *memcg, const char *name, size_t size, s = find_mergeable(memcg, size, align, flags, name, ctor); if (s) { @@ -83923,7 +83892,7 @@ index ba2ca53..00b1f4e 100644 /* * Adjust the object sizes so that we clear * the complete object on kzalloc. -@@ -3857,7 +3937,7 @@ __kmem_cache_alias(struct mem_cgroup *memcg, const char *name, size_t size, +@@ -3857,7 +3938,7 @@ __kmem_cache_alias(struct mem_cgroup *memcg, const char *name, size_t size, s->inuse = max_t(int, s->inuse, ALIGN(size, sizeof(void *))); if (sysfs_slab_alias(s, name)) { @@ -83932,7 +83901,7 @@ index ba2ca53..00b1f4e 100644 s = NULL; } } -@@ -3919,7 +3999,7 @@ static int __cpuinit slab_cpuup_callback(struct notifier_block *nfb, +@@ -3919,7 +4000,7 @@ static int __cpuinit slab_cpuup_callback(struct notifier_block *nfb, return NOTIFY_OK; } @@ -83941,7 +83910,7 @@ index ba2ca53..00b1f4e 100644 .notifier_call = slab_cpuup_callback }; -@@ -3977,7 +4057,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags, +@@ -3977,7 +4058,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags, } #endif @@ -83950,7 +83919,7 @@ index ba2ca53..00b1f4e 100644 static int count_inuse(struct page *page) { return page->inuse; -@@ -4364,12 +4444,12 @@ static void resiliency_test(void) +@@ -4364,12 +4445,12 @@ static void resiliency_test(void) validate_slab_cache(kmalloc_caches[9]); } #else @@ -83965,7 +83934,7 @@ index ba2ca53..00b1f4e 100644 enum slab_stat_type { SL_ALL, /* All slabs */ SL_PARTIAL, /* Only partially allocated slabs */ -@@ -4613,7 +4693,7 @@ SLAB_ATTR_RO(ctor); +@@ -4613,7 +4694,7 @@ SLAB_ATTR_RO(ctor); static ssize_t aliases_show(struct kmem_cache *s, char *buf) { @@ -83974,7 +83943,7 @@ index ba2ca53..00b1f4e 100644 } SLAB_ATTR_RO(aliases); -@@ -5266,6 +5346,7 @@ static char *create_unique_id(struct kmem_cache *s) +@@ -5266,6 +5347,7 @@ static char *create_unique_id(struct kmem_cache *s) return name; } @@ -83982,7 +83951,7 @@ index ba2ca53..00b1f4e 100644 static int sysfs_slab_add(struct kmem_cache *s) { int err; -@@ -5323,6 +5404,7 @@ static void sysfs_slab_remove(struct kmem_cache *s) +@@ -5323,6 +5405,7 @@ static void sysfs_slab_remove(struct kmem_cache *s) kobject_del(&s->kobj); kobject_put(&s->kobj); } @@ -83990,7 +83959,7 @@ index ba2ca53..00b1f4e 100644 /* * Need to buffer aliases during bootup until sysfs becomes -@@ -5336,6 +5418,7 @@ struct saved_alias { +@@ -5336,6 +5419,7 @@ struct saved_alias { static struct saved_alias *alias_list; @@ -83998,7 +83967,7 @@ index ba2ca53..00b1f4e 100644 static int sysfs_slab_alias(struct kmem_cache *s, const char *name) { struct saved_alias *al; -@@ -5358,6 +5441,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name) +@@ -5358,6 +5442,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name) alias_list = al; return 0; } @@ -84568,7 +84537,7 @@ index d5744b7..506bae3 100644 table = kmemdup(ax25_param_table, sizeof(ax25_param_table), GFP_KERNEL); if (!table) diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c -index 7d02ebd..4d4cc01 100644 +index 1ee94d0..14beea2 100644 --- a/net/batman-adv/bat_iv_ogm.c +++ b/net/batman-adv/bat_iv_ogm.c @@ -63,7 +63,7 @@ static int batadv_iv_ogm_iface_enable(struct batadv_hard_iface *hard_iface) @@ -85335,7 +85304,7 @@ index 8acce01..2e306bb 100644 return error; } diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c -index 798f920..e2261f5 100644 +index 6212ec9..dd4ad3b 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -58,7 +58,7 @@ struct rtnl_link { @@ -85612,7 +85581,7 @@ index 750f44f..922399c 100644 return err; } diff --git a/net/core/sysctl_net_core.c b/net/core/sysctl_net_core.c -index d1b0804..4aed0a5 100644 +index d1b0804..98cf5f7 100644 --- a/net/core/sysctl_net_core.c +++ b/net/core/sysctl_net_core.c @@ -26,7 +26,7 @@ static int rps_sock_flow_sysctl(ctl_table *table, int write, @@ -85640,7 +85609,7 @@ index d1b0804..4aed0a5 100644 if (tbl == NULL) goto err_dup; -@@ -221,16 +220,16 @@ static __net_init int sysctl_core_net_init(struct net *net) +@@ -221,17 +220,16 @@ static __net_init int sysctl_core_net_init(struct net *net) if (net->user_ns != &init_user_ns) { tbl[0].procname = NULL; } @@ -85657,11 +85626,12 @@ index d1b0804..4aed0a5 100644 err_reg: - if (tbl != netns_core_table) -+ if (tbl) - kfree(tbl); +- kfree(tbl); ++ kfree(tbl); err_dup: return -ENOMEM; -@@ -246,7 +245,7 @@ static __net_exit void sysctl_core_net_exit(struct net *net) + } +@@ -246,7 +244,7 @@ static __net_exit void sysctl_core_net_exit(struct net *net) kfree(tbl); } @@ -85910,10 +85880,10 @@ index 000e3d2..5472da3 100644 secure_ip_id(daddr->addr.a4) : secure_ipv6_id(daddr->addr.a6)); diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c -index eb9d63a..31c5372 100644 +index a8fc332..4ca4ca65 100644 --- a/net/ipv4/ip_fragment.c +++ b/net/ipv4/ip_fragment.c -@@ -322,7 +322,7 @@ static inline int ip_frag_too_far(struct ipq *qp) +@@ -319,7 +319,7 @@ static inline int ip_frag_too_far(struct ipq *qp) return 0; start = qp->rid; @@ -85922,7 +85892,7 @@ index eb9d63a..31c5372 100644 qp->rid = end; rc = qp->q.fragments && (end - start) > max; -@@ -789,12 +789,11 @@ static struct ctl_table ip4_frags_ctl_table[] = { +@@ -786,12 +786,11 @@ static struct ctl_table ip4_frags_ctl_table[] = { static int __net_init ip4_frags_ns_ctl_register(struct net *net) { @@ -85937,7 +85907,7 @@ index eb9d63a..31c5372 100644 if (table == NULL) goto err_alloc; -@@ -805,9 +804,10 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net) +@@ -802,9 +801,10 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net) /* Don't export sysctls to unprivileged users */ if (net->user_ns != &init_user_ns) table[0].procname = NULL; @@ -85950,7 +85920,7 @@ index eb9d63a..31c5372 100644 if (hdr == NULL) goto err_reg; -@@ -815,8 +815,7 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net) +@@ -812,8 +812,7 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net) return 0; err_reg: @@ -85961,7 +85931,7 @@ index eb9d63a..31c5372 100644 return -ENOMEM; } diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c -index e81b1ca..6f3b5b9 100644 +index a85062b..2958a9b 100644 --- a/net/ipv4/ip_gre.c +++ b/net/ipv4/ip_gre.c @@ -124,7 +124,7 @@ static bool log_ecn_error = true; @@ -85973,7 +85943,7 @@ index e81b1ca..6f3b5b9 100644 static int ipgre_tunnel_init(struct net_device *dev); static void ipgre_tunnel_setup(struct net_device *dev); static int ipgre_tunnel_bind_dev(struct net_device *dev); -@@ -1756,7 +1756,7 @@ static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = { +@@ -1753,7 +1753,7 @@ static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = { [IFLA_GRE_PMTUDISC] = { .type = NLA_U8 }, }; @@ -85982,7 +85952,7 @@ index e81b1ca..6f3b5b9 100644 .kind = "gre", .maxtype = IFLA_GRE_MAX, .policy = ipgre_policy, -@@ -1769,7 +1769,7 @@ static struct rtnl_link_ops ipgre_link_ops __read_mostly = { +@@ -1766,7 +1766,7 @@ static struct rtnl_link_ops ipgre_link_ops __read_mostly = { .fill_info = ipgre_fill_info, }; @@ -86503,7 +86473,7 @@ index 66702d3..31ff8f9 100644 if (icsk->icsk_af_ops->conn_request(sk, skb) < 0) return 1; diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c -index eadb693..e8f7251 100644 +index d9130a9..00328ff 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -90,6 +90,10 @@ int sysctl_tcp_low_latency __read_mostly; @@ -86917,10 +86887,10 @@ index 125a90d..2a11f36 100644 case IP6T_SO_GET_ENTRIES: diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c -index 3dacecc..2939087 100644 +index 2f3a018..8bca195 100644 --- a/net/ipv6/netfilter/nf_conntrack_reasm.c +++ b/net/ipv6/netfilter/nf_conntrack_reasm.c -@@ -87,12 +87,11 @@ static struct ctl_table nf_ct_frag6_sysctl_table[] = { +@@ -89,12 +89,11 @@ static struct ctl_table nf_ct_frag6_sysctl_table[] = { static int nf_ct_frag6_sysctl_register(struct net *net) { @@ -86935,7 +86905,7 @@ index 3dacecc..2939087 100644 GFP_KERNEL); if (table == NULL) goto err_alloc; -@@ -100,9 +99,9 @@ static int nf_ct_frag6_sysctl_register(struct net *net) +@@ -102,9 +101,9 @@ static int nf_ct_frag6_sysctl_register(struct net *net) table[0].data = &net->ipv6.frags.high_thresh; table[1].data = &net->ipv6.frags.low_thresh; table[2].data = &net->ipv6.frags.timeout; @@ -86948,7 +86918,7 @@ index 3dacecc..2939087 100644 if (hdr == NULL) goto err_reg; -@@ -110,8 +109,7 @@ static int nf_ct_frag6_sysctl_register(struct net *net) +@@ -112,8 +111,7 @@ static int nf_ct_frag6_sysctl_register(struct net *net) return 0; err_reg: @@ -87043,10 +87013,10 @@ index 70fa814..d70c28c 100644 static int raw6_seq_show(struct seq_file *seq, void *v) diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c -index e5253ec..0410257 100644 +index d9ba8a2..f3f9e14 100644 --- a/net/ipv6/reassembly.c +++ b/net/ipv6/reassembly.c -@@ -604,12 +604,11 @@ static struct ctl_table ip6_frags_ctl_table[] = { +@@ -608,12 +608,11 @@ static struct ctl_table ip6_frags_ctl_table[] = { static int __net_init ip6_frags_ns_sysctl_register(struct net *net) { @@ -87061,7 +87031,7 @@ index e5253ec..0410257 100644 if (table == NULL) goto err_alloc; -@@ -620,9 +619,10 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net) +@@ -624,9 +623,10 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net) /* Don't export sysctls to unprivileged users */ if (net->user_ns != &init_user_ns) table[0].procname = NULL; @@ -87074,7 +87044,7 @@ index e5253ec..0410257 100644 if (hdr == NULL) goto err_reg; -@@ -630,8 +630,7 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net) +@@ -634,8 +634,7 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net) return 0; err_reg: @@ -87133,7 +87103,7 @@ index e85c48b..b8268d3 100644 struct ctl_table *ipv6_icmp_table; int err; diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c -index 4f435371..5de9da7 100644 +index 8d19346..e47216f 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c @@ -103,6 +103,10 @@ static void inet6_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb) @@ -87147,7 +87117,7 @@ index 4f435371..5de9da7 100644 static void tcp_v6_hash(struct sock *sk) { if (sk->sk_state != TCP_CLOSE) { -@@ -1433,6 +1437,9 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb) +@@ -1440,6 +1444,9 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb) return 0; reset: @@ -87157,7 +87127,7 @@ index 4f435371..5de9da7 100644 tcp_v6_send_reset(sk, skb); discard: if (opt_skb) -@@ -1514,12 +1521,20 @@ static int tcp_v6_rcv(struct sk_buff *skb) +@@ -1521,12 +1528,20 @@ static int tcp_v6_rcv(struct sk_buff *skb) TCP_SKB_CB(skb)->sacked = 0; sk = __inet6_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest); @@ -87180,7 +87150,7 @@ index 4f435371..5de9da7 100644 if (hdr->hop_limit < inet6_sk(sk)->min_hopcount) { NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP); -@@ -1568,6 +1583,10 @@ no_tcp_socket: +@@ -1575,6 +1590,10 @@ no_tcp_socket: bad_packet: TCP_INC_STATS_BH(net, TCP_MIB_INERRS); } else { @@ -89016,7 +88986,7 @@ index bf3c6e8..376d8d0 100644 table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); diff --git a/net/socket.c b/net/socket.c -index 2ca51c7..adc6cb6 100644 +index 2ca51c7..9a9c83e 100644 --- a/net/socket.c +++ b/net/socket.c @@ -89,6 +89,7 @@ @@ -89173,7 +89143,7 @@ index 2ca51c7..adc6cb6 100644 * the protocol. */ -+asmlinkage long sys_sendto(int, void *, size_t, unsigned, struct sockaddr *, int) __intentional_overflow(0); ++asmlinkage long sys_sendto(int, void *, size_t, unsigned, struct sockaddr *, int); + SYSCALL_DEFINE6(sendto, int, fd, void __user *, buff, size_t, len, unsigned int, flags, struct sockaddr __user *, addr, @@ -89187,6 +89157,15 @@ index 2ca51c7..adc6cb6 100644 ctl_len)) goto out_freectl; msg_sys->msg_control = ctl_buf; +@@ -2187,7 +2249,7 @@ static int __sys_recvmsg(struct socket *sock, struct msghdr __user *msg, + int err, total_len, len; + + /* kernel mode address */ +- struct sockaddr_storage addr; ++ struct sockaddr_storage addr = { }; + + /* user mode address pointers */ + struct sockaddr __user *uaddr; @@ -2215,7 +2277,7 @@ static int __sys_recvmsg(struct socket *sock, struct msghdr __user *msg, * kernel msghdr to use the kernel address space) */ @@ -90364,10 +90343,10 @@ index e4fd45b..2eeb5c4 100644 shdr = (Elf_Shdr *)((char *)ehdr + _r(&ehdr->e_shoff)); shstrtab_sec = shdr + r2(&ehdr->e_shstrndx); diff --git a/security/Kconfig b/security/Kconfig -index e9c6ac7..952353c 100644 +index e9c6ac7..20df9f1 100644 --- a/security/Kconfig +++ b/security/Kconfig -@@ -4,6 +4,925 @@ +@@ -4,6 +4,944 @@ menu "Security options" @@ -90541,15 +90520,17 @@ index e9c6ac7..952353c 100644 + help + Choose this option if performance is of highest priority for this deployment + of grsecurity. Features like UDEREF on a 64bit kernel, kernel stack clearing, -+ and freed memory sanitizing will be disabled. ++ clearing of structures intended for userland, and freed memory sanitizing will ++ be disabled. + +config GRKERNSEC_CONFIG_PRIORITY_SECURITY + bool "Security" + help + Choose this option if security is of highest priority for this deployment of -+ grsecurity. UDEREF, kernel stack clearing, and freed memory sanitizing will -+ be enabled for this kernel. In a worst-case scenario, these features can -+ introduce a 20% performance hit (UDEREF on x64 contributing half of this hit). ++ grsecurity. UDEREF, kernel stack clearing, clearing of structures intended ++ for userland, and freed memory sanitizing will be enabled for this kernel. ++ In a worst-case scenario, these features can introduce a 20% performance hit ++ (UDEREF on x64 contributing half of this hit). + +endchoice + @@ -91145,6 +91126,23 @@ index e9c6ac7..952353c 100644 + frames may leave uninitialized memory behind that may be exposed + to a later syscall leaking the stack. + ++config PAX_MEMORY_STRUCTLEAK ++ bool "Forcibly initialize local variables copied to userland" ++ default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY) ++ help ++ By saying Y here the kernel will zero initialize some local ++ variables that are going to be copied to userland. This in ++ turn prevents unintended information leakage from the kernel ++ stack should later code forget to explicitly set all parts of ++ the copied variable. ++ ++ The tradeoff is less performance impact than PAX_MEMORY_STACKLEAK ++ at a much smaller coverage. ++ ++ Note that the implementation requires a gcc with plugin support, ++ i.e., gcc 4.5 or newer. You may need to install the supporting ++ headers explicitly in addition to the normal gcc package. ++ +config PAX_MEMORY_UDEREF + bool "Prevent invalid userland pointer dereference" + default y if GRKERNSEC_CONFIG_AUTO && !(X86_64 && GRKERNSEC_CONFIG_PRIORITY_PERF) && (GRKERNSEC_CONFIG_VIRT_NONE || GRKERNSEC_CONFIG_VIRT_EPT) @@ -91293,7 +91291,7 @@ index e9c6ac7..952353c 100644 source security/keys/Kconfig config SECURITY_DMESG_RESTRICT -@@ -103,7 +1022,7 @@ config INTEL_TXT +@@ -103,7 +1041,7 @@ config INTEL_TXT config LSM_MMAP_MIN_ADDR int "Low address space for LSM to protect from user allocation" depends on SECURITY && SECURITY_SELINUX @@ -92260,10 +92258,10 @@ index 0000000..50f2f2f +size_overflow_hash.h diff --git a/tools/gcc/Makefile b/tools/gcc/Makefile new file mode 100644 -index 0000000..33a1587 +index 0000000..144dbee --- /dev/null +++ b/tools/gcc/Makefile -@@ -0,0 +1,43 @@ +@@ -0,0 +1,45 @@ +#CC := gcc +#PLUGIN_SOURCE_FILES := pax_plugin.c +#PLUGIN_OBJECT_FILES := $(patsubst %.c,%.o,$(PLUGIN_SOURCE_FILES)) @@ -92286,6 +92284,7 @@ index 0000000..33a1587 +$(HOSTLIBS)-y += colorize_plugin.so +$(HOSTLIBS)-$(CONFIG_PAX_SIZE_OVERFLOW) += size_overflow_plugin.so +$(HOSTLIBS)-$(CONFIG_PAX_LATENT_ENTROPY) += latent_entropy_plugin.so ++$(HOSTLIBS)-$(CONFIG_PAX_MEMORY_STRUCTLEAK) += structleak_plugin.so + +always := $($(HOSTLIBS)-y) + @@ -92297,6 +92296,7 @@ index 0000000..33a1587 +colorize_plugin-objs := colorize_plugin.o +size_overflow_plugin-objs := size_overflow_plugin.o +latent_entropy_plugin-objs := latent_entropy_plugin.o ++structleak_plugin-objs := structleak_plugin.o + +$(obj)/size_overflow_plugin.o: $(objtree)/$(obj)/size_overflow_hash.h + @@ -92643,10 +92643,10 @@ index 0000000..414fe5e +} diff --git a/tools/gcc/constify_plugin.c b/tools/gcc/constify_plugin.c new file mode 100644 -index 0000000..43e86d6 +index 0000000..bee0acb --- /dev/null +++ b/tools/gcc/constify_plugin.c -@@ -0,0 +1,512 @@ +@@ -0,0 +1,518 @@ +/* + * Copyright 2011 by Emese Revfy <re.emese@gmail.com> + * Copyright 2011-2013 by PaX Team <pageexec@freemail.hu> @@ -92682,6 +92682,7 @@ index 0000000..43e86d6 +#include "emit-rtl.h" +#include "tree-flow.h" +#include "target.h" ++#include "langhooks.h" + +// should come from c-tree.h if only it were installed for gcc 4.5... +#define C_TYPE_FIELDS_READONLY(TYPE) TREE_LANG_FLAG_1(TYPE) @@ -92692,7 +92693,7 @@ index 0000000..43e86d6 +int plugin_is_GPL_compatible; + +static struct plugin_info const_plugin_info = { -+ .version = "201303070020", ++ .version = "201303270300", + .help = "no-constify\tturn off constification\n", +}; + @@ -93149,6 +93150,11 @@ index 0000000..43e86d6 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key); + } + ++ if (strcmp(lang_hooks.name, "GNU C")) { ++ inform(UNKNOWN_LOCATION, G_("%s supports C only"), plugin_name); ++ constify = false; ++ } ++ + register_callback(plugin_name, PLUGIN_INFO, NULL, &const_plugin_info); + if (constify) { + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL); @@ -102496,6 +102502,282 @@ index 0000000..ac2901e + + return 0; +} +diff --git a/tools/gcc/structleak_plugin.c b/tools/gcc/structleak_plugin.c +new file mode 100644 +index 0000000..77a6b1d +--- /dev/null ++++ b/tools/gcc/structleak_plugin.c +@@ -0,0 +1,270 @@ ++/* ++ * Copyright 2013 by PaX Team <pageexec@freemail.hu> ++ * Licensed under the GPL v2 ++ * ++ * Note: the choice of the license means that the compilation process is ++ * NOT 'eligible' as defined by gcc's library exception to the GPL v3, ++ * but for the kernel it doesn't matter since it doesn't link against ++ * any of the gcc libraries ++ * ++ * gcc plugin to forcibly initialize certain local variables that could ++ * otherwise leak kernel stack to userland if they aren't properly initialized ++ * by later code ++ * ++ * Homepage: http://pax.grsecurity.net/ ++ * ++ * Usage: ++ * $ # for 4.5/4.6/C based 4.7 ++ * $ gcc -I`gcc -print-file-name=plugin`/include -I`gcc -print-file-name=plugin`/include/c-family -fPIC -shared -O2 -o structleak_plugin.so structleak_plugin.c ++ * $ # for C++ based 4.7/4.8+ ++ * $ g++ -I`g++ -print-file-name=plugin`/include -I`g++ -print-file-name=plugin`/include/c-family -fPIC -shared -O2 -o structleak_plugin.so structleak_plugin.c ++ * $ gcc -fplugin=./structleak_plugin.so test.c -O2 ++ * ++ * TODO: eliminate redundant initializers ++ * increase type coverage ++ */ ++ ++#include "gcc-plugin.h" ++#include "config.h" ++#include "system.h" ++#include "coretypes.h" ++#include "tree.h" ++#include "tree-pass.h" ++#include "intl.h" ++#include "plugin-version.h" ++#include "tm.h" ++#include "toplev.h" ++#include "function.h" ++#include "tree-flow.h" ++#include "plugin.h" ++#include "gimple.h" ++#include "diagnostic.h" ++#include "cfgloop.h" ++#include "langhooks.h" ++ ++#if BUILDING_GCC_VERSION >= 4008 ++#define TODO_dump_func 0 ++#endif ++ ++#define NAME(node) IDENTIFIER_POINTER(DECL_NAME(node)) ++ ++// unused type flag in all versions 4.5-4.8 ++#define TYPE_USERSPACE(TYPE) TYPE_LANG_FLAG_3(TYPE) ++ ++int plugin_is_GPL_compatible; ++void debug_gimple_stmt(gimple gs); ++ ++static struct plugin_info structleak_plugin_info = { ++ .version = "201303270300", ++ .help = "disable\tdo not activate plugin\n", ++}; ++ ++static tree handle_user_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs) ++{ ++ *no_add_attrs = true; ++ ++ // check for types? for now accept everything linux has to offer ++ if (TREE_CODE(*node) != FIELD_DECL) ++ return NULL_TREE; ++ ++ *no_add_attrs = false; ++ return NULL_TREE; ++} ++ ++static struct attribute_spec user_attr = { ++ .name = "user", ++ .min_length = 0, ++ .max_length = 0, ++ .decl_required = false, ++ .type_required = false, ++ .function_type_required = false, ++ .handler = handle_user_attribute, ++#if BUILDING_GCC_VERSION >= 4007 ++ .affects_type_identity = true ++#endif ++}; ++ ++static void register_attributes(void *event_data, void *data) ++{ ++ register_attribute(&user_attr); ++// register_attribute(&force_attr); ++} ++ ++static tree get_field_type(tree field) ++{ ++ return strip_array_types(TREE_TYPE(field)); ++} ++ ++static bool is_userspace_type(tree type) ++{ ++ tree field; ++ ++ for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) { ++ tree fieldtype = get_field_type(field); ++ enum tree_code code = TREE_CODE(fieldtype); ++ ++ if (code == RECORD_TYPE || code == UNION_TYPE) ++ if (is_userspace_type(fieldtype)) ++ return true; ++ ++ if (lookup_attribute("user", DECL_ATTRIBUTES(field))) ++ return true; ++ } ++ return false; ++} ++ ++static void finish_type(void *event_data, void *data) ++{ ++ tree type = (tree)event_data; ++ ++ if (TYPE_USERSPACE(type)) ++ return; ++ ++ if (is_userspace_type(type)) ++ TYPE_USERSPACE(type) = 1; ++} ++ ++static void initialize(tree var) ++{ ++ basic_block bb; ++ gimple_stmt_iterator gsi; ++ tree initializer; ++ gimple init_stmt; ++ ++ // this is the original entry bb before the forced split ++ bb = ENTRY_BLOCK_PTR->next_bb->next_bb; ++ ++ // first check if the variable is already initialized, warn otherwise ++ for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) { ++ gimple stmt = gsi_stmt(gsi); ++ ++ // we're looking for an assignment... ++ if (!(is_gimple_assign(stmt))) ++ continue; ++ // ... of a single rhs (unary op)... ++ if (gimple_num_ops(stmt) != 2) ++ continue; ++ // ... to our variable... ++ if (gimple_get_lhs(stmt) != var) ++ continue; ++ // if it's an initializer then we're good ++ if (TREE_CODE(gimple_assign_rhs1(stmt)) == CONSTRUCTOR) ++ return; ++ } ++ ++ // build the initializer expression ++ initializer = make_node(CONSTRUCTOR); ++ TREE_TYPE(initializer) = TREE_TYPE(var); ++ ++ // build the initializer stmt ++ init_stmt = gimple_build_assign(var, initializer); ++ gsi = gsi_start_bb(ENTRY_BLOCK_PTR->next_bb); ++ gsi_insert_before(&gsi, init_stmt, GSI_NEW_STMT); ++ update_stmt(init_stmt); ++} ++ ++static unsigned int handle_function(void) ++{ ++ basic_block bb; ++ unsigned int ret = 0; ++ tree var; ++ ++#if BUILDING_GCC_VERSION == 4005 ++ tree vars; ++#else ++ unsigned int i; ++#endif ++ ++ // split the first bb where we can put the forced initializers ++ bb = split_block_after_labels(ENTRY_BLOCK_PTR)->dest; ++ if (dom_info_available_p(CDI_DOMINATORS)) ++ set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR); ++ ++ // enumarate all local variables and forcibly initialize our targets ++#if BUILDING_GCC_VERSION == 4005 ++ for (vars = cfun->local_decls; vars; vars = TREE_CHAIN(vars)) { ++ var = TREE_VALUE(vars); ++#else ++ FOR_EACH_LOCAL_DECL(cfun, i, var) { ++#endif ++ tree type = TREE_TYPE(var); ++ ++ gcc_assert(DECL_P(var)); ++ if (is_global_var(var)) ++ continue; ++ ++ // only care about structure types ++ if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE) ++ continue; ++ ++ // if the type is of interest, examine the variable ++ if (TYPE_USERSPACE(type)) ++ initialize(var); ++ } ++ ++ return ret; ++} ++ ++static struct gimple_opt_pass structleak_pass = { ++ .pass = { ++ .type = GIMPLE_PASS, ++ .name = "structleak", ++#if BUILDING_GCC_VERSION >= 4008 ++ .optinfo_flags = OPTGROUP_NONE, ++#endif ++ .gate = NULL, ++ .execute = handle_function, ++ .sub = NULL, ++ .next = NULL, ++ .static_pass_number = 0, ++ .tv_id = TV_NONE, ++ .properties_required = PROP_cfg, ++ .properties_provided = 0, ++ .properties_destroyed = 0, ++ .todo_flags_start = 0, ++ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa | TODO_ggc_collect | TODO_verify_flow ++ } ++}; ++ ++int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version) ++{ ++ int i; ++ const char * const plugin_name = plugin_info->base_name; ++ const int argc = plugin_info->argc; ++ const struct plugin_argument * const argv = plugin_info->argv; ++ bool enable = true; ++ ++ struct register_pass_info structleak_pass_info = { ++ .pass = &structleak_pass.pass, ++ .reference_pass_name = "ssa", ++ .ref_pass_instance_number = 1, ++ .pos_op = PASS_POS_INSERT_AFTER ++ }; ++ ++ if (!plugin_default_version_check(version, &gcc_version)) { ++ error(G_("incompatible gcc/plugin versions")); ++ return 1; ++ } ++ ++ if (strcmp(lang_hooks.name, "GNU C")) { ++ inform(UNKNOWN_LOCATION, G_("%s supports C only"), plugin_name); ++ enable = false; ++ } ++ ++ for (i = 0; i < argc; ++i) { ++ if (!strcmp(argv[i].key, "disable")) { ++ enable = false; ++ continue; ++ } ++ error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key); ++ } ++ ++ register_callback(plugin_name, PLUGIN_INFO, NULL, &structleak_plugin_info); ++ if (enable) { ++ register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &structleak_pass_info); ++ register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL); ++ } ++ register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL); ++ ++ return 0; ++} diff --git a/tools/perf/util/include/asm/alternative-asm.h b/tools/perf/util/include/asm/alternative-asm.h index 6789d78..4afd019e 100644 --- a/tools/perf/util/include/asm/alternative-asm.h diff --git a/3.8.4/4425_grsec_remove_EI_PAX.patch b/3.8.5/4425_grsec_remove_EI_PAX.patch index 97e6951..97e6951 100644 --- a/3.8.4/4425_grsec_remove_EI_PAX.patch +++ b/3.8.5/4425_grsec_remove_EI_PAX.patch diff --git a/3.8.4/4430_grsec-remove-localversion-grsec.patch b/3.8.5/4430_grsec-remove-localversion-grsec.patch index 31cf878..31cf878 100644 --- a/3.8.4/4430_grsec-remove-localversion-grsec.patch +++ b/3.8.5/4430_grsec-remove-localversion-grsec.patch diff --git a/3.8.4/4435_grsec-mute-warnings.patch b/3.8.5/4435_grsec-mute-warnings.patch index e1a7a3c..e1a7a3c 100644 --- a/3.8.4/4435_grsec-mute-warnings.patch +++ b/3.8.5/4435_grsec-mute-warnings.patch diff --git a/3.8.4/4440_grsec-remove-protected-paths.patch b/3.8.5/4440_grsec-remove-protected-paths.patch index 637934a..637934a 100644 --- a/3.8.4/4440_grsec-remove-protected-paths.patch +++ b/3.8.5/4440_grsec-remove-protected-paths.patch diff --git a/3.8.4/4450_grsec-kconfig-default-gids.patch b/3.8.5/4450_grsec-kconfig-default-gids.patch index 3dfdc8f..3dfdc8f 100644 --- a/3.8.4/4450_grsec-kconfig-default-gids.patch +++ b/3.8.5/4450_grsec-kconfig-default-gids.patch diff --git a/3.8.4/4465_selinux-avc_audit-log-curr_ip.patch b/3.8.5/4465_selinux-avc_audit-log-curr_ip.patch index 5b614b1..5b614b1 100644 --- a/3.8.4/4465_selinux-avc_audit-log-curr_ip.patch +++ b/3.8.5/4465_selinux-avc_audit-log-curr_ip.patch diff --git a/3.8.4/4470_disable-compat_vdso.patch b/3.8.5/4470_disable-compat_vdso.patch index 1037ba9..1037ba9 100644 --- a/3.8.4/4470_disable-compat_vdso.patch +++ b/3.8.5/4470_disable-compat_vdso.patch |