summaryrefslogtreecommitdiff
path: root/kernels
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2014-04-11 04:46:52 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2014-04-11 04:46:52 -0300
commit9a7056bf7bbd21f46640e8b171820d021dc32a8e (patch)
tree0a66559f822a1827b966d27c21040fb7bba6a948 /kernels
parent60cd7f09fc7a95165fe22f922c711fb47a8dd87f (diff)
linux-libre-{pae,xen}-3.14-4: updating version
Diffstat (limited to 'kernels')
-rw-r--r--kernels/linux-libre-pae/0001-Bluetooth-allocate-static-minor-for-vhci.patch18
-rw-r--r--kernels/linux-libre-pae/0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch241
-rw-r--r--kernels/linux-libre-pae/0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch68
-rw-r--r--kernels/linux-libre-pae/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch93
-rw-r--r--kernels/linux-libre-pae/0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch143
-rw-r--r--kernels/linux-libre-pae/0003-module-remove-MODULE_GENERIC_TABLE.patch75
-rw-r--r--kernels/linux-libre-pae/0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch50
-rw-r--r--kernels/linux-libre-pae/0004-fs-Don-t-return-0-from-get_anon_bdev.patch44
-rw-r--r--kernels/linux-libre-pae/0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch32
-rw-r--r--kernels/linux-libre-pae/0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch33
-rw-r--r--kernels/linux-libre-pae/0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch100
-rw-r--r--kernels/linux-libre-pae/0006-genksyms-fix-typeof-handling.patch1360
-rw-r--r--kernels/linux-libre-pae/0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch50
-rw-r--r--kernels/linux-libre-pae/0007-Fix-the-use-of-code32_start-in-the-EFI-boot-stub.patch96
-rw-r--r--kernels/linux-libre-pae/PKGBUILD114
-rw-r--r--kernels/linux-libre-pae/config475
-rw-r--r--kernels/linux-libre-pae/criu-no-expert.patch13
-rw-r--r--kernels/linux-libre-pae/i8042-fix-aliases.patch113
-rw-r--r--kernels/linux-libre-xen/0001-Bluetooth-allocate-static-minor-for-vhci.patch18
-rw-r--r--kernels/linux-libre-xen/0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch241
-rw-r--r--kernels/linux-libre-xen/0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch68
-rw-r--r--kernels/linux-libre-xen/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch93
-rw-r--r--kernels/linux-libre-xen/0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch143
-rw-r--r--kernels/linux-libre-xen/0003-module-remove-MODULE_GENERIC_TABLE.patch75
-rw-r--r--kernels/linux-libre-xen/0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch50
-rw-r--r--kernels/linux-libre-xen/0004-fs-Don-t-return-0-from-get_anon_bdev.patch44
-rw-r--r--kernels/linux-libre-xen/0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch32
-rw-r--r--kernels/linux-libre-xen/0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch33
-rw-r--r--kernels/linux-libre-xen/0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch100
-rw-r--r--kernels/linux-libre-xen/0006-genksyms-fix-typeof-handling.patch1360
-rw-r--r--kernels/linux-libre-xen/0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch50
-rw-r--r--kernels/linux-libre-xen/0007-Fix-the-use-of-code32_start-in-the-EFI-boot-stub.patch96
-rw-r--r--kernels/linux-libre-xen/PKGBUILD114
-rw-r--r--kernels/linux-libre-xen/config480
-rw-r--r--kernels/linux-libre-xen/criu-no-expert.patch13
-rw-r--r--kernels/linux-libre-xen/i8042-fix-aliases.patch113
36 files changed, 4111 insertions, 2130 deletions
diff --git a/kernels/linux-libre-pae/0001-Bluetooth-allocate-static-minor-for-vhci.patch b/kernels/linux-libre-pae/0001-Bluetooth-allocate-static-minor-for-vhci.patch
index 33a3fde88..f63e5e79d 100644
--- a/kernels/linux-libre-pae/0001-Bluetooth-allocate-static-minor-for-vhci.patch
+++ b/kernels/linux-libre-pae/0001-Bluetooth-allocate-static-minor-for-vhci.patch
@@ -1,9 +1,7 @@
-From a62207820fb65f168c8a7f9c0abb71d736f3d7e0 Mon Sep 17 00:00:00 2001
+From 5d77ba2d26110c678b40fd723866a17d4036de12 Mon Sep 17 00:00:00 2001
From: Lucas De Marchi <lucas.demarchi@intel.com>
Date: Tue, 18 Feb 2014 02:19:26 -0300
-Subject: [PATCH] Bluetooth: allocate static minor for vhci
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
+Subject: [PATCH 1/7] Bluetooth: allocate static minor for vhci
Commit bfacbb9 (Bluetooth: Use devname:vhci module alias for virtual HCI
driver) added the module alias to hci_vhci module so it's possible to
@@ -30,7 +28,7 @@ Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/Documentation/devices.txt b/Documentation/devices.txt
-index 80b7241..fce9398 100644
+index 10378cc..04356f5 100644
--- a/Documentation/devices.txt
+++ b/Documentation/devices.txt
@@ -353,6 +353,7 @@ Your cooperation is appreciated.
@@ -42,10 +40,10 @@ index 80b7241..fce9398 100644
140 = /dev/relay8 Berkshire Products Octal relay card
141 = /dev/relay16 Berkshire Products ISO-16 relay card
diff --git a/drivers/bluetooth/hci_vhci.c b/drivers/bluetooth/hci_vhci.c
-index 7b16738..59095e6 100644
+index 1ef6990..add1c6a 100644
--- a/drivers/bluetooth/hci_vhci.c
+++ b/drivers/bluetooth/hci_vhci.c
-@@ -352,7 +352,7 @@ static const struct file_operations vhci_fops = {
+@@ -359,7 +359,7 @@ static const struct file_operations vhci_fops = {
static struct miscdevice vhci_miscdev= {
.name = "vhci",
.fops = &vhci_fops,
@@ -54,13 +52,13 @@ index 7b16738..59095e6 100644
};
static int __init vhci_init(void)
-@@ -378,3 +378,4 @@ MODULE_DESCRIPTION("Bluetooth virtual HCI driver ver " VERSION);
+@@ -385,3 +385,4 @@ MODULE_DESCRIPTION("Bluetooth virtual HCI driver ver " VERSION);
MODULE_VERSION(VERSION);
MODULE_LICENSE("GPL");
MODULE_ALIAS("devname:vhci");
+MODULE_ALIAS_MISCDEV(VHCI_MINOR);
diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h
-index f7eaf2d..e5db611 100644
+index 3737f72..7bb6148 100644
--- a/include/linux/miscdevice.h
+++ b/include/linux/miscdevice.h
@@ -23,6 +23,7 @@
@@ -72,5 +70,5 @@ index f7eaf2d..e5db611 100644
#define DMAPI_MINOR 140 /* DMAPI */
#define NVRAM_MINOR 144
--
-1.9.0
+1.9.1
diff --git a/kernels/linux-libre-pae/0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch b/kernels/linux-libre-pae/0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch
deleted file mode 100644
index 2d398315e..000000000
--- a/kernels/linux-libre-pae/0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch
+++ /dev/null
@@ -1,241 +0,0 @@
-From 4b9a445e3eeb8bd9278b1ae51c1b3a651e370cd6 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton@redhat.com>
-Date: Thu, 14 Nov 2013 07:25:17 -0500
-Subject: [PATCH 1/6] sunrpc: create a new dummy pipe for gssd to hold open
-
-rpc.gssd will naturally hold open any pipe named */clnt*/gssd that shows
-up under rpc_pipefs. That behavior gives us a reliable mechanism to tell
-whether it's actually running or not.
-
-Create a new toplevel "gssd" directory in rpc_pipefs when it's mounted.
-Under that directory create another directory called "clntXX", and then
-within that a pipe called "gssd".
-
-We'll never send an upcall along that pipe, and any downcall written to
-it will just return -EINVAL.
-
-Signed-off-by: Jeff Layton <jlayton@redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
----
- include/linux/sunrpc/rpc_pipe_fs.h | 3 +-
- net/sunrpc/netns.h | 1 +
- net/sunrpc/rpc_pipe.c | 93 ++++++++++++++++++++++++++++++++++++--
- net/sunrpc/sunrpc_syms.c | 8 +++-
- 4 files changed, 100 insertions(+), 5 deletions(-)
-
-diff --git a/include/linux/sunrpc/rpc_pipe_fs.h b/include/linux/sunrpc/rpc_pipe_fs.h
-index a353e03..85f1342 100644
---- a/include/linux/sunrpc/rpc_pipe_fs.h
-+++ b/include/linux/sunrpc/rpc_pipe_fs.h
-@@ -84,7 +84,8 @@ enum {
-
- extern struct dentry *rpc_d_lookup_sb(const struct super_block *sb,
- const unsigned char *dir_name);
--extern void rpc_pipefs_init_net(struct net *net);
-+extern int rpc_pipefs_init_net(struct net *net);
-+extern void rpc_pipefs_exit_net(struct net *net);
- extern struct super_block *rpc_get_sb_net(const struct net *net);
- extern void rpc_put_sb_net(const struct net *net);
-
-diff --git a/net/sunrpc/netns.h b/net/sunrpc/netns.h
-index 779742c..8a8e841 100644
---- a/net/sunrpc/netns.h
-+++ b/net/sunrpc/netns.h
-@@ -14,6 +14,7 @@ struct sunrpc_net {
- struct cache_detail *rsi_cache;
-
- struct super_block *pipefs_sb;
-+ struct rpc_pipe *gssd_dummy;
- struct mutex pipefs_sb_lock;
-
- struct list_head all_clients;
-diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
-index bf04b30..c23458b 100644
---- a/net/sunrpc/rpc_pipe.c
-+++ b/net/sunrpc/rpc_pipe.c
-@@ -38,7 +38,7 @@
- #define NET_NAME(net) ((net == &init_net) ? " (init_net)" : "")
-
- static struct file_system_type rpc_pipe_fs_type;
--
-+static const struct rpc_pipe_ops gssd_dummy_pipe_ops;
-
- static struct kmem_cache *rpc_inode_cachep __read_mostly;
-
-@@ -1159,6 +1159,7 @@ enum {
- RPCAUTH_nfsd4_cb,
- RPCAUTH_cache,
- RPCAUTH_nfsd,
-+ RPCAUTH_gssd,
- RPCAUTH_RootEOF
- };
-
-@@ -1195,6 +1196,10 @@ static const struct rpc_filelist files[] = {
- .name = "nfsd",
- .mode = S_IFDIR | S_IRUGO | S_IXUGO,
- },
-+ [RPCAUTH_gssd] = {
-+ .name = "gssd",
-+ .mode = S_IFDIR | S_IRUGO | S_IXUGO,
-+ },
- };
-
- /*
-@@ -1208,13 +1213,25 @@ struct dentry *rpc_d_lookup_sb(const struct super_block *sb,
- }
- EXPORT_SYMBOL_GPL(rpc_d_lookup_sb);
-
--void rpc_pipefs_init_net(struct net *net)
-+int rpc_pipefs_init_net(struct net *net)
- {
- struct sunrpc_net *sn = net_generic(net, sunrpc_net_id);
-
-+ sn->gssd_dummy = rpc_mkpipe_data(&gssd_dummy_pipe_ops, 0);
-+ if (IS_ERR(sn->gssd_dummy))
-+ return PTR_ERR(sn->gssd_dummy);
-+
- mutex_init(&sn->pipefs_sb_lock);
- sn->gssd_running = 1;
- sn->pipe_version = -1;
-+ return 0;
-+}
-+
-+void rpc_pipefs_exit_net(struct net *net)
-+{
-+ struct sunrpc_net *sn = net_generic(net, sunrpc_net_id);
-+
-+ rpc_destroy_pipe_data(sn->gssd_dummy);
- }
-
- /*
-@@ -1244,11 +1261,73 @@ void rpc_put_sb_net(const struct net *net)
- }
- EXPORT_SYMBOL_GPL(rpc_put_sb_net);
-
-+static const struct rpc_filelist gssd_dummy_clnt_dir[] = {
-+ [0] = {
-+ .name = "clntXX",
-+ .mode = S_IFDIR | S_IRUGO | S_IXUGO,
-+ },
-+};
-+
-+static ssize_t
-+dummy_downcall(struct file *filp, const char __user *src, size_t len)
-+{
-+ return -EINVAL;
-+}
-+
-+static const struct rpc_pipe_ops gssd_dummy_pipe_ops = {
-+ .upcall = rpc_pipe_generic_upcall,
-+ .downcall = dummy_downcall,
-+};
-+
-+/**
-+ * rpc_gssd_dummy_populate - create a dummy gssd pipe
-+ * @root: root of the rpc_pipefs filesystem
-+ * @pipe_data: pipe data created when netns is initialized
-+ *
-+ * Create a dummy set of directories and a pipe that gssd can hold open to
-+ * indicate that it is up and running.
-+ */
-+static struct dentry *
-+rpc_gssd_dummy_populate(struct dentry *root, struct rpc_pipe *pipe_data)
-+{
-+ int ret = 0;
-+ struct dentry *gssd_dentry;
-+ struct dentry *clnt_dentry = NULL;
-+ struct dentry *pipe_dentry = NULL;
-+ struct qstr q = QSTR_INIT(files[RPCAUTH_gssd].name,
-+ strlen(files[RPCAUTH_gssd].name));
-+
-+ /* We should never get this far if "gssd" doesn't exist */
-+ gssd_dentry = d_hash_and_lookup(root, &q);
-+ if (!gssd_dentry)
-+ return ERR_PTR(-ENOENT);
-+
-+ ret = rpc_populate(gssd_dentry, gssd_dummy_clnt_dir, 0, 1, NULL);
-+ if (ret) {
-+ pipe_dentry = ERR_PTR(ret);
-+ goto out;
-+ }
-+
-+ q.name = gssd_dummy_clnt_dir[0].name;
-+ q.len = strlen(gssd_dummy_clnt_dir[0].name);
-+ clnt_dentry = d_hash_and_lookup(gssd_dentry, &q);
-+ if (!clnt_dentry) {
-+ pipe_dentry = ERR_PTR(-ENOENT);
-+ goto out;
-+ }
-+
-+ pipe_dentry = rpc_mkpipe_dentry(clnt_dentry, "gssd", NULL, pipe_data);
-+out:
-+ dput(clnt_dentry);
-+ dput(gssd_dentry);
-+ return pipe_dentry;
-+}
-+
- static int
- rpc_fill_super(struct super_block *sb, void *data, int silent)
- {
- struct inode *inode;
-- struct dentry *root;
-+ struct dentry *root, *gssd_dentry;
- struct net *net = data;
- struct sunrpc_net *sn = net_generic(net, sunrpc_net_id);
- int err;
-@@ -1266,6 +1345,13 @@ rpc_fill_super(struct super_block *sb, void *data, int silent)
- return -ENOMEM;
- if (rpc_populate(root, files, RPCAUTH_lockd, RPCAUTH_RootEOF, NULL))
- return -ENOMEM;
-+
-+ gssd_dentry = rpc_gssd_dummy_populate(root, sn->gssd_dummy);
-+ if (IS_ERR(gssd_dentry)) {
-+ __rpc_depopulate(root, files, RPCAUTH_lockd, RPCAUTH_RootEOF);
-+ return PTR_ERR(gssd_dentry);
-+ }
-+
- dprintk("RPC: sending pipefs MOUNT notification for net %p%s\n",
- net, NET_NAME(net));
- mutex_lock(&sn->pipefs_sb_lock);
-@@ -1280,6 +1366,7 @@ rpc_fill_super(struct super_block *sb, void *data, int silent)
- return 0;
-
- err_depopulate:
-+ dput(gssd_dentry);
- blocking_notifier_call_chain(&rpc_pipefs_notifier_list,
- RPC_PIPEFS_UMOUNT,
- sb);
-diff --git a/net/sunrpc/sunrpc_syms.c b/net/sunrpc/sunrpc_syms.c
-index 3d6498a..cd30120 100644
---- a/net/sunrpc/sunrpc_syms.c
-+++ b/net/sunrpc/sunrpc_syms.c
-@@ -44,12 +44,17 @@ static __net_init int sunrpc_init_net(struct net *net)
- if (err)
- goto err_unixgid;
-
-- rpc_pipefs_init_net(net);
-+ err = rpc_pipefs_init_net(net);
-+ if (err)
-+ goto err_pipefs;
-+
- INIT_LIST_HEAD(&sn->all_clients);
- spin_lock_init(&sn->rpc_client_lock);
- spin_lock_init(&sn->rpcb_clnt_lock);
- return 0;
-
-+err_pipefs:
-+ unix_gid_cache_destroy(net);
- err_unixgid:
- ip_map_cache_destroy(net);
- err_ipmap:
-@@ -60,6 +65,7 @@ err_proc:
-
- static __net_exit void sunrpc_exit_net(struct net *net)
- {
-+ rpc_pipefs_exit_net(net);
- unix_gid_cache_destroy(net);
- ip_map_cache_destroy(net);
- rpc_proc_exit(net);
---
-1.8.5.3
-
diff --git a/kernels/linux-libre-pae/0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch b/kernels/linux-libre-pae/0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch
deleted file mode 100644
index c4242e0ae..000000000
--- a/kernels/linux-libre-pae/0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 83460ec8dcac14142e7860a01fa59c267ac4657c Mon Sep 17 00:00:00 2001
-From: Andi Kleen <ak@linux.intel.com>
-Date: Tue, 12 Nov 2013 15:08:36 -0800
-Subject: [PATCH] syscalls.h: use gcc alias instead of assembler aliases for
- syscalls
-
-Use standard gcc __attribute__((alias(foo))) to define the syscall aliases
-instead of custom assembler macros.
-
-This is far cleaner, and also fixes my LTO kernel build.
-
-Signed-off-by: Andi Kleen <ak@linux.intel.com>
-Cc: Al Viro <viro@ZenIV.linux.org.uk>
-Cc: Geert Uytterhoeven <geert@linux-m68k.org>
-Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
----
- include/linux/compat.h | 4 ++--
- include/linux/syscalls.h | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/include/linux/compat.h b/include/linux/compat.h
-index 345da00..ada34c9 100644
---- a/include/linux/compat.h
-+++ b/include/linux/compat.h
-@@ -41,14 +41,14 @@
- COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
-
- #define COMPAT_SYSCALL_DEFINEx(x, name, ...) \
-- asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
-+ asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
-+ __attribute__((alias(__stringify(compat_SyS##name)))); \
- static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
- asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__));\
- asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\
- { \
- return C_SYSC##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__)); \
- } \
-- SYSCALL_ALIAS(compat_sys##name, compat_SyS##name); \
- static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__))
-
- #ifndef compat_user_stack_pointer
-diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
-index 7fac04e..c27f846 100644
---- a/include/linux/syscalls.h
-+++ b/include/linux/syscalls.h
-@@ -184,7 +184,8 @@ extern struct trace_event_functions exit_syscall_print_funcs;
-
- #define __PROTECT(...) asmlinkage_protect(__VA_ARGS__)
- #define __SYSCALL_DEFINEx(x, name, ...) \
-- asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \
-+ asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
-+ __attribute__((alias(__stringify(SyS##name)))); \
- static inline long SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \
- asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
- asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
-@@ -194,7 +195,6 @@ extern struct trace_event_functions exit_syscall_print_funcs;
- __PROTECT(x, ret,__MAP(x,__SC_ARGS,__VA_ARGS__)); \
- return ret; \
- } \
-- SYSCALL_ALIAS(sys##name, SyS##name); \
- static inline long SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__))
-
- asmlinkage long sys_time(time_t __user *tloc);
---
-1.8.5.3
-
diff --git a/kernels/linux-libre-pae/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch b/kernels/linux-libre-pae/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch
new file mode 100644
index 000000000..188110a8c
--- /dev/null
+++ b/kernels/linux-libre-pae/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch
@@ -0,0 +1,93 @@
+From 9bc5b710f5957763d6944f38143b627d127c15ff Mon Sep 17 00:00:00 2001
+From: Tom Gundersen <teg@jklm.no>
+Date: Mon, 3 Feb 2014 11:14:13 +1030
+Subject: [PATCH 2/7] module: allow multiple calls to MODULE_DEVICE_TABLE() per
+ module
+
+Commit 78551277e4df5: "Input: i8042 - add PNP modaliases" had a bug, where the
+second call to MODULE_DEVICE_TABLE() overrode the first resulting in not all
+the modaliases being exposed.
+
+This fixes the problem by including the name of the device_id table in the
+__mod_*_device_table alias, allowing us to export several device_id tables
+per module.
+
+Suggested-by: Kay Sievers <kay@vrfy.org>
+Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Tom Gundersen <teg@jklm.no>
+Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
+---
+ include/linux/module.h | 2 +-
+ scripts/mod/file2alias.c | 14 +++++++++-----
+ 2 files changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/include/linux/module.h b/include/linux/module.h
+index eaf60ff..ad18f60 100644
+--- a/include/linux/module.h
++++ b/include/linux/module.h
+@@ -142,7 +142,7 @@ extern const struct gtype##_id __mod_##gtype##_table \
+ #define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description)
+
+ #define MODULE_DEVICE_TABLE(type, name) \
+- MODULE_GENERIC_TABLE(type##_device, name)
++ MODULE_GENERIC_TABLE(type##__##name##_device, name)
+
+ /* Version of form [<epoch>:]<version>[-<extra-version>].
+ * Or for CVS/RCS ID version, everything but the number is stripped.
+diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
+index 25e5cb0..ce16404 100644
+--- a/scripts/mod/file2alias.c
++++ b/scripts/mod/file2alias.c
+@@ -42,7 +42,7 @@ typedef unsigned char __u8;
+
+ /* This array collects all instances that use the generic do_table */
+ struct devtable {
+- const char *device_id; /* name of table, __mod_<name>_device_table. */
++ const char *device_id; /* name of table, __mod_<name>__*_device_table. */
+ unsigned long id_size;
+ void *function;
+ };
+@@ -146,7 +146,8 @@ static void device_id_check(const char *modname, const char *device_id,
+
+ if (size % id_size || size < id_size) {
+ fatal("%s: sizeof(struct %s_device_id)=%lu is not a modulo "
+- "of the size of section __mod_%s_device_table=%lu.\n"
++ "of the size of "
++ "section __mod_%s__<identifier>_device_table=%lu.\n"
+ "Fix definition of struct %s_device_id "
+ "in mod_devicetable.h\n",
+ modname, device_id, id_size, device_id, size, device_id);
+@@ -1206,7 +1207,7 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
+ {
+ void *symval;
+ char *zeros = NULL;
+- const char *name;
++ const char *name, *identifier;
+ unsigned int namelen;
+
+ /* We're looking for a section relative symbol */
+@@ -1217,7 +1218,7 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
+ if (ELF_ST_TYPE(sym->st_info) != STT_OBJECT)
+ return;
+
+- /* All our symbols are of form <prefix>__mod_XXX_device_table. */
++ /* All our symbols are of form <prefix>__mod_<name>__<identifier>_device_table. */
+ name = strstr(symname, "__mod_");
+ if (!name)
+ return;
+@@ -1227,7 +1228,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
+ return;
+ if (strcmp(name + namelen - strlen("_device_table"), "_device_table"))
+ return;
+- namelen -= strlen("_device_table");
++ identifier = strstr(name, "__");
++ if (!identifier)
++ return;
++ namelen = identifier - name;
+
+ /* Handle all-NULL symbols allocated into .bss */
+ if (info->sechdrs[get_secindex(info, sym)].sh_type & SHT_NOBITS) {
+--
+1.9.1
+
diff --git a/kernels/linux-libre-pae/0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch b/kernels/linux-libre-pae/0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch
deleted file mode 100644
index 19e04da5d..000000000
--- a/kernels/linux-libre-pae/0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From 89f842435c630f8426f414e6030bc2ffea0d6f81 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton@redhat.com>
-Date: Thu, 14 Nov 2013 07:25:18 -0500
-Subject: [PATCH 2/6] sunrpc: replace sunrpc_net->gssd_running flag with a more
- reliable check
-
-Now that we have a more reliable method to tell if gssd is running, we
-can replace the sn->gssd_running flag with a function that will query to
-see if it's up and running.
-
-There's also no need to attempt an upcall that we know will fail, so
-just return -EACCES if gssd isn't running. Finally, fix the warn_gss()
-message not to claim that that the upcall timed out since we don't
-necesarily perform one now when gssd isn't running, and remove the
-extraneous newline from the message.
-
-Signed-off-by: Jeff Layton <jlayton@redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
----
- include/linux/sunrpc/rpc_pipe_fs.h | 2 ++
- net/sunrpc/auth_gss/auth_gss.c | 17 +++++++----------
- net/sunrpc/netns.h | 2 --
- net/sunrpc/rpc_pipe.c | 14 ++++++++++----
- 4 files changed, 19 insertions(+), 16 deletions(-)
-
-diff --git a/include/linux/sunrpc/rpc_pipe_fs.h b/include/linux/sunrpc/rpc_pipe_fs.h
-index 85f1342..7f490be 100644
---- a/include/linux/sunrpc/rpc_pipe_fs.h
-+++ b/include/linux/sunrpc/rpc_pipe_fs.h
-@@ -131,5 +131,7 @@ extern int rpc_unlink(struct dentry *);
- extern int register_rpc_pipefs(void);
- extern void unregister_rpc_pipefs(void);
-
-+extern bool gssd_running(struct net *net);
-+
- #endif
- #endif
-diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c
-index 42fdfc6..0a2aee0 100644
---- a/net/sunrpc/auth_gss/auth_gss.c
-+++ b/net/sunrpc/auth_gss/auth_gss.c
-@@ -536,8 +536,7 @@ static void warn_gssd(void)
- unsigned long now = jiffies;
-
- if (time_after(now, ratelimit)) {
-- printk(KERN_WARNING "RPC: AUTH_GSS upcall timed out.\n"
-- "Please check user daemon is running.\n");
-+ pr_warn("RPC: AUTH_GSS upcall failed. Please check user daemon is running.\n");
- ratelimit = now + 15*HZ;
- }
- }
-@@ -600,7 +599,6 @@ gss_create_upcall(struct gss_auth *gss_auth, struct gss_cred *gss_cred)
- struct rpc_pipe *pipe;
- struct rpc_cred *cred = &gss_cred->gc_base;
- struct gss_upcall_msg *gss_msg;
-- unsigned long timeout;
- DEFINE_WAIT(wait);
- int err;
-
-@@ -608,17 +606,16 @@ gss_create_upcall(struct gss_auth *gss_auth, struct gss_cred *gss_cred)
- __func__, from_kuid(&init_user_ns, cred->cr_uid));
- retry:
- err = 0;
-- /* Default timeout is 15s unless we know that gssd is not running */
-- timeout = 15 * HZ;
-- if (!sn->gssd_running)
-- timeout = HZ >> 2;
-+ /* if gssd is down, just skip upcalling altogether */
-+ if (!gssd_running(net)) {
-+ warn_gssd();
-+ return -EACCES;
-+ }
- gss_msg = gss_setup_upcall(gss_auth, cred);
- if (PTR_ERR(gss_msg) == -EAGAIN) {
- err = wait_event_interruptible_timeout(pipe_version_waitqueue,
-- sn->pipe_version >= 0, timeout);
-+ sn->pipe_version >= 0, 15 * HZ);
- if (sn->pipe_version < 0) {
-- if (err == 0)
-- sn->gssd_running = 0;
- warn_gssd();
- err = -EACCES;
- }
-diff --git a/net/sunrpc/netns.h b/net/sunrpc/netns.h
-index 8a8e841..94e506f 100644
---- a/net/sunrpc/netns.h
-+++ b/net/sunrpc/netns.h
-@@ -33,8 +33,6 @@ struct sunrpc_net {
- int pipe_version;
- atomic_t pipe_users;
- struct proc_dir_entry *use_gssp_proc;
--
-- unsigned int gssd_running;
- };
-
- extern int sunrpc_net_id;
-diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
-index c23458b..5cd7ad1 100644
---- a/net/sunrpc/rpc_pipe.c
-+++ b/net/sunrpc/rpc_pipe.c
-@@ -216,14 +216,11 @@ rpc_destroy_inode(struct inode *inode)
- static int
- rpc_pipe_open(struct inode *inode, struct file *filp)
- {
-- struct net *net = inode->i_sb->s_fs_info;
-- struct sunrpc_net *sn = net_generic(net, sunrpc_net_id);
- struct rpc_pipe *pipe;
- int first_open;
- int res = -ENXIO;
-
- mutex_lock(&inode->i_mutex);
-- sn->gssd_running = 1;
- pipe = RPC_I(inode)->pipe;
- if (pipe == NULL)
- goto out;
-@@ -1222,7 +1219,6 @@ int rpc_pipefs_init_net(struct net *net)
- return PTR_ERR(sn->gssd_dummy);
-
- mutex_init(&sn->pipefs_sb_lock);
-- sn->gssd_running = 1;
- sn->pipe_version = -1;
- return 0;
- }
-@@ -1376,6 +1372,16 @@ err_depopulate:
- return err;
- }
-
-+bool
-+gssd_running(struct net *net)
-+{
-+ struct sunrpc_net *sn = net_generic(net, sunrpc_net_id);
-+ struct rpc_pipe *pipe = sn->gssd_dummy;
-+
-+ return pipe->nreaders || pipe->nwriters;
-+}
-+EXPORT_SYMBOL_GPL(gssd_running);
-+
- static struct dentry *
- rpc_mount(struct file_system_type *fs_type,
- int flags, const char *dev_name, void *data)
---
-1.8.5.3
-
diff --git a/kernels/linux-libre-pae/0003-module-remove-MODULE_GENERIC_TABLE.patch b/kernels/linux-libre-pae/0003-module-remove-MODULE_GENERIC_TABLE.patch
new file mode 100644
index 000000000..43947a1d3
--- /dev/null
+++ b/kernels/linux-libre-pae/0003-module-remove-MODULE_GENERIC_TABLE.patch
@@ -0,0 +1,75 @@
+From 06d2e746733a83469944481cb7f4fb1c7134a8ce Mon Sep 17 00:00:00 2001
+From: Rusty Russell <rusty@rustcorp.com.au>
+Date: Mon, 3 Feb 2014 11:15:13 +1030
+Subject: [PATCH 3/7] module: remove MODULE_GENERIC_TABLE
+
+MODULE_DEVICE_TABLE() calles MODULE_GENERIC_TABLE(); make it do the
+work directly. This also removes a wart introduced in the last patch,
+where the alias is defined to be an unknown struct type "struct
+type##__##name##_device_id" instead of "struct type##_device_id" (it's
+an extern so GCC doesn't care, but it's wrong).
+
+The other user of MODULE_GENERIC_TABLE (ISAPNP_CARD_TABLE) is unused,
+so delete it.
+
+Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
+---
+ include/linux/isapnp.h | 4 ----
+ include/linux/module.h | 19 ++++++++-----------
+ 2 files changed, 8 insertions(+), 15 deletions(-)
+
+diff --git a/include/linux/isapnp.h b/include/linux/isapnp.h
+index e2d28b0..3c77bf9 100644
+--- a/include/linux/isapnp.h
++++ b/include/linux/isapnp.h
+@@ -56,10 +56,6 @@
+ #define ISAPNP_DEVICE_ID(_va, _vb, _vc, _function) \
+ { .vendor = ISAPNP_VENDOR(_va, _vb, _vc), .function = ISAPNP_FUNCTION(_function) }
+
+-/* export used IDs outside module */
+-#define ISAPNP_CARD_TABLE(name) \
+- MODULE_GENERIC_TABLE(isapnp_card, name)
+-
+ struct isapnp_card_id {
+ unsigned long driver_data; /* data private to the driver */
+ unsigned short card_vendor, card_device;
+diff --git a/include/linux/module.h b/include/linux/module.h
+index ad18f60..5686b37 100644
+--- a/include/linux/module.h
++++ b/include/linux/module.h
+@@ -82,15 +82,6 @@ void sort_extable(struct exception_table_entry *start,
+ void sort_main_extable(void);
+ void trim_init_extable(struct module *m);
+
+-#ifdef MODULE
+-#define MODULE_GENERIC_TABLE(gtype, name) \
+-extern const struct gtype##_id __mod_##gtype##_table \
+- __attribute__ ((unused, alias(__stringify(name))))
+-
+-#else /* !MODULE */
+-#define MODULE_GENERIC_TABLE(gtype, name)
+-#endif
+-
+ /* Generic info of form tag = "info" */
+ #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info)
+
+@@ -141,8 +132,14 @@ extern const struct gtype##_id __mod_##gtype##_table \
+ /* What your module does. */
+ #define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description)
+
+-#define MODULE_DEVICE_TABLE(type, name) \
+- MODULE_GENERIC_TABLE(type##__##name##_device, name)
++#ifdef MODULE
++/* Creates an alias so file2alias.c can find device table. */
++#define MODULE_DEVICE_TABLE(type, name) \
++ extern const struct type##_device_id __mod_##type##__##name##_device_table \
++ __attribute__ ((unused, alias(__stringify(name))))
++#else /* !MODULE */
++#define MODULE_DEVICE_TABLE(type, name)
++#endif
+
+ /* Version of form [<epoch>:]<version>[-<extra-version>].
+ * Or for CVS/RCS ID version, everything but the number is stripped.
+--
+1.9.1
+
diff --git a/kernels/linux-libre-pae/0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch b/kernels/linux-libre-pae/0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch
deleted file mode 100644
index 87b54fc3e..000000000
--- a/kernels/linux-libre-pae/0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 6aa23d76a7b549521a03b63b6d5b7880ea87eab7 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton@redhat.com>
-Date: Thu, 14 Nov 2013 07:25:19 -0500
-Subject: [PATCH 3/6] nfs: check if gssd is running before attempting to use
- krb5i auth in SETCLIENTID call
-
-Currently, the client will attempt to use krb5i in the SETCLIENTID call
-even if rpc.gssd isn't running. When that fails, it'll then fall back to
-RPC_AUTH_UNIX. This introduced a delay when mounting if rpc.gssd isn't
-running, and causes warning messages to pop up in the ring buffer.
-
-Check to see if rpc.gssd is running before even attempting to use krb5i
-auth, and just silently skip trying to do so if it isn't. In the event
-that the admin is actually trying to mount with krb5*, it will still
-fail at a later stage of the mount attempt.
-
-Signed-off-by: Jeff Layton <jlayton@redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
----
- fs/nfs/nfs4client.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c
-index b4a160a..c1b7a80 100644
---- a/fs/nfs/nfs4client.c
-+++ b/fs/nfs/nfs4client.c
-@@ -10,6 +10,7 @@
- #include <linux/sunrpc/auth.h>
- #include <linux/sunrpc/xprt.h>
- #include <linux/sunrpc/bc_xprt.h>
-+#include <linux/sunrpc/rpc_pipe_fs.h>
- #include "internal.h"
- #include "callback.h"
- #include "delegation.h"
-@@ -370,7 +371,11 @@ struct nfs_client *nfs4_init_client(struct nfs_client *clp,
- __set_bit(NFS_CS_INFINITE_SLOTS, &clp->cl_flags);
- __set_bit(NFS_CS_DISCRTRY, &clp->cl_flags);
- __set_bit(NFS_CS_NO_RETRANS_TIMEOUT, &clp->cl_flags);
-- error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_GSS_KRB5I);
-+
-+ error = -EINVAL;
-+ if (gssd_running(clp->cl_net))
-+ error = nfs_create_rpc_client(clp, timeparms,
-+ RPC_AUTH_GSS_KRB5I);
- if (error == -EINVAL)
- error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_UNIX);
- if (error < 0)
---
-1.8.5.3
-
diff --git a/kernels/linux-libre-pae/0004-fs-Don-t-return-0-from-get_anon_bdev.patch b/kernels/linux-libre-pae/0004-fs-Don-t-return-0-from-get_anon_bdev.patch
new file mode 100644
index 000000000..4c11b31f2
--- /dev/null
+++ b/kernels/linux-libre-pae/0004-fs-Don-t-return-0-from-get_anon_bdev.patch
@@ -0,0 +1,44 @@
+From 835a463e190af87a36df681863db7c3ea7ba0d66 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org>
+Date: Thu, 3 Apr 2014 21:55:37 +0200
+Subject: [PATCH 4/7] fs: Don't return 0 from get_anon_bdev
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Commit 9e30cc9595303b27b48 removed an internal mount. This
+has the side-effect that rootfs now has FSID 0. Many
+userspace utilities assume that st_dev in struct stat
+is never 0, so this change breaks a number of tools in
+early userspace.
+
+Since we don't know how many userspace programs are affected,
+make sure that FSID is at least 1.
+
+References: http://article.gmane.org/gmane.linux.kernel/1666905
+References: http://permalink.gmane.org/gmane.linux.utilities.util-linux-ng/8557
+Cc: 3.14 <stable@vger.kernel.org>
+Signed-off-by: Thomas Bächler <thomas@archlinux.org>
+---
+ fs/super.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/fs/super.c b/fs/super.c
+index 80d5cf2..7624267 100644
+--- a/fs/super.c
++++ b/fs/super.c
+@@ -802,7 +802,10 @@ void emergency_remount(void)
+
+ static DEFINE_IDA(unnamed_dev_ida);
+ static DEFINE_SPINLOCK(unnamed_dev_lock);/* protects the above */
+-static int unnamed_dev_start = 0; /* don't bother trying below it */
++/* Many userspace utilities consider an FSID of 0 invalid.
++ * Always return at least 1 from get_anon_bdev.
++ */
++static int unnamed_dev_start = 1;
+
+ int get_anon_bdev(dev_t *p)
+ {
+--
+1.9.1
+
diff --git a/kernels/linux-libre-pae/0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch b/kernels/linux-libre-pae/0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch
deleted file mode 100644
index 5f2c3dae8..000000000
--- a/kernels/linux-libre-pae/0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 3396f92f8be606ea485b0a82d4e7749a448b013b Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton@redhat.com>
-Date: Thu, 5 Dec 2013 07:33:49 -0500
-Subject: [PATCH 4/6] rpc_pipe: remove the clntXX dir if creating the pipe
- fails
-
-In the event that we create the gssd/clntXX dir, but the pipe creation
-subsequently fails, then we should remove the clntXX dir before
-returning.
-
-Signed-off-by: Jeff Layton <jlayton@redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
----
- net/sunrpc/rpc_pipe.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
-index 5cd7ad1..0b74c61 100644
---- a/net/sunrpc/rpc_pipe.c
-+++ b/net/sunrpc/rpc_pipe.c
-@@ -1313,6 +1313,8 @@ rpc_gssd_dummy_populate(struct dentry *root, struct rpc_pipe *pipe_data)
- }
-
- pipe_dentry = rpc_mkpipe_dentry(clnt_dentry, "gssd", NULL, pipe_data);
-+ if (IS_ERR(pipe_dentry))
-+ __rpc_depopulate(gssd_dentry, gssd_dummy_clnt_dir, 0, 1);
- out:
- dput(clnt_dentry);
- dput(gssd_dentry);
---
-1.8.5.3
-
diff --git a/kernels/linux-libre-pae/0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch b/kernels/linux-libre-pae/0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch
new file mode 100644
index 000000000..c31441731
--- /dev/null
+++ b/kernels/linux-libre-pae/0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch
@@ -0,0 +1,33 @@
+From 71d4f3022d1f625d94187f7cda682d2233a692d8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org>
+Date: Thu, 3 Apr 2014 23:59:49 +0200
+Subject: [PATCH 5/7] Revert "Bluetooth: Enable autosuspend for Intel Bluetooth
+ device"
+
+This reverts commit d2bee8fb6e18f6116aada39851918473761f7ab1.
+
+USB autosuspend still breaks on some xhci controllers, so disable
+it by default as long as no solution is found.
+---
+ drivers/bluetooth/btusb.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
+index baeaaed..6d6e09e 100644
+--- a/drivers/bluetooth/btusb.c
++++ b/drivers/bluetooth/btusb.c
+@@ -1478,10 +1478,8 @@ static int btusb_probe(struct usb_interface *intf,
+ if (id->driver_info & BTUSB_BCM92035)
+ hdev->setup = btusb_setup_bcm92035;
+
+- if (id->driver_info & BTUSB_INTEL) {
+- usb_enable_autosuspend(data->udev);
++ if (id->driver_info & BTUSB_INTEL)
+ hdev->setup = btusb_setup_intel;
+- }
+
+ /* Interface numbers are hardcoded in the specification */
+ data->isoc = usb_ifnum_to_if(data->udev, 1);
+--
+1.9.1
+
diff --git a/kernels/linux-libre-pae/0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch b/kernels/linux-libre-pae/0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch
deleted file mode 100644
index 8ef6fe25c..000000000
--- a/kernels/linux-libre-pae/0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From e2f0c83a9de331d9352185ca3642616c13127539 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton@redhat.com>
-Date: Thu, 5 Dec 2013 07:34:44 -0500
-Subject: [PATCH 5/6] sunrpc: add an "info" file for the dummy gssd pipe
-
-rpc.gssd expects to see an "info" file in each clntXX dir. Since adding
-the dummy gssd pipe, users that run rpc.gssd see a lot of these messages
-spamming the logs:
-
- rpc.gssd[508]: ERROR: can't open /var/lib/nfs/rpc_pipefs/gssd/clntXX/info: No such file or directory
- rpc.gssd[508]: ERROR: failed to read service info
-
-Add a dummy gssd/clntXX/info file to help silence these messages.
-
-Signed-off-by: Jeff Layton <jlayton@redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
----
- net/sunrpc/rpc_pipe.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 49 insertions(+), 1 deletion(-)
-
-diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
-index 0b74c61..5d973b2 100644
---- a/net/sunrpc/rpc_pipe.c
-+++ b/net/sunrpc/rpc_pipe.c
-@@ -17,6 +17,7 @@
- #include <linux/fsnotify.h>
- #include <linux/kernel.h>
- #include <linux/rcupdate.h>
-+#include <linux/utsname.h>
-
- #include <asm/ioctls.h>
- #include <linux/poll.h>
-@@ -1275,6 +1276,44 @@ static const struct rpc_pipe_ops gssd_dummy_pipe_ops = {
- .downcall = dummy_downcall,
- };
-
-+/*
-+ * Here we present a bogus "info" file to keep rpc.gssd happy. We don't expect
-+ * that it will ever use this info to handle an upcall, but rpc.gssd expects
-+ * that this file will be there and have a certain format.
-+ */
-+static int
-+rpc_show_dummy_info(struct seq_file *m, void *v)
-+{
-+ seq_printf(m, "RPC server: %s\n", utsname()->nodename);
-+ seq_printf(m, "service: foo (1) version 0\n");
-+ seq_printf(m, "address: 127.0.0.1\n");
-+ seq_printf(m, "protocol: tcp\n");
-+ seq_printf(m, "port: 0\n");
-+ return 0;
-+}
-+
-+static int
-+rpc_dummy_info_open(struct inode *inode, struct file *file)
-+{
-+ return single_open(file, rpc_show_dummy_info, NULL);
-+}
-+
-+static const struct file_operations rpc_dummy_info_operations = {
-+ .owner = THIS_MODULE,
-+ .open = rpc_dummy_info_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+};
-+
-+static const struct rpc_filelist gssd_dummy_info_file[] = {
-+ [0] = {
-+ .name = "info",
-+ .i_fop = &rpc_dummy_info_operations,
-+ .mode = S_IFREG | S_IRUSR,
-+ },
-+};
-+
- /**
- * rpc_gssd_dummy_populate - create a dummy gssd pipe
- * @root: root of the rpc_pipefs filesystem
-@@ -1312,9 +1351,18 @@ rpc_gssd_dummy_populate(struct dentry *root, struct rpc_pipe *pipe_data)
- goto out;
- }
-
-+ ret = rpc_populate(clnt_dentry, gssd_dummy_info_file, 0, 1, NULL);
-+ if (ret) {
-+ __rpc_depopulate(gssd_dentry, gssd_dummy_clnt_dir, 0, 1);
-+ pipe_dentry = ERR_PTR(ret);
-+ goto out;
-+ }
-+
- pipe_dentry = rpc_mkpipe_dentry(clnt_dentry, "gssd", NULL, pipe_data);
-- if (IS_ERR(pipe_dentry))
-+ if (IS_ERR(pipe_dentry)) {
-+ __rpc_depopulate(clnt_dentry, gssd_dummy_info_file, 0, 1);
- __rpc_depopulate(gssd_dentry, gssd_dummy_clnt_dir, 0, 1);
-+ }
- out:
- dput(clnt_dentry);
- dput(gssd_dentry);
---
-1.8.5.3
-
diff --git a/kernels/linux-libre-pae/0006-genksyms-fix-typeof-handling.patch b/kernels/linux-libre-pae/0006-genksyms-fix-typeof-handling.patch
new file mode 100644
index 000000000..08b467a4c
--- /dev/null
+++ b/kernels/linux-libre-pae/0006-genksyms-fix-typeof-handling.patch
@@ -0,0 +1,1360 @@
+From 39a7f4024e3e7d54a3bb49dcb645b3d7af16354e Mon Sep 17 00:00:00 2001
+From: Jan Beulich <JBeulich@suse.com>
+Date: Thu, 3 Apr 2014 14:46:37 -0700
+Subject: [PATCH 6/7] genksyms: fix typeof() handling
+
+Recent increased use of typeof() throughout the tree resulted in a
+number of symbols (25 in a typical distro config of ours) not getting a
+proper CRC calculated for them anymore, due to the parser in genksyms
+not coping with several of these uses (interestingly in the majority of
+[if not all] cases the problem is due to the use of typeof() in code
+preceding a certain export, not in the declaration/definition of the
+exported function/object itself; I wasn't able to find a way to address
+this more general parser shortcoming).
+
+The use of parameter_declaration is a little more relaxed than would be
+ideal (permitting not just a bare type specification, but also one with
+identifier), but since the same code is being passed through an actual
+compiler, there's no apparent risk of allowing through any broken code.
+
+Otoh using parameter_declaration instead of the ad hoc
+"decl_specifier_seq '*'" / "decl_specifier_seq" pair allows all types to
+be handled rather than just plain ones and pointers to plain ones.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Cc: Michal Marek <mmarek@suse.cz>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+---
+ scripts/genksyms/keywords.gperf | 5 +-
+ scripts/genksyms/keywords.hash.c_shipped | 133 +++----
+ scripts/genksyms/lex.l | 51 ++-
+ scripts/genksyms/lex.lex.c_shipped | 51 ++-
+ scripts/genksyms/parse.tab.c_shipped | 608 ++++++++++++++++---------------
+ scripts/genksyms/parse.tab.h_shipped | 29 +-
+ scripts/genksyms/parse.y | 5 +-
+ 7 files changed, 498 insertions(+), 384 deletions(-)
+
+diff --git a/scripts/genksyms/keywords.gperf b/scripts/genksyms/keywords.gperf
+index 3e77a94..a9096d9 100644
+--- a/scripts/genksyms/keywords.gperf
++++ b/scripts/genksyms/keywords.gperf
+@@ -23,6 +23,8 @@ __inline, INLINE_KEYW
+ __inline__, INLINE_KEYW
+ __signed, SIGNED_KEYW
+ __signed__, SIGNED_KEYW
++__typeof, TYPEOF_KEYW
++__typeof__, TYPEOF_KEYW
+ __volatile, VOLATILE_KEYW
+ __volatile__, VOLATILE_KEYW
+ # According to rth, c99 defines _Bool, __restrict, __restrict__, restrict. KAO
+@@ -51,9 +53,8 @@ signed, SIGNED_KEYW
+ static, STATIC_KEYW
+ struct, STRUCT_KEYW
+ typedef, TYPEDEF_KEYW
++typeof, TYPEOF_KEYW
+ union, UNION_KEYW
+ unsigned, UNSIGNED_KEYW
+ void, VOID_KEYW
+ volatile, VOLATILE_KEYW
+-typeof, TYPEOF_KEYW
+-__typeof__, TYPEOF_KEYW
+diff --git a/scripts/genksyms/keywords.hash.c_shipped b/scripts/genksyms/keywords.hash.c_shipped
+index 8206260..e9452482 100644
+--- a/scripts/genksyms/keywords.hash.c_shipped
++++ b/scripts/genksyms/keywords.hash.c_shipped
+@@ -34,7 +34,7 @@ struct resword;
+ static const struct resword *is_reserved_word(register const char *str, register unsigned int len);
+ #line 8 "scripts/genksyms/keywords.gperf"
+ struct resword { const char *name; int token; };
+-/* maximum key range = 64, duplicates = 0 */
++/* maximum key range = 98, duplicates = 0 */
+
+ #ifdef __GNUC__
+ __inline
+@@ -48,32 +48,32 @@ is_reserved_hash (register const char *str, register unsigned int len)
+ {
+ static const unsigned char asso_values[] =
+ {
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 0,
+- 67, 67, 67, 67, 67, 67, 15, 67, 67, 67,
+- 0, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 0, 67, 0, 67, 5,
+- 25, 20, 15, 30, 67, 15, 67, 67, 10, 0,
+- 10, 40, 20, 67, 10, 5, 0, 10, 15, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 0,
++ 101, 101, 101, 101, 101, 101, 15, 101, 101, 101,
++ 0, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 0, 101, 0, 101, 5,
++ 25, 20, 55, 30, 101, 15, 101, 101, 10, 0,
++ 10, 40, 10, 101, 10, 5, 0, 10, 15, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101
+ };
+ return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]];
+ }
+@@ -89,17 +89,17 @@ is_reserved_word (register const char *str, register unsigned int len)
+ {
+ enum
+ {
+- TOTAL_KEYWORDS = 45,
++ TOTAL_KEYWORDS = 46,
+ MIN_WORD_LENGTH = 3,
+ MAX_WORD_LENGTH = 24,
+ MIN_HASH_VALUE = 3,
+- MAX_HASH_VALUE = 66
++ MAX_HASH_VALUE = 100
+ };
+
+ static const struct resword wordlist[] =
+ {
+ {""}, {""}, {""},
+-#line 33 "scripts/genksyms/keywords.gperf"
++#line 35 "scripts/genksyms/keywords.gperf"
+ {"asm", ASM_KEYW},
+ {""},
+ #line 15 "scripts/genksyms/keywords.gperf"
+@@ -108,7 +108,7 @@ is_reserved_word (register const char *str, register unsigned int len)
+ #line 16 "scripts/genksyms/keywords.gperf"
+ {"__asm__", ASM_KEYW},
+ {""}, {""},
+-#line 59 "scripts/genksyms/keywords.gperf"
++#line 27 "scripts/genksyms/keywords.gperf"
+ {"__typeof__", TYPEOF_KEYW},
+ {""},
+ #line 19 "scripts/genksyms/keywords.gperf"
+@@ -119,31 +119,31 @@ is_reserved_word (register const char *str, register unsigned int len)
+ {"__const__", CONST_KEYW},
+ #line 25 "scripts/genksyms/keywords.gperf"
+ {"__signed__", SIGNED_KEYW},
+-#line 51 "scripts/genksyms/keywords.gperf"
++#line 53 "scripts/genksyms/keywords.gperf"
+ {"static", STATIC_KEYW},
+ {""},
+-#line 46 "scripts/genksyms/keywords.gperf"
++#line 48 "scripts/genksyms/keywords.gperf"
+ {"int", INT_KEYW},
+-#line 39 "scripts/genksyms/keywords.gperf"
++#line 41 "scripts/genksyms/keywords.gperf"
+ {"char", CHAR_KEYW},
+-#line 40 "scripts/genksyms/keywords.gperf"
++#line 42 "scripts/genksyms/keywords.gperf"
+ {"const", CONST_KEYW},
+-#line 52 "scripts/genksyms/keywords.gperf"
++#line 54 "scripts/genksyms/keywords.gperf"
+ {"struct", STRUCT_KEYW},
+-#line 31 "scripts/genksyms/keywords.gperf"
++#line 33 "scripts/genksyms/keywords.gperf"
+ {"__restrict__", RESTRICT_KEYW},
+-#line 32 "scripts/genksyms/keywords.gperf"
++#line 34 "scripts/genksyms/keywords.gperf"
+ {"restrict", RESTRICT_KEYW},
+ #line 12 "scripts/genksyms/keywords.gperf"
+ {"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW},
+ #line 23 "scripts/genksyms/keywords.gperf"
+ {"__inline__", INLINE_KEYW},
+ {""},
+-#line 27 "scripts/genksyms/keywords.gperf"
++#line 29 "scripts/genksyms/keywords.gperf"
+ {"__volatile__", VOLATILE_KEYW},
+ #line 10 "scripts/genksyms/keywords.gperf"
+ {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
+-#line 30 "scripts/genksyms/keywords.gperf"
++#line 32 "scripts/genksyms/keywords.gperf"
+ {"_restrict", RESTRICT_KEYW},
+ {""},
+ #line 17 "scripts/genksyms/keywords.gperf"
+@@ -152,56 +152,65 @@ is_reserved_word (register const char *str, register unsigned int len)
+ {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
+ #line 21 "scripts/genksyms/keywords.gperf"
+ {"__extension__", EXTENSION_KEYW},
+-#line 42 "scripts/genksyms/keywords.gperf"
++#line 44 "scripts/genksyms/keywords.gperf"
+ {"enum", ENUM_KEYW},
+ #line 13 "scripts/genksyms/keywords.gperf"
+ {"EXPORT_UNUSED_SYMBOL", EXPORT_SYMBOL_KEYW},
+-#line 43 "scripts/genksyms/keywords.gperf"
++#line 45 "scripts/genksyms/keywords.gperf"
+ {"extern", EXTERN_KEYW},
+ {""},
+ #line 24 "scripts/genksyms/keywords.gperf"
+ {"__signed", SIGNED_KEYW},
+ #line 14 "scripts/genksyms/keywords.gperf"
+ {"EXPORT_UNUSED_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
+-#line 54 "scripts/genksyms/keywords.gperf"
++#line 57 "scripts/genksyms/keywords.gperf"
+ {"union", UNION_KEYW},
+-#line 58 "scripts/genksyms/keywords.gperf"
+- {"typeof", TYPEOF_KEYW},
+-#line 53 "scripts/genksyms/keywords.gperf"
+- {"typedef", TYPEDEF_KEYW},
++ {""}, {""},
+ #line 22 "scripts/genksyms/keywords.gperf"
+ {"__inline", INLINE_KEYW},
+-#line 38 "scripts/genksyms/keywords.gperf"
++#line 40 "scripts/genksyms/keywords.gperf"
+ {"auto", AUTO_KEYW},
+-#line 26 "scripts/genksyms/keywords.gperf"
++#line 28 "scripts/genksyms/keywords.gperf"
+ {"__volatile", VOLATILE_KEYW},
+ {""}, {""},
+-#line 55 "scripts/genksyms/keywords.gperf"
++#line 58 "scripts/genksyms/keywords.gperf"
+ {"unsigned", UNSIGNED_KEYW},
+ {""},
+-#line 49 "scripts/genksyms/keywords.gperf"
++#line 51 "scripts/genksyms/keywords.gperf"
+ {"short", SHORT_KEYW},
+-#line 45 "scripts/genksyms/keywords.gperf"
++#line 47 "scripts/genksyms/keywords.gperf"
+ {"inline", INLINE_KEYW},
+ {""},
+-#line 57 "scripts/genksyms/keywords.gperf"
++#line 60 "scripts/genksyms/keywords.gperf"
+ {"volatile", VOLATILE_KEYW},
+-#line 47 "scripts/genksyms/keywords.gperf"
++#line 49 "scripts/genksyms/keywords.gperf"
+ {"long", LONG_KEYW},
+-#line 29 "scripts/genksyms/keywords.gperf"
++#line 31 "scripts/genksyms/keywords.gperf"
+ {"_Bool", BOOL_KEYW},
+ {""}, {""},
+-#line 48 "scripts/genksyms/keywords.gperf"
++#line 50 "scripts/genksyms/keywords.gperf"
+ {"register", REGISTER_KEYW},
+-#line 56 "scripts/genksyms/keywords.gperf"
++#line 59 "scripts/genksyms/keywords.gperf"
+ {"void", VOID_KEYW},
+-#line 44 "scripts/genksyms/keywords.gperf"
+- {"float", FLOAT_KEYW},
+-#line 41 "scripts/genksyms/keywords.gperf"
++ {""},
++#line 43 "scripts/genksyms/keywords.gperf"
+ {"double", DOUBLE_KEYW},
++ {""},
++#line 26 "scripts/genksyms/keywords.gperf"
++ {"__typeof", TYPEOF_KEYW},
++ {""}, {""},
++#line 52 "scripts/genksyms/keywords.gperf"
++ {"signed", SIGNED_KEYW},
+ {""}, {""}, {""}, {""},
+-#line 50 "scripts/genksyms/keywords.gperf"
+- {"signed", SIGNED_KEYW}
++#line 56 "scripts/genksyms/keywords.gperf"
++ {"typeof", TYPEOF_KEYW},
++#line 55 "scripts/genksyms/keywords.gperf"
++ {"typedef", TYPEDEF_KEYW},
++ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
++ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
++ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
++#line 46 "scripts/genksyms/keywords.gperf"
++ {"float", FLOAT_KEYW}
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+diff --git a/scripts/genksyms/lex.l b/scripts/genksyms/lex.l
+index f770071..e583565 100644
+--- a/scripts/genksyms/lex.l
++++ b/scripts/genksyms/lex.l
+@@ -129,8 +129,9 @@ int
+ yylex(void)
+ {
+ static enum {
+- ST_NOTSTARTED, ST_NORMAL, ST_ATTRIBUTE, ST_ASM, ST_BRACKET, ST_BRACE,
+- ST_EXPRESSION, ST_TABLE_1, ST_TABLE_2, ST_TABLE_3, ST_TABLE_4,
++ ST_NOTSTARTED, ST_NORMAL, ST_ATTRIBUTE, ST_ASM, ST_TYPEOF, ST_TYPEOF_1,
++ ST_BRACKET, ST_BRACE, ST_EXPRESSION,
++ ST_TABLE_1, ST_TABLE_2, ST_TABLE_3, ST_TABLE_4,
+ ST_TABLE_5, ST_TABLE_6
+ } lexstate = ST_NOTSTARTED;
+
+@@ -198,6 +199,10 @@ repeat:
+ lexstate = ST_ASM;
+ count = 0;
+ goto repeat;
++ case TYPEOF_KEYW:
++ lexstate = ST_TYPEOF;
++ count = 0;
++ goto repeat;
+
+ case STRUCT_KEYW:
+ case UNION_KEYW:
+@@ -284,6 +289,48 @@ repeat:
+ }
+ break;
+
++ case ST_TYPEOF:
++ switch (token)
++ {
++ case '(':
++ if ( ++count == 1 )
++ lexstate = ST_TYPEOF_1;
++ else
++ APP;
++ goto repeat;
++ case ')':
++ APP;
++ if (--count == 0)
++ {
++ lexstate = ST_NORMAL;
++ token = TYPEOF_PHRASE;
++ break;
++ }
++ goto repeat;
++ default:
++ APP;
++ goto repeat;
++ }
++ break;
++
++ case ST_TYPEOF_1:
++ if (token == IDENT)
++ {
++ if (is_reserved_word(yytext, yyleng)
++ || find_symbol(yytext, SYM_TYPEDEF, 1))
++ {
++ yyless(0);
++ unput('(');
++ lexstate = ST_NORMAL;
++ token = TYPEOF_KEYW;
++ break;
++ }
++ _APP("(", 1);
++ }
++ APP;
++ lexstate = ST_TYPEOF;
++ goto repeat;
++
+ case ST_BRACKET:
+ APP;
+ switch (token)
+diff --git a/scripts/genksyms/lex.lex.c_shipped b/scripts/genksyms/lex.lex.c_shipped
+index 0bf4157..f82740a 100644
+--- a/scripts/genksyms/lex.lex.c_shipped
++++ b/scripts/genksyms/lex.lex.c_shipped
+@@ -1938,8 +1938,9 @@ int
+ yylex(void)
+ {
+ static enum {
+- ST_NOTSTARTED, ST_NORMAL, ST_ATTRIBUTE, ST_ASM, ST_BRACKET, ST_BRACE,
+- ST_EXPRESSION, ST_TABLE_1, ST_TABLE_2, ST_TABLE_3, ST_TABLE_4,
++ ST_NOTSTARTED, ST_NORMAL, ST_ATTRIBUTE, ST_ASM, ST_TYPEOF, ST_TYPEOF_1,
++ ST_BRACKET, ST_BRACE, ST_EXPRESSION,
++ ST_TABLE_1, ST_TABLE_2, ST_TABLE_3, ST_TABLE_4,
+ ST_TABLE_5, ST_TABLE_6
+ } lexstate = ST_NOTSTARTED;
+
+@@ -2007,6 +2008,10 @@ repeat:
+ lexstate = ST_ASM;
+ count = 0;
+ goto repeat;
++ case TYPEOF_KEYW:
++ lexstate = ST_TYPEOF;
++ count = 0;
++ goto repeat;
+
+ case STRUCT_KEYW:
+ case UNION_KEYW:
+@@ -2093,6 +2098,48 @@ repeat:
+ }
+ break;
+
++ case ST_TYPEOF:
++ switch (token)
++ {
++ case '(':
++ if ( ++count == 1 )
++ lexstate = ST_TYPEOF_1;
++ else
++ APP;
++ goto repeat;
++ case ')':
++ APP;
++ if (--count == 0)
++ {
++ lexstate = ST_NORMAL;
++ token = TYPEOF_PHRASE;
++ break;
++ }
++ goto repeat;
++ default:
++ APP;
++ goto repeat;
++ }
++ break;
++
++ case ST_TYPEOF_1:
++ if (token == IDENT)
++ {
++ if (is_reserved_word(yytext, yyleng)
++ || find_symbol(yytext, SYM_TYPEDEF, 1))
++ {
++ yyless(0);
++ unput('(');
++ lexstate = ST_NORMAL;
++ token = TYPEOF_KEYW;
++ break;
++ }
++ _APP("(", 1);
++ }
++ APP;
++ lexstate = ST_TYPEOF;
++ goto repeat;
++
+ case ST_BRACKET:
+ APP;
+ switch (token)
+diff --git a/scripts/genksyms/parse.tab.c_shipped b/scripts/genksyms/parse.tab.c_shipped
+index ece53c7..c9f0f0ce 100644
+--- a/scripts/genksyms/parse.tab.c_shipped
++++ b/scripts/genksyms/parse.tab.c_shipped
+@@ -1,8 +1,8 @@
+-/* A Bison parser, made by GNU Bison 2.5. */
++/* A Bison parser, made by GNU Bison 2.5.1. */
+
+ /* Bison implementation for Yacc-like parsers in C
+
+- Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
++ Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -44,7 +44,7 @@
+ #define YYBISON 1
+
+ /* Bison version. */
+-#define YYBISON_VERSION "2.5"
++#define YYBISON_VERSION "2.5.1"
+
+ /* Skeleton name. */
+ #define YYSKELETON_NAME "yacc.c"
+@@ -117,6 +117,14 @@ static void record_compound(struct string_list **keyw,
+
+
+
++# ifndef YY_NULL
++# if defined __cplusplus && 201103L <= __cplusplus
++# define YY_NULL nullptr
++# else
++# define YY_NULL 0
++# endif
++# endif
++
+ /* Enabling traces. */
+ #ifndef YYDEBUG
+ # define YYDEBUG 1
+@@ -171,18 +179,19 @@ static void record_compound(struct string_list **keyw,
+ EXPORT_SYMBOL_KEYW = 284,
+ ASM_PHRASE = 285,
+ ATTRIBUTE_PHRASE = 286,
+- BRACE_PHRASE = 287,
+- BRACKET_PHRASE = 288,
+- EXPRESSION_PHRASE = 289,
+- CHAR = 290,
+- DOTS = 291,
+- IDENT = 292,
+- INT = 293,
+- REAL = 294,
+- STRING = 295,
+- TYPE = 296,
+- OTHER = 297,
+- FILENAME = 298
++ TYPEOF_PHRASE = 287,
++ BRACE_PHRASE = 288,
++ BRACKET_PHRASE = 289,
++ EXPRESSION_PHRASE = 290,
++ CHAR = 291,
++ DOTS = 292,
++ IDENT = 293,
++ INT = 294,
++ REAL = 295,
++ STRING = 296,
++ TYPE = 297,
++ OTHER = 298,
++ FILENAME = 299
+ };
+ #endif
+
+@@ -304,6 +313,7 @@ YYID (yyi)
+ # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+ # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++ /* Use EXIT_SUCCESS as a witness for stdlib.h. */
+ # ifndef EXIT_SUCCESS
+ # define EXIT_SUCCESS 0
+ # endif
+@@ -395,20 +405,20 @@ union yyalloc
+ #endif
+
+ #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+-/* Copy COUNT objects from FROM to TO. The source and destination do
++/* Copy COUNT objects from SRC to DST. The source and destination do
+ not overlap. */
+ # ifndef YYCOPY
+ # if defined __GNUC__ && 1 < __GNUC__
+-# define YYCOPY(To, From, Count) \
+- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
++# define YYCOPY(Dst, Src, Count) \
++ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
+ # else
+-# define YYCOPY(To, From, Count) \
+- do \
+- { \
+- YYSIZE_T yyi; \
+- for (yyi = 0; yyi < (Count); yyi++) \
+- (To)[yyi] = (From)[yyi]; \
+- } \
++# define YYCOPY(Dst, Src, Count) \
++ do \
++ { \
++ YYSIZE_T yyi; \
++ for (yyi = 0; yyi < (Count); yyi++) \
++ (Dst)[yyi] = (Src)[yyi]; \
++ } \
+ while (YYID (0))
+ # endif
+ # endif
+@@ -417,20 +427,20 @@ union yyalloc
+ /* YYFINAL -- State number of the termination state. */
+ #define YYFINAL 4
+ /* YYLAST -- Last index in YYTABLE. */
+-#define YYLAST 532
++#define YYLAST 514
+
+ /* YYNTOKENS -- Number of terminals. */
+-#define YYNTOKENS 53
++#define YYNTOKENS 54
+ /* YYNNTS -- Number of nonterminals. */
+ #define YYNNTS 49
+ /* YYNRULES -- Number of rules. */
+ #define YYNRULES 132
+ /* YYNRULES -- Number of states. */
+-#define YYNSTATES 188
++#define YYNSTATES 187
+
+ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+ #define YYUNDEFTOK 2
+-#define YYMAXUTOK 298
++#define YYMAXUTOK 299
+
+ #define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+@@ -442,15 +452,15 @@ static const yytype_uint8 yytranslate[] =
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+- 47, 49, 48, 2, 46, 2, 2, 2, 2, 2,
+- 2, 2, 2, 2, 2, 2, 2, 2, 52, 44,
+- 2, 50, 2, 2, 2, 2, 2, 2, 2, 2,
++ 48, 49, 50, 2, 47, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 53, 45,
++ 2, 51, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+- 2, 2, 2, 51, 2, 45, 2, 2, 2, 2,
++ 2, 2, 2, 52, 2, 46, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+@@ -467,7 +477,7 @@ static const yytype_uint8 yytranslate[] =
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+- 35, 36, 37, 38, 39, 40, 41, 42, 43
++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44
+ };
+
+ #if YYDEBUG
+@@ -478,78 +488,77 @@ static const yytype_uint16 yyprhs[] =
+ 0, 0, 3, 5, 8, 9, 12, 13, 18, 19,
+ 23, 25, 27, 29, 31, 34, 37, 41, 42, 44,
+ 46, 50, 55, 56, 58, 60, 63, 65, 67, 69,
+- 71, 73, 75, 77, 79, 81, 87, 92, 95, 98,
+- 101, 105, 109, 113, 116, 119, 122, 124, 126, 128,
+- 130, 132, 134, 136, 138, 140, 142, 144, 147, 148,
+- 150, 152, 155, 157, 159, 161, 163, 166, 168, 170,
+- 175, 180, 183, 187, 191, 194, 196, 198, 200, 205,
+- 210, 213, 217, 221, 224, 226, 230, 231, 233, 235,
+- 239, 242, 245, 247, 248, 250, 252, 257, 262, 265,
+- 269, 273, 277, 278, 280, 283, 287, 291, 292, 294,
+- 296, 299, 303, 306, 307, 309, 311, 315, 318, 321,
+- 323, 326, 327, 330, 334, 339, 341, 345, 347, 351,
+- 354, 355, 357
++ 71, 73, 75, 77, 79, 81, 86, 88, 91, 94,
++ 97, 101, 105, 109, 112, 115, 118, 120, 122, 124,
++ 126, 128, 130, 132, 134, 136, 138, 140, 143, 144,
++ 146, 148, 151, 153, 155, 157, 159, 162, 164, 166,
++ 171, 176, 179, 183, 187, 190, 192, 194, 196, 201,
++ 206, 209, 213, 217, 220, 222, 226, 227, 229, 231,
++ 235, 238, 241, 243, 244, 246, 248, 253, 258, 261,
++ 265, 269, 273, 274, 276, 279, 283, 287, 288, 290,
++ 292, 295, 299, 302, 303, 305, 307, 311, 314, 317,
++ 319, 322, 323, 326, 330, 335, 337, 341, 343, 347,
++ 350, 351, 353
+ };
+
+ /* YYRHS -- A `-1'-separated list of the rules' RHS. */
+ static const yytype_int8 yyrhs[] =
+ {
+- 54, 0, -1, 55, -1, 54, 55, -1, -1, 56,
+- 57, -1, -1, 12, 23, 58, 60, -1, -1, 23,
+- 59, 60, -1, 60, -1, 84, -1, 99, -1, 101,
+- -1, 1, 44, -1, 1, 45, -1, 64, 61, 44,
+- -1, -1, 62, -1, 63, -1, 62, 46, 63, -1,
+- 74, 100, 95, 85, -1, -1, 65, -1, 66, -1,
+- 65, 66, -1, 67, -1, 68, -1, 5, -1, 17,
+- -1, 21, -1, 11, -1, 14, -1, 69, -1, 73,
+- -1, 28, 47, 65, 48, 49, -1, 28, 47, 65,
+- 49, -1, 22, 37, -1, 24, 37, -1, 10, 37,
+- -1, 22, 37, 87, -1, 24, 37, 87, -1, 10,
+- 37, 96, -1, 10, 96, -1, 22, 87, -1, 24,
+- 87, -1, 7, -1, 19, -1, 15, -1, 16, -1,
+- 20, -1, 25, -1, 13, -1, 9, -1, 26, -1,
+- 6, -1, 41, -1, 48, 71, -1, -1, 72, -1,
+- 73, -1, 72, 73, -1, 8, -1, 27, -1, 31,
+- -1, 18, -1, 70, 74, -1, 75, -1, 37, -1,
+- 75, 47, 78, 49, -1, 75, 47, 1, 49, -1,
+- 75, 33, -1, 47, 74, 49, -1, 47, 1, 49,
+- -1, 70, 76, -1, 77, -1, 37, -1, 41, -1,
+- 77, 47, 78, 49, -1, 77, 47, 1, 49, -1,
+- 77, 33, -1, 47, 76, 49, -1, 47, 1, 49,
+- -1, 79, 36, -1, 79, -1, 80, 46, 36, -1,
+- -1, 80, -1, 81, -1, 80, 46, 81, -1, 65,
+- 82, -1, 70, 82, -1, 83, -1, -1, 37, -1,
+- 41, -1, 83, 47, 78, 49, -1, 83, 47, 1,
+- 49, -1, 83, 33, -1, 47, 82, 49, -1, 47,
+- 1, 49, -1, 64, 74, 32, -1, -1, 86, -1,
+- 50, 34, -1, 51, 88, 45, -1, 51, 1, 45,
+- -1, -1, 89, -1, 90, -1, 89, 90, -1, 64,
+- 91, 44, -1, 1, 44, -1, -1, 92, -1, 93,
+- -1, 92, 46, 93, -1, 76, 95, -1, 37, 94,
+- -1, 94, -1, 52, 34, -1, -1, 95, 31, -1,
+- 51, 97, 45, -1, 51, 97, 46, 45, -1, 98,
+- -1, 97, 46, 98, -1, 37, -1, 37, 50, 34,
+- -1, 30, 44, -1, -1, 30, -1, 29, 47, 37,
+- 49, 44, -1
++ 55, 0, -1, 56, -1, 55, 56, -1, -1, 57,
++ 58, -1, -1, 12, 23, 59, 61, -1, -1, 23,
++ 60, 61, -1, 61, -1, 85, -1, 100, -1, 102,
++ -1, 1, 45, -1, 1, 46, -1, 65, 62, 45,
++ -1, -1, 63, -1, 64, -1, 63, 47, 64, -1,
++ 75, 101, 96, 86, -1, -1, 66, -1, 67, -1,
++ 66, 67, -1, 68, -1, 69, -1, 5, -1, 17,
++ -1, 21, -1, 11, -1, 14, -1, 70, -1, 74,
++ -1, 28, 48, 82, 49, -1, 32, -1, 22, 38,
++ -1, 24, 38, -1, 10, 38, -1, 22, 38, 88,
++ -1, 24, 38, 88, -1, 10, 38, 97, -1, 10,
++ 97, -1, 22, 88, -1, 24, 88, -1, 7, -1,
++ 19, -1, 15, -1, 16, -1, 20, -1, 25, -1,
++ 13, -1, 9, -1, 26, -1, 6, -1, 42, -1,
++ 50, 72, -1, -1, 73, -1, 74, -1, 73, 74,
++ -1, 8, -1, 27, -1, 31, -1, 18, -1, 71,
++ 75, -1, 76, -1, 38, -1, 76, 48, 79, 49,
++ -1, 76, 48, 1, 49, -1, 76, 34, -1, 48,
++ 75, 49, -1, 48, 1, 49, -1, 71, 77, -1,
++ 78, -1, 38, -1, 42, -1, 78, 48, 79, 49,
++ -1, 78, 48, 1, 49, -1, 78, 34, -1, 48,
++ 77, 49, -1, 48, 1, 49, -1, 80, 37, -1,
++ 80, -1, 81, 47, 37, -1, -1, 81, -1, 82,
++ -1, 81, 47, 82, -1, 66, 83, -1, 71, 83,
++ -1, 84, -1, -1, 38, -1, 42, -1, 84, 48,
++ 79, 49, -1, 84, 48, 1, 49, -1, 84, 34,
++ -1, 48, 83, 49, -1, 48, 1, 49, -1, 65,
++ 75, 33, -1, -1, 87, -1, 51, 35, -1, 52,
++ 89, 46, -1, 52, 1, 46, -1, -1, 90, -1,
++ 91, -1, 90, 91, -1, 65, 92, 45, -1, 1,
++ 45, -1, -1, 93, -1, 94, -1, 93, 47, 94,
++ -1, 77, 96, -1, 38, 95, -1, 95, -1, 53,
++ 35, -1, -1, 96, 31, -1, 52, 98, 46, -1,
++ 52, 98, 47, 46, -1, 99, -1, 98, 47, 99,
++ -1, 38, -1, 38, 51, 35, -1, 30, 45, -1,
++ -1, 30, -1, 29, 48, 38, 49, 45, -1
+ };
+
+ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+ static const yytype_uint16 yyrline[] =
+ {
+- 0, 123, 123, 124, 128, 128, 134, 134, 136, 136,
+- 138, 139, 140, 141, 142, 143, 147, 161, 162, 166,
+- 174, 187, 193, 194, 198, 199, 203, 209, 213, 214,
+- 215, 216, 217, 221, 222, 223, 224, 228, 230, 232,
+- 236, 238, 240, 245, 248, 249, 253, 254, 255, 256,
+- 257, 258, 259, 260, 261, 262, 263, 267, 272, 273,
+- 277, 278, 282, 282, 282, 283, 291, 292, 296, 305,
+- 307, 309, 311, 313, 320, 321, 325, 326, 327, 329,
+- 331, 333, 335, 340, 341, 342, 346, 347, 351, 352,
+- 357, 362, 364, 368, 369, 377, 381, 383, 385, 387,
+- 389, 394, 403, 404, 409, 414, 415, 419, 420, 424,
+- 425, 429, 431, 436, 437, 441, 442, 446, 447, 448,
+- 452, 456, 457, 461, 462, 466, 467, 470, 475, 483,
+- 487, 488, 492
++ 0, 124, 124, 125, 129, 129, 135, 135, 137, 137,
++ 139, 140, 141, 142, 143, 144, 148, 162, 163, 167,
++ 175, 188, 194, 195, 199, 200, 204, 210, 214, 215,
++ 216, 217, 218, 222, 223, 224, 225, 229, 231, 233,
++ 237, 239, 241, 246, 249, 250, 254, 255, 256, 257,
++ 258, 259, 260, 261, 262, 263, 264, 268, 273, 274,
++ 278, 279, 283, 283, 283, 284, 292, 293, 297, 306,
++ 308, 310, 312, 314, 321, 322, 326, 327, 328, 330,
++ 332, 334, 336, 341, 342, 343, 347, 348, 352, 353,
++ 358, 363, 365, 369, 370, 378, 382, 384, 386, 388,
++ 390, 395, 404, 405, 410, 415, 416, 420, 421, 425,
++ 426, 430, 432, 437, 438, 442, 443, 447, 448, 449,
++ 453, 457, 458, 462, 463, 467, 468, 471, 476, 484,
++ 488, 489, 493
+ };
+ #endif
+
+@@ -565,9 +574,9 @@ static const char *const yytname[] =
+ "SHORT_KEYW", "SIGNED_KEYW", "STATIC_KEYW", "STRUCT_KEYW",
+ "TYPEDEF_KEYW", "UNION_KEYW", "UNSIGNED_KEYW", "VOID_KEYW",
+ "VOLATILE_KEYW", "TYPEOF_KEYW", "EXPORT_SYMBOL_KEYW", "ASM_PHRASE",
+- "ATTRIBUTE_PHRASE", "BRACE_PHRASE", "BRACKET_PHRASE",
++ "ATTRIBUTE_PHRASE", "TYPEOF_PHRASE", "BRACE_PHRASE", "BRACKET_PHRASE",
+ "EXPRESSION_PHRASE", "CHAR", "DOTS", "IDENT", "INT", "REAL", "STRING",
+- "TYPE", "OTHER", "FILENAME", "';'", "'}'", "','", "'('", "'*'", "')'",
++ "TYPE", "OTHER", "FILENAME", "';'", "'}'", "','", "'('", "')'", "'*'",
+ "'='", "'{'", "':'", "$accept", "declaration_seq", "declaration", "$@1",
+ "declaration1", "$@2", "$@3", "simple_declaration",
+ "init_declarator_list_opt", "init_declarator_list", "init_declarator",
+@@ -584,7 +593,7 @@ static const char *const yytname[] =
+ "member_declarator_list_opt", "member_declarator_list",
+ "member_declarator", "member_bitfield_declarator", "attribute_opt",
+ "enum_body", "enumerator_list", "enumerator", "asm_definition",
+- "asm_phrase_opt", "export_definition", 0
++ "asm_phrase_opt", "export_definition", YY_NULL
+ };
+ #endif
+
+@@ -597,28 +606,28 @@ static const yytype_uint16 yytoknum[] =
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+- 295, 296, 297, 298, 59, 125, 44, 40, 42, 41,
+- 61, 123, 58
++ 295, 296, 297, 298, 299, 59, 125, 44, 40, 41,
++ 42, 61, 123, 58
+ };
+ # endif
+
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+ static const yytype_uint8 yyr1[] =
+ {
+- 0, 53, 54, 54, 56, 55, 58, 57, 59, 57,
+- 57, 57, 57, 57, 57, 57, 60, 61, 61, 62,
+- 62, 63, 64, 64, 65, 65, 66, 66, 67, 67,
+- 67, 67, 67, 68, 68, 68, 68, 68, 68, 68,
+- 68, 68, 68, 68, 68, 68, 69, 69, 69, 69,
+- 69, 69, 69, 69, 69, 69, 69, 70, 71, 71,
+- 72, 72, 73, 73, 73, 73, 74, 74, 75, 75,
+- 75, 75, 75, 75, 76, 76, 77, 77, 77, 77,
+- 77, 77, 77, 78, 78, 78, 79, 79, 80, 80,
+- 81, 82, 82, 83, 83, 83, 83, 83, 83, 83,
+- 83, 84, 85, 85, 86, 87, 87, 88, 88, 89,
+- 89, 90, 90, 91, 91, 92, 92, 93, 93, 93,
+- 94, 95, 95, 96, 96, 97, 97, 98, 98, 99,
+- 100, 100, 101
++ 0, 54, 55, 55, 57, 56, 59, 58, 60, 58,
++ 58, 58, 58, 58, 58, 58, 61, 62, 62, 63,
++ 63, 64, 65, 65, 66, 66, 67, 67, 68, 68,
++ 68, 68, 68, 69, 69, 69, 69, 69, 69, 69,
++ 69, 69, 69, 69, 69, 69, 70, 70, 70, 70,
++ 70, 70, 70, 70, 70, 70, 70, 71, 72, 72,
++ 73, 73, 74, 74, 74, 74, 75, 75, 76, 76,
++ 76, 76, 76, 76, 77, 77, 78, 78, 78, 78,
++ 78, 78, 78, 79, 79, 79, 80, 80, 81, 81,
++ 82, 83, 83, 84, 84, 84, 84, 84, 84, 84,
++ 84, 85, 86, 86, 87, 88, 88, 89, 89, 90,
++ 90, 91, 91, 92, 92, 93, 93, 94, 94, 94,
++ 95, 96, 96, 97, 97, 98, 98, 99, 99, 100,
++ 101, 101, 102
+ };
+
+ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+@@ -627,7 +636,7 @@ static const yytype_uint8 yyr2[] =
+ 0, 2, 1, 2, 0, 2, 0, 4, 0, 3,
+ 1, 1, 1, 1, 2, 2, 3, 0, 1, 1,
+ 3, 4, 0, 1, 1, 2, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 5, 4, 2, 2, 2,
++ 1, 1, 1, 1, 1, 4, 1, 2, 2, 2,
+ 3, 3, 3, 2, 2, 2, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 2, 0, 1,
+ 1, 2, 1, 1, 1, 1, 2, 1, 1, 4,
+@@ -648,68 +657,68 @@ static const yytype_uint8 yydefact[] =
+ 4, 4, 2, 0, 1, 3, 0, 28, 55, 46,
+ 62, 53, 0, 31, 0, 52, 32, 48, 49, 29,
+ 65, 47, 50, 30, 0, 8, 0, 51, 54, 63,
+- 0, 0, 0, 64, 56, 5, 10, 17, 23, 24,
+- 26, 27, 33, 34, 11, 12, 13, 14, 15, 39,
+- 0, 43, 6, 37, 0, 44, 22, 38, 45, 0,
+- 0, 129, 68, 0, 58, 0, 18, 19, 0, 130,
+- 67, 25, 42, 127, 0, 125, 22, 40, 0, 113,
+- 0, 0, 109, 9, 17, 41, 0, 0, 0, 0,
+- 57, 59, 60, 16, 0, 66, 131, 101, 121, 71,
+- 0, 0, 123, 0, 7, 112, 106, 76, 77, 0,
+- 0, 0, 121, 75, 0, 114, 115, 119, 105, 0,
+- 110, 130, 0, 36, 0, 73, 72, 61, 20, 102,
+- 0, 93, 0, 84, 87, 88, 128, 124, 126, 118,
+- 0, 76, 0, 120, 74, 117, 80, 0, 111, 0,
+- 35, 132, 122, 0, 21, 103, 70, 94, 56, 0,
+- 93, 90, 92, 69, 83, 0, 82, 81, 0, 0,
+- 116, 104, 0, 95, 0, 91, 98, 0, 85, 89,
+- 79, 78, 100, 99, 0, 0, 97, 96
++ 0, 0, 0, 64, 36, 56, 5, 10, 17, 23,
++ 24, 26, 27, 33, 34, 11, 12, 13, 14, 15,
++ 39, 0, 43, 6, 37, 0, 44, 22, 38, 45,
++ 0, 0, 129, 68, 0, 58, 0, 18, 19, 0,
++ 130, 67, 25, 42, 127, 0, 125, 22, 40, 0,
++ 113, 0, 0, 109, 9, 17, 41, 93, 0, 0,
++ 0, 0, 57, 59, 60, 16, 0, 66, 131, 101,
++ 121, 71, 0, 0, 123, 0, 7, 112, 106, 76,
++ 77, 0, 0, 0, 121, 75, 0, 114, 115, 119,
++ 105, 0, 110, 130, 94, 56, 0, 93, 90, 92,
++ 35, 0, 73, 72, 61, 20, 102, 0, 0, 84,
++ 87, 88, 128, 124, 126, 118, 0, 76, 0, 120,
++ 74, 117, 80, 0, 111, 0, 0, 95, 0, 91,
++ 98, 0, 132, 122, 0, 21, 103, 70, 69, 83,
++ 0, 82, 81, 0, 0, 116, 100, 99, 0, 0,
++ 104, 85, 89, 79, 78, 97, 96
+ };
+
+ /* YYDEFGOTO[NTERM-NUM]. */
+ static const yytype_int16 yydefgoto[] =
+ {
+- -1, 1, 2, 3, 35, 76, 56, 36, 65, 66,
+- 67, 79, 38, 39, 40, 41, 42, 68, 90, 91,
+- 43, 121, 70, 112, 113, 132, 133, 134, 135, 161,
+- 162, 44, 154, 155, 55, 80, 81, 82, 114, 115,
+- 116, 117, 129, 51, 74, 75, 45, 98, 46
++ -1, 1, 2, 3, 36, 77, 57, 37, 66, 67,
++ 68, 80, 39, 40, 41, 42, 43, 69, 92, 93,
++ 44, 123, 71, 114, 115, 138, 139, 140, 141, 128,
++ 129, 45, 165, 166, 56, 81, 82, 83, 116, 117,
++ 118, 119, 136, 52, 75, 76, 46, 100, 47
+ };
+
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+-#define YYPACT_NINF -135
++#define YYPACT_NINF -140
+ static const yytype_int16 yypact[] =
+ {
+- -135, 20, -135, 321, -135, -135, 30, -135, -135, -135,
+- -135, -135, -28, -135, 2, -135, -135, -135, -135, -135,
+- -135, -135, -135, -135, -6, -135, 9, -135, -135, -135,
+- -5, 15, -17, -135, -135, -135, -135, 18, 491, -135,
+- -135, -135, -135, -135, -135, -135, -135, -135, -135, -22,
+- 31, -135, -135, 19, 106, -135, 491, 19, -135, 491,
+- 50, -135, -135, 11, -3, 51, 57, -135, 18, -14,
+- 14, -135, -135, 48, 46, -135, 491, -135, 33, 32,
+- 59, 154, -135, -135, 18, -135, 365, 56, 60, 61,
+- -135, -3, -135, -135, 18, -135, -135, -135, -135, -135,
+- 202, 74, -135, -23, -135, -135, -135, 77, -135, 16,
+- 101, 49, -135, 34, 92, 93, -135, -135, -135, 94,
+- -135, 110, 95, -135, 97, -135, -135, -135, -135, -20,
+- 96, 410, 99, 113, 100, -135, -135, -135, -135, -135,
+- 103, -135, 107, -135, -135, 111, -135, 239, -135, 32,
+- -135, -135, -135, 123, -135, -135, -135, -135, -135, 3,
+- 52, -135, 38, -135, -135, 454, -135, -135, 117, 128,
+- -135, -135, 134, -135, 135, -135, -135, 276, -135, -135,
+- -135, -135, -135, -135, 137, 138, -135, -135
++ -140, 29, -140, 207, -140, -140, 40, -140, -140, -140,
++ -140, -140, -27, -140, 44, -140, -140, -140, -140, -140,
++ -140, -140, -140, -140, -22, -140, -18, -140, -140, -140,
++ -9, 22, 28, -140, -140, -140, -140, -140, 42, 472,
++ -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
++ 46, 43, -140, -140, 47, 107, -140, 472, 47, -140,
++ 472, 62, -140, -140, 16, -3, 57, 56, -140, 42,
++ 35, -11, -140, -140, 53, 48, -140, 472, -140, 51,
++ 21, 59, 157, -140, -140, 42, -140, 388, 58, 60,
++ 70, 81, -140, -3, -140, -140, 42, -140, -140, -140,
++ -140, -140, 253, 71, -140, -20, -140, -140, -140, 83,
++ -140, 5, 102, 34, -140, 12, 95, 94, -140, -140,
++ -140, 97, -140, 113, -140, -140, 2, 41, -140, 27,
++ -140, 99, -140, -140, -140, -140, -24, 98, 101, 109,
++ 104, -140, -140, -140, -140, -140, 105, -140, 110, -140,
++ -140, 117, -140, 298, -140, 21, 112, -140, 120, -140,
++ -140, 343, -140, -140, 121, -140, -140, -140, -140, -140,
++ 434, -140, -140, 131, 137, -140, -140, -140, 138, 141,
++ -140, -140, -140, -140, -140, -140, -140
+ };
+
+ /* YYPGOTO[NTERM-NUM]. */
+ static const yytype_int16 yypgoto[] =
+ {
+- -135, -135, 187, -135, -135, -135, -135, -50, -135, -135,
+- 98, 0, -59, -37, -135, -135, -135, -77, -135, -135,
+- -54, -30, -135, -90, -135, -134, -135, -135, 24, -58,
+- -135, -135, -135, -135, -18, -135, -135, 109, -135, -135,
+- 44, 87, 84, 148, -135, 102, -135, -135, -135
++ -140, -140, 190, -140, -140, -140, -140, -45, -140, -140,
++ 96, 1, -60, -31, -140, -140, -140, -78, -140, -140,
++ -55, -7, -140, -92, -140, -139, -140, -140, -59, -39,
++ -140, -140, -140, -140, -13, -140, -140, 111, -140, -140,
++ 39, 87, 84, 147, -140, 106, -140, -140, -140
+ };
+
+ /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+@@ -718,149 +727,145 @@ static const yytype_int16 yypgoto[] =
+ #define YYTABLE_NINF -109
+ static const yytype_int16 yytable[] =
+ {
+- 86, 71, 111, 37, 172, 10, 83, 69, 58, 49,
+- 92, 152, 88, 169, 73, 20, 96, 140, 97, 142,
+- 4, 144, 137, 50, 29, 52, 104, 61, 33, 50,
+- 153, 53, 111, 89, 111, 77, -93, 127, 95, 85,
+- 157, 131, 59, 185, 173, 54, 57, 99, 62, 71,
+- 159, 64, -93, 141, 160, 62, 84, 108, 63, 64,
+- 54, 100, 60, 109, 64, 63, 64, 146, 73, 107,
+- 54, 176, 111, 108, 47, 48, 84, 105, 106, 109,
+- 64, 147, 160, 160, 110, 177, 141, 87, 131, 157,
+- 108, 102, 103, 173, 71, 93, 109, 64, 101, 159,
+- 64, 174, 175, 94, 118, 124, 131, 78, 136, 125,
+- 126, 7, 8, 9, 10, 11, 12, 13, 131, 15,
+- 16, 17, 18, 19, 20, 21, 22, 23, 24, 110,
+- 26, 27, 28, 29, 30, 143, 148, 33, 105, 149,
+- 96, 151, 152, -22, 150, 156, 165, 34, 163, 164,
+- -22, -107, 166, -22, -22, 119, 167, 171, -22, 7,
+- 8, 9, 10, 11, 12, 13, 180, 15, 16, 17,
+- 18, 19, 20, 21, 22, 23, 24, 181, 26, 27,
+- 28, 29, 30, 182, 183, 33, 186, 187, 5, 179,
+- 120, -22, 128, 170, 139, 34, 145, 72, -22, -108,
+- 0, -22, -22, 130, 0, 138, -22, 7, 8, 9,
+- 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
+- 20, 21, 22, 23, 24, 0, 26, 27, 28, 29,
+- 30, 0, 0, 33, 0, 0, 0, 0, -86, 0,
+- 168, 0, 0, 34, 7, 8, 9, 10, 11, 12,
+- 13, -86, 15, 16, 17, 18, 19, 20, 21, 22,
+- 23, 24, 0, 26, 27, 28, 29, 30, 0, 0,
+- 33, 0, 0, 0, 0, -86, 0, 184, 0, 0,
+- 34, 7, 8, 9, 10, 11, 12, 13, -86, 15,
+- 16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
+- 26, 27, 28, 29, 30, 0, 0, 33, 0, 0,
+- 0, 0, -86, 0, 0, 0, 0, 34, 0, 0,
+- 0, 0, 6, 0, 0, -86, 7, 8, 9, 10,
+- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+- 31, 32, 33, 0, 0, 0, 0, 0, -22, 0,
+- 0, 0, 34, 0, 0, -22, 0, 0, -22, -22,
+- 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
+- 17, 18, 19, 20, 21, 22, 23, 24, 0, 26,
+- 27, 28, 29, 30, 0, 0, 33, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 34, 0, 0, 0,
+- 0, 0, 0, 122, 123, 7, 8, 9, 10, 11,
+- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+- 22, 23, 24, 0, 26, 27, 28, 29, 30, 0,
+- 0, 33, 0, 0, 0, 0, 0, 157, 0, 0,
+- 0, 158, 0, 0, 0, 0, 0, 159, 64, 7,
++ 87, 88, 113, 156, 38, 10, 146, 163, 72, 127,
++ 94, 50, 84, 59, 174, 20, 54, 90, 74, 148,
++ 58, 150, 179, 101, 29, 51, 143, 164, 33, 4,
++ 55, 70, 106, 113, 55, 113, -93, 102, 134, 60,
++ 124, 78, 87, 147, 157, 86, 152, 110, 127, 127,
++ 126, -93, 65, 111, 63, 65, 72, 91, 85, 109,
++ 153, 160, 97, 110, 64, 98, 65, 53, 99, 111,
++ 61, 65, 147, 62, 112, 161, 110, 113, 85, 124,
++ 63, 74, 111, 157, 65, 48, 49, 158, 159, 126,
++ 64, 65, 65, 87, 104, 105, 107, 108, 51, 55,
++ 89, 87, 95, 96, 103, 120, 142, 130, 79, 131,
++ 87, 182, 7, 8, 9, 10, 11, 12, 13, 132,
++ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
++ 133, 26, 27, 28, 29, 30, 112, 149, 33, 34,
++ 154, 155, 107, 98, 162, -22, 169, 167, 163, 35,
++ 168, 170, -22, -107, 171, -22, 180, -22, 121, 172,
++ -22, 176, 7, 8, 9, 10, 11, 12, 13, 177,
++ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
++ 183, 26, 27, 28, 29, 30, 184, 185, 33, 34,
++ 186, 5, 135, 122, 175, -22, 145, 73, 151, 35,
++ 0, 0, -22, -108, 0, -22, 0, -22, 6, 0,
++ -22, 144, 7, 8, 9, 10, 11, 12, 13, 14,
++ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
++ 0, 0, 0, 0, 0, -22, 0, 0, 0, 35,
++ 0, 0, -22, 0, 137, -22, 0, -22, 7, 8,
++ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
++ 19, 20, 21, 22, 23, 24, 0, 26, 27, 28,
++ 29, 30, 0, 0, 33, 34, 0, 0, 0, 0,
++ -86, 0, 0, 0, 0, 35, 0, 0, 0, 173,
++ 0, 0, -86, 7, 8, 9, 10, 11, 12, 13,
++ 0, 15, 16, 17, 18, 19, 20, 21, 22, 23,
++ 24, 0, 26, 27, 28, 29, 30, 0, 0, 33,
++ 34, 0, 0, 0, 0, -86, 0, 0, 0, 0,
++ 35, 0, 0, 0, 178, 0, 0, -86, 7, 8,
++ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
++ 19, 20, 21, 22, 23, 24, 0, 26, 27, 28,
++ 29, 30, 0, 0, 33, 34, 0, 0, 0, 0,
++ -86, 0, 0, 0, 0, 35, 0, 0, 0, 0,
++ 0, 0, -86, 7, 8, 9, 10, 11, 12, 13,
++ 0, 15, 16, 17, 18, 19, 20, 21, 22, 23,
++ 24, 0, 26, 27, 28, 29, 30, 0, 0, 33,
++ 34, 0, 0, 0, 0, 0, 124, 0, 0, 0,
++ 125, 0, 0, 0, 0, 0, 126, 0, 65, 7,
+ 8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 0, 26, 27,
+- 28, 29, 30, 0, 0, 33, 0, 0, 0, 0,
+- 178, 0, 0, 0, 0, 34, 7, 8, 9, 10,
+- 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
+- 21, 22, 23, 24, 0, 26, 27, 28, 29, 30,
+- 0, 0, 33, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 34
++ 28, 29, 30, 0, 0, 33, 34, 0, 0, 0,
++ 0, 181, 0, 0, 0, 0, 35, 7, 8, 9,
++ 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
++ 20, 21, 22, 23, 24, 0, 26, 27, 28, 29,
++ 30, 0, 0, 33, 34, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 35
+ };
+
+ #define yypact_value_is_default(yystate) \
+- ((yystate) == (-135))
++ ((yystate) == (-140))
+
+ #define yytable_value_is_error(yytable_value) \
+ YYID (0)
+
+ static const yytype_int16 yycheck[] =
+ {
+- 59, 38, 79, 3, 1, 8, 56, 37, 26, 37,
+- 64, 31, 1, 147, 37, 18, 30, 1, 32, 109,
+- 0, 111, 45, 51, 27, 23, 76, 44, 31, 51,
+- 50, 37, 109, 63, 111, 53, 33, 91, 68, 57,
+- 37, 100, 47, 177, 41, 51, 37, 33, 37, 86,
+- 47, 48, 49, 37, 131, 37, 56, 41, 47, 48,
+- 51, 47, 47, 47, 48, 47, 48, 33, 37, 37,
+- 51, 33, 149, 41, 44, 45, 76, 44, 45, 47,
+- 48, 47, 159, 160, 52, 47, 37, 37, 147, 37,
+- 41, 45, 46, 41, 131, 44, 47, 48, 50, 47,
+- 48, 159, 160, 46, 45, 49, 165, 1, 34, 49,
+- 49, 5, 6, 7, 8, 9, 10, 11, 177, 13,
+- 14, 15, 16, 17, 18, 19, 20, 21, 22, 52,
+- 24, 25, 26, 27, 28, 34, 44, 31, 44, 46,
+- 30, 44, 31, 37, 49, 49, 46, 41, 49, 36,
+- 44, 45, 49, 47, 48, 1, 49, 34, 52, 5,
+- 6, 7, 8, 9, 10, 11, 49, 13, 14, 15,
+- 16, 17, 18, 19, 20, 21, 22, 49, 24, 25,
+- 26, 27, 28, 49, 49, 31, 49, 49, 1, 165,
+- 81, 37, 94, 149, 107, 41, 112, 49, 44, 45,
+- -1, 47, 48, 1, -1, 103, 52, 5, 6, 7,
+- 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
+- 18, 19, 20, 21, 22, -1, 24, 25, 26, 27,
+- 28, -1, -1, 31, -1, -1, -1, -1, 36, -1,
+- 1, -1, -1, 41, 5, 6, 7, 8, 9, 10,
+- 11, 49, 13, 14, 15, 16, 17, 18, 19, 20,
+- 21, 22, -1, 24, 25, 26, 27, 28, -1, -1,
+- 31, -1, -1, -1, -1, 36, -1, 1, -1, -1,
+- 41, 5, 6, 7, 8, 9, 10, 11, 49, 13,
+- 14, 15, 16, 17, 18, 19, 20, 21, 22, -1,
+- 24, 25, 26, 27, 28, -1, -1, 31, -1, -1,
+- -1, -1, 36, -1, -1, -1, -1, 41, -1, -1,
+- -1, -1, 1, -1, -1, 49, 5, 6, 7, 8,
+- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+- 29, 30, 31, -1, -1, -1, -1, -1, 37, -1,
+- -1, -1, 41, -1, -1, 44, -1, -1, 47, 48,
+- 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
+- 15, 16, 17, 18, 19, 20, 21, 22, -1, 24,
+- 25, 26, 27, 28, -1, -1, 31, -1, -1, -1,
+- -1, -1, -1, -1, -1, -1, 41, -1, -1, -1,
+- -1, -1, -1, 48, 49, 5, 6, 7, 8, 9,
+- 10, 11, -1, 13, 14, 15, 16, 17, 18, 19,
+- 20, 21, 22, -1, 24, 25, 26, 27, 28, -1,
+- -1, 31, -1, -1, -1, -1, -1, 37, -1, -1,
+- -1, 41, -1, -1, -1, -1, -1, 47, 48, 5,
++ 60, 60, 80, 1, 3, 8, 1, 31, 39, 87,
++ 65, 38, 57, 26, 153, 18, 38, 1, 38, 111,
++ 38, 113, 161, 34, 27, 52, 46, 51, 31, 0,
++ 52, 38, 77, 111, 52, 113, 34, 48, 93, 48,
++ 38, 54, 102, 38, 42, 58, 34, 42, 126, 127,
++ 48, 49, 50, 48, 38, 50, 87, 64, 57, 38,
++ 48, 34, 69, 42, 48, 30, 50, 23, 33, 48,
++ 48, 50, 38, 45, 53, 48, 42, 155, 77, 38,
++ 38, 38, 48, 42, 50, 45, 46, 126, 127, 48,
++ 48, 50, 50, 153, 46, 47, 45, 46, 52, 52,
++ 38, 161, 45, 47, 51, 46, 35, 49, 1, 49,
++ 170, 170, 5, 6, 7, 8, 9, 10, 11, 49,
++ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
++ 49, 24, 25, 26, 27, 28, 53, 35, 31, 32,
++ 45, 47, 45, 30, 45, 38, 37, 49, 31, 42,
++ 49, 47, 45, 46, 49, 48, 35, 50, 1, 49,
++ 53, 49, 5, 6, 7, 8, 9, 10, 11, 49,
++ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
++ 49, 24, 25, 26, 27, 28, 49, 49, 31, 32,
++ 49, 1, 96, 82, 155, 38, 109, 50, 114, 42,
++ -1, -1, 45, 46, -1, 48, -1, 50, 1, -1,
++ 53, 105, 5, 6, 7, 8, 9, 10, 11, 12,
++ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
++ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
++ -1, -1, -1, -1, -1, 38, -1, -1, -1, 42,
++ -1, -1, 45, -1, 1, 48, -1, 50, 5, 6,
++ 7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
++ 17, 18, 19, 20, 21, 22, -1, 24, 25, 26,
++ 27, 28, -1, -1, 31, 32, -1, -1, -1, -1,
++ 37, -1, -1, -1, -1, 42, -1, -1, -1, 1,
++ -1, -1, 49, 5, 6, 7, 8, 9, 10, 11,
++ -1, 13, 14, 15, 16, 17, 18, 19, 20, 21,
++ 22, -1, 24, 25, 26, 27, 28, -1, -1, 31,
++ 32, -1, -1, -1, -1, 37, -1, -1, -1, -1,
++ 42, -1, -1, -1, 1, -1, -1, 49, 5, 6,
++ 7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
++ 17, 18, 19, 20, 21, 22, -1, 24, 25, 26,
++ 27, 28, -1, -1, 31, 32, -1, -1, -1, -1,
++ 37, -1, -1, -1, -1, 42, -1, -1, -1, -1,
++ -1, -1, 49, 5, 6, 7, 8, 9, 10, 11,
++ -1, 13, 14, 15, 16, 17, 18, 19, 20, 21,
++ 22, -1, 24, 25, 26, 27, 28, -1, -1, 31,
++ 32, -1, -1, -1, -1, -1, 38, -1, -1, -1,
++ 42, -1, -1, -1, -1, -1, 48, -1, 50, 5,
+ 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, -1, 24, 25,
+- 26, 27, 28, -1, -1, 31, -1, -1, -1, -1,
+- 36, -1, -1, -1, -1, 41, 5, 6, 7, 8,
+- 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
+- 19, 20, 21, 22, -1, 24, 25, 26, 27, 28,
+- -1, -1, 31, -1, -1, -1, -1, -1, -1, -1,
+- -1, -1, 41
++ 26, 27, 28, -1, -1, 31, 32, -1, -1, -1,
++ -1, 37, -1, -1, -1, -1, 42, 5, 6, 7,
++ 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
++ 18, 19, 20, 21, 22, -1, 24, 25, 26, 27,
++ 28, -1, -1, 31, 32, -1, -1, -1, -1, -1,
++ -1, -1, -1, -1, 42
+ };
+
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+ static const yytype_uint8 yystos[] =
+ {
+- 0, 54, 55, 56, 0, 55, 1, 5, 6, 7,
++ 0, 55, 56, 57, 0, 56, 1, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+- 28, 29, 30, 31, 41, 57, 60, 64, 65, 66,
+- 67, 68, 69, 73, 84, 99, 101, 44, 45, 37,
+- 51, 96, 23, 37, 51, 87, 59, 37, 87, 47,
+- 47, 44, 37, 47, 48, 61, 62, 63, 70, 74,
+- 75, 66, 96, 37, 97, 98, 58, 87, 1, 64,
+- 88, 89, 90, 60, 64, 87, 65, 37, 1, 74,
+- 71, 72, 73, 44, 46, 74, 30, 32, 100, 33,
+- 47, 50, 45, 46, 60, 44, 45, 37, 41, 47,
+- 52, 70, 76, 77, 91, 92, 93, 94, 45, 1,
+- 90, 74, 48, 49, 49, 49, 49, 73, 63, 95,
+- 1, 65, 78, 79, 80, 81, 34, 45, 98, 94,
+- 1, 37, 76, 34, 76, 95, 33, 47, 44, 46,
+- 49, 44, 31, 50, 85, 86, 49, 37, 41, 47,
+- 70, 82, 83, 49, 36, 46, 49, 49, 1, 78,
+- 93, 34, 1, 41, 82, 82, 33, 47, 36, 81,
+- 49, 49, 49, 49, 1, 78, 49, 49
++ 28, 29, 30, 31, 32, 42, 58, 61, 65, 66,
++ 67, 68, 69, 70, 74, 85, 100, 102, 45, 46,
++ 38, 52, 97, 23, 38, 52, 88, 60, 38, 88,
++ 48, 48, 45, 38, 48, 50, 62, 63, 64, 71,
++ 75, 76, 67, 97, 38, 98, 99, 59, 88, 1,
++ 65, 89, 90, 91, 61, 65, 88, 66, 82, 38,
++ 1, 75, 72, 73, 74, 45, 47, 75, 30, 33,
++ 101, 34, 48, 51, 46, 47, 61, 45, 46, 38,
++ 42, 48, 53, 71, 77, 78, 92, 93, 94, 95,
++ 46, 1, 91, 75, 38, 42, 48, 71, 83, 84,
++ 49, 49, 49, 49, 74, 64, 96, 1, 79, 80,
++ 81, 82, 35, 46, 99, 95, 1, 38, 77, 35,
++ 77, 96, 34, 48, 45, 47, 1, 42, 83, 83,
++ 34, 48, 45, 31, 51, 86, 87, 49, 49, 37,
++ 47, 49, 49, 1, 79, 94, 49, 49, 1, 79,
++ 35, 37, 82, 49, 49, 49, 49
+ };
+
+ #define yyerrok (yyerrstatus = 0)
+@@ -890,17 +895,18 @@ static const yytype_uint8 yystos[] =
+
+ #define YYRECOVERING() (!!yyerrstatus)
+
+-#define YYBACKUP(Token, Value) \
+-do \
+- if (yychar == YYEMPTY && yylen == 1) \
+- { \
+- yychar = (Token); \
+- yylval = (Value); \
+- YYPOPSTACK (1); \
+- goto yybackup; \
+- } \
+- else \
+- { \
++#define YYBACKUP(Token, Value) \
++do \
++ if (yychar == YYEMPTY) \
++ { \
++ yychar = (Token); \
++ yylval = (Value); \
++ YYPOPSTACK (yylen); \
++ yystate = *yyssp; \
++ goto yybackup; \
++ } \
++ else \
++ { \
+ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+@@ -995,6 +1001,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+ YYSTYPE const * const yyvaluep;
+ #endif
+ {
++ FILE *yyo = yyoutput;
++ YYUSE (yyo);
+ if (!yyvaluep)
+ return;
+ # ifdef YYPRINT
+@@ -1246,12 +1254,12 @@ static int
+ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ yytype_int16 *yyssp, int yytoken)
+ {
+- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
++ YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ /* Internationalized format string. */
+- const char *yyformat = 0;
++ const char *yyformat = YY_NULL;
+ /* Arguments of yyformat. */
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ /* Number of reported tokens (one for the "unexpected", one per
+@@ -1311,7 +1319,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
++ yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+@@ -1463,7 +1471,7 @@ yyparse ()
+ `yyss': related to states.
+ `yyvs': related to semantic values.
+
+- Refer to the stacks thru separate pointers, to allow yyoverflow
++ Refer to the stacks through separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+@@ -2346,7 +2354,7 @@ yyabortlab:
+ yyresult = 1;
+ goto yyreturn;
+
+-#if !defined(yyoverflow) || YYERROR_VERBOSE
++#if !defined yyoverflow || YYERROR_VERBOSE
+ /*-------------------------------------------------.
+ | yyexhaustedlab -- memory exhaustion comes here. |
+ `-------------------------------------------------*/
+diff --git a/scripts/genksyms/parse.tab.h_shipped b/scripts/genksyms/parse.tab.h_shipped
+index 93240a3..a4737de 100644
+--- a/scripts/genksyms/parse.tab.h_shipped
++++ b/scripts/genksyms/parse.tab.h_shipped
+@@ -1,8 +1,8 @@
+-/* A Bison parser, made by GNU Bison 2.5. */
++/* A Bison parser, made by GNU Bison 2.5.1. */
+
+ /* Bison interface for Yacc-like parsers in C
+
+- Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
++ Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -66,18 +66,19 @@
+ EXPORT_SYMBOL_KEYW = 284,
+ ASM_PHRASE = 285,
+ ATTRIBUTE_PHRASE = 286,
+- BRACE_PHRASE = 287,
+- BRACKET_PHRASE = 288,
+- EXPRESSION_PHRASE = 289,
+- CHAR = 290,
+- DOTS = 291,
+- IDENT = 292,
+- INT = 293,
+- REAL = 294,
+- STRING = 295,
+- TYPE = 296,
+- OTHER = 297,
+- FILENAME = 298
++ TYPEOF_PHRASE = 287,
++ BRACE_PHRASE = 288,
++ BRACKET_PHRASE = 289,
++ EXPRESSION_PHRASE = 290,
++ CHAR = 291,
++ DOTS = 292,
++ IDENT = 293,
++ INT = 294,
++ REAL = 295,
++ STRING = 296,
++ TYPE = 297,
++ OTHER = 298,
++ FILENAME = 299
+ };
+ #endif
+
+diff --git a/scripts/genksyms/parse.y b/scripts/genksyms/parse.y
+index 23c3999..b9f4cf2 100644
+--- a/scripts/genksyms/parse.y
++++ b/scripts/genksyms/parse.y
+@@ -103,6 +103,7 @@ static void record_compound(struct string_list **keyw,
+
+ %token ASM_PHRASE
+ %token ATTRIBUTE_PHRASE
++%token TYPEOF_PHRASE
+ %token BRACE_PHRASE
+ %token BRACKET_PHRASE
+ %token EXPRESSION_PHRASE
+@@ -220,8 +221,8 @@ storage_class_specifier:
+ type_specifier:
+ simple_type_specifier
+ | cvar_qualifier
+- | TYPEOF_KEYW '(' decl_specifier_seq '*' ')'
+- | TYPEOF_KEYW '(' decl_specifier_seq ')'
++ | TYPEOF_KEYW '(' parameter_declaration ')'
++ | TYPEOF_PHRASE
+
+ /* References to s/u/e's defined elsewhere. Rearrange things
+ so that it is easier to expand the definition fully later. */
+--
+1.9.1
+
diff --git a/kernels/linux-libre-pae/0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch b/kernels/linux-libre-pae/0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch
deleted file mode 100644
index 75505c30d..000000000
--- a/kernels/linux-libre-pae/0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 23e66ba97127ff3b064d4c6c5138aa34eafc492f Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton@redhat.com>
-Date: Mon, 9 Dec 2013 09:38:00 -0500
-Subject: [PATCH 6/6] rpc_pipe: fix cleanup of dummy gssd directory when
- notification fails
-
-Currently, it could leak dentry references in some cases. Make sure
-we clean up properly.
-
-Signed-off-by: Jeff Layton <jlayton@redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
----
- net/sunrpc/rpc_pipe.c | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
-index 5d973b2..b185548 100644
---- a/net/sunrpc/rpc_pipe.c
-+++ b/net/sunrpc/rpc_pipe.c
-@@ -1369,6 +1369,18 @@ out:
- return pipe_dentry;
- }
-
-+static void
-+rpc_gssd_dummy_depopulate(struct dentry *pipe_dentry)
-+{
-+ struct dentry *clnt_dir = pipe_dentry->d_parent;
-+ struct dentry *gssd_dir = clnt_dir->d_parent;
-+
-+ __rpc_rmpipe(clnt_dir->d_inode, pipe_dentry);
-+ __rpc_depopulate(clnt_dir, gssd_dummy_info_file, 0, 1);
-+ __rpc_depopulate(gssd_dir, gssd_dummy_clnt_dir, 0, 1);
-+ dput(pipe_dentry);
-+}
-+
- static int
- rpc_fill_super(struct super_block *sb, void *data, int silent)
- {
-@@ -1412,7 +1424,7 @@ rpc_fill_super(struct super_block *sb, void *data, int silent)
- return 0;
-
- err_depopulate:
-- dput(gssd_dentry);
-+ rpc_gssd_dummy_depopulate(gssd_dentry);
- blocking_notifier_call_chain(&rpc_pipefs_notifier_list,
- RPC_PIPEFS_UMOUNT,
- sb);
---
-1.8.5.3
-
diff --git a/kernels/linux-libre-pae/0007-Fix-the-use-of-code32_start-in-the-EFI-boot-stub.patch b/kernels/linux-libre-pae/0007-Fix-the-use-of-code32_start-in-the-EFI-boot-stub.patch
new file mode 100644
index 000000000..8cf776842
--- /dev/null
+++ b/kernels/linux-libre-pae/0007-Fix-the-use-of-code32_start-in-the-EFI-boot-stub.patch
@@ -0,0 +1,96 @@
+From ec8ec8362c46fd86571204d0fcce11c03477e5c5 Mon Sep 17 00:00:00 2001
+From: Matt Fleming <matt@console-pimps.org>
+Date: Wed, 9 Apr 2014 10:33:49 +0200
+Subject: [PATCH 7/7] Fix the use of code32_start in the EFI boot stub
+
+---
+ arch/x86/boot/compressed/eboot.c | 5 +++--
+ arch/x86/boot/compressed/head_32.S | 14 ++++++++------
+ arch/x86/boot/compressed/head_64.S | 9 +++------
+ 3 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
+index a7677ba..78cbb2d 100644
+--- a/arch/x86/boot/compressed/eboot.c
++++ b/arch/x86/boot/compressed/eboot.c
+@@ -425,6 +425,9 @@ void setup_graphics(struct boot_params *boot_params)
+ * Because the x86 boot code expects to be passed a boot_params we
+ * need to create one ourselves (usually the bootloader would create
+ * one for us).
++ *
++ * The caller is responsible for filling out ->code32_start in the
++ * returned boot_params.
+ */
+ struct boot_params *make_boot_params(void *handle, efi_system_table_t *_table)
+ {
+@@ -483,8 +486,6 @@ struct boot_params *make_boot_params(void *handle, efi_system_table_t *_table)
+ hdr->vid_mode = 0xffff;
+ hdr->boot_flag = 0xAA55;
+
+- hdr->code32_start = (__u64)(unsigned long)image->image_base;
+-
+ hdr->type_of_loader = 0x21;
+
+ /* Convert unicode cmdline to ascii */
+diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
+index 9116aac..f45ab7a 100644
+--- a/arch/x86/boot/compressed/head_32.S
++++ b/arch/x86/boot/compressed/head_32.S
+@@ -50,6 +50,13 @@ ENTRY(efi_pe_entry)
+ pushl %eax
+ pushl %esi
+ pushl %ecx
++
++ call reloc
++reloc:
++ popl %ecx
++ subl reloc, %ecx
++ movl %ecx, BP_code32_start(%eax)
++
+ sub $0x4, %esp
+
+ ENTRY(efi_stub_entry)
+@@ -63,12 +70,7 @@ ENTRY(efi_stub_entry)
+ hlt
+ jmp 1b
+ 2:
+- call 3f
+-3:
+- popl %eax
+- subl $3b, %eax
+- subl BP_pref_address(%esi), %eax
+- add BP_code32_start(%esi), %eax
++ movl BP_code32_start(%esi), %eax
+ leal preferred_addr(%eax), %eax
+ jmp *%eax
+
+diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
+index c5c1ae0..b10fa66 100644
+--- a/arch/x86/boot/compressed/head_64.S
++++ b/arch/x86/boot/compressed/head_64.S
+@@ -217,6 +217,8 @@ ENTRY(efi_pe_entry)
+ cmpq $0,%rax
+ je 1f
+ mov %rax, %rdx
++ leaq startup_32(%rip), %rax
++ movl %eax, BP_code32_start(%rdx)
+ popq %rsi
+ popq %rdi
+
+@@ -230,12 +232,7 @@ ENTRY(efi_stub_entry)
+ hlt
+ jmp 1b
+ 2:
+- call 3f
+-3:
+- popq %rax
+- subq $3b, %rax
+- subq BP_pref_address(%rsi), %rax
+- add BP_code32_start(%esi), %eax
++ movl BP_code32_start(%esi), %eax
+ leaq preferred_addr(%rax), %rax
+ jmp *%rax
+
+--
+1.9.1
+
diff --git a/kernels/linux-libre-pae/PKGBUILD b/kernels/linux-libre-pae/PKGBUILD
index c137926dc..4a6cf6215 100644
--- a/kernels/linux-libre-pae/PKGBUILD
+++ b/kernels/linux-libre-pae/PKGBUILD
@@ -1,52 +1,46 @@
-# $Id: PKGBUILD 208695 2014-03-25 06:57:17Z thomas $
+# $Id: PKGBUILD 210090 2014-04-09 19:24:57Z thomas $
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Thomas Baechler <thomas@archlinux.org>
# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
pkgbase=linux-libre-pae # Build stock -LIBRE-PAE kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
-_basekernel=3.13
-pkgver=${_basekernel}.8
-pkgrel=1
+_basekernel=3.14
+#pkgver=${_basekernel}.8
+pkgver=${_basekernel}
+pkgrel=4
arch=('i686')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc')
options=('!strip')
source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gnu/linux-libre-${_basekernel}-gnu.tar.xz"
- "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basekernel}-gnu-${pkgver}-gnu.xz"
+ #"http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basekernel}-gnu-${pkgver}-gnu.xz"
# the main kernel config files
'config'
# standard config files for mkinitcpio ramdisk
"${pkgbase}.preset"
'boot-logo.patch'
'change-default-console-loglevel.patch'
- 'criu-no-expert.patch'
- '0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch'
- '0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch'
- '0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch'
- '0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch'
- '0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch'
- '0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch'
- '0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch'
'0001-Bluetooth-allocate-static-minor-for-vhci.patch'
- 'i8042-fix-aliases.patch')
-md5sums=('98a8e803e0ed08557f3cdd4d56b0ddc1'
- '29f02a5130dd5556f68208fa91ffe611'
- '904835a7af0bc5e88007a94cad7c1d9c'
- 'f302c931bd85309da9d9792b4cc96467'
- '44260d2cb1a8b51c119d2ce1f83e457a'
- '98beb36f9b8cf16e58de2483ea9985e3'
- '989dc54ff8b179b0f80333cc97c0d43f'
- 'dd2adb99cd3feed6f11022562901965c'
- 'b00cc399d3797cb0793e18b5bf387a50'
- '7cbd2349cdf046acc37b652c06ba36be'
- '10dbaf863e22b2437e68f9190d65c861'
- 'd5907a721b97299f0685c583499f7820'
- 'a724515b350b29c53f20e631c6cf9a14'
- 'e6fa278c092ad83780e2dd0568e24ca6'
- '06f1751777e0772c18c3fa4fbae91aa5'
- '93dbf73af819b77f03453a9c6de2bb47')
+ '0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch'
+ '0003-module-remove-MODULE_GENERIC_TABLE.patch'
+ '0004-fs-Don-t-return-0-from-get_anon_bdev.patch'
+ '0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch'
+ '0006-genksyms-fix-typeof-handling.patch'
+ '0007-Fix-the-use-of-code32_start-in-the-EFI-boot-stub.patch')
+sha256sums=('477555c709b9407fe37dbd70d3331ff9dde1f9d874aba2741f138d07ae6f281b'
+ 'd1aa49780d3d76291dfe04d79b5b0bd9246ce101dcb7a0f6818a96c28d9d0e8e'
+ '292d5c553f87246c8dc2d57cadfd2db92a3750173b4588d53c2919743171eca5'
+ '8303b426b1a6dce456b2350003558ae312d21cab0ae6c1f0d7b9d21395f4e177'
+ 'faced4eb4c47c4eb1a9ee8a5bf8a7c4b49d6b4d78efbe426e410730e6267d182'
+ 'aa17aa9a5c663552ea047b9d2a9a916207bed361bd387418c122f6611ee576a6'
+ '48c459a2a14e8f161b79943e9ea405c4e98cd5abdab62749c4e9d65e5735382a'
+ 'f15a6831736e4c0b8b355fd7887445e770500d439cb851623ea300cc50ba4d97'
+ '4b9aed8d0b7c2389d9413caa2152e6591200630c19dda8224d43eae7d863a0d6'
+ 'e0666f75eabc2bbfa668cb35ee72dfbad48e5963828a444fbb50388048a8cd3c'
+ 'd2c449d346ae52724d36c3224bd06fcae7775b0698a9096eb89eeaa6dbc092e5'
+ '5a175c698cfdbf942f712afeda2a6af3f4e63a742ec6b6dc3a64bc6a7fb685bb')
_kernelname=${pkgbase#linux-libre}
_localversionname=-LIBRE-PAE
@@ -69,33 +63,29 @@ prepare() {
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"
- # allow Checkpoint/restore (for criu) without EXPERT=y
- patch -p1 -i "${srcdir}/criu-no-expert.patch"
+ # Fix vhci warning in kmod (to restore every kernel maintainer's sanity)
+ patch -p1 -i "${srcdir}/0001-Bluetooth-allocate-static-minor-for-vhci.patch"
- # fix 15 seconds nfs delay
- # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=4b9a445e3eeb8bd9278b1ae51c1b3a651e370cd6
- patch -p1 -i "${srcdir}/0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch"
- # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=89f842435c630f8426f414e6030bc2ffea0d6f81
- patch -p1 -i "${srcdir}/0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch"
- # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=6aa23d76a7b549521a03b63b6d5b7880ea87eab7
- patch -p1 -i "${srcdir}/0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch"
+ # Fix atkbd aliases
+ patch -p1 -i "${srcdir}/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch"
+ patch -p1 -i "${srcdir}/0003-module-remove-MODULE_GENERIC_TABLE.patch"
- # fix nfs kernel oops
- # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=3396f92f8be606ea485b0a82d4e7749a448b013b
- patch -p1 -i "${srcdir}/0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch"
- # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=e2f0c83a9de331d9352185ca3642616c13127539
- patch -p1 -i "${srcdir}/0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch"
- # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=23e66ba97127ff3b064d4c6c5138aa34eafc492f
- patch -p1 -i "${srcdir}/0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch"
+ # Fix various bugs caused by rootfs having FSID 0
+ # See http://www.spinics.net/lists/kernel/msg1716924.html
+ patch -p1 -i "${srcdir}/0004-fs-Don-t-return-0-from-get_anon_bdev.patch"
- # Fix symbols: Revert http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=83460ec8dcac14142e7860a01fa59c267ac4657c
- patch -Rp1 -i "${srcdir}/0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch"
+ # Disable usb autosuspend for intel btusb
+ # See http://www.spinics.net/lists/kernel/msg1716461.html
+ # Until a solution is found, make sure the driver leaves autosuspend alone
+ patch -p1 -i "${srcdir}/0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch"
- # Fix i8042 aliases
- patch -p1 -i "${srcdir}/i8042-fix-aliases.patch"
+ # Fix generation of symbol CRCs
+ # http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dc53324060f324e8af6867f57bf4891c13c6ef18
+ patch -p1 -i "${srcdir}/0006-genksyms-fix-typeof-handling.patch"
- # Fix vhci warning in kmod (to restore every kernel maintainer's sanity)
- patch -p1 -i "${srcdir}/0001-Bluetooth-allocate-static-minor-for-vhci.patch"
+ # Fix the use of code32_start in the EFI boot stub
+ # http://permalink.gmane.org/gmane.linux.kernel/1679881
+ patch -p1 -i "${srcdir}/0007-Fix-the-use-of-code32_start-in-the-EFI-boot-stub.patch"
cat "${srcdir}/config" > ./.config # simpler
@@ -247,25 +237,6 @@ _package-headers() {
cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/"
- # add headers for lirc package
- # pci
- for i in bt8xx cx88 saa7134; do
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/pci/${i}"
- cp -a drivers/media/pci/${i}/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/pci/${i}"
- done
- # usb
- for i in cpia2 em28xx pwc sn9c102; do
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/${i}"
- cp -a drivers/media/usb/${i}/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/${i}"
- done
- # i2c
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c"
- cp drivers/media/i2c/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
- for i in cx25840; do
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/${i}"
- cp -a drivers/media/i2c/${i}/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/${i}"
- done
-
# add docbook makefile
install -D -m644 Documentation/DocBook/Makefile \
"${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
@@ -297,6 +268,7 @@ _package-headers() {
# http://bugs.archlinux.org/task/13146
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
cp drivers/media/dvb-frontends/lgdt330x.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
+ mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
cp drivers/media/i2c/msp3400-driver.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
# add dvb headers
diff --git a/kernels/linux-libre-pae/config b/kernels/linux-libre-pae/config
index ecdb07d0d..5e645c853 100644
--- a/kernels/linux-libre-pae/config
+++ b/kernels/linux-libre-pae/config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 3.13.0 Kernel Configuration
+# Linux/x86 3.14.0-4 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -70,10 +70,7 @@ CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_FHANDLE=y
-CONFIG_AUDIT=y
-CONFIG_AUDITSYSCALL=y
-CONFIG_AUDIT_WATCH=y
-CONFIG_AUDIT_TREE=y
+# CONFIG_AUDIT is not set
#
# IRQ subsystem
@@ -100,7 +97,7 @@ CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
-CONFIG_NO_HZ=y
+# CONFIG_NO_HZ is not set
CONFIG_HIGH_RES_TIMERS=y
#
@@ -127,10 +124,7 @@ CONFIG_RCU_FANOUT_LEAF=16
CONFIG_RCU_FAST_NO_HZ=y
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_RCU_BOOST is not set
-CONFIG_RCU_NOCB_CPU=y
-CONFIG_RCU_NOCB_CPU_NONE=y
-# CONFIG_RCU_NOCB_CPU_ZERO is not set
-# CONFIG_RCU_NOCB_CPU_ALL is not set
+# CONFIG_RCU_NOCB_CPU is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=19
@@ -157,14 +151,13 @@ CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
-CONFIG_CHECKPOINT_RESTORE=y
+# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
# CONFIG_USER_NS is not set
CONFIG_PID_NS=y
CONFIG_NET_NS=y
-# CONFIG_UIDGID_STRICT_TYPE_CHECKS is not set
CONFIG_SCHED_AUTOGROUP=y
CONFIG_MM_OWNER=y
# CONFIG_SYSFS_DEPRECATED is not set
@@ -240,6 +233,7 @@ CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
@@ -255,6 +249,11 @@ CONFIG_HAVE_CMPXCHG_DOUBLE=y
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
+CONFIG_HAVE_CC_STACKPROTECTOR=y
+CONFIG_CC_STACKPROTECTOR=y
+# CONFIG_CC_STACKPROTECTOR_NONE is not set
+CONFIG_CC_STACKPROTECTOR_REGULAR=y
+# CONFIG_CC_STACKPROTECTOR_STRONG is not set
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
@@ -284,7 +283,7 @@ CONFIG_BLOCK=y
CONFIG_LBDAF=y
CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_BSGLIB=y
-# CONFIG_BLK_DEV_INTEGRITY is not set
+CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -328,6 +327,7 @@ CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PADATA=y
CONFIG_ASN1=m
CONFIG_UNINLINE_SPIN_UNLOCK=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
CONFIG_FREEZER=y
#
@@ -338,7 +338,7 @@ CONFIG_SMP=y
CONFIG_X86_MPPARSE=y
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_EXTENDED_PLATFORM is not set
-# CONFIG_X86_INTEL_LPSS is not set
+CONFIG_X86_INTEL_LPSS=y
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_X86_32_IRIS=m
CONFIG_SCHED_OMIT_FRAME_POINTER=y
@@ -350,7 +350,7 @@ CONFIG_PARAVIRT=y
# CONFIG_XEN_PRIVILEGED_GUEST is not set
CONFIG_KVM_GUEST=y
# CONFIG_KVM_DEBUG_FS is not set
-CONFIG_LGUEST_GUEST=y
+# CONFIG_LGUEST_GUEST is not set
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
CONFIG_PARAVIRT_CLOCK=y
CONFIG_NO_BOOTMEM=y
@@ -468,7 +468,8 @@ CONFIG_FRONTSWAP=y
# CONFIG_CMA is not set
CONFIG_ZBUD=y
CONFIG_ZSWAP=y
-CONFIG_MEM_SOFT_DIRTY=y
+CONFIG_ZSMALLOC=y
+# CONFIG_PGTABLE_MAPPING is not set
# CONFIG_HIGHPTE is not set
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
@@ -485,7 +486,6 @@ CONFIG_X86_SMAP=y
CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_SECCOMP=y
-CONFIG_CC_STACKPROTECTOR=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_300=y
@@ -494,11 +494,11 @@ CONFIG_HZ=300
CONFIG_SCHED_HRTICK=y
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
-# CONFIG_KEXEC_JUMP is not set
+CONFIG_KEXEC_JUMP=y
CONFIG_PHYSICAL_START=0x1000000
CONFIG_RELOCATABLE=y
CONFIG_X86_NEED_RELOCS=y
-CONFIG_PHYSICAL_ALIGN=0x100000
+CONFIG_PHYSICAL_ALIGN=0x1000000
CONFIG_HOTPLUG_CPU=y
# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
@@ -529,7 +529,8 @@ CONFIG_PM_SLEEP_DEBUG=y
# CONFIG_DPM_WATCHDOG is not set
CONFIG_PM_TRACE=y
CONFIG_PM_TRACE_RTC=y
-CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+CONFIG_PM_CLK=y
+# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
# CONFIG_ACPI_PROCFS is not set
@@ -709,8 +710,8 @@ CONFIG_HOTPLUG_PCI_CPCI=y
CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
CONFIG_HOTPLUG_PCI_SHPC=m
-CONFIG_RAPIDIO=y
-CONFIG_RAPIDIO_TSI721=y
+CONFIG_RAPIDIO=m
+CONFIG_RAPIDIO_TSI721=m
CONFIG_RAPIDIO_DISC_TIMEOUT=30
# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
CONFIG_RAPIDIO_DMA_ENGINE=y
@@ -720,10 +721,10 @@ CONFIG_RAPIDIO_ENUM_BASIC=m
#
# RapidIO Switch drivers
#
-CONFIG_RAPIDIO_TSI57X=y
-CONFIG_RAPIDIO_CPS_XX=y
-CONFIG_RAPIDIO_TSI568=y
-CONFIG_RAPIDIO_CPS_GEN2=y
+CONFIG_RAPIDIO_TSI57X=m
+CONFIG_RAPIDIO_CPS_XX=m
+CONFIG_RAPIDIO_TSI568=m
+CONFIG_RAPIDIO_CPS_GEN2=m
# CONFIG_X86_SYSFB is not set
#
@@ -734,7 +735,7 @@ CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_SCRIPT=y
CONFIG_HAVE_AOUT=y
-CONFIG_BINFMT_AOUT=m
+# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_MISC=y
CONFIG_COREDUMP=y
CONFIG_HAVE_ATOMIC_IOMAP=y
@@ -883,6 +884,7 @@ CONFIG_NF_NAT_SIP=m
CONFIG_NF_NAT_TFTP=m
CONFIG_NETFILTER_SYNPROXY=m
CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=m
CONFIG_NFT_EXTHDR=m
CONFIG_NFT_META=m
CONFIG_NFT_CT=m
@@ -892,6 +894,9 @@ CONFIG_NFT_COUNTER=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
CONFIG_NFT_NAT=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_REJECT_INET=m
CONFIG_NFT_COMPAT=m
CONFIG_NETFILTER_XTABLES=m
@@ -905,7 +910,6 @@ CONFIG_NETFILTER_XT_SET=m
#
# Xtables targets
#
-CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
@@ -936,6 +940,7 @@ CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
#
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CGROUP=m
CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
@@ -952,8 +957,10 @@ CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_L2TP=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
@@ -993,7 +1000,7 @@ CONFIG_IP_SET_HASH_NETPORT=m
CONFIG_IP_SET_HASH_NETIFACE=m
CONFIG_IP_SET_LIST_SET=m
CONFIG_IP_VS=m
-# CONFIG_IP_VS_IPV6 is not set
+CONFIG_IP_VS_IPV6=y
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12
@@ -1040,9 +1047,9 @@ CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
CONFIG_NF_TABLES_IPV4=m
-CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
CONFIG_NFT_CHAIN_NAT_IPV4=m
+CONFIG_NFT_REJECT_IPV4=m
CONFIG_NF_TABLES_ARP=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_AH=m
@@ -1079,6 +1086,7 @@ CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_NF_TABLES_IPV6=m
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
CONFIG_NFT_CHAIN_NAT_IPV6=m
+CONFIG_NFT_REJECT_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -1176,21 +1184,14 @@ CONFIG_VLAN_8021Q_MVRP=y
# CONFIG_DECNET is not set
CONFIG_LLC=m
CONFIG_LLC2=m
-CONFIG_IPX=m
-# CONFIG_IPX_INTERN is not set
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-CONFIG_LTPC=m
-CONFIG_COPS=m
-CONFIG_COPS_DAYNA=y
-CONFIG_COPS_TANGENT=y
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
CONFIG_PHONET=m
CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_6LOWPAN_IPHC=m
CONFIG_MAC802154=m
CONFIG_NET_SCHED=y
@@ -1218,6 +1219,8 @@ CONFIG_NET_SCH_QFQ=m
CONFIG_NET_SCH_CODEL=m
CONFIG_NET_SCH_FQ_CODEL=m
CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
@@ -1235,7 +1238,7 @@ CONFIG_NET_CLS_U32=m
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_CLS_CGROUP=y
+CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_BPF=m
# CONFIG_NET_EMATCH is not set
CONFIG_NET_CLS_ACT=y
@@ -1252,7 +1255,7 @@ CONFIG_NET_ACT_CSUM=m
CONFIG_NET_CLS_IND=y
CONFIG_NET_SCH_FIFO=y
# CONFIG_DCB is not set
-CONFIG_DNS_RESOLVER=y
+CONFIG_DNS_RESOLVER=m
CONFIG_BATMAN_ADV=m
CONFIG_BATMAN_ADV_BLA=y
CONFIG_BATMAN_ADV_DAT=y
@@ -1270,7 +1273,8 @@ CONFIG_HSR=m
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
-CONFIG_NETPRIO_CGROUP=m
+CONFIG_CGROUP_NET_PRIO=m
+CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
CONFIG_NET_FLOW_LIMIT=y
@@ -1280,7 +1284,7 @@ CONFIG_NET_FLOW_LIMIT=y
#
CONFIG_NET_PKTGEN=m
CONFIG_NET_TCPPROBE=m
-CONFIG_NET_DROP_MONITOR=y
+CONFIG_NET_DROP_MONITOR=m
CONFIG_HAMRADIO=y
#
@@ -1437,6 +1441,7 @@ CONFIG_RFKILL_INPUT=y
CONFIG_RFKILL_GPIO=m
CONFIG_NET_9P=m
CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_RDMA is not set
# CONFIG_NET_9P_DEBUG is not set
CONFIG_CAIF=m
# CONFIG_CAIF_DEBUG is not set
@@ -1464,6 +1469,8 @@ CONFIG_NFC_PN544=m
CONFIG_NFC_PN544_MEI=m
CONFIG_NFC_MICROREAD=m
CONFIG_NFC_MICROREAD_MEI=m
+CONFIG_NFC_MRVL=m
+CONFIG_NFC_MRVL_USB=m
#
# Device Drivers
@@ -1480,7 +1487,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE=""
-CONFIG_FW_LOADER_USER_HELPER=y
+# CONFIG_FW_LOADER_USER_HELPER is not set
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
@@ -1494,8 +1501,7 @@ CONFIG_DMA_SHARED_BUFFER=y
#
# Bus devices
#
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
+CONFIG_CONNECTOR=m
CONFIG_MTD=m
CONFIG_MTD_TESTS=m
CONFIG_MTD_REDBOOT_PARTS=m
@@ -1593,7 +1599,24 @@ CONFIG_MTD_BLOCK2MTD=m
CONFIG_MTD_DOCG3=m
CONFIG_BCH_CONST_M=14
CONFIG_BCH_CONST_T=4
-# CONFIG_MTD_NAND is not set
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_ECC_SMC=y
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_ECC_BCH is not set
+CONFIG_MTD_SM_COMMON=m
+# CONFIG_MTD_NAND_DENALI is not set
+CONFIG_MTD_NAND_GPIO=m
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DOCG4=m
+CONFIG_MTD_NAND_CAFE=m
+CONFIG_MTD_NAND_CS553X=m
+CONFIG_MTD_NAND_NANDSIM=m
+# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ONENAND is not set
#
@@ -1646,6 +1669,8 @@ CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=m
# CONFIG_PARIDE is not set
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_ZRAM=m
+# CONFIG_ZRAM_DEBUG is not set
CONFIG_BLK_CPQ_CISS_DA=m
# CONFIG_CISS_SCSI_TAPE is not set
CONFIG_BLK_DEV_DAC960=m
@@ -1680,6 +1705,7 @@ CONFIG_SENSORS_LIS3LV02D=m
CONFIG_AD525X_DPOT=m
CONFIG_AD525X_DPOT_I2C=m
# CONFIG_AD525X_DPOT_SPI is not set
+# CONFIG_ATMEL_PWM is not set
# CONFIG_DUMMY_IRQ is not set
# CONFIG_IBM_ASM is not set
CONFIG_PHANTOM=m
@@ -1707,7 +1733,7 @@ CONFIG_VMWARE_BALLOON=m
CONFIG_BMP085=y
CONFIG_BMP085_I2C=m
# CONFIG_BMP085_SPI is not set
-# CONFIG_PCH_PHUB is not set
+CONFIG_PCH_PHUB=m
CONFIG_USB_SWITCH_FSA9480=m
# CONFIG_LATTICE_ECP3_CONFIG is not set
# CONFIG_SRAM is not set
@@ -1814,7 +1840,6 @@ CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
CONFIG_AIC7XXX_DEBUG_MASK=0
CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
-# CONFIG_SCSI_AIC7XXX_OLD is not set
CONFIG_SCSI_AIC79XX=m
CONFIG_AIC79XX_CMDS_PER_DEVICE=32
CONFIG_AIC79XX_RESET_DELAY_MS=15000
@@ -2040,15 +2065,16 @@ CONFIG_MD_FAULTY=m
CONFIG_BCACHE=m
# CONFIG_BCACHE_DEBUG is not set
# CONFIG_BCACHE_CLOSURES_DEBUG is not set
+CONFIG_BLK_DEV_DM_BUILTIN=y
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
CONFIG_DM_BUFIO=m
CONFIG_DM_BIO_PRISON=m
CONFIG_DM_PERSISTENT_DATA=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m
-# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_MQ=m
CONFIG_DM_CACHE_CLEANER=m
@@ -2099,7 +2125,7 @@ CONFIG_I2O_BLOCK=m
CONFIG_I2O_SCSI=m
CONFIG_I2O_PROC=m
CONFIG_MACINTOSH_DRIVERS=y
-CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_MAC_EMUMOUSEBTN=m
CONFIG_NETDEVICES=y
CONFIG_MII=m
CONFIG_NET_CORE=y
@@ -2280,6 +2306,8 @@ CONFIG_IXGBE_HWMON=y
CONFIG_IXGBE_DCA=y
CONFIG_IXGBEVF=m
CONFIG_I40E=m
+CONFIG_I40E_VXLAN=y
+CONFIG_I40EVF=m
CONFIG_NET_VENDOR_I825XX=y
CONFIG_IP1000=m
CONFIG_JME=m
@@ -2294,14 +2322,15 @@ CONFIG_NET_VENDOR_MELLANOX=y
CONFIG_MLX4_EN=m
CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
-# CONFIG_MLX5_CORE is not set
+CONFIG_MLX5_CORE=m
CONFIG_NET_VENDOR_MICREL=y
CONFIG_KS8842=m
-# CONFIG_KS8851 is not set
+CONFIG_KS8851=m
CONFIG_KS8851_MLL=m
CONFIG_KSZ884X_PCI=m
CONFIG_NET_VENDOR_MICROCHIP=y
-# CONFIG_ENC28J60 is not set
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
CONFIG_NET_VENDOR_MYRI=y
CONFIG_MYRI10GE=m
CONFIG_MYRI10GE_DCA=y
@@ -2454,6 +2483,7 @@ CONFIG_USB_NET_HUAWEI_CDC_NCM=m
CONFIG_USB_NET_CDC_MBIM=m
CONFIG_USB_NET_DM9601=m
CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
CONFIG_USB_NET_SMSC75XX=m
CONFIG_USB_NET_SMSC95XX=m
CONFIG_USB_NET_GL620A=m
@@ -2513,6 +2543,7 @@ CONFIG_ATH9K=m
CONFIG_ATH9K_PCI=y
CONFIG_ATH9K_AHB=y
# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_ATH9K_WOW=y
# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set
CONFIG_ATH9K_RFKILL=y
CONFIG_ATH9K_HTC=m
@@ -2600,7 +2631,7 @@ CONFIG_LIBERTAS=m
CONFIG_LIBERTAS_USB=m
CONFIG_LIBERTAS_CS=m
CONFIG_LIBERTAS_SDIO=m
-# CONFIG_LIBERTAS_SPI is not set
+CONFIG_LIBERTAS_SPI=m
# CONFIG_LIBERTAS_DEBUG is not set
CONFIG_LIBERTAS_MESH=y
CONFIG_HERMES=m
@@ -2616,7 +2647,8 @@ CONFIG_ORINOCO_USB=m
CONFIG_P54_COMMON=m
CONFIG_P54_USB=m
CONFIG_P54_PCI=m
-# CONFIG_P54_SPI is not set
+CONFIG_P54_SPI=m
+# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
CONFIG_P54_LEDS=y
CONFIG_RT2X00=m
CONFIG_RT2400PCI=m
@@ -2787,8 +2819,8 @@ CONFIG_ISDN_DRV_ACT2000=m
CONFIG_ISDN_CAPI=m
CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
CONFIG_CAPI_TRACE=y
-CONFIG_ISDN_CAPI_MIDDLEWARE=y
CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
CONFIG_ISDN_CAPI_CAPIDRV=m
#
@@ -2881,9 +2913,11 @@ CONFIG_KEYBOARD_MCS=m
CONFIG_KEYBOARD_MPR121=m
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_CROS_EC is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_PS2_ALPS=y
@@ -2894,7 +2928,7 @@ CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
CONFIG_MOUSE_PS2_ELANTECH=y
CONFIG_MOUSE_PS2_SENTELIC=y
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_TOUCHKIT=y
CONFIG_MOUSE_PS2_OLPC=y
CONFIG_MOUSE_SERIAL=m
CONFIG_MOUSE_APPLETOUCH=m
@@ -3014,6 +3048,7 @@ CONFIG_TOUCHSCREEN_TOUCHIT213=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
# CONFIG_TOUCHSCREEN_TSC2005 is not set
CONFIG_TOUCHSCREEN_TSC2007=m
+# CONFIG_TOUCHSCREEN_W90X900 is not set
CONFIG_TOUCHSCREEN_ST1232=m
CONFIG_TOUCHSCREEN_SUR40=m
CONFIG_TOUCHSCREEN_TPS6507X=m
@@ -3029,6 +3064,7 @@ CONFIG_INPUT_MMA8450=m
CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_APANEL=m
CONFIG_INPUT_GP2A=m
+CONFIG_INPUT_GPIO_BEEPER=m
# CONFIG_INPUT_GPIO_TILT_POLLED is not set
CONFIG_INPUT_WISTRON_BTNS=m
CONFIG_INPUT_ATLAS_BTNS=m
@@ -3056,6 +3092,7 @@ CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
# Hardware I/O ports
#
CONFIG_SERIO=m
+CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
CONFIG_SERIO_I8042=m
CONFIG_SERIO_SERPORT=m
CONFIG_SERIO_CT82C710=m
@@ -3126,6 +3163,7 @@ CONFIG_SERIAL_8250_DW=m
#
# CONFIG_SERIAL_MAX3100 is not set
# CONFIG_SERIAL_MAX310X is not set
+# CONFIG_SERIAL_MRST_MAX3110 is not set
CONFIG_SERIAL_MFD_HSU=m
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
@@ -3149,20 +3187,22 @@ CONFIG_PRINTER=m
# CONFIG_LP_CONSOLE is not set
CONFIG_PPDEV=m
CONFIG_HVC_DRIVER=y
-CONFIG_VIRTIO_CONSOLE=y
+CONFIG_VIRTIO_CONSOLE=m
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
-CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_ATMEL=m
CONFIG_HW_RANDOM_GEODE=m
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_HW_RANDOM_EXYNOS=m
CONFIG_HW_RANDOM_TPM=m
CONFIG_NVRAM=m
CONFIG_DTLK=m
@@ -3180,7 +3220,8 @@ CONFIG_IPWIRELESS=m
CONFIG_MWAVE=m
CONFIG_PC8736x_GPIO=m
CONFIG_NSC_GPIO=m
-# CONFIG_RAW_DRIVER is not set
+CONFIG_RAW_DRIVER=m
+CONFIG_MAX_RAW_DEVS=256
CONFIG_HPET=y
CONFIG_HPET_MMAP=y
CONFIG_HPET_MMAP_DEFAULT=y
@@ -3209,6 +3250,7 @@ CONFIG_I2C_MUX=m
# CONFIG_I2C_MUX_GPIO is not set
CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
+# CONFIG_I2C_MUX_PINCTRL is not set
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_SMBUS=m
CONFIG_I2C_ALGOBIT=m
@@ -3249,6 +3291,7 @@ CONFIG_I2C_SCMI=m
#
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_DESIGNWARE_CORE=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=m
CONFIG_I2C_DESIGNWARE_PCI=m
CONFIG_I2C_EG20T=m
# CONFIG_I2C_GPIO is not set
@@ -3265,6 +3308,7 @@ CONFIG_I2C_XILINX=m
CONFIG_I2C_DIOLAN_U2C=m
CONFIG_I2C_PARPORT=m
CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
CONFIG_I2C_TAOS_EVM=m
CONFIG_I2C_TINY_USB=m
CONFIG_I2C_VIPERBOARD=m
@@ -3285,26 +3329,30 @@ CONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#
-# CONFIG_SPI_ALTERA is not set
-# CONFIG_SPI_BITBANG is not set
-# CONFIG_SPI_BUTTERFLY is not set
-# CONFIG_SPI_GPIO is not set
-# CONFIG_SPI_LM70_LLP is not set
+CONFIG_SPI_ALTERA=m
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
# CONFIG_SPI_FSL_SPI is not set
-# CONFIG_SPI_OC_TINY is not set
-# CONFIG_SPI_PXA2XX is not set
-# CONFIG_SPI_PXA2XX_PCI is not set
-# CONFIG_SPI_SC18IS602 is not set
-# CONFIG_SPI_TOPCLIFF_PCH is not set
-# CONFIG_SPI_XCOMM is not set
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_DESIGNWARE is not set
+CONFIG_SPI_OC_TINY=m
+CONFIG_SPI_PXA2XX_DMA=y
+CONFIG_SPI_PXA2XX=m
+CONFIG_SPI_PXA2XX_PCI=m
+CONFIG_SPI_SC18IS602=m
+CONFIG_SPI_TOPCLIFF_PCH=m
+CONFIG_SPI_XCOMM=m
+CONFIG_SPI_XILINX=m
+CONFIG_SPI_DESIGNWARE=m
+CONFIG_SPI_DW_PCI=m
+# CONFIG_SPI_DW_MID_DMA is not set
+CONFIG_SPI_DW_MMIO=m
#
# SPI Protocol Masters
#
-# CONFIG_SPI_SPIDEV is not set
-# CONFIG_SPI_TLE62X0 is not set
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
# CONFIG_HSI is not set
#
@@ -3312,6 +3360,7 @@ CONFIG_SPI_MASTER=y
#
CONFIG_PPS=m
# CONFIG_PPS_DEBUG is not set
+# CONFIG_NTP_PPS is not set
#
# PPS clients support
@@ -3331,6 +3380,18 @@ CONFIG_PPS_CLIENT_GPIO=m
CONFIG_PTP_1588_CLOCK=m
CONFIG_DP83640_PHY=m
CONFIG_PTP_1588_CLOCK_PCH=m
+CONFIG_PINCTRL=y
+
+#
+# Pin controllers
+#
+# CONFIG_PINMUX is not set
+# CONFIG_PINCONF is not set
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_PINCTRL_BAYTRAIL is not set
+# CONFIG_PINCTRL_CAPRI is not set
+# CONFIG_PINCTRL_MSM8X74 is not set
+# CONFIG_PINCTRL_SINGLE is not set
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_DEVRES=y
@@ -3345,17 +3406,19 @@ CONFIG_GPIO_SYSFS=y
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_IT8761E is not set
# CONFIG_GPIO_F7188X is not set
+CONFIG_GPIO_SCH311X=m
# CONFIG_GPIO_TS5500 is not set
CONFIG_GPIO_SCH=m
CONFIG_GPIO_ICH=m
# CONFIG_GPIO_VX855 is not set
-# CONFIG_GPIO_LYNXPOINT is not set
+CONFIG_GPIO_LYNXPOINT=m
# CONFIG_GPIO_GRGPIO is not set
#
# I2C GPIO expanders:
#
CONFIG_GPIO_ARIZONA=m
+CONFIG_GPIO_LP3943=m
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_PCA953X is not set
@@ -3425,7 +3488,7 @@ CONFIG_CHARGER_BQ24735=m
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO=y
CONFIG_POWER_AVS=y
-CONFIG_HWMON=y
+CONFIG_HWMON=m
CONFIG_HWMON_VID=m
# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -3434,10 +3497,10 @@ CONFIG_HWMON_VID=m
#
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
-# CONFIG_SENSORS_AD7314 is not set
+CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
-# CONFIG_SENSORS_ADCXX is not set
+CONFIG_SENSORS_ADCXX=m
CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
@@ -3468,7 +3531,7 @@ CONFIG_SENSORS_G760A=m
CONFIG_SENSORS_G762=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
-# CONFIG_SENSORS_GPIO_FAN is not set
+CONFIG_SENSORS_GPIO_FAN=m
CONFIG_SENSORS_HIH6130=m
CONFIG_SENSORS_HTU21=m
CONFIG_SENSORS_CORETEMP=m
@@ -3478,7 +3541,7 @@ CONFIG_SENSORS_IT87=m
CONFIG_SENSORS_JC42=m
CONFIG_SENSORS_LINEAGE=m
CONFIG_SENSORS_LM63=m
-# CONFIG_SENSORS_LM70 is not set
+CONFIG_SENSORS_LM70=m
CONFIG_SENSORS_LM73=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
@@ -3497,7 +3560,7 @@ CONFIG_SENSORS_LTC4261=m
CONFIG_SENSORS_LM95234=m
CONFIG_SENSORS_LM95241=m
CONFIG_SENSORS_LM95245=m
-# CONFIG_SENSORS_MAX1111 is not set
+CONFIG_SENSORS_MAX1111=m
CONFIG_SENSORS_MAX16065=m
CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_MAX1668=m
@@ -3539,7 +3602,7 @@ CONFIG_SENSORS_SCH5627=m
CONFIG_SENSORS_SCH5636=m
CONFIG_SENSORS_ADS1015=m
CONFIG_SENSORS_ADS7828=m
-# CONFIG_SENSORS_ADS7871 is not set
+CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
@@ -3570,7 +3633,7 @@ CONFIG_SENSORS_MC13783_ADC=m
CONFIG_SENSORS_ACPI_POWER=m
CONFIG_SENSORS_ATK0110=m
CONFIG_THERMAL=y
-CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_OF=y
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
@@ -3581,6 +3644,7 @@ CONFIG_THERMAL_GOV_USER_SPACE=y
# CONFIG_THERMAL_EMULATION is not set
CONFIG_INTEL_POWERCLAMP=m
CONFIG_X86_PKG_TEMP_THERMAL=m
+CONFIG_ACPI_INT3403_THERMAL=m
#
# Texas Instruments thermal drivers
@@ -3593,6 +3657,8 @@ CONFIG_WATCHDOG_CORE=y
# Watchdog Device Drivers
#
CONFIG_SOFT_WATCHDOG=m
+CONFIG_GPIO_WATCHDOG=m
+CONFIG_DW_WATCHDOG=m
CONFIG_RETU_WATCHDOG=m
CONFIG_ACQUIRE_WDT=m
CONFIG_ADVANTECH_WDT=m
@@ -3689,9 +3755,10 @@ CONFIG_BCMA_DRIVER_GPIO=y
#
CONFIG_MFD_CORE=y
CONFIG_MFD_CS5535=m
-# CONFIG_MFD_CROS_EC is not set
+CONFIG_MFD_CROS_EC=m
+CONFIG_MFD_CROS_EC_I2C=m
+CONFIG_MFD_CROS_EC_SPI=m
# CONFIG_MFD_DA9052_SPI is not set
-CONFIG_MFD_MC13783=m
CONFIG_MFD_MC13XXX=m
# CONFIG_MFD_MC13XXX_SPI is not set
CONFIG_MFD_MC13XXX_I2C=m
@@ -3716,6 +3783,7 @@ CONFIG_ABX500_CORE=y
# CONFIG_MFD_STMPE is not set
# CONFIG_MFD_SYSCON is not set
CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_MFD_LP3943=m
# CONFIG_TPS6105X is not set
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
@@ -3762,7 +3830,6 @@ CONFIG_VIDEOBUF2_MEMOPS=m
CONFIG_VIDEOBUF2_DMA_CONTIG=m
CONFIG_VIDEOBUF2_VMALLOC=m
CONFIG_VIDEOBUF2_DMA_SG=m
-# CONFIG_VIDEO_V4L2_INT_DEVICE is not set
CONFIG_DVB_CORE=m
CONFIG_DVB_NET=y
CONFIG_TTPCI_EEPROM=m
@@ -3862,7 +3929,6 @@ CONFIG_VIDEO_CPIA2=m
CONFIG_USB_ZR364XX=m
CONFIG_USB_STKWEBCAM=m
CONFIG_USB_S2255=m
-CONFIG_USB_SN9C102=m
CONFIG_VIDEO_USBTV=m
#
@@ -3945,6 +4011,7 @@ CONFIG_DVB_B2C2_FLEXCOP_USB=m
# Webcam, TV (analog/digital) USB devices
#
CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_V4L2=m
CONFIG_VIDEO_EM28XX_ALSA=m
CONFIG_VIDEO_EM28XX_DVB=m
CONFIG_VIDEO_EM28XX_RC=m
@@ -4038,14 +4105,17 @@ CONFIG_RADIO_TEA575X=m
CONFIG_RADIO_SI470X=y
CONFIG_USB_SI470X=m
CONFIG_I2C_SI470X=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_SI4713=m
+CONFIG_PLATFORM_SI4713=m
+CONFIG_I2C_SI4713=m
CONFIG_USB_MR800=m
CONFIG_USB_DSBR=m
CONFIG_RADIO_MAXIRADIO=m
CONFIG_RADIO_SHARK=m
CONFIG_RADIO_SHARK2=m
-CONFIG_I2C_SI4713=m
-CONFIG_RADIO_SI4713=m
CONFIG_USB_KEENE=m
+CONFIG_USB_RAREMONO=m
CONFIG_USB_MA901=m
CONFIG_RADIO_TEA5764=m
CONFIG_RADIO_SAA7706H=m
@@ -4153,6 +4223,11 @@ CONFIG_VIDEO_UPD64031A=m
CONFIG_VIDEO_UPD64083=m
#
+# Audio/Video compression chips
+#
+CONFIG_VIDEO_SAA6752HS=m
+
+#
# Miscellaneous helper chips
#
CONFIG_VIDEO_M52790=m
@@ -4188,6 +4263,7 @@ CONFIG_MEDIA_TUNER_FC0013=m
CONFIG_MEDIA_TUNER_TDA18212=m
CONFIG_MEDIA_TUNER_E4000=m
CONFIG_MEDIA_TUNER_FC2580=m
+CONFIG_MEDIA_TUNER_M88TS2022=m
CONFIG_MEDIA_TUNER_TUA9001=m
CONFIG_MEDIA_TUNER_IT913X=m
CONFIG_MEDIA_TUNER_R820T=m
@@ -4199,6 +4275,7 @@ CONFIG_DVB_STB0899=m
CONFIG_DVB_STB6100=m
CONFIG_DVB_STV090x=m
CONFIG_DVB_STV6110x=m
+CONFIG_DVB_M88DS3103=m
#
# Multistandard (cable + terrestrial) frontends
@@ -4335,6 +4412,7 @@ CONFIG_AGP_SIS=m
CONFIG_AGP_SWORKS=m
CONFIG_AGP_VIA=m
CONFIG_AGP_EFFICEON=m
+CONFIG_INTEL_GTT=m
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_SWITCHEROO=y
@@ -4363,6 +4441,7 @@ CONFIG_DRM_I915=m
CONFIG_DRM_I915_KMS=y
CONFIG_DRM_I915_FBDEV=y
# CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set
+# CONFIG_DRM_I915_UMS is not set
CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
@@ -4377,6 +4456,7 @@ CONFIG_DRM_AST=m
CONFIG_DRM_MGAG200=m
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_QXL=m
+CONFIG_DRM_BOCHS=m
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_HDMI=y
@@ -4415,6 +4495,7 @@ CONFIG_FB_VESA=y
CONFIG_FB_EFI=y
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
+CONFIG_FB_OPENCORES=m
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
@@ -4521,7 +4602,7 @@ CONFIG_SND_HRTIMER=m
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
CONFIG_SND_MAX_CARDS=32
-CONFIG_SND_SUPPORT_OLD_API=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
@@ -4646,20 +4727,20 @@ CONFIG_SND_HDA_INPUT_BEEP=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=1
CONFIG_SND_HDA_INPUT_JACK=y
CONFIG_SND_HDA_PATCH_LOADER=y
-CONFIG_SND_HDA_CODEC_REALTEK=y
-CONFIG_SND_HDA_CODEC_ANALOG=y
-CONFIG_SND_HDA_CODEC_SIGMATEL=y
-CONFIG_SND_HDA_CODEC_VIA=y
-CONFIG_SND_HDA_CODEC_HDMI=y
+CONFIG_SND_HDA_CODEC_REALTEK=m
+CONFIG_SND_HDA_CODEC_ANALOG=m
+CONFIG_SND_HDA_CODEC_SIGMATEL=m
+CONFIG_SND_HDA_CODEC_VIA=m
+CONFIG_SND_HDA_CODEC_HDMI=m
CONFIG_SND_HDA_I915=y
-CONFIG_SND_HDA_CODEC_CIRRUS=y
-CONFIG_SND_HDA_CODEC_CONEXANT=y
-CONFIG_SND_HDA_CODEC_CA0110=y
-CONFIG_SND_HDA_CODEC_CA0132=y
+CONFIG_SND_HDA_CODEC_CIRRUS=m
+CONFIG_SND_HDA_CODEC_CONEXANT=m
+CONFIG_SND_HDA_CODEC_CA0110=m
+CONFIG_SND_HDA_CODEC_CA0132=m
CONFIG_SND_HDA_CODEC_CA0132_DSP=y
-CONFIG_SND_HDA_CODEC_CMEDIA=y
-CONFIG_SND_HDA_CODEC_SI3054=y
-CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_CODEC_CMEDIA=m
+CONFIG_SND_HDA_CODEC_SI3054=m
+CONFIG_SND_HDA_GENERIC=m
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
@@ -4823,7 +4904,9 @@ CONFIG_USB=m
#
CONFIG_USB_DEFAULT_PERSIST=y
CONFIG_USB_DYNAMIC_MINORS=y
-# CONFIG_USB_OTG is not set
+CONFIG_USB_OTG=y
+CONFIG_USB_OTG_WHITELIST=y
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
CONFIG_USB_MON=m
CONFIG_USB_WUSB=m
CONFIG_USB_WUSB_CBAF=m
@@ -4861,16 +4944,6 @@ CONFIG_USB_HWA_HCD=m
# CONFIG_USB_HCD_BCMA is not set
# CONFIG_USB_HCD_SSB is not set
# CONFIG_USB_HCD_TEST_MODE is not set
-CONFIG_USB_MUSB_HDRC=m
-# CONFIG_USB_MUSB_HOST is not set
-# CONFIG_USB_MUSB_GADGET is not set
-CONFIG_USB_MUSB_DUAL_ROLE=y
-CONFIG_USB_MUSB_TUSB6010=m
-CONFIG_USB_MUSB_DSPS=m
-CONFIG_USB_MUSB_UX500=m
-CONFIG_USB_MUSB_AM335X_CHILD=m
-# CONFIG_USB_UX500_DMA is not set
-CONFIG_MUSB_PIO_ONLY=y
CONFIG_USB_RENESAS_USBHS=m
#
@@ -4910,7 +4983,18 @@ CONFIG_USB_STORAGE_ENE_UB6250=m
#
CONFIG_USB_MDC800=m
CONFIG_USB_MICROTEK=m
+CONFIG_USB_MUSB_HDRC=m
+# CONFIG_USB_MUSB_HOST is not set
+# CONFIG_USB_MUSB_GADGET is not set
+CONFIG_USB_MUSB_DUAL_ROLE=y
+CONFIG_USB_MUSB_TUSB6010=m
+CONFIG_USB_MUSB_DSPS=m
+CONFIG_USB_MUSB_UX500=m
+CONFIG_USB_MUSB_AM335X_CHILD=m
+# CONFIG_USB_UX500_DMA is not set
+CONFIG_MUSB_PIO_ONLY=y
# CONFIG_USB_DWC3 is not set
+# CONFIG_USB_DWC2 is not set
# CONFIG_USB_CHIPIDEA is not set
#
@@ -4948,6 +5032,7 @@ CONFIG_USB_SERIAL_METRO=m
CONFIG_USB_SERIAL_MOS7720=m
CONFIG_USB_SERIAL_MOS7715_PARPORT=y
CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
CONFIG_USB_SERIAL_NAVMAN=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_USB_SERIAL_OTI6858=m
@@ -5009,11 +5094,14 @@ CONFIG_USB_XUSBATM=m
# USB Physical Layer drivers
#
CONFIG_USB_PHY=y
+CONFIG_USB_OTG_FSM=m
CONFIG_NOP_USB_XCEIV=m
CONFIG_SAMSUNG_USBPHY=m
CONFIG_SAMSUNG_USB2PHY=m
CONFIG_SAMSUNG_USB3PHY=m
# CONFIG_USB_GPIO_VBUS is not set
+CONFIG_TAHVO_USB=m
+# CONFIG_TAHVO_USB_HOST_BY_DEFAULT is not set
CONFIG_USB_ISP1301=m
CONFIG_USB_RCAR_PHY=m
CONFIG_USB_GADGET=m
@@ -5028,6 +5116,7 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
#
CONFIG_USB_FUSB300=m
CONFIG_USB_FOTG210_UDC=m
+CONFIG_USB_GR_UDC=m
CONFIG_USB_R8A66597=m
CONFIG_USB_RENESAS_USBHS_UDC=m
CONFIG_USB_PXA27X=m
@@ -5045,7 +5134,6 @@ CONFIG_USB_LIBCOMPOSITE=m
CONFIG_USB_F_ACM=m
CONFIG_USB_U_SERIAL=m
CONFIG_USB_U_ETHER=m
-CONFIG_USB_U_RNDIS=m
CONFIG_USB_F_SERIAL=m
CONFIG_USB_F_OBEX=m
CONFIG_USB_F_NCM=m
@@ -5053,6 +5141,7 @@ CONFIG_USB_F_ECM=m
CONFIG_USB_F_SUBSET=m
CONFIG_USB_F_RNDIS=m
CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_FS=m
# CONFIG_USB_CONFIGFS is not set
# CONFIG_USB_ZERO is not set
CONFIG_USB_AUDIO=m
@@ -5106,6 +5195,9 @@ CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_RICOH_MMC=y
CONFIG_MMC_SDHCI_ACPI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_OF_ARASAN=m
+CONFIG_MMC_SDHCI_PXAV3=m
+CONFIG_MMC_SDHCI_PXAV2=m
CONFIG_MMC_WBSD=m
CONFIG_MMC_TIFM_SD=m
CONFIG_MMC_SDRICOH_CS=m
@@ -5122,7 +5214,7 @@ CONFIG_MEMSTICK=m
#
# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
CONFIG_MSPRO_BLOCK=m
-# CONFIG_MS_BLOCK is not set
+CONFIG_MS_BLOCK=m
#
# MemoryStick Host Controller Drivers
@@ -5132,7 +5224,7 @@ CONFIG_MEMSTICK_JMICRON_38X=m
CONFIG_MEMSTICK_R592=m
CONFIG_MEMSTICK_REALTEK_PCI=m
CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_CLASS=m
#
# LED drivers
@@ -5142,19 +5234,19 @@ CONFIG_LEDS_LM3533=m
CONFIG_LEDS_LM3642=m
CONFIG_LEDS_PCA9532=m
# CONFIG_LEDS_PCA9532_GPIO is not set
-# CONFIG_LEDS_GPIO is not set
+CONFIG_LEDS_GPIO=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP55XX_COMMON=m
CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
CONFIG_LEDS_LP5562=m
-# CONFIG_LEDS_LP8501 is not set
+CONFIG_LEDS_LP8501=m
CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_PCA955X=m
-# CONFIG_LEDS_PCA963X is not set
+CONFIG_LEDS_PCA963X=m
CONFIG_LEDS_PCA9685=m
-# CONFIG_LEDS_DAC124S085 is not set
-# CONFIG_LEDS_PWM is not set
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_PWM=m
CONFIG_LEDS_BD2802=m
CONFIG_LEDS_INTEL_SS4200=m
CONFIG_LEDS_LT3593=m
@@ -5173,7 +5265,7 @@ CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-# CONFIG_LEDS_TRIGGER_CPU is not set
+CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
@@ -5184,7 +5276,32 @@ CONFIG_LEDS_TRIGGER_TRANSIENT=m
CONFIG_LEDS_TRIGGER_CAMERA=m
CONFIG_ACCESSIBILITY=y
CONFIG_A11Y_BRAILLE_CONSOLE=y
-# CONFIG_INFINIBAND is not set
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MEM=y
+CONFIG_INFINIBAND_ADDR_TRANS=y
+CONFIG_INFINIBAND_MTHCA=m
+CONFIG_INFINIBAND_MTHCA_DEBUG=y
+CONFIG_INFINIBAND_AMSO1100=m
+# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
+CONFIG_INFINIBAND_CXGB3=m
+# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
+CONFIG_INFINIBAND_CXGB4=m
+CONFIG_MLX4_INFINIBAND=m
+CONFIG_MLX5_INFINIBAND=m
+CONFIG_INFINIBAND_NES=m
+# CONFIG_INFINIBAND_NES_DEBUG is not set
+CONFIG_INFINIBAND_OCRDMA=m
+CONFIG_INFINIBAND_USNIC=m
+CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_CM=y
+CONFIG_INFINIBAND_IPOIB_DEBUG=y
+# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
+CONFIG_INFINIBAND_SRP=m
+CONFIG_INFINIBAND_SRPT=m
+CONFIG_INFINIBAND_ISER=m
+CONFIG_INFINIBAND_ISERT=m
CONFIG_EDAC=y
CONFIG_EDAC_LEGACY_SYSFS=y
# CONFIG_EDAC_DEBUG is not set
@@ -5229,10 +5346,12 @@ CONFIG_RTC_DRV_DS1307=m
CONFIG_RTC_DRV_DS1374=m
CONFIG_RTC_DRV_DS1672=m
CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_HYM8563=m
CONFIG_RTC_DRV_MAX6900=m
CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_ISL1208=m
CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_ISL12057=m
CONFIG_RTC_DRV_X1205=m
CONFIG_RTC_DRV_PCF2127=m
CONFIG_RTC_DRV_PCF8523=m
@@ -5336,7 +5455,7 @@ CONFIG_VFIO=m
CONFIG_VFIO_PCI=m
CONFIG_VFIO_PCI_VGA=y
CONFIG_VIRT_DRIVERS=y
-CONFIG_VIRTIO=y
+CONFIG_VIRTIO=m
#
# Virtio drivers
@@ -5454,6 +5573,7 @@ CONFIG_COMEDI_DAS08_PCI=m
CONFIG_COMEDI_DT3000=m
CONFIG_COMEDI_DYNA_PCI10XX=m
CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_MF6X4=m
CONFIG_COMEDI_ICP_MULTI=m
CONFIG_COMEDI_DAQBOARD2000=m
CONFIG_COMEDI_JR3_PCI=m
@@ -5498,7 +5618,9 @@ CONFIG_COMEDI_DAS08=m
CONFIG_COMEDI_NI_LABPC=m
CONFIG_COMEDI_NI_LABPC_ISADMA=m
CONFIG_COMEDI_NI_TIO=m
-# CONFIG_FB_OLPC_DCON is not set
+CONFIG_FB_OLPC_DCON=m
+CONFIG_FB_OLPC_DCON_1=y
+CONFIG_FB_OLPC_DCON_1_5=y
# CONFIG_PANEL is not set
CONFIG_R8187SE=m
CONFIG_RTL8192U=m
@@ -5511,8 +5633,11 @@ CONFIG_R8712U=m
CONFIG_R8188EU=m
CONFIG_88EU_AP_MODE=y
CONFIG_88EU_P2P=y
+CONFIG_R8821AE=m
CONFIG_RTS5139=m
# CONFIG_RTS5139_DEBUG is not set
+CONFIG_RTS5208=m
+# CONFIG_RTS5208_DEBUG is not set
# CONFIG_TRANZPORT is not set
CONFIG_IDE_PHISON=m
CONFIG_LINE6_USB=m
@@ -5521,9 +5646,6 @@ CONFIG_USB_SERIAL_QUATECH2=m
CONFIG_VT6655=m
CONFIG_VT6656=m
CONFIG_DX_SEP=m
-CONFIG_ZSMALLOC=y
-CONFIG_ZRAM=m
-# CONFIG_ZRAM_DEBUG is not set
CONFIG_WLAGS49_H2=m
CONFIG_WLAGS49_H25=m
CONFIG_FB_SM7XX=m
@@ -5559,6 +5681,7 @@ CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
CONFIG_STAGING_MEDIA=y
CONFIG_DVB_AS102=m
+CONFIG_I2C_BCM2048=m
CONFIG_DVB_CXD2099=m
CONFIG_VIDEO_DT3155=m
CONFIG_DT3155_CCIR=y
@@ -5568,6 +5691,9 @@ CONFIG_VIDEO_GO7007_USB=m
CONFIG_VIDEO_GO7007_LOADER=m
# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
# CONFIG_USB_MSI3101 is not set
+CONFIG_VIDEO_V4L2_INT_DEVICE=m
+CONFIG_VIDEO_TCM825X=m
+CONFIG_USB_SN9C102=m
CONFIG_SOLO6X10=m
CONFIG_LIRC_STAGING=y
CONFIG_LIRC_BT829=m
@@ -5592,22 +5718,24 @@ CONFIG_WIMAX_GDM72XX_WIMAX2=y
CONFIG_WIMAX_GDM72XX_USB=y
# CONFIG_WIMAX_GDM72XX_SDIO is not set
CONFIG_WIMAX_GDM72XX_USB_PM=y
-# CONFIG_LTE_GDM724X is not set
+CONFIG_LTE_GDM724X=m
CONFIG_NET_VENDOR_SILICOM=y
CONFIG_SBYPASS=m
CONFIG_BPCTL=m
CONFIG_CED1401=m
CONFIG_DGRP=m
CONFIG_FIREWIRE_SERIAL=m
-# CONFIG_USB_DWC2 is not set
+CONFIG_FWTTY_MAX_TOTAL_PORTS=64
+CONFIG_FWTTY_MAX_CARD_PORTS=32
+# CONFIG_MTD_SPINAND_MT29F is not set
CONFIG_LUSTRE_FS=m
CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER=8192
# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set
-CONFIG_LUSTRE_LLITE_LLOOP=y
+CONFIG_LUSTRE_LLITE_LLOOP=m
CONFIG_LNET=m
CONFIG_LNET_MAX_PAYLOAD=1048576
CONFIG_LNET_SELFTEST=m
-CONFIG_USB_BTMTK=m
+CONFIG_LNET_XPRT_IB=m
# CONFIG_XILLYBUS is not set
CONFIG_DGNC=m
CONFIG_DGAP=m
@@ -5624,6 +5752,7 @@ CONFIG_FUJITSU_TABLET=m
CONFIG_AMILO_RFKILL=m
CONFIG_TC1100_WMI=m
CONFIG_HP_ACCEL=m
+CONFIG_HP_WIRELESS=m
CONFIG_HP_WMI=m
CONFIG_MSI_LAPTOP=m
CONFIG_PANASONIC_LAPTOP=m
@@ -5659,11 +5788,22 @@ CONFIG_MXM_WMI=m
CONFIG_INTEL_OAKTRAIL=m
CONFIG_SAMSUNG_Q10=m
CONFIG_APPLE_GMUX=m
-CONFIG_INTEL_RST=y
+CONFIG_INTEL_RST=m
CONFIG_INTEL_SMARTCONNECT=y
CONFIG_PVPANIC=m
CONFIG_CHROME_PLATFORMS=y
CONFIG_CHROMEOS_LAPTOP=m
+CONFIG_CHROMEOS_PSTORE=m
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+
+#
+# Common Clock Framework
+#
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_QCOM is not set
#
# Hardware Spinlock drivers
@@ -5704,12 +5844,13 @@ CONFIG_MEMORY=y
# CONFIG_VME_BUS is not set
CONFIG_PWM=y
CONFIG_PWM_SYSFS=y
+# CONFIG_PWM_LP3943 is not set
# CONFIG_PWM_PCA9685 is not set
CONFIG_IRQCHIP=y
CONFIG_IPACK_BUS=m
CONFIG_BOARD_TPCI200=m
CONFIG_SERIAL_IPOCTAL=m
-# CONFIG_RESET_CONTROLLER is not set
+CONFIG_RESET_CONTROLLER=y
CONFIG_FMC=m
CONFIG_FMC_FAKEDEV=m
CONFIG_FMC_TRIVIAL=m
@@ -5719,9 +5860,10 @@ CONFIG_FMC_CHARDEV=m
#
# PHY Subsystem
#
-CONFIG_GENERIC_PHY=m
+CONFIG_GENERIC_PHY=y
CONFIG_PHY_EXYNOS_MIPI_VIDEO=m
CONFIG_PHY_EXYNOS_DP_VIDEO=m
+CONFIG_BCM_KONA_USB2_PHY=m
CONFIG_POWERCAP=y
CONFIG_INTEL_RAPL=m
@@ -5731,10 +5873,11 @@ CONFIG_INTEL_RAPL=m
CONFIG_EDD=m
# CONFIG_EDD_OFF is not set
CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_DELL_RBU=m
+# CONFIG_DELL_RBU is not set
CONFIG_DCDBAS=m
CONFIG_DMIID=y
CONFIG_DMI_SYSFS=m
+CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
# CONFIG_GOOGLE_FIRMWARE is not set
@@ -5743,6 +5886,7 @@ CONFIG_ISCSI_IBFT=m
# EFI (Extensible Firmware Interface) Support
#
# CONFIG_EFI_VARS is not set
+CONFIG_EFI_RUNTIME_MAP=y
CONFIG_UEFI_CPER=y
#
@@ -5810,7 +5954,6 @@ CONFIG_QUOTACTL=y
CONFIG_AUTOFS4_FS=y
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
-CONFIG_GENERIC_ACL=y
#
# Caches
@@ -5959,11 +6102,13 @@ CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_SUNRPC_BACKCHANNEL=y
+CONFIG_SUNRPC_XPRT_RDMA=m
CONFIG_SUNRPC_SWAP=y
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_SUNRPC_DEBUG=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FSCACHE=y
+CONFIG_CEPH_FS_POSIX_ACL=y
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
# CONFIG_CIFS_STATS2 is not set
@@ -6019,7 +6164,7 @@ CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
CONFIG_NLS_ISO8859_4=m
@@ -6115,6 +6260,7 @@ CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
# CONFIG_PANIC_ON_OOPS is not set
CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
CONFIG_SCHED_DEBUG=y
CONFIG_SCHEDSTATS=y
CONFIG_TIMER_STATS=y
@@ -6126,7 +6272,7 @@ CONFIG_TIMER_STATS=y
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
-CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
@@ -6220,8 +6366,9 @@ CONFIG_ASYNC_RAID6_TEST=m
# CONFIG_TEST_STRING_HELPERS is not set
CONFIG_TEST_KSTRTOX=m
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
-# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_TEST_MODULE is not set
+# CONFIG_TEST_USER_COPY is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
@@ -6267,36 +6414,15 @@ CONFIG_ENCRYPTED_KEYS=m
# CONFIG_SECURITY_DMESG_RESTRICT is not set
CONFIG_SECURITY=y
CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-# CONFIG_SECURITY_NETWORK_XFRM is not set
+# CONFIG_SECURITY_NETWORK is not set
CONFIG_SECURITY_PATH=y
# CONFIG_INTEL_TXT is not set
-CONFIG_LSM_MMAP_MIN_ADDR=65536
-CONFIG_SECURITY_SELINUX=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
-# CONFIG_SECURITY_SELINUX_DISABLE is not set
-CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_AVC_STATS=y
-CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
-# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
-CONFIG_SECURITY_SMACK=y
-CONFIG_SECURITY_TOMOYO=y
-CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
-CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
-# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
-CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/usr/bin/tomoyo-init"
-CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/usr/lib/systemd/systemd"
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
-CONFIG_SECURITY_APPARMOR_HASH=y
+# CONFIG_SECURITY_SMACK is not set
+# CONFIG_SECURITY_TOMOYO is not set
+# CONFIG_SECURITY_APPARMOR is not set
CONFIG_SECURITY_YAMA=y
CONFIG_SECURITY_YAMA_STACKED=y
# CONFIG_IMA is not set
-# CONFIG_DEFAULT_SECURITY_SELINUX is not set
-# CONFIG_DEFAULT_SECURITY_SMACK is not set
-# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
-# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
# CONFIG_DEFAULT_SECURITY_YAMA is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
@@ -6317,13 +6443,13 @@ CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=m
CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH=m
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=m
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_PCOMP=m
CONFIG_CRYPTO_PCOMP2=y
-CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER=m
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
@@ -6379,7 +6505,7 @@ CONFIG_CRYPTO_RMD128=m
CONFIG_CRYPTO_RMD160=m
CONFIG_CRYPTO_RMD256=m
CONFIG_CRYPTO_RMD320=m
-CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_TGR192=m
@@ -6436,6 +6562,9 @@ CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
CONFIG_CRYPTO_DEV_GEODE=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_CRYPTO_DEV_CCP=y
+CONFIG_CRYPTO_DEV_CCP_DD=m
+CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_ASYMMETRIC_KEY_TYPE=m
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m
CONFIG_PUBLIC_KEY_ALGO_RSA=m
@@ -6456,7 +6585,7 @@ CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_MMU_AUDIT=y
CONFIG_KVM_DEVICE_ASSIGNMENT=y
-CONFIG_LGUEST=m
+# CONFIG_LGUEST is not set
CONFIG_BINARY_PRINTF=y
#
@@ -6485,7 +6614,6 @@ CONFIG_CRC32_SLICEBY8=y
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
CONFIG_CRC8=m
-CONFIG_AUDIT_GENERIC=y
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
@@ -6513,6 +6641,7 @@ CONFIG_GENERIC_ALLOCATOR=y
CONFIG_REED_SOLOMON=m
CONFIG_REED_SOLOMON_ENC8=y
CONFIG_REED_SOLOMON_DEC8=y
+CONFIG_REED_SOLOMON_DEC16=y
CONFIG_BCH=m
CONFIG_BCH_CONST_PARAMS=y
CONFIG_TEXTSEARCH=y
diff --git a/kernels/linux-libre-pae/criu-no-expert.patch b/kernels/linux-libre-pae/criu-no-expert.patch
deleted file mode 100644
index 9bbc02812..000000000
--- a/kernels/linux-libre-pae/criu-no-expert.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/init/Kconfig b/init/Kconfig
-index 4e5d96a..4b94ffe 100644
---- a/init/Kconfig
-+++ b/init/Kconfig
-@@ -1078,7 +1078,7 @@ config DEBUG_BLK_CGROUP
- endif # CGROUPS
-
- config CHECKPOINT_RESTORE
-- bool "Checkpoint/restore support" if EXPERT
-+ bool "Checkpoint/restore support"
- default n
- help
- Enables additional kernel features in a sake of checkpoint/restore.
diff --git a/kernels/linux-libre-pae/i8042-fix-aliases.patch b/kernels/linux-libre-pae/i8042-fix-aliases.patch
deleted file mode 100644
index 961968c78..000000000
--- a/kernels/linux-libre-pae/i8042-fix-aliases.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-commit 5a420e61e39862c7c3356080eddb23dfe4ccadb7
-Author: Tom Gundersen <teg@jklm.no>
-Date: Sun Jan 26 17:00:32 2014 +0100
-
- Input: i8042 - fix PNP modaliases when both aux and kdb are enabled
-
- Commit 78551277e4 exposed the PNP modaliases for the i8042 module. However,
- when both the aux and the kbd drivers are enabled the aux entries would
- override the kdb ones.
-
- Refactor the device_id lists, and unconditionally attempt to load the driver
- if either a kdb or aux devices is present.
-
- Signed-off-by: Tom Gundersen <teg@jklm.no>
-
-diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
-index 0ec9abb..dbc6958 100644
---- a/drivers/input/serio/i8042-x86ia64io.h
-+++ b/drivers/input/serio/i8042-x86ia64io.h
-@@ -747,25 +747,27 @@ static int i8042_pnp_aux_probe(struct pnp_dev *dev, const struct pnp_device_id *
- return 0;
- }
-
--static struct pnp_device_id pnp_kbd_devids[] = {
-- { .id = "PNP0300", .driver_data = 0 },
-- { .id = "PNP0301", .driver_data = 0 },
-- { .id = "PNP0302", .driver_data = 0 },
-- { .id = "PNP0303", .driver_data = 0 },
-- { .id = "PNP0304", .driver_data = 0 },
-- { .id = "PNP0305", .driver_data = 0 },
-- { .id = "PNP0306", .driver_data = 0 },
-- { .id = "PNP0309", .driver_data = 0 },
-- { .id = "PNP030a", .driver_data = 0 },
-- { .id = "PNP030b", .driver_data = 0 },
-- { .id = "PNP0320", .driver_data = 0 },
-- { .id = "PNP0343", .driver_data = 0 },
-- { .id = "PNP0344", .driver_data = 0 },
-- { .id = "PNP0345", .driver_data = 0 },
-+#define KBD_DEVIDS \
-+ { .id = "PNP0300", .driver_data = 0 }, \
-+ { .id = "PNP0301", .driver_data = 0 }, \
-+ { .id = "PNP0302", .driver_data = 0 }, \
-+ { .id = "PNP0303", .driver_data = 0 }, \
-+ { .id = "PNP0304", .driver_data = 0 }, \
-+ { .id = "PNP0305", .driver_data = 0 }, \
-+ { .id = "PNP0306", .driver_data = 0 }, \
-+ { .id = "PNP0309", .driver_data = 0 }, \
-+ { .id = "PNP030a", .driver_data = 0 }, \
-+ { .id = "PNP030b", .driver_data = 0 }, \
-+ { .id = "PNP0320", .driver_data = 0 }, \
-+ { .id = "PNP0343", .driver_data = 0 }, \
-+ { .id = "PNP0344", .driver_data = 0 }, \
-+ { .id = "PNP0345", .driver_data = 0 }, \
- { .id = "CPQA0D7", .driver_data = 0 },
-+
-+static struct pnp_device_id pnp_kbd_devids[] = {
-+ KBD_DEVIDS
- { .id = "", },
- };
--MODULE_DEVICE_TABLE(pnp, pnp_kbd_devids);
-
- static struct pnp_driver i8042_pnp_kbd_driver = {
- .name = "i8042 kbd",
-@@ -773,21 +775,23 @@ static struct pnp_driver i8042_pnp_kbd_driver = {
- .probe = i8042_pnp_kbd_probe,
- };
-
--static struct pnp_device_id pnp_aux_devids[] = {
-- { .id = "AUI0200", .driver_data = 0 },
-- { .id = "FJC6000", .driver_data = 0 },
-- { .id = "FJC6001", .driver_data = 0 },
-- { .id = "PNP0f03", .driver_data = 0 },
-- { .id = "PNP0f0b", .driver_data = 0 },
-- { .id = "PNP0f0e", .driver_data = 0 },
-- { .id = "PNP0f12", .driver_data = 0 },
-- { .id = "PNP0f13", .driver_data = 0 },
-- { .id = "PNP0f19", .driver_data = 0 },
-- { .id = "PNP0f1c", .driver_data = 0 },
-+#define AUX_DEVIDS \
-+ { .id = "AUI0200", .driver_data = 0 }, \
-+ { .id = "FJC6000", .driver_data = 0 }, \
-+ { .id = "FJC6001", .driver_data = 0 }, \
-+ { .id = "PNP0f03", .driver_data = 0 }, \
-+ { .id = "PNP0f0b", .driver_data = 0 }, \
-+ { .id = "PNP0f0e", .driver_data = 0 }, \
-+ { .id = "PNP0f12", .driver_data = 0 }, \
-+ { .id = "PNP0f13", .driver_data = 0 }, \
-+ { .id = "PNP0f19", .driver_data = 0 }, \
-+ { .id = "PNP0f1c", .driver_data = 0 }, \
- { .id = "SYN0801", .driver_data = 0 },
-+
-+static struct pnp_device_id pnp_aux_devids[] = {
-+ AUX_DEVIDS
- { .id = "", },
- };
--MODULE_DEVICE_TABLE(pnp, pnp_aux_devids);
-
- static struct pnp_driver i8042_pnp_aux_driver = {
- .name = "i8042 aux",
-@@ -795,6 +799,13 @@ static struct pnp_driver i8042_pnp_aux_driver = {
- .probe = i8042_pnp_aux_probe,
- };
-
-+static struct pnp_device_id pnp_kdb_aux_devids[] = {
-+ KBD_DEVIDS
-+ AUX_DEVIDS
-+ { .id = "", },
-+};
-+MODULE_DEVICE_TABLE(pnp, pnp_kdb_aux_devids);
-+
- static void i8042_pnp_exit(void)
- {
- if (i8042_pnp_kbd_registered) {
diff --git a/kernels/linux-libre-xen/0001-Bluetooth-allocate-static-minor-for-vhci.patch b/kernels/linux-libre-xen/0001-Bluetooth-allocate-static-minor-for-vhci.patch
index 33a3fde88..f63e5e79d 100644
--- a/kernels/linux-libre-xen/0001-Bluetooth-allocate-static-minor-for-vhci.patch
+++ b/kernels/linux-libre-xen/0001-Bluetooth-allocate-static-minor-for-vhci.patch
@@ -1,9 +1,7 @@
-From a62207820fb65f168c8a7f9c0abb71d736f3d7e0 Mon Sep 17 00:00:00 2001
+From 5d77ba2d26110c678b40fd723866a17d4036de12 Mon Sep 17 00:00:00 2001
From: Lucas De Marchi <lucas.demarchi@intel.com>
Date: Tue, 18 Feb 2014 02:19:26 -0300
-Subject: [PATCH] Bluetooth: allocate static minor for vhci
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
+Subject: [PATCH 1/7] Bluetooth: allocate static minor for vhci
Commit bfacbb9 (Bluetooth: Use devname:vhci module alias for virtual HCI
driver) added the module alias to hci_vhci module so it's possible to
@@ -30,7 +28,7 @@ Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/Documentation/devices.txt b/Documentation/devices.txt
-index 80b7241..fce9398 100644
+index 10378cc..04356f5 100644
--- a/Documentation/devices.txt
+++ b/Documentation/devices.txt
@@ -353,6 +353,7 @@ Your cooperation is appreciated.
@@ -42,10 +40,10 @@ index 80b7241..fce9398 100644
140 = /dev/relay8 Berkshire Products Octal relay card
141 = /dev/relay16 Berkshire Products ISO-16 relay card
diff --git a/drivers/bluetooth/hci_vhci.c b/drivers/bluetooth/hci_vhci.c
-index 7b16738..59095e6 100644
+index 1ef6990..add1c6a 100644
--- a/drivers/bluetooth/hci_vhci.c
+++ b/drivers/bluetooth/hci_vhci.c
-@@ -352,7 +352,7 @@ static const struct file_operations vhci_fops = {
+@@ -359,7 +359,7 @@ static const struct file_operations vhci_fops = {
static struct miscdevice vhci_miscdev= {
.name = "vhci",
.fops = &vhci_fops,
@@ -54,13 +52,13 @@ index 7b16738..59095e6 100644
};
static int __init vhci_init(void)
-@@ -378,3 +378,4 @@ MODULE_DESCRIPTION("Bluetooth virtual HCI driver ver " VERSION);
+@@ -385,3 +385,4 @@ MODULE_DESCRIPTION("Bluetooth virtual HCI driver ver " VERSION);
MODULE_VERSION(VERSION);
MODULE_LICENSE("GPL");
MODULE_ALIAS("devname:vhci");
+MODULE_ALIAS_MISCDEV(VHCI_MINOR);
diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h
-index f7eaf2d..e5db611 100644
+index 3737f72..7bb6148 100644
--- a/include/linux/miscdevice.h
+++ b/include/linux/miscdevice.h
@@ -23,6 +23,7 @@
@@ -72,5 +70,5 @@ index f7eaf2d..e5db611 100644
#define DMAPI_MINOR 140 /* DMAPI */
#define NVRAM_MINOR 144
--
-1.9.0
+1.9.1
diff --git a/kernels/linux-libre-xen/0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch b/kernels/linux-libre-xen/0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch
deleted file mode 100644
index 2d398315e..000000000
--- a/kernels/linux-libre-xen/0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch
+++ /dev/null
@@ -1,241 +0,0 @@
-From 4b9a445e3eeb8bd9278b1ae51c1b3a651e370cd6 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton@redhat.com>
-Date: Thu, 14 Nov 2013 07:25:17 -0500
-Subject: [PATCH 1/6] sunrpc: create a new dummy pipe for gssd to hold open
-
-rpc.gssd will naturally hold open any pipe named */clnt*/gssd that shows
-up under rpc_pipefs. That behavior gives us a reliable mechanism to tell
-whether it's actually running or not.
-
-Create a new toplevel "gssd" directory in rpc_pipefs when it's mounted.
-Under that directory create another directory called "clntXX", and then
-within that a pipe called "gssd".
-
-We'll never send an upcall along that pipe, and any downcall written to
-it will just return -EINVAL.
-
-Signed-off-by: Jeff Layton <jlayton@redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
----
- include/linux/sunrpc/rpc_pipe_fs.h | 3 +-
- net/sunrpc/netns.h | 1 +
- net/sunrpc/rpc_pipe.c | 93 ++++++++++++++++++++++++++++++++++++--
- net/sunrpc/sunrpc_syms.c | 8 +++-
- 4 files changed, 100 insertions(+), 5 deletions(-)
-
-diff --git a/include/linux/sunrpc/rpc_pipe_fs.h b/include/linux/sunrpc/rpc_pipe_fs.h
-index a353e03..85f1342 100644
---- a/include/linux/sunrpc/rpc_pipe_fs.h
-+++ b/include/linux/sunrpc/rpc_pipe_fs.h
-@@ -84,7 +84,8 @@ enum {
-
- extern struct dentry *rpc_d_lookup_sb(const struct super_block *sb,
- const unsigned char *dir_name);
--extern void rpc_pipefs_init_net(struct net *net);
-+extern int rpc_pipefs_init_net(struct net *net);
-+extern void rpc_pipefs_exit_net(struct net *net);
- extern struct super_block *rpc_get_sb_net(const struct net *net);
- extern void rpc_put_sb_net(const struct net *net);
-
-diff --git a/net/sunrpc/netns.h b/net/sunrpc/netns.h
-index 779742c..8a8e841 100644
---- a/net/sunrpc/netns.h
-+++ b/net/sunrpc/netns.h
-@@ -14,6 +14,7 @@ struct sunrpc_net {
- struct cache_detail *rsi_cache;
-
- struct super_block *pipefs_sb;
-+ struct rpc_pipe *gssd_dummy;
- struct mutex pipefs_sb_lock;
-
- struct list_head all_clients;
-diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
-index bf04b30..c23458b 100644
---- a/net/sunrpc/rpc_pipe.c
-+++ b/net/sunrpc/rpc_pipe.c
-@@ -38,7 +38,7 @@
- #define NET_NAME(net) ((net == &init_net) ? " (init_net)" : "")
-
- static struct file_system_type rpc_pipe_fs_type;
--
-+static const struct rpc_pipe_ops gssd_dummy_pipe_ops;
-
- static struct kmem_cache *rpc_inode_cachep __read_mostly;
-
-@@ -1159,6 +1159,7 @@ enum {
- RPCAUTH_nfsd4_cb,
- RPCAUTH_cache,
- RPCAUTH_nfsd,
-+ RPCAUTH_gssd,
- RPCAUTH_RootEOF
- };
-
-@@ -1195,6 +1196,10 @@ static const struct rpc_filelist files[] = {
- .name = "nfsd",
- .mode = S_IFDIR | S_IRUGO | S_IXUGO,
- },
-+ [RPCAUTH_gssd] = {
-+ .name = "gssd",
-+ .mode = S_IFDIR | S_IRUGO | S_IXUGO,
-+ },
- };
-
- /*
-@@ -1208,13 +1213,25 @@ struct dentry *rpc_d_lookup_sb(const struct super_block *sb,
- }
- EXPORT_SYMBOL_GPL(rpc_d_lookup_sb);
-
--void rpc_pipefs_init_net(struct net *net)
-+int rpc_pipefs_init_net(struct net *net)
- {
- struct sunrpc_net *sn = net_generic(net, sunrpc_net_id);
-
-+ sn->gssd_dummy = rpc_mkpipe_data(&gssd_dummy_pipe_ops, 0);
-+ if (IS_ERR(sn->gssd_dummy))
-+ return PTR_ERR(sn->gssd_dummy);
-+
- mutex_init(&sn->pipefs_sb_lock);
- sn->gssd_running = 1;
- sn->pipe_version = -1;
-+ return 0;
-+}
-+
-+void rpc_pipefs_exit_net(struct net *net)
-+{
-+ struct sunrpc_net *sn = net_generic(net, sunrpc_net_id);
-+
-+ rpc_destroy_pipe_data(sn->gssd_dummy);
- }
-
- /*
-@@ -1244,11 +1261,73 @@ void rpc_put_sb_net(const struct net *net)
- }
- EXPORT_SYMBOL_GPL(rpc_put_sb_net);
-
-+static const struct rpc_filelist gssd_dummy_clnt_dir[] = {
-+ [0] = {
-+ .name = "clntXX",
-+ .mode = S_IFDIR | S_IRUGO | S_IXUGO,
-+ },
-+};
-+
-+static ssize_t
-+dummy_downcall(struct file *filp, const char __user *src, size_t len)
-+{
-+ return -EINVAL;
-+}
-+
-+static const struct rpc_pipe_ops gssd_dummy_pipe_ops = {
-+ .upcall = rpc_pipe_generic_upcall,
-+ .downcall = dummy_downcall,
-+};
-+
-+/**
-+ * rpc_gssd_dummy_populate - create a dummy gssd pipe
-+ * @root: root of the rpc_pipefs filesystem
-+ * @pipe_data: pipe data created when netns is initialized
-+ *
-+ * Create a dummy set of directories and a pipe that gssd can hold open to
-+ * indicate that it is up and running.
-+ */
-+static struct dentry *
-+rpc_gssd_dummy_populate(struct dentry *root, struct rpc_pipe *pipe_data)
-+{
-+ int ret = 0;
-+ struct dentry *gssd_dentry;
-+ struct dentry *clnt_dentry = NULL;
-+ struct dentry *pipe_dentry = NULL;
-+ struct qstr q = QSTR_INIT(files[RPCAUTH_gssd].name,
-+ strlen(files[RPCAUTH_gssd].name));
-+
-+ /* We should never get this far if "gssd" doesn't exist */
-+ gssd_dentry = d_hash_and_lookup(root, &q);
-+ if (!gssd_dentry)
-+ return ERR_PTR(-ENOENT);
-+
-+ ret = rpc_populate(gssd_dentry, gssd_dummy_clnt_dir, 0, 1, NULL);
-+ if (ret) {
-+ pipe_dentry = ERR_PTR(ret);
-+ goto out;
-+ }
-+
-+ q.name = gssd_dummy_clnt_dir[0].name;
-+ q.len = strlen(gssd_dummy_clnt_dir[0].name);
-+ clnt_dentry = d_hash_and_lookup(gssd_dentry, &q);
-+ if (!clnt_dentry) {
-+ pipe_dentry = ERR_PTR(-ENOENT);
-+ goto out;
-+ }
-+
-+ pipe_dentry = rpc_mkpipe_dentry(clnt_dentry, "gssd", NULL, pipe_data);
-+out:
-+ dput(clnt_dentry);
-+ dput(gssd_dentry);
-+ return pipe_dentry;
-+}
-+
- static int
- rpc_fill_super(struct super_block *sb, void *data, int silent)
- {
- struct inode *inode;
-- struct dentry *root;
-+ struct dentry *root, *gssd_dentry;
- struct net *net = data;
- struct sunrpc_net *sn = net_generic(net, sunrpc_net_id);
- int err;
-@@ -1266,6 +1345,13 @@ rpc_fill_super(struct super_block *sb, void *data, int silent)
- return -ENOMEM;
- if (rpc_populate(root, files, RPCAUTH_lockd, RPCAUTH_RootEOF, NULL))
- return -ENOMEM;
-+
-+ gssd_dentry = rpc_gssd_dummy_populate(root, sn->gssd_dummy);
-+ if (IS_ERR(gssd_dentry)) {
-+ __rpc_depopulate(root, files, RPCAUTH_lockd, RPCAUTH_RootEOF);
-+ return PTR_ERR(gssd_dentry);
-+ }
-+
- dprintk("RPC: sending pipefs MOUNT notification for net %p%s\n",
- net, NET_NAME(net));
- mutex_lock(&sn->pipefs_sb_lock);
-@@ -1280,6 +1366,7 @@ rpc_fill_super(struct super_block *sb, void *data, int silent)
- return 0;
-
- err_depopulate:
-+ dput(gssd_dentry);
- blocking_notifier_call_chain(&rpc_pipefs_notifier_list,
- RPC_PIPEFS_UMOUNT,
- sb);
-diff --git a/net/sunrpc/sunrpc_syms.c b/net/sunrpc/sunrpc_syms.c
-index 3d6498a..cd30120 100644
---- a/net/sunrpc/sunrpc_syms.c
-+++ b/net/sunrpc/sunrpc_syms.c
-@@ -44,12 +44,17 @@ static __net_init int sunrpc_init_net(struct net *net)
- if (err)
- goto err_unixgid;
-
-- rpc_pipefs_init_net(net);
-+ err = rpc_pipefs_init_net(net);
-+ if (err)
-+ goto err_pipefs;
-+
- INIT_LIST_HEAD(&sn->all_clients);
- spin_lock_init(&sn->rpc_client_lock);
- spin_lock_init(&sn->rpcb_clnt_lock);
- return 0;
-
-+err_pipefs:
-+ unix_gid_cache_destroy(net);
- err_unixgid:
- ip_map_cache_destroy(net);
- err_ipmap:
-@@ -60,6 +65,7 @@ err_proc:
-
- static __net_exit void sunrpc_exit_net(struct net *net)
- {
-+ rpc_pipefs_exit_net(net);
- unix_gid_cache_destroy(net);
- ip_map_cache_destroy(net);
- rpc_proc_exit(net);
---
-1.8.5.3
-
diff --git a/kernels/linux-libre-xen/0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch b/kernels/linux-libre-xen/0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch
deleted file mode 100644
index c4242e0ae..000000000
--- a/kernels/linux-libre-xen/0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 83460ec8dcac14142e7860a01fa59c267ac4657c Mon Sep 17 00:00:00 2001
-From: Andi Kleen <ak@linux.intel.com>
-Date: Tue, 12 Nov 2013 15:08:36 -0800
-Subject: [PATCH] syscalls.h: use gcc alias instead of assembler aliases for
- syscalls
-
-Use standard gcc __attribute__((alias(foo))) to define the syscall aliases
-instead of custom assembler macros.
-
-This is far cleaner, and also fixes my LTO kernel build.
-
-Signed-off-by: Andi Kleen <ak@linux.intel.com>
-Cc: Al Viro <viro@ZenIV.linux.org.uk>
-Cc: Geert Uytterhoeven <geert@linux-m68k.org>
-Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
----
- include/linux/compat.h | 4 ++--
- include/linux/syscalls.h | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/include/linux/compat.h b/include/linux/compat.h
-index 345da00..ada34c9 100644
---- a/include/linux/compat.h
-+++ b/include/linux/compat.h
-@@ -41,14 +41,14 @@
- COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
-
- #define COMPAT_SYSCALL_DEFINEx(x, name, ...) \
-- asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
-+ asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
-+ __attribute__((alias(__stringify(compat_SyS##name)))); \
- static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
- asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__));\
- asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\
- { \
- return C_SYSC##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__)); \
- } \
-- SYSCALL_ALIAS(compat_sys##name, compat_SyS##name); \
- static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__))
-
- #ifndef compat_user_stack_pointer
-diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
-index 7fac04e..c27f846 100644
---- a/include/linux/syscalls.h
-+++ b/include/linux/syscalls.h
-@@ -184,7 +184,8 @@ extern struct trace_event_functions exit_syscall_print_funcs;
-
- #define __PROTECT(...) asmlinkage_protect(__VA_ARGS__)
- #define __SYSCALL_DEFINEx(x, name, ...) \
-- asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \
-+ asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
-+ __attribute__((alias(__stringify(SyS##name)))); \
- static inline long SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \
- asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
- asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
-@@ -194,7 +195,6 @@ extern struct trace_event_functions exit_syscall_print_funcs;
- __PROTECT(x, ret,__MAP(x,__SC_ARGS,__VA_ARGS__)); \
- return ret; \
- } \
-- SYSCALL_ALIAS(sys##name, SyS##name); \
- static inline long SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__))
-
- asmlinkage long sys_time(time_t __user *tloc);
---
-1.8.5.3
-
diff --git a/kernels/linux-libre-xen/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch b/kernels/linux-libre-xen/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch
new file mode 100644
index 000000000..188110a8c
--- /dev/null
+++ b/kernels/linux-libre-xen/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch
@@ -0,0 +1,93 @@
+From 9bc5b710f5957763d6944f38143b627d127c15ff Mon Sep 17 00:00:00 2001
+From: Tom Gundersen <teg@jklm.no>
+Date: Mon, 3 Feb 2014 11:14:13 +1030
+Subject: [PATCH 2/7] module: allow multiple calls to MODULE_DEVICE_TABLE() per
+ module
+
+Commit 78551277e4df5: "Input: i8042 - add PNP modaliases" had a bug, where the
+second call to MODULE_DEVICE_TABLE() overrode the first resulting in not all
+the modaliases being exposed.
+
+This fixes the problem by including the name of the device_id table in the
+__mod_*_device_table alias, allowing us to export several device_id tables
+per module.
+
+Suggested-by: Kay Sievers <kay@vrfy.org>
+Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Tom Gundersen <teg@jklm.no>
+Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
+---
+ include/linux/module.h | 2 +-
+ scripts/mod/file2alias.c | 14 +++++++++-----
+ 2 files changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/include/linux/module.h b/include/linux/module.h
+index eaf60ff..ad18f60 100644
+--- a/include/linux/module.h
++++ b/include/linux/module.h
+@@ -142,7 +142,7 @@ extern const struct gtype##_id __mod_##gtype##_table \
+ #define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description)
+
+ #define MODULE_DEVICE_TABLE(type, name) \
+- MODULE_GENERIC_TABLE(type##_device, name)
++ MODULE_GENERIC_TABLE(type##__##name##_device, name)
+
+ /* Version of form [<epoch>:]<version>[-<extra-version>].
+ * Or for CVS/RCS ID version, everything but the number is stripped.
+diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
+index 25e5cb0..ce16404 100644
+--- a/scripts/mod/file2alias.c
++++ b/scripts/mod/file2alias.c
+@@ -42,7 +42,7 @@ typedef unsigned char __u8;
+
+ /* This array collects all instances that use the generic do_table */
+ struct devtable {
+- const char *device_id; /* name of table, __mod_<name>_device_table. */
++ const char *device_id; /* name of table, __mod_<name>__*_device_table. */
+ unsigned long id_size;
+ void *function;
+ };
+@@ -146,7 +146,8 @@ static void device_id_check(const char *modname, const char *device_id,
+
+ if (size % id_size || size < id_size) {
+ fatal("%s: sizeof(struct %s_device_id)=%lu is not a modulo "
+- "of the size of section __mod_%s_device_table=%lu.\n"
++ "of the size of "
++ "section __mod_%s__<identifier>_device_table=%lu.\n"
+ "Fix definition of struct %s_device_id "
+ "in mod_devicetable.h\n",
+ modname, device_id, id_size, device_id, size, device_id);
+@@ -1206,7 +1207,7 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
+ {
+ void *symval;
+ char *zeros = NULL;
+- const char *name;
++ const char *name, *identifier;
+ unsigned int namelen;
+
+ /* We're looking for a section relative symbol */
+@@ -1217,7 +1218,7 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
+ if (ELF_ST_TYPE(sym->st_info) != STT_OBJECT)
+ return;
+
+- /* All our symbols are of form <prefix>__mod_XXX_device_table. */
++ /* All our symbols are of form <prefix>__mod_<name>__<identifier>_device_table. */
+ name = strstr(symname, "__mod_");
+ if (!name)
+ return;
+@@ -1227,7 +1228,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
+ return;
+ if (strcmp(name + namelen - strlen("_device_table"), "_device_table"))
+ return;
+- namelen -= strlen("_device_table");
++ identifier = strstr(name, "__");
++ if (!identifier)
++ return;
++ namelen = identifier - name;
+
+ /* Handle all-NULL symbols allocated into .bss */
+ if (info->sechdrs[get_secindex(info, sym)].sh_type & SHT_NOBITS) {
+--
+1.9.1
+
diff --git a/kernels/linux-libre-xen/0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch b/kernels/linux-libre-xen/0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch
deleted file mode 100644
index 19e04da5d..000000000
--- a/kernels/linux-libre-xen/0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From 89f842435c630f8426f414e6030bc2ffea0d6f81 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton@redhat.com>
-Date: Thu, 14 Nov 2013 07:25:18 -0500
-Subject: [PATCH 2/6] sunrpc: replace sunrpc_net->gssd_running flag with a more
- reliable check
-
-Now that we have a more reliable method to tell if gssd is running, we
-can replace the sn->gssd_running flag with a function that will query to
-see if it's up and running.
-
-There's also no need to attempt an upcall that we know will fail, so
-just return -EACCES if gssd isn't running. Finally, fix the warn_gss()
-message not to claim that that the upcall timed out since we don't
-necesarily perform one now when gssd isn't running, and remove the
-extraneous newline from the message.
-
-Signed-off-by: Jeff Layton <jlayton@redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
----
- include/linux/sunrpc/rpc_pipe_fs.h | 2 ++
- net/sunrpc/auth_gss/auth_gss.c | 17 +++++++----------
- net/sunrpc/netns.h | 2 --
- net/sunrpc/rpc_pipe.c | 14 ++++++++++----
- 4 files changed, 19 insertions(+), 16 deletions(-)
-
-diff --git a/include/linux/sunrpc/rpc_pipe_fs.h b/include/linux/sunrpc/rpc_pipe_fs.h
-index 85f1342..7f490be 100644
---- a/include/linux/sunrpc/rpc_pipe_fs.h
-+++ b/include/linux/sunrpc/rpc_pipe_fs.h
-@@ -131,5 +131,7 @@ extern int rpc_unlink(struct dentry *);
- extern int register_rpc_pipefs(void);
- extern void unregister_rpc_pipefs(void);
-
-+extern bool gssd_running(struct net *net);
-+
- #endif
- #endif
-diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c
-index 42fdfc6..0a2aee0 100644
---- a/net/sunrpc/auth_gss/auth_gss.c
-+++ b/net/sunrpc/auth_gss/auth_gss.c
-@@ -536,8 +536,7 @@ static void warn_gssd(void)
- unsigned long now = jiffies;
-
- if (time_after(now, ratelimit)) {
-- printk(KERN_WARNING "RPC: AUTH_GSS upcall timed out.\n"
-- "Please check user daemon is running.\n");
-+ pr_warn("RPC: AUTH_GSS upcall failed. Please check user daemon is running.\n");
- ratelimit = now + 15*HZ;
- }
- }
-@@ -600,7 +599,6 @@ gss_create_upcall(struct gss_auth *gss_auth, struct gss_cred *gss_cred)
- struct rpc_pipe *pipe;
- struct rpc_cred *cred = &gss_cred->gc_base;
- struct gss_upcall_msg *gss_msg;
-- unsigned long timeout;
- DEFINE_WAIT(wait);
- int err;
-
-@@ -608,17 +606,16 @@ gss_create_upcall(struct gss_auth *gss_auth, struct gss_cred *gss_cred)
- __func__, from_kuid(&init_user_ns, cred->cr_uid));
- retry:
- err = 0;
-- /* Default timeout is 15s unless we know that gssd is not running */
-- timeout = 15 * HZ;
-- if (!sn->gssd_running)
-- timeout = HZ >> 2;
-+ /* if gssd is down, just skip upcalling altogether */
-+ if (!gssd_running(net)) {
-+ warn_gssd();
-+ return -EACCES;
-+ }
- gss_msg = gss_setup_upcall(gss_auth, cred);
- if (PTR_ERR(gss_msg) == -EAGAIN) {
- err = wait_event_interruptible_timeout(pipe_version_waitqueue,
-- sn->pipe_version >= 0, timeout);
-+ sn->pipe_version >= 0, 15 * HZ);
- if (sn->pipe_version < 0) {
-- if (err == 0)
-- sn->gssd_running = 0;
- warn_gssd();
- err = -EACCES;
- }
-diff --git a/net/sunrpc/netns.h b/net/sunrpc/netns.h
-index 8a8e841..94e506f 100644
---- a/net/sunrpc/netns.h
-+++ b/net/sunrpc/netns.h
-@@ -33,8 +33,6 @@ struct sunrpc_net {
- int pipe_version;
- atomic_t pipe_users;
- struct proc_dir_entry *use_gssp_proc;
--
-- unsigned int gssd_running;
- };
-
- extern int sunrpc_net_id;
-diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
-index c23458b..5cd7ad1 100644
---- a/net/sunrpc/rpc_pipe.c
-+++ b/net/sunrpc/rpc_pipe.c
-@@ -216,14 +216,11 @@ rpc_destroy_inode(struct inode *inode)
- static int
- rpc_pipe_open(struct inode *inode, struct file *filp)
- {
-- struct net *net = inode->i_sb->s_fs_info;
-- struct sunrpc_net *sn = net_generic(net, sunrpc_net_id);
- struct rpc_pipe *pipe;
- int first_open;
- int res = -ENXIO;
-
- mutex_lock(&inode->i_mutex);
-- sn->gssd_running = 1;
- pipe = RPC_I(inode)->pipe;
- if (pipe == NULL)
- goto out;
-@@ -1222,7 +1219,6 @@ int rpc_pipefs_init_net(struct net *net)
- return PTR_ERR(sn->gssd_dummy);
-
- mutex_init(&sn->pipefs_sb_lock);
-- sn->gssd_running = 1;
- sn->pipe_version = -1;
- return 0;
- }
-@@ -1376,6 +1372,16 @@ err_depopulate:
- return err;
- }
-
-+bool
-+gssd_running(struct net *net)
-+{
-+ struct sunrpc_net *sn = net_generic(net, sunrpc_net_id);
-+ struct rpc_pipe *pipe = sn->gssd_dummy;
-+
-+ return pipe->nreaders || pipe->nwriters;
-+}
-+EXPORT_SYMBOL_GPL(gssd_running);
-+
- static struct dentry *
- rpc_mount(struct file_system_type *fs_type,
- int flags, const char *dev_name, void *data)
---
-1.8.5.3
-
diff --git a/kernels/linux-libre-xen/0003-module-remove-MODULE_GENERIC_TABLE.patch b/kernels/linux-libre-xen/0003-module-remove-MODULE_GENERIC_TABLE.patch
new file mode 100644
index 000000000..43947a1d3
--- /dev/null
+++ b/kernels/linux-libre-xen/0003-module-remove-MODULE_GENERIC_TABLE.patch
@@ -0,0 +1,75 @@
+From 06d2e746733a83469944481cb7f4fb1c7134a8ce Mon Sep 17 00:00:00 2001
+From: Rusty Russell <rusty@rustcorp.com.au>
+Date: Mon, 3 Feb 2014 11:15:13 +1030
+Subject: [PATCH 3/7] module: remove MODULE_GENERIC_TABLE
+
+MODULE_DEVICE_TABLE() calles MODULE_GENERIC_TABLE(); make it do the
+work directly. This also removes a wart introduced in the last patch,
+where the alias is defined to be an unknown struct type "struct
+type##__##name##_device_id" instead of "struct type##_device_id" (it's
+an extern so GCC doesn't care, but it's wrong).
+
+The other user of MODULE_GENERIC_TABLE (ISAPNP_CARD_TABLE) is unused,
+so delete it.
+
+Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
+---
+ include/linux/isapnp.h | 4 ----
+ include/linux/module.h | 19 ++++++++-----------
+ 2 files changed, 8 insertions(+), 15 deletions(-)
+
+diff --git a/include/linux/isapnp.h b/include/linux/isapnp.h
+index e2d28b0..3c77bf9 100644
+--- a/include/linux/isapnp.h
++++ b/include/linux/isapnp.h
+@@ -56,10 +56,6 @@
+ #define ISAPNP_DEVICE_ID(_va, _vb, _vc, _function) \
+ { .vendor = ISAPNP_VENDOR(_va, _vb, _vc), .function = ISAPNP_FUNCTION(_function) }
+
+-/* export used IDs outside module */
+-#define ISAPNP_CARD_TABLE(name) \
+- MODULE_GENERIC_TABLE(isapnp_card, name)
+-
+ struct isapnp_card_id {
+ unsigned long driver_data; /* data private to the driver */
+ unsigned short card_vendor, card_device;
+diff --git a/include/linux/module.h b/include/linux/module.h
+index ad18f60..5686b37 100644
+--- a/include/linux/module.h
++++ b/include/linux/module.h
+@@ -82,15 +82,6 @@ void sort_extable(struct exception_table_entry *start,
+ void sort_main_extable(void);
+ void trim_init_extable(struct module *m);
+
+-#ifdef MODULE
+-#define MODULE_GENERIC_TABLE(gtype, name) \
+-extern const struct gtype##_id __mod_##gtype##_table \
+- __attribute__ ((unused, alias(__stringify(name))))
+-
+-#else /* !MODULE */
+-#define MODULE_GENERIC_TABLE(gtype, name)
+-#endif
+-
+ /* Generic info of form tag = "info" */
+ #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info)
+
+@@ -141,8 +132,14 @@ extern const struct gtype##_id __mod_##gtype##_table \
+ /* What your module does. */
+ #define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description)
+
+-#define MODULE_DEVICE_TABLE(type, name) \
+- MODULE_GENERIC_TABLE(type##__##name##_device, name)
++#ifdef MODULE
++/* Creates an alias so file2alias.c can find device table. */
++#define MODULE_DEVICE_TABLE(type, name) \
++ extern const struct type##_device_id __mod_##type##__##name##_device_table \
++ __attribute__ ((unused, alias(__stringify(name))))
++#else /* !MODULE */
++#define MODULE_DEVICE_TABLE(type, name)
++#endif
+
+ /* Version of form [<epoch>:]<version>[-<extra-version>].
+ * Or for CVS/RCS ID version, everything but the number is stripped.
+--
+1.9.1
+
diff --git a/kernels/linux-libre-xen/0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch b/kernels/linux-libre-xen/0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch
deleted file mode 100644
index 87b54fc3e..000000000
--- a/kernels/linux-libre-xen/0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 6aa23d76a7b549521a03b63b6d5b7880ea87eab7 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton@redhat.com>
-Date: Thu, 14 Nov 2013 07:25:19 -0500
-Subject: [PATCH 3/6] nfs: check if gssd is running before attempting to use
- krb5i auth in SETCLIENTID call
-
-Currently, the client will attempt to use krb5i in the SETCLIENTID call
-even if rpc.gssd isn't running. When that fails, it'll then fall back to
-RPC_AUTH_UNIX. This introduced a delay when mounting if rpc.gssd isn't
-running, and causes warning messages to pop up in the ring buffer.
-
-Check to see if rpc.gssd is running before even attempting to use krb5i
-auth, and just silently skip trying to do so if it isn't. In the event
-that the admin is actually trying to mount with krb5*, it will still
-fail at a later stage of the mount attempt.
-
-Signed-off-by: Jeff Layton <jlayton@redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
----
- fs/nfs/nfs4client.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c
-index b4a160a..c1b7a80 100644
---- a/fs/nfs/nfs4client.c
-+++ b/fs/nfs/nfs4client.c
-@@ -10,6 +10,7 @@
- #include <linux/sunrpc/auth.h>
- #include <linux/sunrpc/xprt.h>
- #include <linux/sunrpc/bc_xprt.h>
-+#include <linux/sunrpc/rpc_pipe_fs.h>
- #include "internal.h"
- #include "callback.h"
- #include "delegation.h"
-@@ -370,7 +371,11 @@ struct nfs_client *nfs4_init_client(struct nfs_client *clp,
- __set_bit(NFS_CS_INFINITE_SLOTS, &clp->cl_flags);
- __set_bit(NFS_CS_DISCRTRY, &clp->cl_flags);
- __set_bit(NFS_CS_NO_RETRANS_TIMEOUT, &clp->cl_flags);
-- error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_GSS_KRB5I);
-+
-+ error = -EINVAL;
-+ if (gssd_running(clp->cl_net))
-+ error = nfs_create_rpc_client(clp, timeparms,
-+ RPC_AUTH_GSS_KRB5I);
- if (error == -EINVAL)
- error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_UNIX);
- if (error < 0)
---
-1.8.5.3
-
diff --git a/kernels/linux-libre-xen/0004-fs-Don-t-return-0-from-get_anon_bdev.patch b/kernels/linux-libre-xen/0004-fs-Don-t-return-0-from-get_anon_bdev.patch
new file mode 100644
index 000000000..4c11b31f2
--- /dev/null
+++ b/kernels/linux-libre-xen/0004-fs-Don-t-return-0-from-get_anon_bdev.patch
@@ -0,0 +1,44 @@
+From 835a463e190af87a36df681863db7c3ea7ba0d66 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org>
+Date: Thu, 3 Apr 2014 21:55:37 +0200
+Subject: [PATCH 4/7] fs: Don't return 0 from get_anon_bdev
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Commit 9e30cc9595303b27b48 removed an internal mount. This
+has the side-effect that rootfs now has FSID 0. Many
+userspace utilities assume that st_dev in struct stat
+is never 0, so this change breaks a number of tools in
+early userspace.
+
+Since we don't know how many userspace programs are affected,
+make sure that FSID is at least 1.
+
+References: http://article.gmane.org/gmane.linux.kernel/1666905
+References: http://permalink.gmane.org/gmane.linux.utilities.util-linux-ng/8557
+Cc: 3.14 <stable@vger.kernel.org>
+Signed-off-by: Thomas Bächler <thomas@archlinux.org>
+---
+ fs/super.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/fs/super.c b/fs/super.c
+index 80d5cf2..7624267 100644
+--- a/fs/super.c
++++ b/fs/super.c
+@@ -802,7 +802,10 @@ void emergency_remount(void)
+
+ static DEFINE_IDA(unnamed_dev_ida);
+ static DEFINE_SPINLOCK(unnamed_dev_lock);/* protects the above */
+-static int unnamed_dev_start = 0; /* don't bother trying below it */
++/* Many userspace utilities consider an FSID of 0 invalid.
++ * Always return at least 1 from get_anon_bdev.
++ */
++static int unnamed_dev_start = 1;
+
+ int get_anon_bdev(dev_t *p)
+ {
+--
+1.9.1
+
diff --git a/kernels/linux-libre-xen/0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch b/kernels/linux-libre-xen/0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch
deleted file mode 100644
index 5f2c3dae8..000000000
--- a/kernels/linux-libre-xen/0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 3396f92f8be606ea485b0a82d4e7749a448b013b Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton@redhat.com>
-Date: Thu, 5 Dec 2013 07:33:49 -0500
-Subject: [PATCH 4/6] rpc_pipe: remove the clntXX dir if creating the pipe
- fails
-
-In the event that we create the gssd/clntXX dir, but the pipe creation
-subsequently fails, then we should remove the clntXX dir before
-returning.
-
-Signed-off-by: Jeff Layton <jlayton@redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
----
- net/sunrpc/rpc_pipe.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
-index 5cd7ad1..0b74c61 100644
---- a/net/sunrpc/rpc_pipe.c
-+++ b/net/sunrpc/rpc_pipe.c
-@@ -1313,6 +1313,8 @@ rpc_gssd_dummy_populate(struct dentry *root, struct rpc_pipe *pipe_data)
- }
-
- pipe_dentry = rpc_mkpipe_dentry(clnt_dentry, "gssd", NULL, pipe_data);
-+ if (IS_ERR(pipe_dentry))
-+ __rpc_depopulate(gssd_dentry, gssd_dummy_clnt_dir, 0, 1);
- out:
- dput(clnt_dentry);
- dput(gssd_dentry);
---
-1.8.5.3
-
diff --git a/kernels/linux-libre-xen/0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch b/kernels/linux-libre-xen/0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch
new file mode 100644
index 000000000..c31441731
--- /dev/null
+++ b/kernels/linux-libre-xen/0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch
@@ -0,0 +1,33 @@
+From 71d4f3022d1f625d94187f7cda682d2233a692d8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org>
+Date: Thu, 3 Apr 2014 23:59:49 +0200
+Subject: [PATCH 5/7] Revert "Bluetooth: Enable autosuspend for Intel Bluetooth
+ device"
+
+This reverts commit d2bee8fb6e18f6116aada39851918473761f7ab1.
+
+USB autosuspend still breaks on some xhci controllers, so disable
+it by default as long as no solution is found.
+---
+ drivers/bluetooth/btusb.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
+index baeaaed..6d6e09e 100644
+--- a/drivers/bluetooth/btusb.c
++++ b/drivers/bluetooth/btusb.c
+@@ -1478,10 +1478,8 @@ static int btusb_probe(struct usb_interface *intf,
+ if (id->driver_info & BTUSB_BCM92035)
+ hdev->setup = btusb_setup_bcm92035;
+
+- if (id->driver_info & BTUSB_INTEL) {
+- usb_enable_autosuspend(data->udev);
++ if (id->driver_info & BTUSB_INTEL)
+ hdev->setup = btusb_setup_intel;
+- }
+
+ /* Interface numbers are hardcoded in the specification */
+ data->isoc = usb_ifnum_to_if(data->udev, 1);
+--
+1.9.1
+
diff --git a/kernels/linux-libre-xen/0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch b/kernels/linux-libre-xen/0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch
deleted file mode 100644
index 8ef6fe25c..000000000
--- a/kernels/linux-libre-xen/0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From e2f0c83a9de331d9352185ca3642616c13127539 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton@redhat.com>
-Date: Thu, 5 Dec 2013 07:34:44 -0500
-Subject: [PATCH 5/6] sunrpc: add an "info" file for the dummy gssd pipe
-
-rpc.gssd expects to see an "info" file in each clntXX dir. Since adding
-the dummy gssd pipe, users that run rpc.gssd see a lot of these messages
-spamming the logs:
-
- rpc.gssd[508]: ERROR: can't open /var/lib/nfs/rpc_pipefs/gssd/clntXX/info: No such file or directory
- rpc.gssd[508]: ERROR: failed to read service info
-
-Add a dummy gssd/clntXX/info file to help silence these messages.
-
-Signed-off-by: Jeff Layton <jlayton@redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
----
- net/sunrpc/rpc_pipe.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 49 insertions(+), 1 deletion(-)
-
-diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
-index 0b74c61..5d973b2 100644
---- a/net/sunrpc/rpc_pipe.c
-+++ b/net/sunrpc/rpc_pipe.c
-@@ -17,6 +17,7 @@
- #include <linux/fsnotify.h>
- #include <linux/kernel.h>
- #include <linux/rcupdate.h>
-+#include <linux/utsname.h>
-
- #include <asm/ioctls.h>
- #include <linux/poll.h>
-@@ -1275,6 +1276,44 @@ static const struct rpc_pipe_ops gssd_dummy_pipe_ops = {
- .downcall = dummy_downcall,
- };
-
-+/*
-+ * Here we present a bogus "info" file to keep rpc.gssd happy. We don't expect
-+ * that it will ever use this info to handle an upcall, but rpc.gssd expects
-+ * that this file will be there and have a certain format.
-+ */
-+static int
-+rpc_show_dummy_info(struct seq_file *m, void *v)
-+{
-+ seq_printf(m, "RPC server: %s\n", utsname()->nodename);
-+ seq_printf(m, "service: foo (1) version 0\n");
-+ seq_printf(m, "address: 127.0.0.1\n");
-+ seq_printf(m, "protocol: tcp\n");
-+ seq_printf(m, "port: 0\n");
-+ return 0;
-+}
-+
-+static int
-+rpc_dummy_info_open(struct inode *inode, struct file *file)
-+{
-+ return single_open(file, rpc_show_dummy_info, NULL);
-+}
-+
-+static const struct file_operations rpc_dummy_info_operations = {
-+ .owner = THIS_MODULE,
-+ .open = rpc_dummy_info_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+};
-+
-+static const struct rpc_filelist gssd_dummy_info_file[] = {
-+ [0] = {
-+ .name = "info",
-+ .i_fop = &rpc_dummy_info_operations,
-+ .mode = S_IFREG | S_IRUSR,
-+ },
-+};
-+
- /**
- * rpc_gssd_dummy_populate - create a dummy gssd pipe
- * @root: root of the rpc_pipefs filesystem
-@@ -1312,9 +1351,18 @@ rpc_gssd_dummy_populate(struct dentry *root, struct rpc_pipe *pipe_data)
- goto out;
- }
-
-+ ret = rpc_populate(clnt_dentry, gssd_dummy_info_file, 0, 1, NULL);
-+ if (ret) {
-+ __rpc_depopulate(gssd_dentry, gssd_dummy_clnt_dir, 0, 1);
-+ pipe_dentry = ERR_PTR(ret);
-+ goto out;
-+ }
-+
- pipe_dentry = rpc_mkpipe_dentry(clnt_dentry, "gssd", NULL, pipe_data);
-- if (IS_ERR(pipe_dentry))
-+ if (IS_ERR(pipe_dentry)) {
-+ __rpc_depopulate(clnt_dentry, gssd_dummy_info_file, 0, 1);
- __rpc_depopulate(gssd_dentry, gssd_dummy_clnt_dir, 0, 1);
-+ }
- out:
- dput(clnt_dentry);
- dput(gssd_dentry);
---
-1.8.5.3
-
diff --git a/kernels/linux-libre-xen/0006-genksyms-fix-typeof-handling.patch b/kernels/linux-libre-xen/0006-genksyms-fix-typeof-handling.patch
new file mode 100644
index 000000000..08b467a4c
--- /dev/null
+++ b/kernels/linux-libre-xen/0006-genksyms-fix-typeof-handling.patch
@@ -0,0 +1,1360 @@
+From 39a7f4024e3e7d54a3bb49dcb645b3d7af16354e Mon Sep 17 00:00:00 2001
+From: Jan Beulich <JBeulich@suse.com>
+Date: Thu, 3 Apr 2014 14:46:37 -0700
+Subject: [PATCH 6/7] genksyms: fix typeof() handling
+
+Recent increased use of typeof() throughout the tree resulted in a
+number of symbols (25 in a typical distro config of ours) not getting a
+proper CRC calculated for them anymore, due to the parser in genksyms
+not coping with several of these uses (interestingly in the majority of
+[if not all] cases the problem is due to the use of typeof() in code
+preceding a certain export, not in the declaration/definition of the
+exported function/object itself; I wasn't able to find a way to address
+this more general parser shortcoming).
+
+The use of parameter_declaration is a little more relaxed than would be
+ideal (permitting not just a bare type specification, but also one with
+identifier), but since the same code is being passed through an actual
+compiler, there's no apparent risk of allowing through any broken code.
+
+Otoh using parameter_declaration instead of the ad hoc
+"decl_specifier_seq '*'" / "decl_specifier_seq" pair allows all types to
+be handled rather than just plain ones and pointers to plain ones.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Cc: Michal Marek <mmarek@suse.cz>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+---
+ scripts/genksyms/keywords.gperf | 5 +-
+ scripts/genksyms/keywords.hash.c_shipped | 133 +++----
+ scripts/genksyms/lex.l | 51 ++-
+ scripts/genksyms/lex.lex.c_shipped | 51 ++-
+ scripts/genksyms/parse.tab.c_shipped | 608 ++++++++++++++++---------------
+ scripts/genksyms/parse.tab.h_shipped | 29 +-
+ scripts/genksyms/parse.y | 5 +-
+ 7 files changed, 498 insertions(+), 384 deletions(-)
+
+diff --git a/scripts/genksyms/keywords.gperf b/scripts/genksyms/keywords.gperf
+index 3e77a94..a9096d9 100644
+--- a/scripts/genksyms/keywords.gperf
++++ b/scripts/genksyms/keywords.gperf
+@@ -23,6 +23,8 @@ __inline, INLINE_KEYW
+ __inline__, INLINE_KEYW
+ __signed, SIGNED_KEYW
+ __signed__, SIGNED_KEYW
++__typeof, TYPEOF_KEYW
++__typeof__, TYPEOF_KEYW
+ __volatile, VOLATILE_KEYW
+ __volatile__, VOLATILE_KEYW
+ # According to rth, c99 defines _Bool, __restrict, __restrict__, restrict. KAO
+@@ -51,9 +53,8 @@ signed, SIGNED_KEYW
+ static, STATIC_KEYW
+ struct, STRUCT_KEYW
+ typedef, TYPEDEF_KEYW
++typeof, TYPEOF_KEYW
+ union, UNION_KEYW
+ unsigned, UNSIGNED_KEYW
+ void, VOID_KEYW
+ volatile, VOLATILE_KEYW
+-typeof, TYPEOF_KEYW
+-__typeof__, TYPEOF_KEYW
+diff --git a/scripts/genksyms/keywords.hash.c_shipped b/scripts/genksyms/keywords.hash.c_shipped
+index 8206260..e9452482 100644
+--- a/scripts/genksyms/keywords.hash.c_shipped
++++ b/scripts/genksyms/keywords.hash.c_shipped
+@@ -34,7 +34,7 @@ struct resword;
+ static const struct resword *is_reserved_word(register const char *str, register unsigned int len);
+ #line 8 "scripts/genksyms/keywords.gperf"
+ struct resword { const char *name; int token; };
+-/* maximum key range = 64, duplicates = 0 */
++/* maximum key range = 98, duplicates = 0 */
+
+ #ifdef __GNUC__
+ __inline
+@@ -48,32 +48,32 @@ is_reserved_hash (register const char *str, register unsigned int len)
+ {
+ static const unsigned char asso_values[] =
+ {
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 0,
+- 67, 67, 67, 67, 67, 67, 15, 67, 67, 67,
+- 0, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 0, 67, 0, 67, 5,
+- 25, 20, 15, 30, 67, 15, 67, 67, 10, 0,
+- 10, 40, 20, 67, 10, 5, 0, 10, 15, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+- 67, 67, 67, 67, 67, 67
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 0,
++ 101, 101, 101, 101, 101, 101, 15, 101, 101, 101,
++ 0, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 0, 101, 0, 101, 5,
++ 25, 20, 55, 30, 101, 15, 101, 101, 10, 0,
++ 10, 40, 10, 101, 10, 5, 0, 10, 15, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
++ 101, 101, 101, 101, 101, 101
+ };
+ return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]];
+ }
+@@ -89,17 +89,17 @@ is_reserved_word (register const char *str, register unsigned int len)
+ {
+ enum
+ {
+- TOTAL_KEYWORDS = 45,
++ TOTAL_KEYWORDS = 46,
+ MIN_WORD_LENGTH = 3,
+ MAX_WORD_LENGTH = 24,
+ MIN_HASH_VALUE = 3,
+- MAX_HASH_VALUE = 66
++ MAX_HASH_VALUE = 100
+ };
+
+ static const struct resword wordlist[] =
+ {
+ {""}, {""}, {""},
+-#line 33 "scripts/genksyms/keywords.gperf"
++#line 35 "scripts/genksyms/keywords.gperf"
+ {"asm", ASM_KEYW},
+ {""},
+ #line 15 "scripts/genksyms/keywords.gperf"
+@@ -108,7 +108,7 @@ is_reserved_word (register const char *str, register unsigned int len)
+ #line 16 "scripts/genksyms/keywords.gperf"
+ {"__asm__", ASM_KEYW},
+ {""}, {""},
+-#line 59 "scripts/genksyms/keywords.gperf"
++#line 27 "scripts/genksyms/keywords.gperf"
+ {"__typeof__", TYPEOF_KEYW},
+ {""},
+ #line 19 "scripts/genksyms/keywords.gperf"
+@@ -119,31 +119,31 @@ is_reserved_word (register const char *str, register unsigned int len)
+ {"__const__", CONST_KEYW},
+ #line 25 "scripts/genksyms/keywords.gperf"
+ {"__signed__", SIGNED_KEYW},
+-#line 51 "scripts/genksyms/keywords.gperf"
++#line 53 "scripts/genksyms/keywords.gperf"
+ {"static", STATIC_KEYW},
+ {""},
+-#line 46 "scripts/genksyms/keywords.gperf"
++#line 48 "scripts/genksyms/keywords.gperf"
+ {"int", INT_KEYW},
+-#line 39 "scripts/genksyms/keywords.gperf"
++#line 41 "scripts/genksyms/keywords.gperf"
+ {"char", CHAR_KEYW},
+-#line 40 "scripts/genksyms/keywords.gperf"
++#line 42 "scripts/genksyms/keywords.gperf"
+ {"const", CONST_KEYW},
+-#line 52 "scripts/genksyms/keywords.gperf"
++#line 54 "scripts/genksyms/keywords.gperf"
+ {"struct", STRUCT_KEYW},
+-#line 31 "scripts/genksyms/keywords.gperf"
++#line 33 "scripts/genksyms/keywords.gperf"
+ {"__restrict__", RESTRICT_KEYW},
+-#line 32 "scripts/genksyms/keywords.gperf"
++#line 34 "scripts/genksyms/keywords.gperf"
+ {"restrict", RESTRICT_KEYW},
+ #line 12 "scripts/genksyms/keywords.gperf"
+ {"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW},
+ #line 23 "scripts/genksyms/keywords.gperf"
+ {"__inline__", INLINE_KEYW},
+ {""},
+-#line 27 "scripts/genksyms/keywords.gperf"
++#line 29 "scripts/genksyms/keywords.gperf"
+ {"__volatile__", VOLATILE_KEYW},
+ #line 10 "scripts/genksyms/keywords.gperf"
+ {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
+-#line 30 "scripts/genksyms/keywords.gperf"
++#line 32 "scripts/genksyms/keywords.gperf"
+ {"_restrict", RESTRICT_KEYW},
+ {""},
+ #line 17 "scripts/genksyms/keywords.gperf"
+@@ -152,56 +152,65 @@ is_reserved_word (register const char *str, register unsigned int len)
+ {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
+ #line 21 "scripts/genksyms/keywords.gperf"
+ {"__extension__", EXTENSION_KEYW},
+-#line 42 "scripts/genksyms/keywords.gperf"
++#line 44 "scripts/genksyms/keywords.gperf"
+ {"enum", ENUM_KEYW},
+ #line 13 "scripts/genksyms/keywords.gperf"
+ {"EXPORT_UNUSED_SYMBOL", EXPORT_SYMBOL_KEYW},
+-#line 43 "scripts/genksyms/keywords.gperf"
++#line 45 "scripts/genksyms/keywords.gperf"
+ {"extern", EXTERN_KEYW},
+ {""},
+ #line 24 "scripts/genksyms/keywords.gperf"
+ {"__signed", SIGNED_KEYW},
+ #line 14 "scripts/genksyms/keywords.gperf"
+ {"EXPORT_UNUSED_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
+-#line 54 "scripts/genksyms/keywords.gperf"
++#line 57 "scripts/genksyms/keywords.gperf"
+ {"union", UNION_KEYW},
+-#line 58 "scripts/genksyms/keywords.gperf"
+- {"typeof", TYPEOF_KEYW},
+-#line 53 "scripts/genksyms/keywords.gperf"
+- {"typedef", TYPEDEF_KEYW},
++ {""}, {""},
+ #line 22 "scripts/genksyms/keywords.gperf"
+ {"__inline", INLINE_KEYW},
+-#line 38 "scripts/genksyms/keywords.gperf"
++#line 40 "scripts/genksyms/keywords.gperf"
+ {"auto", AUTO_KEYW},
+-#line 26 "scripts/genksyms/keywords.gperf"
++#line 28 "scripts/genksyms/keywords.gperf"
+ {"__volatile", VOLATILE_KEYW},
+ {""}, {""},
+-#line 55 "scripts/genksyms/keywords.gperf"
++#line 58 "scripts/genksyms/keywords.gperf"
+ {"unsigned", UNSIGNED_KEYW},
+ {""},
+-#line 49 "scripts/genksyms/keywords.gperf"
++#line 51 "scripts/genksyms/keywords.gperf"
+ {"short", SHORT_KEYW},
+-#line 45 "scripts/genksyms/keywords.gperf"
++#line 47 "scripts/genksyms/keywords.gperf"
+ {"inline", INLINE_KEYW},
+ {""},
+-#line 57 "scripts/genksyms/keywords.gperf"
++#line 60 "scripts/genksyms/keywords.gperf"
+ {"volatile", VOLATILE_KEYW},
+-#line 47 "scripts/genksyms/keywords.gperf"
++#line 49 "scripts/genksyms/keywords.gperf"
+ {"long", LONG_KEYW},
+-#line 29 "scripts/genksyms/keywords.gperf"
++#line 31 "scripts/genksyms/keywords.gperf"
+ {"_Bool", BOOL_KEYW},
+ {""}, {""},
+-#line 48 "scripts/genksyms/keywords.gperf"
++#line 50 "scripts/genksyms/keywords.gperf"
+ {"register", REGISTER_KEYW},
+-#line 56 "scripts/genksyms/keywords.gperf"
++#line 59 "scripts/genksyms/keywords.gperf"
+ {"void", VOID_KEYW},
+-#line 44 "scripts/genksyms/keywords.gperf"
+- {"float", FLOAT_KEYW},
+-#line 41 "scripts/genksyms/keywords.gperf"
++ {""},
++#line 43 "scripts/genksyms/keywords.gperf"
+ {"double", DOUBLE_KEYW},
++ {""},
++#line 26 "scripts/genksyms/keywords.gperf"
++ {"__typeof", TYPEOF_KEYW},
++ {""}, {""},
++#line 52 "scripts/genksyms/keywords.gperf"
++ {"signed", SIGNED_KEYW},
+ {""}, {""}, {""}, {""},
+-#line 50 "scripts/genksyms/keywords.gperf"
+- {"signed", SIGNED_KEYW}
++#line 56 "scripts/genksyms/keywords.gperf"
++ {"typeof", TYPEOF_KEYW},
++#line 55 "scripts/genksyms/keywords.gperf"
++ {"typedef", TYPEDEF_KEYW},
++ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
++ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
++ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
++#line 46 "scripts/genksyms/keywords.gperf"
++ {"float", FLOAT_KEYW}
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+diff --git a/scripts/genksyms/lex.l b/scripts/genksyms/lex.l
+index f770071..e583565 100644
+--- a/scripts/genksyms/lex.l
++++ b/scripts/genksyms/lex.l
+@@ -129,8 +129,9 @@ int
+ yylex(void)
+ {
+ static enum {
+- ST_NOTSTARTED, ST_NORMAL, ST_ATTRIBUTE, ST_ASM, ST_BRACKET, ST_BRACE,
+- ST_EXPRESSION, ST_TABLE_1, ST_TABLE_2, ST_TABLE_3, ST_TABLE_4,
++ ST_NOTSTARTED, ST_NORMAL, ST_ATTRIBUTE, ST_ASM, ST_TYPEOF, ST_TYPEOF_1,
++ ST_BRACKET, ST_BRACE, ST_EXPRESSION,
++ ST_TABLE_1, ST_TABLE_2, ST_TABLE_3, ST_TABLE_4,
+ ST_TABLE_5, ST_TABLE_6
+ } lexstate = ST_NOTSTARTED;
+
+@@ -198,6 +199,10 @@ repeat:
+ lexstate = ST_ASM;
+ count = 0;
+ goto repeat;
++ case TYPEOF_KEYW:
++ lexstate = ST_TYPEOF;
++ count = 0;
++ goto repeat;
+
+ case STRUCT_KEYW:
+ case UNION_KEYW:
+@@ -284,6 +289,48 @@ repeat:
+ }
+ break;
+
++ case ST_TYPEOF:
++ switch (token)
++ {
++ case '(':
++ if ( ++count == 1 )
++ lexstate = ST_TYPEOF_1;
++ else
++ APP;
++ goto repeat;
++ case ')':
++ APP;
++ if (--count == 0)
++ {
++ lexstate = ST_NORMAL;
++ token = TYPEOF_PHRASE;
++ break;
++ }
++ goto repeat;
++ default:
++ APP;
++ goto repeat;
++ }
++ break;
++
++ case ST_TYPEOF_1:
++ if (token == IDENT)
++ {
++ if (is_reserved_word(yytext, yyleng)
++ || find_symbol(yytext, SYM_TYPEDEF, 1))
++ {
++ yyless(0);
++ unput('(');
++ lexstate = ST_NORMAL;
++ token = TYPEOF_KEYW;
++ break;
++ }
++ _APP("(", 1);
++ }
++ APP;
++ lexstate = ST_TYPEOF;
++ goto repeat;
++
+ case ST_BRACKET:
+ APP;
+ switch (token)
+diff --git a/scripts/genksyms/lex.lex.c_shipped b/scripts/genksyms/lex.lex.c_shipped
+index 0bf4157..f82740a 100644
+--- a/scripts/genksyms/lex.lex.c_shipped
++++ b/scripts/genksyms/lex.lex.c_shipped
+@@ -1938,8 +1938,9 @@ int
+ yylex(void)
+ {
+ static enum {
+- ST_NOTSTARTED, ST_NORMAL, ST_ATTRIBUTE, ST_ASM, ST_BRACKET, ST_BRACE,
+- ST_EXPRESSION, ST_TABLE_1, ST_TABLE_2, ST_TABLE_3, ST_TABLE_4,
++ ST_NOTSTARTED, ST_NORMAL, ST_ATTRIBUTE, ST_ASM, ST_TYPEOF, ST_TYPEOF_1,
++ ST_BRACKET, ST_BRACE, ST_EXPRESSION,
++ ST_TABLE_1, ST_TABLE_2, ST_TABLE_3, ST_TABLE_4,
+ ST_TABLE_5, ST_TABLE_6
+ } lexstate = ST_NOTSTARTED;
+
+@@ -2007,6 +2008,10 @@ repeat:
+ lexstate = ST_ASM;
+ count = 0;
+ goto repeat;
++ case TYPEOF_KEYW:
++ lexstate = ST_TYPEOF;
++ count = 0;
++ goto repeat;
+
+ case STRUCT_KEYW:
+ case UNION_KEYW:
+@@ -2093,6 +2098,48 @@ repeat:
+ }
+ break;
+
++ case ST_TYPEOF:
++ switch (token)
++ {
++ case '(':
++ if ( ++count == 1 )
++ lexstate = ST_TYPEOF_1;
++ else
++ APP;
++ goto repeat;
++ case ')':
++ APP;
++ if (--count == 0)
++ {
++ lexstate = ST_NORMAL;
++ token = TYPEOF_PHRASE;
++ break;
++ }
++ goto repeat;
++ default:
++ APP;
++ goto repeat;
++ }
++ break;
++
++ case ST_TYPEOF_1:
++ if (token == IDENT)
++ {
++ if (is_reserved_word(yytext, yyleng)
++ || find_symbol(yytext, SYM_TYPEDEF, 1))
++ {
++ yyless(0);
++ unput('(');
++ lexstate = ST_NORMAL;
++ token = TYPEOF_KEYW;
++ break;
++ }
++ _APP("(", 1);
++ }
++ APP;
++ lexstate = ST_TYPEOF;
++ goto repeat;
++
+ case ST_BRACKET:
+ APP;
+ switch (token)
+diff --git a/scripts/genksyms/parse.tab.c_shipped b/scripts/genksyms/parse.tab.c_shipped
+index ece53c7..c9f0f0ce 100644
+--- a/scripts/genksyms/parse.tab.c_shipped
++++ b/scripts/genksyms/parse.tab.c_shipped
+@@ -1,8 +1,8 @@
+-/* A Bison parser, made by GNU Bison 2.5. */
++/* A Bison parser, made by GNU Bison 2.5.1. */
+
+ /* Bison implementation for Yacc-like parsers in C
+
+- Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
++ Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -44,7 +44,7 @@
+ #define YYBISON 1
+
+ /* Bison version. */
+-#define YYBISON_VERSION "2.5"
++#define YYBISON_VERSION "2.5.1"
+
+ /* Skeleton name. */
+ #define YYSKELETON_NAME "yacc.c"
+@@ -117,6 +117,14 @@ static void record_compound(struct string_list **keyw,
+
+
+
++# ifndef YY_NULL
++# if defined __cplusplus && 201103L <= __cplusplus
++# define YY_NULL nullptr
++# else
++# define YY_NULL 0
++# endif
++# endif
++
+ /* Enabling traces. */
+ #ifndef YYDEBUG
+ # define YYDEBUG 1
+@@ -171,18 +179,19 @@ static void record_compound(struct string_list **keyw,
+ EXPORT_SYMBOL_KEYW = 284,
+ ASM_PHRASE = 285,
+ ATTRIBUTE_PHRASE = 286,
+- BRACE_PHRASE = 287,
+- BRACKET_PHRASE = 288,
+- EXPRESSION_PHRASE = 289,
+- CHAR = 290,
+- DOTS = 291,
+- IDENT = 292,
+- INT = 293,
+- REAL = 294,
+- STRING = 295,
+- TYPE = 296,
+- OTHER = 297,
+- FILENAME = 298
++ TYPEOF_PHRASE = 287,
++ BRACE_PHRASE = 288,
++ BRACKET_PHRASE = 289,
++ EXPRESSION_PHRASE = 290,
++ CHAR = 291,
++ DOTS = 292,
++ IDENT = 293,
++ INT = 294,
++ REAL = 295,
++ STRING = 296,
++ TYPE = 297,
++ OTHER = 298,
++ FILENAME = 299
+ };
+ #endif
+
+@@ -304,6 +313,7 @@ YYID (yyi)
+ # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+ # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++ /* Use EXIT_SUCCESS as a witness for stdlib.h. */
+ # ifndef EXIT_SUCCESS
+ # define EXIT_SUCCESS 0
+ # endif
+@@ -395,20 +405,20 @@ union yyalloc
+ #endif
+
+ #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+-/* Copy COUNT objects from FROM to TO. The source and destination do
++/* Copy COUNT objects from SRC to DST. The source and destination do
+ not overlap. */
+ # ifndef YYCOPY
+ # if defined __GNUC__ && 1 < __GNUC__
+-# define YYCOPY(To, From, Count) \
+- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
++# define YYCOPY(Dst, Src, Count) \
++ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
+ # else
+-# define YYCOPY(To, From, Count) \
+- do \
+- { \
+- YYSIZE_T yyi; \
+- for (yyi = 0; yyi < (Count); yyi++) \
+- (To)[yyi] = (From)[yyi]; \
+- } \
++# define YYCOPY(Dst, Src, Count) \
++ do \
++ { \
++ YYSIZE_T yyi; \
++ for (yyi = 0; yyi < (Count); yyi++) \
++ (Dst)[yyi] = (Src)[yyi]; \
++ } \
+ while (YYID (0))
+ # endif
+ # endif
+@@ -417,20 +427,20 @@ union yyalloc
+ /* YYFINAL -- State number of the termination state. */
+ #define YYFINAL 4
+ /* YYLAST -- Last index in YYTABLE. */
+-#define YYLAST 532
++#define YYLAST 514
+
+ /* YYNTOKENS -- Number of terminals. */
+-#define YYNTOKENS 53
++#define YYNTOKENS 54
+ /* YYNNTS -- Number of nonterminals. */
+ #define YYNNTS 49
+ /* YYNRULES -- Number of rules. */
+ #define YYNRULES 132
+ /* YYNRULES -- Number of states. */
+-#define YYNSTATES 188
++#define YYNSTATES 187
+
+ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+ #define YYUNDEFTOK 2
+-#define YYMAXUTOK 298
++#define YYMAXUTOK 299
+
+ #define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+@@ -442,15 +452,15 @@ static const yytype_uint8 yytranslate[] =
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+- 47, 49, 48, 2, 46, 2, 2, 2, 2, 2,
+- 2, 2, 2, 2, 2, 2, 2, 2, 52, 44,
+- 2, 50, 2, 2, 2, 2, 2, 2, 2, 2,
++ 48, 49, 50, 2, 47, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 53, 45,
++ 2, 51, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+- 2, 2, 2, 51, 2, 45, 2, 2, 2, 2,
++ 2, 2, 2, 52, 2, 46, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+@@ -467,7 +477,7 @@ static const yytype_uint8 yytranslate[] =
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+- 35, 36, 37, 38, 39, 40, 41, 42, 43
++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44
+ };
+
+ #if YYDEBUG
+@@ -478,78 +488,77 @@ static const yytype_uint16 yyprhs[] =
+ 0, 0, 3, 5, 8, 9, 12, 13, 18, 19,
+ 23, 25, 27, 29, 31, 34, 37, 41, 42, 44,
+ 46, 50, 55, 56, 58, 60, 63, 65, 67, 69,
+- 71, 73, 75, 77, 79, 81, 87, 92, 95, 98,
+- 101, 105, 109, 113, 116, 119, 122, 124, 126, 128,
+- 130, 132, 134, 136, 138, 140, 142, 144, 147, 148,
+- 150, 152, 155, 157, 159, 161, 163, 166, 168, 170,
+- 175, 180, 183, 187, 191, 194, 196, 198, 200, 205,
+- 210, 213, 217, 221, 224, 226, 230, 231, 233, 235,
+- 239, 242, 245, 247, 248, 250, 252, 257, 262, 265,
+- 269, 273, 277, 278, 280, 283, 287, 291, 292, 294,
+- 296, 299, 303, 306, 307, 309, 311, 315, 318, 321,
+- 323, 326, 327, 330, 334, 339, 341, 345, 347, 351,
+- 354, 355, 357
++ 71, 73, 75, 77, 79, 81, 86, 88, 91, 94,
++ 97, 101, 105, 109, 112, 115, 118, 120, 122, 124,
++ 126, 128, 130, 132, 134, 136, 138, 140, 143, 144,
++ 146, 148, 151, 153, 155, 157, 159, 162, 164, 166,
++ 171, 176, 179, 183, 187, 190, 192, 194, 196, 201,
++ 206, 209, 213, 217, 220, 222, 226, 227, 229, 231,
++ 235, 238, 241, 243, 244, 246, 248, 253, 258, 261,
++ 265, 269, 273, 274, 276, 279, 283, 287, 288, 290,
++ 292, 295, 299, 302, 303, 305, 307, 311, 314, 317,
++ 319, 322, 323, 326, 330, 335, 337, 341, 343, 347,
++ 350, 351, 353
+ };
+
+ /* YYRHS -- A `-1'-separated list of the rules' RHS. */
+ static const yytype_int8 yyrhs[] =
+ {
+- 54, 0, -1, 55, -1, 54, 55, -1, -1, 56,
+- 57, -1, -1, 12, 23, 58, 60, -1, -1, 23,
+- 59, 60, -1, 60, -1, 84, -1, 99, -1, 101,
+- -1, 1, 44, -1, 1, 45, -1, 64, 61, 44,
+- -1, -1, 62, -1, 63, -1, 62, 46, 63, -1,
+- 74, 100, 95, 85, -1, -1, 65, -1, 66, -1,
+- 65, 66, -1, 67, -1, 68, -1, 5, -1, 17,
+- -1, 21, -1, 11, -1, 14, -1, 69, -1, 73,
+- -1, 28, 47, 65, 48, 49, -1, 28, 47, 65,
+- 49, -1, 22, 37, -1, 24, 37, -1, 10, 37,
+- -1, 22, 37, 87, -1, 24, 37, 87, -1, 10,
+- 37, 96, -1, 10, 96, -1, 22, 87, -1, 24,
+- 87, -1, 7, -1, 19, -1, 15, -1, 16, -1,
+- 20, -1, 25, -1, 13, -1, 9, -1, 26, -1,
+- 6, -1, 41, -1, 48, 71, -1, -1, 72, -1,
+- 73, -1, 72, 73, -1, 8, -1, 27, -1, 31,
+- -1, 18, -1, 70, 74, -1, 75, -1, 37, -1,
+- 75, 47, 78, 49, -1, 75, 47, 1, 49, -1,
+- 75, 33, -1, 47, 74, 49, -1, 47, 1, 49,
+- -1, 70, 76, -1, 77, -1, 37, -1, 41, -1,
+- 77, 47, 78, 49, -1, 77, 47, 1, 49, -1,
+- 77, 33, -1, 47, 76, 49, -1, 47, 1, 49,
+- -1, 79, 36, -1, 79, -1, 80, 46, 36, -1,
+- -1, 80, -1, 81, -1, 80, 46, 81, -1, 65,
+- 82, -1, 70, 82, -1, 83, -1, -1, 37, -1,
+- 41, -1, 83, 47, 78, 49, -1, 83, 47, 1,
+- 49, -1, 83, 33, -1, 47, 82, 49, -1, 47,
+- 1, 49, -1, 64, 74, 32, -1, -1, 86, -1,
+- 50, 34, -1, 51, 88, 45, -1, 51, 1, 45,
+- -1, -1, 89, -1, 90, -1, 89, 90, -1, 64,
+- 91, 44, -1, 1, 44, -1, -1, 92, -1, 93,
+- -1, 92, 46, 93, -1, 76, 95, -1, 37, 94,
+- -1, 94, -1, 52, 34, -1, -1, 95, 31, -1,
+- 51, 97, 45, -1, 51, 97, 46, 45, -1, 98,
+- -1, 97, 46, 98, -1, 37, -1, 37, 50, 34,
+- -1, 30, 44, -1, -1, 30, -1, 29, 47, 37,
+- 49, 44, -1
++ 55, 0, -1, 56, -1, 55, 56, -1, -1, 57,
++ 58, -1, -1, 12, 23, 59, 61, -1, -1, 23,
++ 60, 61, -1, 61, -1, 85, -1, 100, -1, 102,
++ -1, 1, 45, -1, 1, 46, -1, 65, 62, 45,
++ -1, -1, 63, -1, 64, -1, 63, 47, 64, -1,
++ 75, 101, 96, 86, -1, -1, 66, -1, 67, -1,
++ 66, 67, -1, 68, -1, 69, -1, 5, -1, 17,
++ -1, 21, -1, 11, -1, 14, -1, 70, -1, 74,
++ -1, 28, 48, 82, 49, -1, 32, -1, 22, 38,
++ -1, 24, 38, -1, 10, 38, -1, 22, 38, 88,
++ -1, 24, 38, 88, -1, 10, 38, 97, -1, 10,
++ 97, -1, 22, 88, -1, 24, 88, -1, 7, -1,
++ 19, -1, 15, -1, 16, -1, 20, -1, 25, -1,
++ 13, -1, 9, -1, 26, -1, 6, -1, 42, -1,
++ 50, 72, -1, -1, 73, -1, 74, -1, 73, 74,
++ -1, 8, -1, 27, -1, 31, -1, 18, -1, 71,
++ 75, -1, 76, -1, 38, -1, 76, 48, 79, 49,
++ -1, 76, 48, 1, 49, -1, 76, 34, -1, 48,
++ 75, 49, -1, 48, 1, 49, -1, 71, 77, -1,
++ 78, -1, 38, -1, 42, -1, 78, 48, 79, 49,
++ -1, 78, 48, 1, 49, -1, 78, 34, -1, 48,
++ 77, 49, -1, 48, 1, 49, -1, 80, 37, -1,
++ 80, -1, 81, 47, 37, -1, -1, 81, -1, 82,
++ -1, 81, 47, 82, -1, 66, 83, -1, 71, 83,
++ -1, 84, -1, -1, 38, -1, 42, -1, 84, 48,
++ 79, 49, -1, 84, 48, 1, 49, -1, 84, 34,
++ -1, 48, 83, 49, -1, 48, 1, 49, -1, 65,
++ 75, 33, -1, -1, 87, -1, 51, 35, -1, 52,
++ 89, 46, -1, 52, 1, 46, -1, -1, 90, -1,
++ 91, -1, 90, 91, -1, 65, 92, 45, -1, 1,
++ 45, -1, -1, 93, -1, 94, -1, 93, 47, 94,
++ -1, 77, 96, -1, 38, 95, -1, 95, -1, 53,
++ 35, -1, -1, 96, 31, -1, 52, 98, 46, -1,
++ 52, 98, 47, 46, -1, 99, -1, 98, 47, 99,
++ -1, 38, -1, 38, 51, 35, -1, 30, 45, -1,
++ -1, 30, -1, 29, 48, 38, 49, 45, -1
+ };
+
+ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+ static const yytype_uint16 yyrline[] =
+ {
+- 0, 123, 123, 124, 128, 128, 134, 134, 136, 136,
+- 138, 139, 140, 141, 142, 143, 147, 161, 162, 166,
+- 174, 187, 193, 194, 198, 199, 203, 209, 213, 214,
+- 215, 216, 217, 221, 222, 223, 224, 228, 230, 232,
+- 236, 238, 240, 245, 248, 249, 253, 254, 255, 256,
+- 257, 258, 259, 260, 261, 262, 263, 267, 272, 273,
+- 277, 278, 282, 282, 282, 283, 291, 292, 296, 305,
+- 307, 309, 311, 313, 320, 321, 325, 326, 327, 329,
+- 331, 333, 335, 340, 341, 342, 346, 347, 351, 352,
+- 357, 362, 364, 368, 369, 377, 381, 383, 385, 387,
+- 389, 394, 403, 404, 409, 414, 415, 419, 420, 424,
+- 425, 429, 431, 436, 437, 441, 442, 446, 447, 448,
+- 452, 456, 457, 461, 462, 466, 467, 470, 475, 483,
+- 487, 488, 492
++ 0, 124, 124, 125, 129, 129, 135, 135, 137, 137,
++ 139, 140, 141, 142, 143, 144, 148, 162, 163, 167,
++ 175, 188, 194, 195, 199, 200, 204, 210, 214, 215,
++ 216, 217, 218, 222, 223, 224, 225, 229, 231, 233,
++ 237, 239, 241, 246, 249, 250, 254, 255, 256, 257,
++ 258, 259, 260, 261, 262, 263, 264, 268, 273, 274,
++ 278, 279, 283, 283, 283, 284, 292, 293, 297, 306,
++ 308, 310, 312, 314, 321, 322, 326, 327, 328, 330,
++ 332, 334, 336, 341, 342, 343, 347, 348, 352, 353,
++ 358, 363, 365, 369, 370, 378, 382, 384, 386, 388,
++ 390, 395, 404, 405, 410, 415, 416, 420, 421, 425,
++ 426, 430, 432, 437, 438, 442, 443, 447, 448, 449,
++ 453, 457, 458, 462, 463, 467, 468, 471, 476, 484,
++ 488, 489, 493
+ };
+ #endif
+
+@@ -565,9 +574,9 @@ static const char *const yytname[] =
+ "SHORT_KEYW", "SIGNED_KEYW", "STATIC_KEYW", "STRUCT_KEYW",
+ "TYPEDEF_KEYW", "UNION_KEYW", "UNSIGNED_KEYW", "VOID_KEYW",
+ "VOLATILE_KEYW", "TYPEOF_KEYW", "EXPORT_SYMBOL_KEYW", "ASM_PHRASE",
+- "ATTRIBUTE_PHRASE", "BRACE_PHRASE", "BRACKET_PHRASE",
++ "ATTRIBUTE_PHRASE", "TYPEOF_PHRASE", "BRACE_PHRASE", "BRACKET_PHRASE",
+ "EXPRESSION_PHRASE", "CHAR", "DOTS", "IDENT", "INT", "REAL", "STRING",
+- "TYPE", "OTHER", "FILENAME", "';'", "'}'", "','", "'('", "'*'", "')'",
++ "TYPE", "OTHER", "FILENAME", "';'", "'}'", "','", "'('", "')'", "'*'",
+ "'='", "'{'", "':'", "$accept", "declaration_seq", "declaration", "$@1",
+ "declaration1", "$@2", "$@3", "simple_declaration",
+ "init_declarator_list_opt", "init_declarator_list", "init_declarator",
+@@ -584,7 +593,7 @@ static const char *const yytname[] =
+ "member_declarator_list_opt", "member_declarator_list",
+ "member_declarator", "member_bitfield_declarator", "attribute_opt",
+ "enum_body", "enumerator_list", "enumerator", "asm_definition",
+- "asm_phrase_opt", "export_definition", 0
++ "asm_phrase_opt", "export_definition", YY_NULL
+ };
+ #endif
+
+@@ -597,28 +606,28 @@ static const yytype_uint16 yytoknum[] =
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+- 295, 296, 297, 298, 59, 125, 44, 40, 42, 41,
+- 61, 123, 58
++ 295, 296, 297, 298, 299, 59, 125, 44, 40, 41,
++ 42, 61, 123, 58
+ };
+ # endif
+
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+ static const yytype_uint8 yyr1[] =
+ {
+- 0, 53, 54, 54, 56, 55, 58, 57, 59, 57,
+- 57, 57, 57, 57, 57, 57, 60, 61, 61, 62,
+- 62, 63, 64, 64, 65, 65, 66, 66, 67, 67,
+- 67, 67, 67, 68, 68, 68, 68, 68, 68, 68,
+- 68, 68, 68, 68, 68, 68, 69, 69, 69, 69,
+- 69, 69, 69, 69, 69, 69, 69, 70, 71, 71,
+- 72, 72, 73, 73, 73, 73, 74, 74, 75, 75,
+- 75, 75, 75, 75, 76, 76, 77, 77, 77, 77,
+- 77, 77, 77, 78, 78, 78, 79, 79, 80, 80,
+- 81, 82, 82, 83, 83, 83, 83, 83, 83, 83,
+- 83, 84, 85, 85, 86, 87, 87, 88, 88, 89,
+- 89, 90, 90, 91, 91, 92, 92, 93, 93, 93,
+- 94, 95, 95, 96, 96, 97, 97, 98, 98, 99,
+- 100, 100, 101
++ 0, 54, 55, 55, 57, 56, 59, 58, 60, 58,
++ 58, 58, 58, 58, 58, 58, 61, 62, 62, 63,
++ 63, 64, 65, 65, 66, 66, 67, 67, 68, 68,
++ 68, 68, 68, 69, 69, 69, 69, 69, 69, 69,
++ 69, 69, 69, 69, 69, 69, 70, 70, 70, 70,
++ 70, 70, 70, 70, 70, 70, 70, 71, 72, 72,
++ 73, 73, 74, 74, 74, 74, 75, 75, 76, 76,
++ 76, 76, 76, 76, 77, 77, 78, 78, 78, 78,
++ 78, 78, 78, 79, 79, 79, 80, 80, 81, 81,
++ 82, 83, 83, 84, 84, 84, 84, 84, 84, 84,
++ 84, 85, 86, 86, 87, 88, 88, 89, 89, 90,
++ 90, 91, 91, 92, 92, 93, 93, 94, 94, 94,
++ 95, 96, 96, 97, 97, 98, 98, 99, 99, 100,
++ 101, 101, 102
+ };
+
+ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+@@ -627,7 +636,7 @@ static const yytype_uint8 yyr2[] =
+ 0, 2, 1, 2, 0, 2, 0, 4, 0, 3,
+ 1, 1, 1, 1, 2, 2, 3, 0, 1, 1,
+ 3, 4, 0, 1, 1, 2, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 5, 4, 2, 2, 2,
++ 1, 1, 1, 1, 1, 4, 1, 2, 2, 2,
+ 3, 3, 3, 2, 2, 2, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 2, 0, 1,
+ 1, 2, 1, 1, 1, 1, 2, 1, 1, 4,
+@@ -648,68 +657,68 @@ static const yytype_uint8 yydefact[] =
+ 4, 4, 2, 0, 1, 3, 0, 28, 55, 46,
+ 62, 53, 0, 31, 0, 52, 32, 48, 49, 29,
+ 65, 47, 50, 30, 0, 8, 0, 51, 54, 63,
+- 0, 0, 0, 64, 56, 5, 10, 17, 23, 24,
+- 26, 27, 33, 34, 11, 12, 13, 14, 15, 39,
+- 0, 43, 6, 37, 0, 44, 22, 38, 45, 0,
+- 0, 129, 68, 0, 58, 0, 18, 19, 0, 130,
+- 67, 25, 42, 127, 0, 125, 22, 40, 0, 113,
+- 0, 0, 109, 9, 17, 41, 0, 0, 0, 0,
+- 57, 59, 60, 16, 0, 66, 131, 101, 121, 71,
+- 0, 0, 123, 0, 7, 112, 106, 76, 77, 0,
+- 0, 0, 121, 75, 0, 114, 115, 119, 105, 0,
+- 110, 130, 0, 36, 0, 73, 72, 61, 20, 102,
+- 0, 93, 0, 84, 87, 88, 128, 124, 126, 118,
+- 0, 76, 0, 120, 74, 117, 80, 0, 111, 0,
+- 35, 132, 122, 0, 21, 103, 70, 94, 56, 0,
+- 93, 90, 92, 69, 83, 0, 82, 81, 0, 0,
+- 116, 104, 0, 95, 0, 91, 98, 0, 85, 89,
+- 79, 78, 100, 99, 0, 0, 97, 96
++ 0, 0, 0, 64, 36, 56, 5, 10, 17, 23,
++ 24, 26, 27, 33, 34, 11, 12, 13, 14, 15,
++ 39, 0, 43, 6, 37, 0, 44, 22, 38, 45,
++ 0, 0, 129, 68, 0, 58, 0, 18, 19, 0,
++ 130, 67, 25, 42, 127, 0, 125, 22, 40, 0,
++ 113, 0, 0, 109, 9, 17, 41, 93, 0, 0,
++ 0, 0, 57, 59, 60, 16, 0, 66, 131, 101,
++ 121, 71, 0, 0, 123, 0, 7, 112, 106, 76,
++ 77, 0, 0, 0, 121, 75, 0, 114, 115, 119,
++ 105, 0, 110, 130, 94, 56, 0, 93, 90, 92,
++ 35, 0, 73, 72, 61, 20, 102, 0, 0, 84,
++ 87, 88, 128, 124, 126, 118, 0, 76, 0, 120,
++ 74, 117, 80, 0, 111, 0, 0, 95, 0, 91,
++ 98, 0, 132, 122, 0, 21, 103, 70, 69, 83,
++ 0, 82, 81, 0, 0, 116, 100, 99, 0, 0,
++ 104, 85, 89, 79, 78, 97, 96
+ };
+
+ /* YYDEFGOTO[NTERM-NUM]. */
+ static const yytype_int16 yydefgoto[] =
+ {
+- -1, 1, 2, 3, 35, 76, 56, 36, 65, 66,
+- 67, 79, 38, 39, 40, 41, 42, 68, 90, 91,
+- 43, 121, 70, 112, 113, 132, 133, 134, 135, 161,
+- 162, 44, 154, 155, 55, 80, 81, 82, 114, 115,
+- 116, 117, 129, 51, 74, 75, 45, 98, 46
++ -1, 1, 2, 3, 36, 77, 57, 37, 66, 67,
++ 68, 80, 39, 40, 41, 42, 43, 69, 92, 93,
++ 44, 123, 71, 114, 115, 138, 139, 140, 141, 128,
++ 129, 45, 165, 166, 56, 81, 82, 83, 116, 117,
++ 118, 119, 136, 52, 75, 76, 46, 100, 47
+ };
+
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+-#define YYPACT_NINF -135
++#define YYPACT_NINF -140
+ static const yytype_int16 yypact[] =
+ {
+- -135, 20, -135, 321, -135, -135, 30, -135, -135, -135,
+- -135, -135, -28, -135, 2, -135, -135, -135, -135, -135,
+- -135, -135, -135, -135, -6, -135, 9, -135, -135, -135,
+- -5, 15, -17, -135, -135, -135, -135, 18, 491, -135,
+- -135, -135, -135, -135, -135, -135, -135, -135, -135, -22,
+- 31, -135, -135, 19, 106, -135, 491, 19, -135, 491,
+- 50, -135, -135, 11, -3, 51, 57, -135, 18, -14,
+- 14, -135, -135, 48, 46, -135, 491, -135, 33, 32,
+- 59, 154, -135, -135, 18, -135, 365, 56, 60, 61,
+- -135, -3, -135, -135, 18, -135, -135, -135, -135, -135,
+- 202, 74, -135, -23, -135, -135, -135, 77, -135, 16,
+- 101, 49, -135, 34, 92, 93, -135, -135, -135, 94,
+- -135, 110, 95, -135, 97, -135, -135, -135, -135, -20,
+- 96, 410, 99, 113, 100, -135, -135, -135, -135, -135,
+- 103, -135, 107, -135, -135, 111, -135, 239, -135, 32,
+- -135, -135, -135, 123, -135, -135, -135, -135, -135, 3,
+- 52, -135, 38, -135, -135, 454, -135, -135, 117, 128,
+- -135, -135, 134, -135, 135, -135, -135, 276, -135, -135,
+- -135, -135, -135, -135, 137, 138, -135, -135
++ -140, 29, -140, 207, -140, -140, 40, -140, -140, -140,
++ -140, -140, -27, -140, 44, -140, -140, -140, -140, -140,
++ -140, -140, -140, -140, -22, -140, -18, -140, -140, -140,
++ -9, 22, 28, -140, -140, -140, -140, -140, 42, 472,
++ -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
++ 46, 43, -140, -140, 47, 107, -140, 472, 47, -140,
++ 472, 62, -140, -140, 16, -3, 57, 56, -140, 42,
++ 35, -11, -140, -140, 53, 48, -140, 472, -140, 51,
++ 21, 59, 157, -140, -140, 42, -140, 388, 58, 60,
++ 70, 81, -140, -3, -140, -140, 42, -140, -140, -140,
++ -140, -140, 253, 71, -140, -20, -140, -140, -140, 83,
++ -140, 5, 102, 34, -140, 12, 95, 94, -140, -140,
++ -140, 97, -140, 113, -140, -140, 2, 41, -140, 27,
++ -140, 99, -140, -140, -140, -140, -24, 98, 101, 109,
++ 104, -140, -140, -140, -140, -140, 105, -140, 110, -140,
++ -140, 117, -140, 298, -140, 21, 112, -140, 120, -140,
++ -140, 343, -140, -140, 121, -140, -140, -140, -140, -140,
++ 434, -140, -140, 131, 137, -140, -140, -140, 138, 141,
++ -140, -140, -140, -140, -140, -140, -140
+ };
+
+ /* YYPGOTO[NTERM-NUM]. */
+ static const yytype_int16 yypgoto[] =
+ {
+- -135, -135, 187, -135, -135, -135, -135, -50, -135, -135,
+- 98, 0, -59, -37, -135, -135, -135, -77, -135, -135,
+- -54, -30, -135, -90, -135, -134, -135, -135, 24, -58,
+- -135, -135, -135, -135, -18, -135, -135, 109, -135, -135,
+- 44, 87, 84, 148, -135, 102, -135, -135, -135
++ -140, -140, 190, -140, -140, -140, -140, -45, -140, -140,
++ 96, 1, -60, -31, -140, -140, -140, -78, -140, -140,
++ -55, -7, -140, -92, -140, -139, -140, -140, -59, -39,
++ -140, -140, -140, -140, -13, -140, -140, 111, -140, -140,
++ 39, 87, 84, 147, -140, 106, -140, -140, -140
+ };
+
+ /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+@@ -718,149 +727,145 @@ static const yytype_int16 yypgoto[] =
+ #define YYTABLE_NINF -109
+ static const yytype_int16 yytable[] =
+ {
+- 86, 71, 111, 37, 172, 10, 83, 69, 58, 49,
+- 92, 152, 88, 169, 73, 20, 96, 140, 97, 142,
+- 4, 144, 137, 50, 29, 52, 104, 61, 33, 50,
+- 153, 53, 111, 89, 111, 77, -93, 127, 95, 85,
+- 157, 131, 59, 185, 173, 54, 57, 99, 62, 71,
+- 159, 64, -93, 141, 160, 62, 84, 108, 63, 64,
+- 54, 100, 60, 109, 64, 63, 64, 146, 73, 107,
+- 54, 176, 111, 108, 47, 48, 84, 105, 106, 109,
+- 64, 147, 160, 160, 110, 177, 141, 87, 131, 157,
+- 108, 102, 103, 173, 71, 93, 109, 64, 101, 159,
+- 64, 174, 175, 94, 118, 124, 131, 78, 136, 125,
+- 126, 7, 8, 9, 10, 11, 12, 13, 131, 15,
+- 16, 17, 18, 19, 20, 21, 22, 23, 24, 110,
+- 26, 27, 28, 29, 30, 143, 148, 33, 105, 149,
+- 96, 151, 152, -22, 150, 156, 165, 34, 163, 164,
+- -22, -107, 166, -22, -22, 119, 167, 171, -22, 7,
+- 8, 9, 10, 11, 12, 13, 180, 15, 16, 17,
+- 18, 19, 20, 21, 22, 23, 24, 181, 26, 27,
+- 28, 29, 30, 182, 183, 33, 186, 187, 5, 179,
+- 120, -22, 128, 170, 139, 34, 145, 72, -22, -108,
+- 0, -22, -22, 130, 0, 138, -22, 7, 8, 9,
+- 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
+- 20, 21, 22, 23, 24, 0, 26, 27, 28, 29,
+- 30, 0, 0, 33, 0, 0, 0, 0, -86, 0,
+- 168, 0, 0, 34, 7, 8, 9, 10, 11, 12,
+- 13, -86, 15, 16, 17, 18, 19, 20, 21, 22,
+- 23, 24, 0, 26, 27, 28, 29, 30, 0, 0,
+- 33, 0, 0, 0, 0, -86, 0, 184, 0, 0,
+- 34, 7, 8, 9, 10, 11, 12, 13, -86, 15,
+- 16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
+- 26, 27, 28, 29, 30, 0, 0, 33, 0, 0,
+- 0, 0, -86, 0, 0, 0, 0, 34, 0, 0,
+- 0, 0, 6, 0, 0, -86, 7, 8, 9, 10,
+- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+- 31, 32, 33, 0, 0, 0, 0, 0, -22, 0,
+- 0, 0, 34, 0, 0, -22, 0, 0, -22, -22,
+- 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
+- 17, 18, 19, 20, 21, 22, 23, 24, 0, 26,
+- 27, 28, 29, 30, 0, 0, 33, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 34, 0, 0, 0,
+- 0, 0, 0, 122, 123, 7, 8, 9, 10, 11,
+- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+- 22, 23, 24, 0, 26, 27, 28, 29, 30, 0,
+- 0, 33, 0, 0, 0, 0, 0, 157, 0, 0,
+- 0, 158, 0, 0, 0, 0, 0, 159, 64, 7,
++ 87, 88, 113, 156, 38, 10, 146, 163, 72, 127,
++ 94, 50, 84, 59, 174, 20, 54, 90, 74, 148,
++ 58, 150, 179, 101, 29, 51, 143, 164, 33, 4,
++ 55, 70, 106, 113, 55, 113, -93, 102, 134, 60,
++ 124, 78, 87, 147, 157, 86, 152, 110, 127, 127,
++ 126, -93, 65, 111, 63, 65, 72, 91, 85, 109,
++ 153, 160, 97, 110, 64, 98, 65, 53, 99, 111,
++ 61, 65, 147, 62, 112, 161, 110, 113, 85, 124,
++ 63, 74, 111, 157, 65, 48, 49, 158, 159, 126,
++ 64, 65, 65, 87, 104, 105, 107, 108, 51, 55,
++ 89, 87, 95, 96, 103, 120, 142, 130, 79, 131,
++ 87, 182, 7, 8, 9, 10, 11, 12, 13, 132,
++ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
++ 133, 26, 27, 28, 29, 30, 112, 149, 33, 34,
++ 154, 155, 107, 98, 162, -22, 169, 167, 163, 35,
++ 168, 170, -22, -107, 171, -22, 180, -22, 121, 172,
++ -22, 176, 7, 8, 9, 10, 11, 12, 13, 177,
++ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
++ 183, 26, 27, 28, 29, 30, 184, 185, 33, 34,
++ 186, 5, 135, 122, 175, -22, 145, 73, 151, 35,
++ 0, 0, -22, -108, 0, -22, 0, -22, 6, 0,
++ -22, 144, 7, 8, 9, 10, 11, 12, 13, 14,
++ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
++ 0, 0, 0, 0, 0, -22, 0, 0, 0, 35,
++ 0, 0, -22, 0, 137, -22, 0, -22, 7, 8,
++ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
++ 19, 20, 21, 22, 23, 24, 0, 26, 27, 28,
++ 29, 30, 0, 0, 33, 34, 0, 0, 0, 0,
++ -86, 0, 0, 0, 0, 35, 0, 0, 0, 173,
++ 0, 0, -86, 7, 8, 9, 10, 11, 12, 13,
++ 0, 15, 16, 17, 18, 19, 20, 21, 22, 23,
++ 24, 0, 26, 27, 28, 29, 30, 0, 0, 33,
++ 34, 0, 0, 0, 0, -86, 0, 0, 0, 0,
++ 35, 0, 0, 0, 178, 0, 0, -86, 7, 8,
++ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
++ 19, 20, 21, 22, 23, 24, 0, 26, 27, 28,
++ 29, 30, 0, 0, 33, 34, 0, 0, 0, 0,
++ -86, 0, 0, 0, 0, 35, 0, 0, 0, 0,
++ 0, 0, -86, 7, 8, 9, 10, 11, 12, 13,
++ 0, 15, 16, 17, 18, 19, 20, 21, 22, 23,
++ 24, 0, 26, 27, 28, 29, 30, 0, 0, 33,
++ 34, 0, 0, 0, 0, 0, 124, 0, 0, 0,
++ 125, 0, 0, 0, 0, 0, 126, 0, 65, 7,
+ 8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 0, 26, 27,
+- 28, 29, 30, 0, 0, 33, 0, 0, 0, 0,
+- 178, 0, 0, 0, 0, 34, 7, 8, 9, 10,
+- 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
+- 21, 22, 23, 24, 0, 26, 27, 28, 29, 30,
+- 0, 0, 33, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 34
++ 28, 29, 30, 0, 0, 33, 34, 0, 0, 0,
++ 0, 181, 0, 0, 0, 0, 35, 7, 8, 9,
++ 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
++ 20, 21, 22, 23, 24, 0, 26, 27, 28, 29,
++ 30, 0, 0, 33, 34, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 35
+ };
+
+ #define yypact_value_is_default(yystate) \
+- ((yystate) == (-135))
++ ((yystate) == (-140))
+
+ #define yytable_value_is_error(yytable_value) \
+ YYID (0)
+
+ static const yytype_int16 yycheck[] =
+ {
+- 59, 38, 79, 3, 1, 8, 56, 37, 26, 37,
+- 64, 31, 1, 147, 37, 18, 30, 1, 32, 109,
+- 0, 111, 45, 51, 27, 23, 76, 44, 31, 51,
+- 50, 37, 109, 63, 111, 53, 33, 91, 68, 57,
+- 37, 100, 47, 177, 41, 51, 37, 33, 37, 86,
+- 47, 48, 49, 37, 131, 37, 56, 41, 47, 48,
+- 51, 47, 47, 47, 48, 47, 48, 33, 37, 37,
+- 51, 33, 149, 41, 44, 45, 76, 44, 45, 47,
+- 48, 47, 159, 160, 52, 47, 37, 37, 147, 37,
+- 41, 45, 46, 41, 131, 44, 47, 48, 50, 47,
+- 48, 159, 160, 46, 45, 49, 165, 1, 34, 49,
+- 49, 5, 6, 7, 8, 9, 10, 11, 177, 13,
+- 14, 15, 16, 17, 18, 19, 20, 21, 22, 52,
+- 24, 25, 26, 27, 28, 34, 44, 31, 44, 46,
+- 30, 44, 31, 37, 49, 49, 46, 41, 49, 36,
+- 44, 45, 49, 47, 48, 1, 49, 34, 52, 5,
+- 6, 7, 8, 9, 10, 11, 49, 13, 14, 15,
+- 16, 17, 18, 19, 20, 21, 22, 49, 24, 25,
+- 26, 27, 28, 49, 49, 31, 49, 49, 1, 165,
+- 81, 37, 94, 149, 107, 41, 112, 49, 44, 45,
+- -1, 47, 48, 1, -1, 103, 52, 5, 6, 7,
+- 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
+- 18, 19, 20, 21, 22, -1, 24, 25, 26, 27,
+- 28, -1, -1, 31, -1, -1, -1, -1, 36, -1,
+- 1, -1, -1, 41, 5, 6, 7, 8, 9, 10,
+- 11, 49, 13, 14, 15, 16, 17, 18, 19, 20,
+- 21, 22, -1, 24, 25, 26, 27, 28, -1, -1,
+- 31, -1, -1, -1, -1, 36, -1, 1, -1, -1,
+- 41, 5, 6, 7, 8, 9, 10, 11, 49, 13,
+- 14, 15, 16, 17, 18, 19, 20, 21, 22, -1,
+- 24, 25, 26, 27, 28, -1, -1, 31, -1, -1,
+- -1, -1, 36, -1, -1, -1, -1, 41, -1, -1,
+- -1, -1, 1, -1, -1, 49, 5, 6, 7, 8,
+- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+- 29, 30, 31, -1, -1, -1, -1, -1, 37, -1,
+- -1, -1, 41, -1, -1, 44, -1, -1, 47, 48,
+- 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
+- 15, 16, 17, 18, 19, 20, 21, 22, -1, 24,
+- 25, 26, 27, 28, -1, -1, 31, -1, -1, -1,
+- -1, -1, -1, -1, -1, -1, 41, -1, -1, -1,
+- -1, -1, -1, 48, 49, 5, 6, 7, 8, 9,
+- 10, 11, -1, 13, 14, 15, 16, 17, 18, 19,
+- 20, 21, 22, -1, 24, 25, 26, 27, 28, -1,
+- -1, 31, -1, -1, -1, -1, -1, 37, -1, -1,
+- -1, 41, -1, -1, -1, -1, -1, 47, 48, 5,
++ 60, 60, 80, 1, 3, 8, 1, 31, 39, 87,
++ 65, 38, 57, 26, 153, 18, 38, 1, 38, 111,
++ 38, 113, 161, 34, 27, 52, 46, 51, 31, 0,
++ 52, 38, 77, 111, 52, 113, 34, 48, 93, 48,
++ 38, 54, 102, 38, 42, 58, 34, 42, 126, 127,
++ 48, 49, 50, 48, 38, 50, 87, 64, 57, 38,
++ 48, 34, 69, 42, 48, 30, 50, 23, 33, 48,
++ 48, 50, 38, 45, 53, 48, 42, 155, 77, 38,
++ 38, 38, 48, 42, 50, 45, 46, 126, 127, 48,
++ 48, 50, 50, 153, 46, 47, 45, 46, 52, 52,
++ 38, 161, 45, 47, 51, 46, 35, 49, 1, 49,
++ 170, 170, 5, 6, 7, 8, 9, 10, 11, 49,
++ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
++ 49, 24, 25, 26, 27, 28, 53, 35, 31, 32,
++ 45, 47, 45, 30, 45, 38, 37, 49, 31, 42,
++ 49, 47, 45, 46, 49, 48, 35, 50, 1, 49,
++ 53, 49, 5, 6, 7, 8, 9, 10, 11, 49,
++ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
++ 49, 24, 25, 26, 27, 28, 49, 49, 31, 32,
++ 49, 1, 96, 82, 155, 38, 109, 50, 114, 42,
++ -1, -1, 45, 46, -1, 48, -1, 50, 1, -1,
++ 53, 105, 5, 6, 7, 8, 9, 10, 11, 12,
++ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
++ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
++ -1, -1, -1, -1, -1, 38, -1, -1, -1, 42,
++ -1, -1, 45, -1, 1, 48, -1, 50, 5, 6,
++ 7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
++ 17, 18, 19, 20, 21, 22, -1, 24, 25, 26,
++ 27, 28, -1, -1, 31, 32, -1, -1, -1, -1,
++ 37, -1, -1, -1, -1, 42, -1, -1, -1, 1,
++ -1, -1, 49, 5, 6, 7, 8, 9, 10, 11,
++ -1, 13, 14, 15, 16, 17, 18, 19, 20, 21,
++ 22, -1, 24, 25, 26, 27, 28, -1, -1, 31,
++ 32, -1, -1, -1, -1, 37, -1, -1, -1, -1,
++ 42, -1, -1, -1, 1, -1, -1, 49, 5, 6,
++ 7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
++ 17, 18, 19, 20, 21, 22, -1, 24, 25, 26,
++ 27, 28, -1, -1, 31, 32, -1, -1, -1, -1,
++ 37, -1, -1, -1, -1, 42, -1, -1, -1, -1,
++ -1, -1, 49, 5, 6, 7, 8, 9, 10, 11,
++ -1, 13, 14, 15, 16, 17, 18, 19, 20, 21,
++ 22, -1, 24, 25, 26, 27, 28, -1, -1, 31,
++ 32, -1, -1, -1, -1, -1, 38, -1, -1, -1,
++ 42, -1, -1, -1, -1, -1, 48, -1, 50, 5,
+ 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, -1, 24, 25,
+- 26, 27, 28, -1, -1, 31, -1, -1, -1, -1,
+- 36, -1, -1, -1, -1, 41, 5, 6, 7, 8,
+- 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
+- 19, 20, 21, 22, -1, 24, 25, 26, 27, 28,
+- -1, -1, 31, -1, -1, -1, -1, -1, -1, -1,
+- -1, -1, 41
++ 26, 27, 28, -1, -1, 31, 32, -1, -1, -1,
++ -1, 37, -1, -1, -1, -1, 42, 5, 6, 7,
++ 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
++ 18, 19, 20, 21, 22, -1, 24, 25, 26, 27,
++ 28, -1, -1, 31, 32, -1, -1, -1, -1, -1,
++ -1, -1, -1, -1, 42
+ };
+
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+ static const yytype_uint8 yystos[] =
+ {
+- 0, 54, 55, 56, 0, 55, 1, 5, 6, 7,
++ 0, 55, 56, 57, 0, 56, 1, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+- 28, 29, 30, 31, 41, 57, 60, 64, 65, 66,
+- 67, 68, 69, 73, 84, 99, 101, 44, 45, 37,
+- 51, 96, 23, 37, 51, 87, 59, 37, 87, 47,
+- 47, 44, 37, 47, 48, 61, 62, 63, 70, 74,
+- 75, 66, 96, 37, 97, 98, 58, 87, 1, 64,
+- 88, 89, 90, 60, 64, 87, 65, 37, 1, 74,
+- 71, 72, 73, 44, 46, 74, 30, 32, 100, 33,
+- 47, 50, 45, 46, 60, 44, 45, 37, 41, 47,
+- 52, 70, 76, 77, 91, 92, 93, 94, 45, 1,
+- 90, 74, 48, 49, 49, 49, 49, 73, 63, 95,
+- 1, 65, 78, 79, 80, 81, 34, 45, 98, 94,
+- 1, 37, 76, 34, 76, 95, 33, 47, 44, 46,
+- 49, 44, 31, 50, 85, 86, 49, 37, 41, 47,
+- 70, 82, 83, 49, 36, 46, 49, 49, 1, 78,
+- 93, 34, 1, 41, 82, 82, 33, 47, 36, 81,
+- 49, 49, 49, 49, 1, 78, 49, 49
++ 28, 29, 30, 31, 32, 42, 58, 61, 65, 66,
++ 67, 68, 69, 70, 74, 85, 100, 102, 45, 46,
++ 38, 52, 97, 23, 38, 52, 88, 60, 38, 88,
++ 48, 48, 45, 38, 48, 50, 62, 63, 64, 71,
++ 75, 76, 67, 97, 38, 98, 99, 59, 88, 1,
++ 65, 89, 90, 91, 61, 65, 88, 66, 82, 38,
++ 1, 75, 72, 73, 74, 45, 47, 75, 30, 33,
++ 101, 34, 48, 51, 46, 47, 61, 45, 46, 38,
++ 42, 48, 53, 71, 77, 78, 92, 93, 94, 95,
++ 46, 1, 91, 75, 38, 42, 48, 71, 83, 84,
++ 49, 49, 49, 49, 74, 64, 96, 1, 79, 80,
++ 81, 82, 35, 46, 99, 95, 1, 38, 77, 35,
++ 77, 96, 34, 48, 45, 47, 1, 42, 83, 83,
++ 34, 48, 45, 31, 51, 86, 87, 49, 49, 37,
++ 47, 49, 49, 1, 79, 94, 49, 49, 1, 79,
++ 35, 37, 82, 49, 49, 49, 49
+ };
+
+ #define yyerrok (yyerrstatus = 0)
+@@ -890,17 +895,18 @@ static const yytype_uint8 yystos[] =
+
+ #define YYRECOVERING() (!!yyerrstatus)
+
+-#define YYBACKUP(Token, Value) \
+-do \
+- if (yychar == YYEMPTY && yylen == 1) \
+- { \
+- yychar = (Token); \
+- yylval = (Value); \
+- YYPOPSTACK (1); \
+- goto yybackup; \
+- } \
+- else \
+- { \
++#define YYBACKUP(Token, Value) \
++do \
++ if (yychar == YYEMPTY) \
++ { \
++ yychar = (Token); \
++ yylval = (Value); \
++ YYPOPSTACK (yylen); \
++ yystate = *yyssp; \
++ goto yybackup; \
++ } \
++ else \
++ { \
+ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+@@ -995,6 +1001,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+ YYSTYPE const * const yyvaluep;
+ #endif
+ {
++ FILE *yyo = yyoutput;
++ YYUSE (yyo);
+ if (!yyvaluep)
+ return;
+ # ifdef YYPRINT
+@@ -1246,12 +1254,12 @@ static int
+ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ yytype_int16 *yyssp, int yytoken)
+ {
+- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
++ YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ /* Internationalized format string. */
+- const char *yyformat = 0;
++ const char *yyformat = YY_NULL;
+ /* Arguments of yyformat. */
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ /* Number of reported tokens (one for the "unexpected", one per
+@@ -1311,7 +1319,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
++ yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+@@ -1463,7 +1471,7 @@ yyparse ()
+ `yyss': related to states.
+ `yyvs': related to semantic values.
+
+- Refer to the stacks thru separate pointers, to allow yyoverflow
++ Refer to the stacks through separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+@@ -2346,7 +2354,7 @@ yyabortlab:
+ yyresult = 1;
+ goto yyreturn;
+
+-#if !defined(yyoverflow) || YYERROR_VERBOSE
++#if !defined yyoverflow || YYERROR_VERBOSE
+ /*-------------------------------------------------.
+ | yyexhaustedlab -- memory exhaustion comes here. |
+ `-------------------------------------------------*/
+diff --git a/scripts/genksyms/parse.tab.h_shipped b/scripts/genksyms/parse.tab.h_shipped
+index 93240a3..a4737de 100644
+--- a/scripts/genksyms/parse.tab.h_shipped
++++ b/scripts/genksyms/parse.tab.h_shipped
+@@ -1,8 +1,8 @@
+-/* A Bison parser, made by GNU Bison 2.5. */
++/* A Bison parser, made by GNU Bison 2.5.1. */
+
+ /* Bison interface for Yacc-like parsers in C
+
+- Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
++ Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -66,18 +66,19 @@
+ EXPORT_SYMBOL_KEYW = 284,
+ ASM_PHRASE = 285,
+ ATTRIBUTE_PHRASE = 286,
+- BRACE_PHRASE = 287,
+- BRACKET_PHRASE = 288,
+- EXPRESSION_PHRASE = 289,
+- CHAR = 290,
+- DOTS = 291,
+- IDENT = 292,
+- INT = 293,
+- REAL = 294,
+- STRING = 295,
+- TYPE = 296,
+- OTHER = 297,
+- FILENAME = 298
++ TYPEOF_PHRASE = 287,
++ BRACE_PHRASE = 288,
++ BRACKET_PHRASE = 289,
++ EXPRESSION_PHRASE = 290,
++ CHAR = 291,
++ DOTS = 292,
++ IDENT = 293,
++ INT = 294,
++ REAL = 295,
++ STRING = 296,
++ TYPE = 297,
++ OTHER = 298,
++ FILENAME = 299
+ };
+ #endif
+
+diff --git a/scripts/genksyms/parse.y b/scripts/genksyms/parse.y
+index 23c3999..b9f4cf2 100644
+--- a/scripts/genksyms/parse.y
++++ b/scripts/genksyms/parse.y
+@@ -103,6 +103,7 @@ static void record_compound(struct string_list **keyw,
+
+ %token ASM_PHRASE
+ %token ATTRIBUTE_PHRASE
++%token TYPEOF_PHRASE
+ %token BRACE_PHRASE
+ %token BRACKET_PHRASE
+ %token EXPRESSION_PHRASE
+@@ -220,8 +221,8 @@ storage_class_specifier:
+ type_specifier:
+ simple_type_specifier
+ | cvar_qualifier
+- | TYPEOF_KEYW '(' decl_specifier_seq '*' ')'
+- | TYPEOF_KEYW '(' decl_specifier_seq ')'
++ | TYPEOF_KEYW '(' parameter_declaration ')'
++ | TYPEOF_PHRASE
+
+ /* References to s/u/e's defined elsewhere. Rearrange things
+ so that it is easier to expand the definition fully later. */
+--
+1.9.1
+
diff --git a/kernels/linux-libre-xen/0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch b/kernels/linux-libre-xen/0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch
deleted file mode 100644
index 75505c30d..000000000
--- a/kernels/linux-libre-xen/0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 23e66ba97127ff3b064d4c6c5138aa34eafc492f Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton@redhat.com>
-Date: Mon, 9 Dec 2013 09:38:00 -0500
-Subject: [PATCH 6/6] rpc_pipe: fix cleanup of dummy gssd directory when
- notification fails
-
-Currently, it could leak dentry references in some cases. Make sure
-we clean up properly.
-
-Signed-off-by: Jeff Layton <jlayton@redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
----
- net/sunrpc/rpc_pipe.c | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
-index 5d973b2..b185548 100644
---- a/net/sunrpc/rpc_pipe.c
-+++ b/net/sunrpc/rpc_pipe.c
-@@ -1369,6 +1369,18 @@ out:
- return pipe_dentry;
- }
-
-+static void
-+rpc_gssd_dummy_depopulate(struct dentry *pipe_dentry)
-+{
-+ struct dentry *clnt_dir = pipe_dentry->d_parent;
-+ struct dentry *gssd_dir = clnt_dir->d_parent;
-+
-+ __rpc_rmpipe(clnt_dir->d_inode, pipe_dentry);
-+ __rpc_depopulate(clnt_dir, gssd_dummy_info_file, 0, 1);
-+ __rpc_depopulate(gssd_dir, gssd_dummy_clnt_dir, 0, 1);
-+ dput(pipe_dentry);
-+}
-+
- static int
- rpc_fill_super(struct super_block *sb, void *data, int silent)
- {
-@@ -1412,7 +1424,7 @@ rpc_fill_super(struct super_block *sb, void *data, int silent)
- return 0;
-
- err_depopulate:
-- dput(gssd_dentry);
-+ rpc_gssd_dummy_depopulate(gssd_dentry);
- blocking_notifier_call_chain(&rpc_pipefs_notifier_list,
- RPC_PIPEFS_UMOUNT,
- sb);
---
-1.8.5.3
-
diff --git a/kernels/linux-libre-xen/0007-Fix-the-use-of-code32_start-in-the-EFI-boot-stub.patch b/kernels/linux-libre-xen/0007-Fix-the-use-of-code32_start-in-the-EFI-boot-stub.patch
new file mode 100644
index 000000000..8cf776842
--- /dev/null
+++ b/kernels/linux-libre-xen/0007-Fix-the-use-of-code32_start-in-the-EFI-boot-stub.patch
@@ -0,0 +1,96 @@
+From ec8ec8362c46fd86571204d0fcce11c03477e5c5 Mon Sep 17 00:00:00 2001
+From: Matt Fleming <matt@console-pimps.org>
+Date: Wed, 9 Apr 2014 10:33:49 +0200
+Subject: [PATCH 7/7] Fix the use of code32_start in the EFI boot stub
+
+---
+ arch/x86/boot/compressed/eboot.c | 5 +++--
+ arch/x86/boot/compressed/head_32.S | 14 ++++++++------
+ arch/x86/boot/compressed/head_64.S | 9 +++------
+ 3 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
+index a7677ba..78cbb2d 100644
+--- a/arch/x86/boot/compressed/eboot.c
++++ b/arch/x86/boot/compressed/eboot.c
+@@ -425,6 +425,9 @@ void setup_graphics(struct boot_params *boot_params)
+ * Because the x86 boot code expects to be passed a boot_params we
+ * need to create one ourselves (usually the bootloader would create
+ * one for us).
++ *
++ * The caller is responsible for filling out ->code32_start in the
++ * returned boot_params.
+ */
+ struct boot_params *make_boot_params(void *handle, efi_system_table_t *_table)
+ {
+@@ -483,8 +486,6 @@ struct boot_params *make_boot_params(void *handle, efi_system_table_t *_table)
+ hdr->vid_mode = 0xffff;
+ hdr->boot_flag = 0xAA55;
+
+- hdr->code32_start = (__u64)(unsigned long)image->image_base;
+-
+ hdr->type_of_loader = 0x21;
+
+ /* Convert unicode cmdline to ascii */
+diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
+index 9116aac..f45ab7a 100644
+--- a/arch/x86/boot/compressed/head_32.S
++++ b/arch/x86/boot/compressed/head_32.S
+@@ -50,6 +50,13 @@ ENTRY(efi_pe_entry)
+ pushl %eax
+ pushl %esi
+ pushl %ecx
++
++ call reloc
++reloc:
++ popl %ecx
++ subl reloc, %ecx
++ movl %ecx, BP_code32_start(%eax)
++
+ sub $0x4, %esp
+
+ ENTRY(efi_stub_entry)
+@@ -63,12 +70,7 @@ ENTRY(efi_stub_entry)
+ hlt
+ jmp 1b
+ 2:
+- call 3f
+-3:
+- popl %eax
+- subl $3b, %eax
+- subl BP_pref_address(%esi), %eax
+- add BP_code32_start(%esi), %eax
++ movl BP_code32_start(%esi), %eax
+ leal preferred_addr(%eax), %eax
+ jmp *%eax
+
+diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
+index c5c1ae0..b10fa66 100644
+--- a/arch/x86/boot/compressed/head_64.S
++++ b/arch/x86/boot/compressed/head_64.S
+@@ -217,6 +217,8 @@ ENTRY(efi_pe_entry)
+ cmpq $0,%rax
+ je 1f
+ mov %rax, %rdx
++ leaq startup_32(%rip), %rax
++ movl %eax, BP_code32_start(%rdx)
+ popq %rsi
+ popq %rdi
+
+@@ -230,12 +232,7 @@ ENTRY(efi_stub_entry)
+ hlt
+ jmp 1b
+ 2:
+- call 3f
+-3:
+- popq %rax
+- subq $3b, %rax
+- subq BP_pref_address(%rsi), %rax
+- add BP_code32_start(%esi), %eax
++ movl BP_code32_start(%esi), %eax
+ leaq preferred_addr(%rax), %rax
+ jmp *%rax
+
+--
+1.9.1
+
diff --git a/kernels/linux-libre-xen/PKGBUILD b/kernels/linux-libre-xen/PKGBUILD
index 333233614..ffcaba679 100644
--- a/kernels/linux-libre-xen/PKGBUILD
+++ b/kernels/linux-libre-xen/PKGBUILD
@@ -1,52 +1,46 @@
-# $Id: PKGBUILD 208695 2014-03-25 06:57:17Z thomas $
+# $Id: PKGBUILD 210090 2014-04-09 19:24:57Z thomas $
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Thomas Baechler <thomas@archlinux.org>
# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
pkgbase=linux-libre-xen # Build stock -LIBRE-XEN kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
-_basekernel=3.13
-pkgver=${_basekernel}.8
-pkgrel=1
+_basekernel=3.14
+#pkgver=${_basekernel}.8
+pkgver=${_basekernel}
+pkgrel=4
arch=('i686')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc')
options=('!strip')
source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gnu/linux-libre-${_basekernel}-gnu.tar.xz"
- "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basekernel}-gnu-${pkgver}-gnu.xz"
+ #"http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basekernel}-gnu-${pkgver}-gnu.xz"
# the main kernel config files
'config'
# standard config files for mkinitcpio ramdisk
"${pkgbase}.preset"
'boot-logo.patch'
'change-default-console-loglevel.patch'
- 'criu-no-expert.patch'
- '0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch'
- '0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch'
- '0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch'
- '0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch'
- '0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch'
- '0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch'
- '0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch'
'0001-Bluetooth-allocate-static-minor-for-vhci.patch'
- 'i8042-fix-aliases.patch')
-md5sums=('98a8e803e0ed08557f3cdd4d56b0ddc1'
- '29f02a5130dd5556f68208fa91ffe611'
- 'be059d4c29dfd9ac55183133938e9242'
- 'b7c2805bb287a644c0a303bf7721e534'
- '44260d2cb1a8b51c119d2ce1f83e457a'
- '98beb36f9b8cf16e58de2483ea9985e3'
- '989dc54ff8b179b0f80333cc97c0d43f'
- 'dd2adb99cd3feed6f11022562901965c'
- 'b00cc399d3797cb0793e18b5bf387a50'
- '7cbd2349cdf046acc37b652c06ba36be'
- '10dbaf863e22b2437e68f9190d65c861'
- 'd5907a721b97299f0685c583499f7820'
- 'a724515b350b29c53f20e631c6cf9a14'
- 'e6fa278c092ad83780e2dd0568e24ca6'
- '06f1751777e0772c18c3fa4fbae91aa5'
- '93dbf73af819b77f03453a9c6de2bb47')
+ '0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch'
+ '0003-module-remove-MODULE_GENERIC_TABLE.patch'
+ '0004-fs-Don-t-return-0-from-get_anon_bdev.patch'
+ '0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch'
+ '0006-genksyms-fix-typeof-handling.patch'
+ '0007-Fix-the-use-of-code32_start-in-the-EFI-boot-stub.patch')
+sha256sums=('477555c709b9407fe37dbd70d3331ff9dde1f9d874aba2741f138d07ae6f281b'
+ '2bd49bb28000063f6886816ae521b224e4c254c9523cdd70d041d913611fafbe'
+ '7a475ada892857397cf80d2de777825ae94758dc2d9dfa3754ae3d670f4a2f02'
+ '8303b426b1a6dce456b2350003558ae312d21cab0ae6c1f0d7b9d21395f4e177'
+ 'faced4eb4c47c4eb1a9ee8a5bf8a7c4b49d6b4d78efbe426e410730e6267d182'
+ 'aa17aa9a5c663552ea047b9d2a9a916207bed361bd387418c122f6611ee576a6'
+ '48c459a2a14e8f161b79943e9ea405c4e98cd5abdab62749c4e9d65e5735382a'
+ 'f15a6831736e4c0b8b355fd7887445e770500d439cb851623ea300cc50ba4d97'
+ '4b9aed8d0b7c2389d9413caa2152e6591200630c19dda8224d43eae7d863a0d6'
+ 'e0666f75eabc2bbfa668cb35ee72dfbad48e5963828a444fbb50388048a8cd3c'
+ 'd2c449d346ae52724d36c3224bd06fcae7775b0698a9096eb89eeaa6dbc092e5'
+ '5a175c698cfdbf942f712afeda2a6af3f4e63a742ec6b6dc3a64bc6a7fb685bb')
_kernelname=${pkgbase#linux-libre}
_localversionname=-LIBRE-XEN
@@ -69,33 +63,29 @@ prepare() {
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"
- # allow Checkpoint/restore (for criu) without EXPERT=y
- patch -p1 -i "${srcdir}/criu-no-expert.patch"
+ # Fix vhci warning in kmod (to restore every kernel maintainer's sanity)
+ patch -p1 -i "${srcdir}/0001-Bluetooth-allocate-static-minor-for-vhci.patch"
- # fix 15 seconds nfs delay
- # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=4b9a445e3eeb8bd9278b1ae51c1b3a651e370cd6
- patch -p1 -i "${srcdir}/0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch"
- # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=89f842435c630f8426f414e6030bc2ffea0d6f81
- patch -p1 -i "${srcdir}/0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch"
- # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=6aa23d76a7b549521a03b63b6d5b7880ea87eab7
- patch -p1 -i "${srcdir}/0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch"
+ # Fix atkbd aliases
+ patch -p1 -i "${srcdir}/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch"
+ patch -p1 -i "${srcdir}/0003-module-remove-MODULE_GENERIC_TABLE.patch"
- # fix nfs kernel oops
- # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=3396f92f8be606ea485b0a82d4e7749a448b013b
- patch -p1 -i "${srcdir}/0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch"
- # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=e2f0c83a9de331d9352185ca3642616c13127539
- patch -p1 -i "${srcdir}/0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch"
- # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=23e66ba97127ff3b064d4c6c5138aa34eafc492f
- patch -p1 -i "${srcdir}/0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch"
+ # Fix various bugs caused by rootfs having FSID 0
+ # See http://www.spinics.net/lists/kernel/msg1716924.html
+ patch -p1 -i "${srcdir}/0004-fs-Don-t-return-0-from-get_anon_bdev.patch"
- # Fix symbols: Revert http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=83460ec8dcac14142e7860a01fa59c267ac4657c
- patch -Rp1 -i "${srcdir}/0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch"
+ # Disable usb autosuspend for intel btusb
+ # See http://www.spinics.net/lists/kernel/msg1716461.html
+ # Until a solution is found, make sure the driver leaves autosuspend alone
+ patch -p1 -i "${srcdir}/0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch"
- # Fix i8042 aliases
- patch -p1 -i "${srcdir}/i8042-fix-aliases.patch"
+ # Fix generation of symbol CRCs
+ # http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dc53324060f324e8af6867f57bf4891c13c6ef18
+ patch -p1 -i "${srcdir}/0006-genksyms-fix-typeof-handling.patch"
- # Fix vhci warning in kmod (to restore every kernel maintainer's sanity)
- patch -p1 -i "${srcdir}/0001-Bluetooth-allocate-static-minor-for-vhci.patch"
+ # Fix the use of code32_start in the EFI boot stub
+ # http://permalink.gmane.org/gmane.linux.kernel/1679881
+ patch -p1 -i "${srcdir}/0007-Fix-the-use-of-code32_start-in-the-EFI-boot-stub.patch"
cat "${srcdir}/config" > ./.config # simpler
@@ -247,25 +237,6 @@ _package-headers() {
cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/"
- # add headers for lirc package
- # pci
- for i in bt8xx cx88 saa7134; do
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/pci/${i}"
- cp -a drivers/media/pci/${i}/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/pci/${i}"
- done
- # usb
- for i in cpia2 em28xx pwc sn9c102; do
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/${i}"
- cp -a drivers/media/usb/${i}/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/${i}"
- done
- # i2c
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c"
- cp drivers/media/i2c/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
- for i in cx25840; do
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/${i}"
- cp -a drivers/media/i2c/${i}/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/${i}"
- done
-
# add docbook makefile
install -D -m644 Documentation/DocBook/Makefile \
"${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
@@ -297,6 +268,7 @@ _package-headers() {
# http://bugs.archlinux.org/task/13146
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
cp drivers/media/dvb-frontends/lgdt330x.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
+ mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
cp drivers/media/i2c/msp3400-driver.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
# add dvb headers
diff --git a/kernels/linux-libre-xen/config b/kernels/linux-libre-xen/config
index fd1889bcd..76eab6864 100644
--- a/kernels/linux-libre-xen/config
+++ b/kernels/linux-libre-xen/config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 3.13.0 Kernel Configuration
+# Linux/x86 3.14.0-4 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -70,10 +70,7 @@ CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_FHANDLE=y
-CONFIG_AUDIT=y
-CONFIG_AUDITSYSCALL=y
-CONFIG_AUDIT_WATCH=y
-CONFIG_AUDIT_TREE=y
+# CONFIG_AUDIT is not set
#
# IRQ subsystem
@@ -100,7 +97,7 @@ CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
-CONFIG_NO_HZ=y
+# CONFIG_NO_HZ is not set
CONFIG_HIGH_RES_TIMERS=y
#
@@ -127,10 +124,7 @@ CONFIG_RCU_FANOUT_LEAF=16
CONFIG_RCU_FAST_NO_HZ=y
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_RCU_BOOST is not set
-CONFIG_RCU_NOCB_CPU=y
-CONFIG_RCU_NOCB_CPU_NONE=y
-# CONFIG_RCU_NOCB_CPU_ZERO is not set
-# CONFIG_RCU_NOCB_CPU_ALL is not set
+# CONFIG_RCU_NOCB_CPU is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=19
@@ -157,14 +151,13 @@ CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
-CONFIG_CHECKPOINT_RESTORE=y
+# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
# CONFIG_USER_NS is not set
CONFIG_PID_NS=y
CONFIG_NET_NS=y
-# CONFIG_UIDGID_STRICT_TYPE_CHECKS is not set
CONFIG_SCHED_AUTOGROUP=y
CONFIG_MM_OWNER=y
# CONFIG_SYSFS_DEPRECATED is not set
@@ -240,6 +233,7 @@ CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
@@ -255,6 +249,11 @@ CONFIG_HAVE_CMPXCHG_DOUBLE=y
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
+CONFIG_HAVE_CC_STACKPROTECTOR=y
+CONFIG_CC_STACKPROTECTOR=y
+# CONFIG_CC_STACKPROTECTOR_NONE is not set
+CONFIG_CC_STACKPROTECTOR_REGULAR=y
+# CONFIG_CC_STACKPROTECTOR_STRONG is not set
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
@@ -284,7 +283,7 @@ CONFIG_BLOCK=y
CONFIG_LBDAF=y
CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_BSGLIB=y
-# CONFIG_BLK_DEV_INTEGRITY is not set
+CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -328,6 +327,7 @@ CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PADATA=y
CONFIG_ASN1=m
CONFIG_UNINLINE_SPIN_UNLOCK=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
CONFIG_FREEZER=y
#
@@ -338,7 +338,7 @@ CONFIG_SMP=y
CONFIG_X86_MPPARSE=y
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_EXTENDED_PLATFORM is not set
-# CONFIG_X86_INTEL_LPSS is not set
+CONFIG_X86_INTEL_LPSS=y
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_X86_32_IRIS=m
CONFIG_SCHED_OMIT_FRAME_POINTER=y
@@ -353,9 +353,10 @@ CONFIG_XEN_PVHVM=y
CONFIG_XEN_MAX_DOMAIN_MEMORY=500
CONFIG_XEN_SAVE_RESTORE=y
# CONFIG_XEN_DEBUG_FS is not set
+CONFIG_XEN_PVH=y
CONFIG_KVM_GUEST=y
# CONFIG_KVM_DEBUG_FS is not set
-CONFIG_LGUEST_GUEST=y
+# CONFIG_LGUEST_GUEST is not set
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
CONFIG_PARAVIRT_CLOCK=y
CONFIG_NO_BOOTMEM=y
@@ -473,7 +474,8 @@ CONFIG_FRONTSWAP=y
# CONFIG_CMA is not set
CONFIG_ZBUD=y
CONFIG_ZSWAP=y
-CONFIG_MEM_SOFT_DIRTY=y
+CONFIG_ZSMALLOC=y
+# CONFIG_PGTABLE_MAPPING is not set
# CONFIG_HIGHPTE is not set
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
@@ -490,7 +492,6 @@ CONFIG_X86_SMAP=y
CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_SECCOMP=y
-CONFIG_CC_STACKPROTECTOR=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_300=y
@@ -499,11 +500,11 @@ CONFIG_HZ=300
CONFIG_SCHED_HRTICK=y
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
-# CONFIG_KEXEC_JUMP is not set
+CONFIG_KEXEC_JUMP=y
CONFIG_PHYSICAL_START=0x1000000
CONFIG_RELOCATABLE=y
CONFIG_X86_NEED_RELOCS=y
-CONFIG_PHYSICAL_ALIGN=0x100000
+CONFIG_PHYSICAL_ALIGN=0x1000000
CONFIG_HOTPLUG_CPU=y
# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
@@ -534,7 +535,8 @@ CONFIG_PM_SLEEP_DEBUG=y
# CONFIG_DPM_WATCHDOG is not set
CONFIG_PM_TRACE=y
CONFIG_PM_TRACE_RTC=y
-CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+CONFIG_PM_CLK=y
+# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
# CONFIG_ACPI_PROCFS is not set
@@ -716,8 +718,8 @@ CONFIG_HOTPLUG_PCI_CPCI=y
CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
CONFIG_HOTPLUG_PCI_SHPC=m
-CONFIG_RAPIDIO=y
-CONFIG_RAPIDIO_TSI721=y
+CONFIG_RAPIDIO=m
+CONFIG_RAPIDIO_TSI721=m
CONFIG_RAPIDIO_DISC_TIMEOUT=30
# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
CONFIG_RAPIDIO_DMA_ENGINE=y
@@ -727,10 +729,10 @@ CONFIG_RAPIDIO_ENUM_BASIC=m
#
# RapidIO Switch drivers
#
-CONFIG_RAPIDIO_TSI57X=y
-CONFIG_RAPIDIO_CPS_XX=y
-CONFIG_RAPIDIO_TSI568=y
-CONFIG_RAPIDIO_CPS_GEN2=y
+CONFIG_RAPIDIO_TSI57X=m
+CONFIG_RAPIDIO_CPS_XX=m
+CONFIG_RAPIDIO_TSI568=m
+CONFIG_RAPIDIO_CPS_GEN2=m
# CONFIG_X86_SYSFB is not set
#
@@ -741,7 +743,7 @@ CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_SCRIPT=y
CONFIG_HAVE_AOUT=y
-CONFIG_BINFMT_AOUT=m
+# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_MISC=y
CONFIG_COREDUMP=y
CONFIG_HAVE_ATOMIC_IOMAP=y
@@ -890,6 +892,7 @@ CONFIG_NF_NAT_SIP=m
CONFIG_NF_NAT_TFTP=m
CONFIG_NETFILTER_SYNPROXY=m
CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=m
CONFIG_NFT_EXTHDR=m
CONFIG_NFT_META=m
CONFIG_NFT_CT=m
@@ -899,6 +902,9 @@ CONFIG_NFT_COUNTER=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
CONFIG_NFT_NAT=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_REJECT_INET=m
CONFIG_NFT_COMPAT=m
CONFIG_NETFILTER_XTABLES=m
@@ -912,7 +918,6 @@ CONFIG_NETFILTER_XT_SET=m
#
# Xtables targets
#
-CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
@@ -943,6 +948,7 @@ CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
#
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CGROUP=m
CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
@@ -959,8 +965,10 @@ CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_L2TP=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
@@ -1000,7 +1008,7 @@ CONFIG_IP_SET_HASH_NETPORT=m
CONFIG_IP_SET_HASH_NETIFACE=m
CONFIG_IP_SET_LIST_SET=m
CONFIG_IP_VS=m
-# CONFIG_IP_VS_IPV6 is not set
+CONFIG_IP_VS_IPV6=y
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12
@@ -1047,9 +1055,9 @@ CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
CONFIG_NF_TABLES_IPV4=m
-CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
CONFIG_NFT_CHAIN_NAT_IPV4=m
+CONFIG_NFT_REJECT_IPV4=m
CONFIG_NF_TABLES_ARP=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_AH=m
@@ -1086,6 +1094,7 @@ CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_NF_TABLES_IPV6=m
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
CONFIG_NFT_CHAIN_NAT_IPV6=m
+CONFIG_NFT_REJECT_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -1183,21 +1192,14 @@ CONFIG_VLAN_8021Q_MVRP=y
# CONFIG_DECNET is not set
CONFIG_LLC=m
CONFIG_LLC2=m
-CONFIG_IPX=m
-# CONFIG_IPX_INTERN is not set
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-CONFIG_LTPC=m
-CONFIG_COPS=m
-CONFIG_COPS_DAYNA=y
-CONFIG_COPS_TANGENT=y
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
CONFIG_PHONET=m
CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_6LOWPAN_IPHC=m
CONFIG_MAC802154=m
CONFIG_NET_SCHED=y
@@ -1225,6 +1227,8 @@ CONFIG_NET_SCH_QFQ=m
CONFIG_NET_SCH_CODEL=m
CONFIG_NET_SCH_FQ_CODEL=m
CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
@@ -1242,7 +1246,7 @@ CONFIG_NET_CLS_U32=m
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_CLS_CGROUP=y
+CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_BPF=m
# CONFIG_NET_EMATCH is not set
CONFIG_NET_CLS_ACT=y
@@ -1259,7 +1263,7 @@ CONFIG_NET_ACT_CSUM=m
CONFIG_NET_CLS_IND=y
CONFIG_NET_SCH_FIFO=y
# CONFIG_DCB is not set
-CONFIG_DNS_RESOLVER=y
+CONFIG_DNS_RESOLVER=m
CONFIG_BATMAN_ADV=m
CONFIG_BATMAN_ADV_BLA=y
CONFIG_BATMAN_ADV_DAT=y
@@ -1277,7 +1281,8 @@ CONFIG_HSR=m
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
-CONFIG_NETPRIO_CGROUP=m
+CONFIG_CGROUP_NET_PRIO=m
+CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
CONFIG_NET_FLOW_LIMIT=y
@@ -1287,7 +1292,7 @@ CONFIG_NET_FLOW_LIMIT=y
#
CONFIG_NET_PKTGEN=m
CONFIG_NET_TCPPROBE=m
-CONFIG_NET_DROP_MONITOR=y
+CONFIG_NET_DROP_MONITOR=m
CONFIG_HAMRADIO=y
#
@@ -1444,6 +1449,7 @@ CONFIG_RFKILL_INPUT=y
CONFIG_RFKILL_GPIO=m
CONFIG_NET_9P=m
CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_RDMA is not set
# CONFIG_NET_9P_DEBUG is not set
CONFIG_CAIF=m
# CONFIG_CAIF_DEBUG is not set
@@ -1471,6 +1477,8 @@ CONFIG_NFC_PN544=m
CONFIG_NFC_PN544_MEI=m
CONFIG_NFC_MICROREAD=m
CONFIG_NFC_MICROREAD_MEI=m
+CONFIG_NFC_MRVL=m
+CONFIG_NFC_MRVL_USB=m
#
# Device Drivers
@@ -1487,7 +1495,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE=""
-CONFIG_FW_LOADER_USER_HELPER=y
+# CONFIG_FW_LOADER_USER_HELPER is not set
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
CONFIG_SYS_HYPERVISOR=y
@@ -1501,8 +1509,7 @@ CONFIG_DMA_SHARED_BUFFER=y
#
# Bus devices
#
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
+CONFIG_CONNECTOR=m
CONFIG_MTD=m
CONFIG_MTD_TESTS=m
CONFIG_MTD_REDBOOT_PARTS=m
@@ -1600,7 +1607,24 @@ CONFIG_MTD_BLOCK2MTD=m
CONFIG_MTD_DOCG3=m
CONFIG_BCH_CONST_M=14
CONFIG_BCH_CONST_T=4
-# CONFIG_MTD_NAND is not set
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_ECC_SMC=y
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_ECC_BCH is not set
+CONFIG_MTD_SM_COMMON=m
+# CONFIG_MTD_NAND_DENALI is not set
+CONFIG_MTD_NAND_GPIO=m
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DOCG4=m
+CONFIG_MTD_NAND_CAFE=m
+CONFIG_MTD_NAND_CS553X=m
+CONFIG_MTD_NAND_NANDSIM=m
+# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ONENAND is not set
#
@@ -1653,6 +1677,8 @@ CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=m
# CONFIG_PARIDE is not set
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_ZRAM=m
+# CONFIG_ZRAM_DEBUG is not set
CONFIG_BLK_CPQ_CISS_DA=m
# CONFIG_CISS_SCSI_TAPE is not set
CONFIG_BLK_DEV_DAC960=m
@@ -1689,6 +1715,7 @@ CONFIG_SENSORS_LIS3LV02D=m
CONFIG_AD525X_DPOT=m
CONFIG_AD525X_DPOT_I2C=m
# CONFIG_AD525X_DPOT_SPI is not set
+# CONFIG_ATMEL_PWM is not set
# CONFIG_DUMMY_IRQ is not set
# CONFIG_IBM_ASM is not set
CONFIG_PHANTOM=m
@@ -1716,7 +1743,7 @@ CONFIG_VMWARE_BALLOON=m
CONFIG_BMP085=y
CONFIG_BMP085_I2C=m
# CONFIG_BMP085_SPI is not set
-# CONFIG_PCH_PHUB is not set
+CONFIG_PCH_PHUB=m
CONFIG_USB_SWITCH_FSA9480=m
# CONFIG_LATTICE_ECP3_CONFIG is not set
# CONFIG_SRAM is not set
@@ -1823,7 +1850,6 @@ CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
CONFIG_AIC7XXX_DEBUG_MASK=0
CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
-# CONFIG_SCSI_AIC7XXX_OLD is not set
CONFIG_SCSI_AIC79XX=m
CONFIG_AIC79XX_CMDS_PER_DEVICE=32
CONFIG_AIC79XX_RESET_DELAY_MS=15000
@@ -2049,15 +2075,16 @@ CONFIG_MD_FAULTY=m
CONFIG_BCACHE=m
# CONFIG_BCACHE_DEBUG is not set
# CONFIG_BCACHE_CLOSURES_DEBUG is not set
+CONFIG_BLK_DEV_DM_BUILTIN=y
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
CONFIG_DM_BUFIO=m
CONFIG_DM_BIO_PRISON=m
CONFIG_DM_PERSISTENT_DATA=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m
-# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_MQ=m
CONFIG_DM_CACHE_CLEANER=m
@@ -2107,7 +2134,7 @@ CONFIG_I2O_BLOCK=m
CONFIG_I2O_SCSI=m
CONFIG_I2O_PROC=m
CONFIG_MACINTOSH_DRIVERS=y
-CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_MAC_EMUMOUSEBTN=m
CONFIG_NETDEVICES=y
CONFIG_MII=m
CONFIG_NET_CORE=y
@@ -2288,6 +2315,8 @@ CONFIG_IXGBE_HWMON=y
CONFIG_IXGBE_DCA=y
CONFIG_IXGBEVF=m
CONFIG_I40E=m
+CONFIG_I40E_VXLAN=y
+CONFIG_I40EVF=m
CONFIG_NET_VENDOR_I825XX=y
CONFIG_IP1000=m
CONFIG_JME=m
@@ -2302,14 +2331,15 @@ CONFIG_NET_VENDOR_MELLANOX=y
CONFIG_MLX4_EN=m
CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
-# CONFIG_MLX5_CORE is not set
+CONFIG_MLX5_CORE=m
CONFIG_NET_VENDOR_MICREL=y
CONFIG_KS8842=m
-# CONFIG_KS8851 is not set
+CONFIG_KS8851=m
CONFIG_KS8851_MLL=m
CONFIG_KSZ884X_PCI=m
CONFIG_NET_VENDOR_MICROCHIP=y
-# CONFIG_ENC28J60 is not set
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
CONFIG_NET_VENDOR_MYRI=y
CONFIG_MYRI10GE=m
CONFIG_MYRI10GE_DCA=y
@@ -2462,6 +2492,7 @@ CONFIG_USB_NET_HUAWEI_CDC_NCM=m
CONFIG_USB_NET_CDC_MBIM=m
CONFIG_USB_NET_DM9601=m
CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
CONFIG_USB_NET_SMSC75XX=m
CONFIG_USB_NET_SMSC95XX=m
CONFIG_USB_NET_GL620A=m
@@ -2521,6 +2552,7 @@ CONFIG_ATH9K=m
CONFIG_ATH9K_PCI=y
CONFIG_ATH9K_AHB=y
# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_ATH9K_WOW=y
# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set
CONFIG_ATH9K_RFKILL=y
CONFIG_ATH9K_HTC=m
@@ -2608,7 +2640,7 @@ CONFIG_LIBERTAS=m
CONFIG_LIBERTAS_USB=m
CONFIG_LIBERTAS_CS=m
CONFIG_LIBERTAS_SDIO=m
-# CONFIG_LIBERTAS_SPI is not set
+CONFIG_LIBERTAS_SPI=m
# CONFIG_LIBERTAS_DEBUG is not set
CONFIG_LIBERTAS_MESH=y
CONFIG_HERMES=m
@@ -2624,7 +2656,8 @@ CONFIG_ORINOCO_USB=m
CONFIG_P54_COMMON=m
CONFIG_P54_USB=m
CONFIG_P54_PCI=m
-# CONFIG_P54_SPI is not set
+CONFIG_P54_SPI=m
+# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
CONFIG_P54_LEDS=y
CONFIG_RT2X00=m
CONFIG_RT2400PCI=m
@@ -2797,8 +2830,8 @@ CONFIG_ISDN_DRV_ACT2000=m
CONFIG_ISDN_CAPI=m
CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
CONFIG_CAPI_TRACE=y
-CONFIG_ISDN_CAPI_MIDDLEWARE=y
CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
CONFIG_ISDN_CAPI_CAPIDRV=m
#
@@ -2891,9 +2924,11 @@ CONFIG_KEYBOARD_MCS=m
CONFIG_KEYBOARD_MPR121=m
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_CROS_EC is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_PS2_ALPS=y
@@ -2904,7 +2939,7 @@ CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
CONFIG_MOUSE_PS2_ELANTECH=y
CONFIG_MOUSE_PS2_SENTELIC=y
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_TOUCHKIT=y
CONFIG_MOUSE_PS2_OLPC=y
CONFIG_MOUSE_SERIAL=m
CONFIG_MOUSE_APPLETOUCH=m
@@ -3024,6 +3059,7 @@ CONFIG_TOUCHSCREEN_TOUCHIT213=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
# CONFIG_TOUCHSCREEN_TSC2005 is not set
CONFIG_TOUCHSCREEN_TSC2007=m
+# CONFIG_TOUCHSCREEN_W90X900 is not set
CONFIG_TOUCHSCREEN_ST1232=m
CONFIG_TOUCHSCREEN_SUR40=m
CONFIG_TOUCHSCREEN_TPS6507X=m
@@ -3039,6 +3075,7 @@ CONFIG_INPUT_MMA8450=m
CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_APANEL=m
CONFIG_INPUT_GP2A=m
+CONFIG_INPUT_GPIO_BEEPER=m
# CONFIG_INPUT_GPIO_TILT_POLLED is not set
CONFIG_INPUT_WISTRON_BTNS=m
CONFIG_INPUT_ATLAS_BTNS=m
@@ -3060,13 +3097,14 @@ CONFIG_INPUT_ADXL34X_SPI=m
# CONFIG_INPUT_IMS_PCU is not set
CONFIG_INPUT_CMA3000=m
CONFIG_INPUT_CMA3000_I2C=m
-CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
+CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
#
# Hardware I/O ports
#
CONFIG_SERIO=m
+CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
CONFIG_SERIO_I8042=m
CONFIG_SERIO_SERPORT=m
CONFIG_SERIO_CT82C710=m
@@ -3137,6 +3175,7 @@ CONFIG_SERIAL_8250_DW=m
#
# CONFIG_SERIAL_MAX3100 is not set
# CONFIG_SERIAL_MAX310X is not set
+# CONFIG_SERIAL_MRST_MAX3110 is not set
CONFIG_SERIAL_MFD_HSU=m
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
@@ -3162,20 +3201,22 @@ CONFIG_PPDEV=m
CONFIG_HVC_DRIVER=y
CONFIG_HVC_XEN=y
CONFIG_HVC_XEN_FRONTEND=y
-CONFIG_VIRTIO_CONSOLE=y
+CONFIG_VIRTIO_CONSOLE=m
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
-CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_ATMEL=m
CONFIG_HW_RANDOM_GEODE=m
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_HW_RANDOM_EXYNOS=m
CONFIG_HW_RANDOM_TPM=m
CONFIG_NVRAM=m
CONFIG_DTLK=m
@@ -3193,7 +3234,8 @@ CONFIG_IPWIRELESS=m
CONFIG_MWAVE=m
CONFIG_PC8736x_GPIO=m
CONFIG_NSC_GPIO=m
-# CONFIG_RAW_DRIVER is not set
+CONFIG_RAW_DRIVER=m
+CONFIG_MAX_RAW_DEVS=256
CONFIG_HPET=y
CONFIG_HPET_MMAP=y
CONFIG_HPET_MMAP_DEFAULT=y
@@ -3207,7 +3249,7 @@ CONFIG_TCG_NSC=m
CONFIG_TCG_ATMEL=m
CONFIG_TCG_INFINEON=m
CONFIG_TCG_ST33_I2C=m
-# CONFIG_TCG_XEN is not set
+CONFIG_TCG_XEN=m
CONFIG_TELCLOCK=m
CONFIG_DEVPORT=y
CONFIG_I2C=m
@@ -3223,6 +3265,7 @@ CONFIG_I2C_MUX=m
# CONFIG_I2C_MUX_GPIO is not set
CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
+# CONFIG_I2C_MUX_PINCTRL is not set
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_SMBUS=m
CONFIG_I2C_ALGOBIT=m
@@ -3263,6 +3306,7 @@ CONFIG_I2C_SCMI=m
#
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_DESIGNWARE_CORE=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=m
CONFIG_I2C_DESIGNWARE_PCI=m
CONFIG_I2C_EG20T=m
# CONFIG_I2C_GPIO is not set
@@ -3279,6 +3323,7 @@ CONFIG_I2C_XILINX=m
CONFIG_I2C_DIOLAN_U2C=m
CONFIG_I2C_PARPORT=m
CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
CONFIG_I2C_TAOS_EVM=m
CONFIG_I2C_TINY_USB=m
CONFIG_I2C_VIPERBOARD=m
@@ -3299,26 +3344,30 @@ CONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#
-# CONFIG_SPI_ALTERA is not set
-# CONFIG_SPI_BITBANG is not set
-# CONFIG_SPI_BUTTERFLY is not set
-# CONFIG_SPI_GPIO is not set
-# CONFIG_SPI_LM70_LLP is not set
+CONFIG_SPI_ALTERA=m
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
# CONFIG_SPI_FSL_SPI is not set
-# CONFIG_SPI_OC_TINY is not set
-# CONFIG_SPI_PXA2XX is not set
-# CONFIG_SPI_PXA2XX_PCI is not set
-# CONFIG_SPI_SC18IS602 is not set
-# CONFIG_SPI_TOPCLIFF_PCH is not set
-# CONFIG_SPI_XCOMM is not set
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_DESIGNWARE is not set
+CONFIG_SPI_OC_TINY=m
+CONFIG_SPI_PXA2XX_DMA=y
+CONFIG_SPI_PXA2XX=m
+CONFIG_SPI_PXA2XX_PCI=m
+CONFIG_SPI_SC18IS602=m
+CONFIG_SPI_TOPCLIFF_PCH=m
+CONFIG_SPI_XCOMM=m
+CONFIG_SPI_XILINX=m
+CONFIG_SPI_DESIGNWARE=m
+CONFIG_SPI_DW_PCI=m
+# CONFIG_SPI_DW_MID_DMA is not set
+CONFIG_SPI_DW_MMIO=m
#
# SPI Protocol Masters
#
-# CONFIG_SPI_SPIDEV is not set
-# CONFIG_SPI_TLE62X0 is not set
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
# CONFIG_HSI is not set
#
@@ -3326,6 +3375,7 @@ CONFIG_SPI_MASTER=y
#
CONFIG_PPS=m
# CONFIG_PPS_DEBUG is not set
+# CONFIG_NTP_PPS is not set
#
# PPS clients support
@@ -3345,6 +3395,18 @@ CONFIG_PPS_CLIENT_GPIO=m
CONFIG_PTP_1588_CLOCK=m
CONFIG_DP83640_PHY=m
CONFIG_PTP_1588_CLOCK_PCH=m
+CONFIG_PINCTRL=y
+
+#
+# Pin controllers
+#
+# CONFIG_PINMUX is not set
+# CONFIG_PINCONF is not set
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_PINCTRL_BAYTRAIL is not set
+# CONFIG_PINCTRL_CAPRI is not set
+# CONFIG_PINCTRL_MSM8X74 is not set
+# CONFIG_PINCTRL_SINGLE is not set
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_DEVRES=y
@@ -3359,17 +3421,19 @@ CONFIG_GPIO_SYSFS=y
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_IT8761E is not set
# CONFIG_GPIO_F7188X is not set
+CONFIG_GPIO_SCH311X=m
# CONFIG_GPIO_TS5500 is not set
CONFIG_GPIO_SCH=m
CONFIG_GPIO_ICH=m
# CONFIG_GPIO_VX855 is not set
-# CONFIG_GPIO_LYNXPOINT is not set
+CONFIG_GPIO_LYNXPOINT=m
# CONFIG_GPIO_GRGPIO is not set
#
# I2C GPIO expanders:
#
CONFIG_GPIO_ARIZONA=m
+CONFIG_GPIO_LP3943=m
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_PCA953X is not set
@@ -3439,7 +3503,7 @@ CONFIG_CHARGER_BQ24735=m
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO=y
CONFIG_POWER_AVS=y
-CONFIG_HWMON=y
+CONFIG_HWMON=m
CONFIG_HWMON_VID=m
# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -3448,10 +3512,10 @@ CONFIG_HWMON_VID=m
#
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
-# CONFIG_SENSORS_AD7314 is not set
+CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
-# CONFIG_SENSORS_ADCXX is not set
+CONFIG_SENSORS_ADCXX=m
CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
@@ -3482,7 +3546,7 @@ CONFIG_SENSORS_G760A=m
CONFIG_SENSORS_G762=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
-# CONFIG_SENSORS_GPIO_FAN is not set
+CONFIG_SENSORS_GPIO_FAN=m
CONFIG_SENSORS_HIH6130=m
CONFIG_SENSORS_HTU21=m
CONFIG_SENSORS_CORETEMP=m
@@ -3492,7 +3556,7 @@ CONFIG_SENSORS_IT87=m
CONFIG_SENSORS_JC42=m
CONFIG_SENSORS_LINEAGE=m
CONFIG_SENSORS_LM63=m
-# CONFIG_SENSORS_LM70 is not set
+CONFIG_SENSORS_LM70=m
CONFIG_SENSORS_LM73=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
@@ -3511,7 +3575,7 @@ CONFIG_SENSORS_LTC4261=m
CONFIG_SENSORS_LM95234=m
CONFIG_SENSORS_LM95241=m
CONFIG_SENSORS_LM95245=m
-# CONFIG_SENSORS_MAX1111 is not set
+CONFIG_SENSORS_MAX1111=m
CONFIG_SENSORS_MAX16065=m
CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_MAX1668=m
@@ -3552,7 +3616,7 @@ CONFIG_SENSORS_SCH5627=m
CONFIG_SENSORS_SCH5636=m
CONFIG_SENSORS_ADS1015=m
CONFIG_SENSORS_ADS7828=m
-# CONFIG_SENSORS_ADS7871 is not set
+CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
@@ -3583,7 +3647,7 @@ CONFIG_SENSORS_MC13783_ADC=m
CONFIG_SENSORS_ACPI_POWER=m
CONFIG_SENSORS_ATK0110=m
CONFIG_THERMAL=y
-CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_OF=y
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
@@ -3594,6 +3658,7 @@ CONFIG_THERMAL_GOV_USER_SPACE=y
# CONFIG_THERMAL_EMULATION is not set
CONFIG_INTEL_POWERCLAMP=m
CONFIG_X86_PKG_TEMP_THERMAL=m
+CONFIG_ACPI_INT3403_THERMAL=m
#
# Texas Instruments thermal drivers
@@ -3606,6 +3671,8 @@ CONFIG_WATCHDOG_CORE=y
# Watchdog Device Drivers
#
CONFIG_SOFT_WATCHDOG=m
+CONFIG_GPIO_WATCHDOG=m
+CONFIG_DW_WATCHDOG=m
CONFIG_RETU_WATCHDOG=m
CONFIG_ACQUIRE_WDT=m
CONFIG_ADVANTECH_WDT=m
@@ -3703,9 +3770,10 @@ CONFIG_BCMA_DRIVER_GPIO=y
#
CONFIG_MFD_CORE=y
CONFIG_MFD_CS5535=m
-# CONFIG_MFD_CROS_EC is not set
+CONFIG_MFD_CROS_EC=m
+CONFIG_MFD_CROS_EC_I2C=m
+CONFIG_MFD_CROS_EC_SPI=m
# CONFIG_MFD_DA9052_SPI is not set
-CONFIG_MFD_MC13783=m
CONFIG_MFD_MC13XXX=m
# CONFIG_MFD_MC13XXX_SPI is not set
CONFIG_MFD_MC13XXX_I2C=m
@@ -3730,6 +3798,7 @@ CONFIG_ABX500_CORE=y
# CONFIG_MFD_STMPE is not set
# CONFIG_MFD_SYSCON is not set
CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_MFD_LP3943=m
# CONFIG_TPS6105X is not set
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
@@ -3776,7 +3845,6 @@ CONFIG_VIDEOBUF2_MEMOPS=m
CONFIG_VIDEOBUF2_DMA_CONTIG=m
CONFIG_VIDEOBUF2_VMALLOC=m
CONFIG_VIDEOBUF2_DMA_SG=m
-# CONFIG_VIDEO_V4L2_INT_DEVICE is not set
CONFIG_DVB_CORE=m
CONFIG_DVB_NET=y
CONFIG_TTPCI_EEPROM=m
@@ -3876,7 +3944,6 @@ CONFIG_VIDEO_CPIA2=m
CONFIG_USB_ZR364XX=m
CONFIG_USB_STKWEBCAM=m
CONFIG_USB_S2255=m
-CONFIG_USB_SN9C102=m
CONFIG_VIDEO_USBTV=m
#
@@ -3959,6 +4026,7 @@ CONFIG_DVB_B2C2_FLEXCOP_USB=m
# Webcam, TV (analog/digital) USB devices
#
CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_V4L2=m
CONFIG_VIDEO_EM28XX_ALSA=m
CONFIG_VIDEO_EM28XX_DVB=m
CONFIG_VIDEO_EM28XX_RC=m
@@ -4052,14 +4120,17 @@ CONFIG_RADIO_TEA575X=m
CONFIG_RADIO_SI470X=y
CONFIG_USB_SI470X=m
CONFIG_I2C_SI470X=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_SI4713=m
+CONFIG_PLATFORM_SI4713=m
+CONFIG_I2C_SI4713=m
CONFIG_USB_MR800=m
CONFIG_USB_DSBR=m
CONFIG_RADIO_MAXIRADIO=m
CONFIG_RADIO_SHARK=m
CONFIG_RADIO_SHARK2=m
-CONFIG_I2C_SI4713=m
-CONFIG_RADIO_SI4713=m
CONFIG_USB_KEENE=m
+CONFIG_USB_RAREMONO=m
CONFIG_USB_MA901=m
CONFIG_RADIO_TEA5764=m
CONFIG_RADIO_SAA7706H=m
@@ -4167,6 +4238,11 @@ CONFIG_VIDEO_UPD64031A=m
CONFIG_VIDEO_UPD64083=m
#
+# Audio/Video compression chips
+#
+CONFIG_VIDEO_SAA6752HS=m
+
+#
# Miscellaneous helper chips
#
CONFIG_VIDEO_M52790=m
@@ -4202,6 +4278,7 @@ CONFIG_MEDIA_TUNER_FC0013=m
CONFIG_MEDIA_TUNER_TDA18212=m
CONFIG_MEDIA_TUNER_E4000=m
CONFIG_MEDIA_TUNER_FC2580=m
+CONFIG_MEDIA_TUNER_M88TS2022=m
CONFIG_MEDIA_TUNER_TUA9001=m
CONFIG_MEDIA_TUNER_IT913X=m
CONFIG_MEDIA_TUNER_R820T=m
@@ -4213,6 +4290,7 @@ CONFIG_DVB_STB0899=m
CONFIG_DVB_STB6100=m
CONFIG_DVB_STV090x=m
CONFIG_DVB_STV6110x=m
+CONFIG_DVB_M88DS3103=m
#
# Multistandard (cable + terrestrial) frontends
@@ -4349,6 +4427,7 @@ CONFIG_AGP_SIS=m
CONFIG_AGP_SWORKS=m
CONFIG_AGP_VIA=m
CONFIG_AGP_EFFICEON=m
+CONFIG_INTEL_GTT=m
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_SWITCHEROO=y
@@ -4377,6 +4456,7 @@ CONFIG_DRM_I915=m
CONFIG_DRM_I915_KMS=y
CONFIG_DRM_I915_FBDEV=y
# CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set
+# CONFIG_DRM_I915_UMS is not set
CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
@@ -4391,6 +4471,7 @@ CONFIG_DRM_AST=m
CONFIG_DRM_MGAG200=m
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_QXL=m
+CONFIG_DRM_BOCHS=m
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_HDMI=y
@@ -4429,6 +4510,7 @@ CONFIG_FB_VESA=y
CONFIG_FB_EFI=y
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
+CONFIG_FB_OPENCORES=m
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
@@ -4536,7 +4618,7 @@ CONFIG_SND_HRTIMER=m
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
CONFIG_SND_MAX_CARDS=32
-CONFIG_SND_SUPPORT_OLD_API=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
@@ -4661,20 +4743,20 @@ CONFIG_SND_HDA_INPUT_BEEP=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=1
CONFIG_SND_HDA_INPUT_JACK=y
CONFIG_SND_HDA_PATCH_LOADER=y
-CONFIG_SND_HDA_CODEC_REALTEK=y
-CONFIG_SND_HDA_CODEC_ANALOG=y
-CONFIG_SND_HDA_CODEC_SIGMATEL=y
-CONFIG_SND_HDA_CODEC_VIA=y
-CONFIG_SND_HDA_CODEC_HDMI=y
+CONFIG_SND_HDA_CODEC_REALTEK=m
+CONFIG_SND_HDA_CODEC_ANALOG=m
+CONFIG_SND_HDA_CODEC_SIGMATEL=m
+CONFIG_SND_HDA_CODEC_VIA=m
+CONFIG_SND_HDA_CODEC_HDMI=m
CONFIG_SND_HDA_I915=y
-CONFIG_SND_HDA_CODEC_CIRRUS=y
-CONFIG_SND_HDA_CODEC_CONEXANT=y
-CONFIG_SND_HDA_CODEC_CA0110=y
-CONFIG_SND_HDA_CODEC_CA0132=y
+CONFIG_SND_HDA_CODEC_CIRRUS=m
+CONFIG_SND_HDA_CODEC_CONEXANT=m
+CONFIG_SND_HDA_CODEC_CA0110=m
+CONFIG_SND_HDA_CODEC_CA0132=m
CONFIG_SND_HDA_CODEC_CA0132_DSP=y
-CONFIG_SND_HDA_CODEC_CMEDIA=y
-CONFIG_SND_HDA_CODEC_SI3054=y
-CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_CODEC_CMEDIA=m
+CONFIG_SND_HDA_CODEC_SI3054=m
+CONFIG_SND_HDA_GENERIC=m
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
@@ -4838,7 +4920,9 @@ CONFIG_USB=m
#
CONFIG_USB_DEFAULT_PERSIST=y
CONFIG_USB_DYNAMIC_MINORS=y
-# CONFIG_USB_OTG is not set
+CONFIG_USB_OTG=y
+CONFIG_USB_OTG_WHITELIST=y
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
CONFIG_USB_MON=m
CONFIG_USB_WUSB=m
CONFIG_USB_WUSB_CBAF=m
@@ -4876,16 +4960,6 @@ CONFIG_USB_HWA_HCD=m
# CONFIG_USB_HCD_BCMA is not set
# CONFIG_USB_HCD_SSB is not set
# CONFIG_USB_HCD_TEST_MODE is not set
-CONFIG_USB_MUSB_HDRC=m
-# CONFIG_USB_MUSB_HOST is not set
-# CONFIG_USB_MUSB_GADGET is not set
-CONFIG_USB_MUSB_DUAL_ROLE=y
-CONFIG_USB_MUSB_TUSB6010=m
-CONFIG_USB_MUSB_DSPS=m
-CONFIG_USB_MUSB_UX500=m
-CONFIG_USB_MUSB_AM335X_CHILD=m
-# CONFIG_USB_UX500_DMA is not set
-CONFIG_MUSB_PIO_ONLY=y
CONFIG_USB_RENESAS_USBHS=m
#
@@ -4925,7 +4999,18 @@ CONFIG_USB_STORAGE_ENE_UB6250=m
#
CONFIG_USB_MDC800=m
CONFIG_USB_MICROTEK=m
+CONFIG_USB_MUSB_HDRC=m
+# CONFIG_USB_MUSB_HOST is not set
+# CONFIG_USB_MUSB_GADGET is not set
+CONFIG_USB_MUSB_DUAL_ROLE=y
+CONFIG_USB_MUSB_TUSB6010=m
+CONFIG_USB_MUSB_DSPS=m
+CONFIG_USB_MUSB_UX500=m
+CONFIG_USB_MUSB_AM335X_CHILD=m
+# CONFIG_USB_UX500_DMA is not set
+CONFIG_MUSB_PIO_ONLY=y
# CONFIG_USB_DWC3 is not set
+# CONFIG_USB_DWC2 is not set
# CONFIG_USB_CHIPIDEA is not set
#
@@ -4963,6 +5048,7 @@ CONFIG_USB_SERIAL_METRO=m
CONFIG_USB_SERIAL_MOS7720=m
CONFIG_USB_SERIAL_MOS7715_PARPORT=y
CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
CONFIG_USB_SERIAL_NAVMAN=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_USB_SERIAL_OTI6858=m
@@ -5024,11 +5110,14 @@ CONFIG_USB_XUSBATM=m
# USB Physical Layer drivers
#
CONFIG_USB_PHY=y
+CONFIG_USB_OTG_FSM=m
CONFIG_NOP_USB_XCEIV=m
CONFIG_SAMSUNG_USBPHY=m
CONFIG_SAMSUNG_USB2PHY=m
CONFIG_SAMSUNG_USB3PHY=m
# CONFIG_USB_GPIO_VBUS is not set
+CONFIG_TAHVO_USB=m
+# CONFIG_TAHVO_USB_HOST_BY_DEFAULT is not set
CONFIG_USB_ISP1301=m
CONFIG_USB_RCAR_PHY=m
CONFIG_USB_GADGET=m
@@ -5043,6 +5132,7 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
#
CONFIG_USB_FUSB300=m
CONFIG_USB_FOTG210_UDC=m
+CONFIG_USB_GR_UDC=m
CONFIG_USB_R8A66597=m
CONFIG_USB_RENESAS_USBHS_UDC=m
CONFIG_USB_PXA27X=m
@@ -5060,7 +5150,6 @@ CONFIG_USB_LIBCOMPOSITE=m
CONFIG_USB_F_ACM=m
CONFIG_USB_U_SERIAL=m
CONFIG_USB_U_ETHER=m
-CONFIG_USB_U_RNDIS=m
CONFIG_USB_F_SERIAL=m
CONFIG_USB_F_OBEX=m
CONFIG_USB_F_NCM=m
@@ -5068,6 +5157,7 @@ CONFIG_USB_F_ECM=m
CONFIG_USB_F_SUBSET=m
CONFIG_USB_F_RNDIS=m
CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_FS=m
# CONFIG_USB_CONFIGFS is not set
# CONFIG_USB_ZERO is not set
CONFIG_USB_AUDIO=m
@@ -5121,6 +5211,9 @@ CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_RICOH_MMC=y
CONFIG_MMC_SDHCI_ACPI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_OF_ARASAN=m
+CONFIG_MMC_SDHCI_PXAV3=m
+CONFIG_MMC_SDHCI_PXAV2=m
CONFIG_MMC_WBSD=m
CONFIG_MMC_TIFM_SD=m
CONFIG_MMC_SDRICOH_CS=m
@@ -5137,7 +5230,7 @@ CONFIG_MEMSTICK=m
#
# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
CONFIG_MSPRO_BLOCK=m
-# CONFIG_MS_BLOCK is not set
+CONFIG_MS_BLOCK=m
#
# MemoryStick Host Controller Drivers
@@ -5147,7 +5240,7 @@ CONFIG_MEMSTICK_JMICRON_38X=m
CONFIG_MEMSTICK_R592=m
CONFIG_MEMSTICK_REALTEK_PCI=m
CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_CLASS=m
#
# LED drivers
@@ -5157,19 +5250,19 @@ CONFIG_LEDS_LM3533=m
CONFIG_LEDS_LM3642=m
CONFIG_LEDS_PCA9532=m
# CONFIG_LEDS_PCA9532_GPIO is not set
-# CONFIG_LEDS_GPIO is not set
+CONFIG_LEDS_GPIO=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP55XX_COMMON=m
CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
CONFIG_LEDS_LP5562=m
-# CONFIG_LEDS_LP8501 is not set
+CONFIG_LEDS_LP8501=m
CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_PCA955X=m
-# CONFIG_LEDS_PCA963X is not set
+CONFIG_LEDS_PCA963X=m
CONFIG_LEDS_PCA9685=m
-# CONFIG_LEDS_DAC124S085 is not set
-# CONFIG_LEDS_PWM is not set
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_PWM=m
CONFIG_LEDS_BD2802=m
CONFIG_LEDS_INTEL_SS4200=m
CONFIG_LEDS_LT3593=m
@@ -5188,7 +5281,7 @@ CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-# CONFIG_LEDS_TRIGGER_CPU is not set
+CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
@@ -5199,7 +5292,32 @@ CONFIG_LEDS_TRIGGER_TRANSIENT=m
CONFIG_LEDS_TRIGGER_CAMERA=m
CONFIG_ACCESSIBILITY=y
CONFIG_A11Y_BRAILLE_CONSOLE=y
-# CONFIG_INFINIBAND is not set
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MEM=y
+CONFIG_INFINIBAND_ADDR_TRANS=y
+CONFIG_INFINIBAND_MTHCA=m
+CONFIG_INFINIBAND_MTHCA_DEBUG=y
+CONFIG_INFINIBAND_AMSO1100=m
+# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
+CONFIG_INFINIBAND_CXGB3=m
+# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
+CONFIG_INFINIBAND_CXGB4=m
+CONFIG_MLX4_INFINIBAND=m
+CONFIG_MLX5_INFINIBAND=m
+CONFIG_INFINIBAND_NES=m
+# CONFIG_INFINIBAND_NES_DEBUG is not set
+CONFIG_INFINIBAND_OCRDMA=m
+CONFIG_INFINIBAND_USNIC=m
+CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_CM=y
+CONFIG_INFINIBAND_IPOIB_DEBUG=y
+# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
+CONFIG_INFINIBAND_SRP=m
+CONFIG_INFINIBAND_SRPT=m
+CONFIG_INFINIBAND_ISER=m
+CONFIG_INFINIBAND_ISERT=m
CONFIG_EDAC=y
CONFIG_EDAC_LEGACY_SYSFS=y
# CONFIG_EDAC_DEBUG is not set
@@ -5244,10 +5362,12 @@ CONFIG_RTC_DRV_DS1307=m
CONFIG_RTC_DRV_DS1374=m
CONFIG_RTC_DRV_DS1672=m
CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_HYM8563=m
CONFIG_RTC_DRV_MAX6900=m
CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_ISL1208=m
CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_ISL12057=m
CONFIG_RTC_DRV_X1205=m
CONFIG_RTC_DRV_PCF2127=m
CONFIG_RTC_DRV_PCF8523=m
@@ -5351,7 +5471,7 @@ CONFIG_VFIO=m
CONFIG_VFIO_PCI=m
CONFIG_VFIO_PCI_VGA=y
CONFIG_VIRT_DRIVERS=y
-CONFIG_VIRTIO=y
+CONFIG_VIRTIO=m
#
# Virtio drivers
@@ -5492,6 +5612,7 @@ CONFIG_COMEDI_DAS08_PCI=m
CONFIG_COMEDI_DT3000=m
CONFIG_COMEDI_DYNA_PCI10XX=m
CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_MF6X4=m
CONFIG_COMEDI_ICP_MULTI=m
CONFIG_COMEDI_DAQBOARD2000=m
CONFIG_COMEDI_JR3_PCI=m
@@ -5536,7 +5657,9 @@ CONFIG_COMEDI_DAS08=m
CONFIG_COMEDI_NI_LABPC=m
CONFIG_COMEDI_NI_LABPC_ISADMA=m
CONFIG_COMEDI_NI_TIO=m
-# CONFIG_FB_OLPC_DCON is not set
+CONFIG_FB_OLPC_DCON=m
+CONFIG_FB_OLPC_DCON_1=y
+CONFIG_FB_OLPC_DCON_1_5=y
# CONFIG_PANEL is not set
CONFIG_R8187SE=m
CONFIG_RTL8192U=m
@@ -5549,8 +5672,11 @@ CONFIG_R8712U=m
CONFIG_R8188EU=m
CONFIG_88EU_AP_MODE=y
CONFIG_88EU_P2P=y
+CONFIG_R8821AE=m
CONFIG_RTS5139=m
# CONFIG_RTS5139_DEBUG is not set
+CONFIG_RTS5208=m
+# CONFIG_RTS5208_DEBUG is not set
# CONFIG_TRANZPORT is not set
CONFIG_IDE_PHISON=m
CONFIG_LINE6_USB=m
@@ -5559,9 +5685,6 @@ CONFIG_USB_SERIAL_QUATECH2=m
CONFIG_VT6655=m
CONFIG_VT6656=m
CONFIG_DX_SEP=m
-CONFIG_ZSMALLOC=y
-CONFIG_ZRAM=m
-# CONFIG_ZRAM_DEBUG is not set
CONFIG_WLAGS49_H2=m
CONFIG_WLAGS49_H25=m
CONFIG_FB_SM7XX=m
@@ -5597,6 +5720,7 @@ CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
CONFIG_STAGING_MEDIA=y
CONFIG_DVB_AS102=m
+CONFIG_I2C_BCM2048=m
CONFIG_DVB_CXD2099=m
CONFIG_VIDEO_DT3155=m
CONFIG_DT3155_CCIR=y
@@ -5606,6 +5730,9 @@ CONFIG_VIDEO_GO7007_USB=m
CONFIG_VIDEO_GO7007_LOADER=m
# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
# CONFIG_USB_MSI3101 is not set
+CONFIG_VIDEO_V4L2_INT_DEVICE=m
+CONFIG_VIDEO_TCM825X=m
+CONFIG_USB_SN9C102=m
CONFIG_SOLO6X10=m
CONFIG_LIRC_STAGING=y
CONFIG_LIRC_BT829=m
@@ -5630,22 +5757,24 @@ CONFIG_WIMAX_GDM72XX_WIMAX2=y
CONFIG_WIMAX_GDM72XX_USB=y
# CONFIG_WIMAX_GDM72XX_SDIO is not set
CONFIG_WIMAX_GDM72XX_USB_PM=y
-# CONFIG_LTE_GDM724X is not set
+CONFIG_LTE_GDM724X=m
CONFIG_NET_VENDOR_SILICOM=y
CONFIG_SBYPASS=m
CONFIG_BPCTL=m
CONFIG_CED1401=m
CONFIG_DGRP=m
CONFIG_FIREWIRE_SERIAL=m
-# CONFIG_USB_DWC2 is not set
+CONFIG_FWTTY_MAX_TOTAL_PORTS=64
+CONFIG_FWTTY_MAX_CARD_PORTS=32
+# CONFIG_MTD_SPINAND_MT29F is not set
CONFIG_LUSTRE_FS=m
CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER=8192
# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set
-CONFIG_LUSTRE_LLITE_LLOOP=y
+CONFIG_LUSTRE_LLITE_LLOOP=m
CONFIG_LNET=m
CONFIG_LNET_MAX_PAYLOAD=1048576
CONFIG_LNET_SELFTEST=m
-CONFIG_USB_BTMTK=m
+CONFIG_LNET_XPRT_IB=m
# CONFIG_XILLYBUS is not set
CONFIG_DGNC=m
CONFIG_DGAP=m
@@ -5662,6 +5791,7 @@ CONFIG_FUJITSU_TABLET=m
CONFIG_AMILO_RFKILL=m
CONFIG_TC1100_WMI=m
CONFIG_HP_ACCEL=m
+CONFIG_HP_WIRELESS=m
CONFIG_HP_WMI=m
CONFIG_MSI_LAPTOP=m
CONFIG_PANASONIC_LAPTOP=m
@@ -5697,11 +5827,22 @@ CONFIG_MXM_WMI=m
CONFIG_INTEL_OAKTRAIL=m
CONFIG_SAMSUNG_Q10=m
CONFIG_APPLE_GMUX=m
-CONFIG_INTEL_RST=y
+CONFIG_INTEL_RST=m
CONFIG_INTEL_SMARTCONNECT=y
CONFIG_PVPANIC=m
CONFIG_CHROME_PLATFORMS=y
CONFIG_CHROMEOS_LAPTOP=m
+CONFIG_CHROMEOS_PSTORE=m
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+
+#
+# Common Clock Framework
+#
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_QCOM is not set
#
# Hardware Spinlock drivers
@@ -5742,12 +5883,13 @@ CONFIG_MEMORY=y
# CONFIG_VME_BUS is not set
CONFIG_PWM=y
CONFIG_PWM_SYSFS=y
+# CONFIG_PWM_LP3943 is not set
# CONFIG_PWM_PCA9685 is not set
CONFIG_IRQCHIP=y
CONFIG_IPACK_BUS=m
CONFIG_BOARD_TPCI200=m
CONFIG_SERIAL_IPOCTAL=m
-# CONFIG_RESET_CONTROLLER is not set
+CONFIG_RESET_CONTROLLER=y
CONFIG_FMC=m
CONFIG_FMC_FAKEDEV=m
CONFIG_FMC_TRIVIAL=m
@@ -5757,9 +5899,10 @@ CONFIG_FMC_CHARDEV=m
#
# PHY Subsystem
#
-CONFIG_GENERIC_PHY=m
+CONFIG_GENERIC_PHY=y
CONFIG_PHY_EXYNOS_MIPI_VIDEO=m
CONFIG_PHY_EXYNOS_DP_VIDEO=m
+CONFIG_BCM_KONA_USB2_PHY=m
CONFIG_POWERCAP=y
CONFIG_INTEL_RAPL=m
@@ -5769,10 +5912,11 @@ CONFIG_INTEL_RAPL=m
CONFIG_EDD=m
# CONFIG_EDD_OFF is not set
CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_DELL_RBU=m
+# CONFIG_DELL_RBU is not set
CONFIG_DCDBAS=m
CONFIG_DMIID=y
CONFIG_DMI_SYSFS=m
+CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
# CONFIG_GOOGLE_FIRMWARE is not set
@@ -5781,6 +5925,7 @@ CONFIG_ISCSI_IBFT=m
# EFI (Extensible Firmware Interface) Support
#
# CONFIG_EFI_VARS is not set
+CONFIG_EFI_RUNTIME_MAP=y
CONFIG_UEFI_CPER=y
#
@@ -5848,7 +5993,6 @@ CONFIG_QUOTACTL=y
CONFIG_AUTOFS4_FS=y
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
-CONFIG_GENERIC_ACL=y
#
# Caches
@@ -5997,11 +6141,13 @@ CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_SUNRPC_BACKCHANNEL=y
+CONFIG_SUNRPC_XPRT_RDMA=m
CONFIG_SUNRPC_SWAP=y
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_SUNRPC_DEBUG=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FSCACHE=y
+CONFIG_CEPH_FS_POSIX_ACL=y
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
# CONFIG_CIFS_STATS2 is not set
@@ -6057,7 +6203,7 @@ CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
CONFIG_NLS_ISO8859_4=m
@@ -6153,6 +6299,7 @@ CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
# CONFIG_PANIC_ON_OOPS is not set
CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
CONFIG_SCHED_DEBUG=y
CONFIG_SCHEDSTATS=y
CONFIG_TIMER_STATS=y
@@ -6164,7 +6311,7 @@ CONFIG_TIMER_STATS=y
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
-CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
@@ -6258,8 +6405,9 @@ CONFIG_ASYNC_RAID6_TEST=m
# CONFIG_TEST_STRING_HELPERS is not set
CONFIG_TEST_KSTRTOX=m
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
-# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_TEST_MODULE is not set
+# CONFIG_TEST_USER_COPY is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
@@ -6305,36 +6453,15 @@ CONFIG_ENCRYPTED_KEYS=m
# CONFIG_SECURITY_DMESG_RESTRICT is not set
CONFIG_SECURITY=y
CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-# CONFIG_SECURITY_NETWORK_XFRM is not set
+# CONFIG_SECURITY_NETWORK is not set
CONFIG_SECURITY_PATH=y
# CONFIG_INTEL_TXT is not set
-CONFIG_LSM_MMAP_MIN_ADDR=65536
-CONFIG_SECURITY_SELINUX=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
-# CONFIG_SECURITY_SELINUX_DISABLE is not set
-CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_AVC_STATS=y
-CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
-# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
-CONFIG_SECURITY_SMACK=y
-CONFIG_SECURITY_TOMOYO=y
-CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
-CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
-# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
-CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/usr/bin/tomoyo-init"
-CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/usr/lib/systemd/systemd"
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
-CONFIG_SECURITY_APPARMOR_HASH=y
+# CONFIG_SECURITY_SMACK is not set
+# CONFIG_SECURITY_TOMOYO is not set
+# CONFIG_SECURITY_APPARMOR is not set
CONFIG_SECURITY_YAMA=y
CONFIG_SECURITY_YAMA_STACKED=y
# CONFIG_IMA is not set
-# CONFIG_DEFAULT_SECURITY_SELINUX is not set
-# CONFIG_DEFAULT_SECURITY_SMACK is not set
-# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
-# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
# CONFIG_DEFAULT_SECURITY_YAMA is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
@@ -6355,13 +6482,13 @@ CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=m
CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH=m
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=m
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_PCOMP=m
CONFIG_CRYPTO_PCOMP2=y
-CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER=m
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
@@ -6417,7 +6544,7 @@ CONFIG_CRYPTO_RMD128=m
CONFIG_CRYPTO_RMD160=m
CONFIG_CRYPTO_RMD256=m
CONFIG_CRYPTO_RMD320=m
-CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_TGR192=m
@@ -6474,6 +6601,9 @@ CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
CONFIG_CRYPTO_DEV_GEODE=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_CRYPTO_DEV_CCP=y
+CONFIG_CRYPTO_DEV_CCP_DD=m
+CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_ASYMMETRIC_KEY_TYPE=m
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m
CONFIG_PUBLIC_KEY_ALGO_RSA=m
@@ -6494,7 +6624,7 @@ CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_MMU_AUDIT=y
CONFIG_KVM_DEVICE_ASSIGNMENT=y
-CONFIG_LGUEST=m
+# CONFIG_LGUEST is not set
CONFIG_BINARY_PRINTF=y
#
@@ -6523,7 +6653,6 @@ CONFIG_CRC32_SLICEBY8=y
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
CONFIG_CRC8=m
-CONFIG_AUDIT_GENERIC=y
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
@@ -6551,6 +6680,7 @@ CONFIG_GENERIC_ALLOCATOR=y
CONFIG_REED_SOLOMON=m
CONFIG_REED_SOLOMON_ENC8=y
CONFIG_REED_SOLOMON_DEC8=y
+CONFIG_REED_SOLOMON_DEC16=y
CONFIG_BCH=m
CONFIG_BCH_CONST_PARAMS=y
CONFIG_TEXTSEARCH=y
diff --git a/kernels/linux-libre-xen/criu-no-expert.patch b/kernels/linux-libre-xen/criu-no-expert.patch
deleted file mode 100644
index 9bbc02812..000000000
--- a/kernels/linux-libre-xen/criu-no-expert.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/init/Kconfig b/init/Kconfig
-index 4e5d96a..4b94ffe 100644
---- a/init/Kconfig
-+++ b/init/Kconfig
-@@ -1078,7 +1078,7 @@ config DEBUG_BLK_CGROUP
- endif # CGROUPS
-
- config CHECKPOINT_RESTORE
-- bool "Checkpoint/restore support" if EXPERT
-+ bool "Checkpoint/restore support"
- default n
- help
- Enables additional kernel features in a sake of checkpoint/restore.
diff --git a/kernels/linux-libre-xen/i8042-fix-aliases.patch b/kernels/linux-libre-xen/i8042-fix-aliases.patch
deleted file mode 100644
index 961968c78..000000000
--- a/kernels/linux-libre-xen/i8042-fix-aliases.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-commit 5a420e61e39862c7c3356080eddb23dfe4ccadb7
-Author: Tom Gundersen <teg@jklm.no>
-Date: Sun Jan 26 17:00:32 2014 +0100
-
- Input: i8042 - fix PNP modaliases when both aux and kdb are enabled
-
- Commit 78551277e4 exposed the PNP modaliases for the i8042 module. However,
- when both the aux and the kbd drivers are enabled the aux entries would
- override the kdb ones.
-
- Refactor the device_id lists, and unconditionally attempt to load the driver
- if either a kdb or aux devices is present.
-
- Signed-off-by: Tom Gundersen <teg@jklm.no>
-
-diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
-index 0ec9abb..dbc6958 100644
---- a/drivers/input/serio/i8042-x86ia64io.h
-+++ b/drivers/input/serio/i8042-x86ia64io.h
-@@ -747,25 +747,27 @@ static int i8042_pnp_aux_probe(struct pnp_dev *dev, const struct pnp_device_id *
- return 0;
- }
-
--static struct pnp_device_id pnp_kbd_devids[] = {
-- { .id = "PNP0300", .driver_data = 0 },
-- { .id = "PNP0301", .driver_data = 0 },
-- { .id = "PNP0302", .driver_data = 0 },
-- { .id = "PNP0303", .driver_data = 0 },
-- { .id = "PNP0304", .driver_data = 0 },
-- { .id = "PNP0305", .driver_data = 0 },
-- { .id = "PNP0306", .driver_data = 0 },
-- { .id = "PNP0309", .driver_data = 0 },
-- { .id = "PNP030a", .driver_data = 0 },
-- { .id = "PNP030b", .driver_data = 0 },
-- { .id = "PNP0320", .driver_data = 0 },
-- { .id = "PNP0343", .driver_data = 0 },
-- { .id = "PNP0344", .driver_data = 0 },
-- { .id = "PNP0345", .driver_data = 0 },
-+#define KBD_DEVIDS \
-+ { .id = "PNP0300", .driver_data = 0 }, \
-+ { .id = "PNP0301", .driver_data = 0 }, \
-+ { .id = "PNP0302", .driver_data = 0 }, \
-+ { .id = "PNP0303", .driver_data = 0 }, \
-+ { .id = "PNP0304", .driver_data = 0 }, \
-+ { .id = "PNP0305", .driver_data = 0 }, \
-+ { .id = "PNP0306", .driver_data = 0 }, \
-+ { .id = "PNP0309", .driver_data = 0 }, \
-+ { .id = "PNP030a", .driver_data = 0 }, \
-+ { .id = "PNP030b", .driver_data = 0 }, \
-+ { .id = "PNP0320", .driver_data = 0 }, \
-+ { .id = "PNP0343", .driver_data = 0 }, \
-+ { .id = "PNP0344", .driver_data = 0 }, \
-+ { .id = "PNP0345", .driver_data = 0 }, \
- { .id = "CPQA0D7", .driver_data = 0 },
-+
-+static struct pnp_device_id pnp_kbd_devids[] = {
-+ KBD_DEVIDS
- { .id = "", },
- };
--MODULE_DEVICE_TABLE(pnp, pnp_kbd_devids);
-
- static struct pnp_driver i8042_pnp_kbd_driver = {
- .name = "i8042 kbd",
-@@ -773,21 +775,23 @@ static struct pnp_driver i8042_pnp_kbd_driver = {
- .probe = i8042_pnp_kbd_probe,
- };
-
--static struct pnp_device_id pnp_aux_devids[] = {
-- { .id = "AUI0200", .driver_data = 0 },
-- { .id = "FJC6000", .driver_data = 0 },
-- { .id = "FJC6001", .driver_data = 0 },
-- { .id = "PNP0f03", .driver_data = 0 },
-- { .id = "PNP0f0b", .driver_data = 0 },
-- { .id = "PNP0f0e", .driver_data = 0 },
-- { .id = "PNP0f12", .driver_data = 0 },
-- { .id = "PNP0f13", .driver_data = 0 },
-- { .id = "PNP0f19", .driver_data = 0 },
-- { .id = "PNP0f1c", .driver_data = 0 },
-+#define AUX_DEVIDS \
-+ { .id = "AUI0200", .driver_data = 0 }, \
-+ { .id = "FJC6000", .driver_data = 0 }, \
-+ { .id = "FJC6001", .driver_data = 0 }, \
-+ { .id = "PNP0f03", .driver_data = 0 }, \
-+ { .id = "PNP0f0b", .driver_data = 0 }, \
-+ { .id = "PNP0f0e", .driver_data = 0 }, \
-+ { .id = "PNP0f12", .driver_data = 0 }, \
-+ { .id = "PNP0f13", .driver_data = 0 }, \
-+ { .id = "PNP0f19", .driver_data = 0 }, \
-+ { .id = "PNP0f1c", .driver_data = 0 }, \
- { .id = "SYN0801", .driver_data = 0 },
-+
-+static struct pnp_device_id pnp_aux_devids[] = {
-+ AUX_DEVIDS
- { .id = "", },
- };
--MODULE_DEVICE_TABLE(pnp, pnp_aux_devids);
-
- static struct pnp_driver i8042_pnp_aux_driver = {
- .name = "i8042 aux",
-@@ -795,6 +799,13 @@ static struct pnp_driver i8042_pnp_aux_driver = {
- .probe = i8042_pnp_aux_probe,
- };
-
-+static struct pnp_device_id pnp_kdb_aux_devids[] = {
-+ KBD_DEVIDS
-+ AUX_DEVIDS
-+ { .id = "", },
-+};
-+MODULE_DEVICE_TABLE(pnp, pnp_kdb_aux_devids);
-+
- static void i8042_pnp_exit(void)
- {
- if (i8042_pnp_kbd_registered) {