From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f72.google.com (mail-wm0-f72.google.com [74.125.82.72]) by kanga.kvack.org (Postfix) with ESMTP id 5CC866B0313 for ; Mon, 26 Jun 2017 10:42:35 -0400 (EDT) Received: by mail-wm0-f72.google.com with SMTP id j85so525601wmj.2 for ; Mon, 26 Jun 2017 07:42:35 -0700 (PDT) Received: from lhrrgout.huawei.com (lhrrgout.huawei.com. [194.213.3.17]) by mx.google.com with ESMTPS id d17si12173687wrb.272.2017.06.26.07.42.33 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 26 Jun 2017 07:42:33 -0700 (PDT) From: Igor Stoppa Subject: [PATCH v7 0/3] ro protection for dynamic data Date: Mon, 26 Jun 2017 17:41:13 +0300 Message-ID: <20170626144116.27599-1-igor.stoppa@huawei.com> MIME-Version: 1.0 Content-Type: text/plain Sender: owner-linux-mm@kvack.org List-ID: To: keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, labbott@redhat.com Cc: penguin-kernel@I-love.SAKURA.ne.jp, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, hch@infradead.org, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Igor Stoppa Hi, please consider for inclusion. This patch introduces the possibility of protecting memory that has been allocated dynamically. The memory is managed in pools: when a pool is made R/O, all the memory that is part of it, will become R/O. A R/O pool can be destroyed to recover its memory, but it cannot be turned back into R/W mode. This is intentional. This feature is meant for data that doesn't need further modifications, after initialization. An example is provided, showing how to turn into a boot-time option the writable state of the security hooks. Prior to this patch, it was a compile-time option. This is made possible, thanks to Tetsuo Handa's rework of the hooks structure (included in the patchset). Changes since the v6 version: - complete rewrite, to use the genalloc library - added sysfs interface for tracking of active pools The only question still open is if there should be a possibility for unprotecting a memory pool in other cases than destruction. The only cases found for this topic are: - protecting the LSM header structure between creation and insertion of a security module that was not built as part of the kernel (but the module can protect the headers after it has loaded) - unloading SELinux from RedHat, if the system has booted, but no policy has been loaded yet - this feature is going away, according to Casey. Igor Stoppa (2): Protectable memory support Make LSM Writable Hooks a command line option Tetsuo Handa (1): LSM: Convert security_hook_heads into explicit array of struct list_head arch/Kconfig | 1 + include/linux/lsm_hooks.h | 420 ++++++++++++++++++++--------------------- include/linux/page-flags.h | 2 + include/linux/pmalloc.h | 111 +++++++++++ include/trace/events/mmflags.h | 1 + init/main.c | 2 + lib/Kconfig | 1 + lib/genalloc.c | 4 +- mm/Makefile | 1 + mm/pmalloc.c | 346 +++++++++++++++++++++++++++++++++ mm/usercopy.c | 24 ++- security/security.c | 49 +++-- 12 files changed, 726 insertions(+), 236 deletions(-) create mode 100644 include/linux/pmalloc.h create mode 100644 mm/pmalloc.c -- 2.9.3 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f197.google.com (mail-wr0-f197.google.com [209.85.128.197]) by kanga.kvack.org (Postfix) with ESMTP id 713C36B0314 for ; Mon, 26 Jun 2017 10:43:23 -0400 (EDT) Received: by mail-wr0-f197.google.com with SMTP id g46so28998360wrd.3 for ; Mon, 26 Jun 2017 07:43:23 -0700 (PDT) Received: from lhrrgout.huawei.com (lhrrgout.huawei.com. [194.213.3.17]) by mx.google.com with ESMTPS id m124si202674wmm.192.2017.06.26.07.43.21 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 26 Jun 2017 07:43:21 -0700 (PDT) From: Igor Stoppa Subject: [PATCH 1/3] Protectable memory support Date: Mon, 26 Jun 2017 17:41:14 +0300 Message-ID: <20170626144116.27599-2-igor.stoppa@huawei.com> In-Reply-To: <20170626144116.27599-1-igor.stoppa@huawei.com> References: <20170626144116.27599-1-igor.stoppa@huawei.com> MIME-Version: 1.0 Content-Type: text/plain Sender: owner-linux-mm@kvack.org List-ID: To: keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, labbott@redhat.com Cc: penguin-kernel@I-love.SAKURA.ne.jp, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, hch@infradead.org, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Igor Stoppa , Igor Stoppa From: Igor Stoppa The MMU available in many systems running Linux can often provide R/O protection to the memory pages it handles. However, the MMU-based protection works efficiently only when said pages contain exclusively data that will not need further modifications. Statically allocated variables can be segregated into a dedicated section, but this does not sit very well with dynamically allocated ones. Dynamic allocation does not provide, currently, any means for grouping variables in memory pages that would contain exclusively data suitable for conversion to read only access mode. The allocator here provided (pmalloc - protectable memory allocator) introduces the concept of pools of protectable memory. A module can request a pool and then refer any allocation request to the pool handler it has received. Once all the chunks of memory associated to a specific pool are initialized, the pool can be protected. After this point, the pool can only be destroyed (it is up to the module to avoid any further references to the memory from the pool, after the destruction is invoked). The latter case is mainly meant for releasing memory, when a module is unloaded. A module can have as many pools as needed, for example to support the protection of data that is initialized in sufficiently distinct phases. Signed-off-by: Igor Stoppa --- arch/Kconfig | 1 + include/linux/page-flags.h | 2 + include/linux/pmalloc.h | 111 +++++++++++++ include/trace/events/mmflags.h | 1 + init/main.c | 2 + lib/Kconfig | 1 + lib/genalloc.c | 4 +- mm/Makefile | 1 + mm/pmalloc.c | 346 +++++++++++++++++++++++++++++++++++++++++ mm/usercopy.c | 24 +-- 10 files changed, 482 insertions(+), 11 deletions(-) create mode 100644 include/linux/pmalloc.h create mode 100644 mm/pmalloc.c diff --git a/arch/Kconfig b/arch/Kconfig index 6c00e5b..9d16b51 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -228,6 +228,7 @@ config GENERIC_IDLE_POLL_SETUP # Select if arch has all set_memory_ro/rw/x/nx() functions in asm/cacheflush.h config ARCH_HAS_SET_MEMORY + select GENERIC_ALLOCATOR bool # Select if arch init_task initializer is different to init/init_task.c diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 6b5818d..acc0723 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -81,6 +81,7 @@ enum pageflags { PG_active, PG_waiters, /* Page has waiters, check its waitqueue. Must be bit #7 and in the same byte as "PG_locked" */ PG_slab, + PG_pmalloc, PG_owner_priv_1, /* Owner use. If pagecache, fs may use*/ PG_arch_1, PG_reserved, @@ -274,6 +275,7 @@ PAGEFLAG(Active, active, PF_HEAD) __CLEARPAGEFLAG(Active, active, PF_HEAD) TESTCLEARFLAG(Active, active, PF_HEAD) __PAGEFLAG(Slab, slab, PF_NO_TAIL) __PAGEFLAG(SlobFree, slob_free, PF_NO_TAIL) +__PAGEFLAG(Pmalloc, pmalloc, PF_NO_TAIL) PAGEFLAG(Checked, checked, PF_NO_COMPOUND) /* Used by some filesystems */ /* Xen */ diff --git a/include/linux/pmalloc.h b/include/linux/pmalloc.h new file mode 100644 index 0000000..0d65f83 --- /dev/null +++ b/include/linux/pmalloc.h @@ -0,0 +1,111 @@ +/* + * pmalloc.h: Header for Protectable Memory Allocator + * + * (C) Copyright 2017 Huawei Technologies Co. Ltd. + * Author: Igor Stoppa + * + * 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 the Free Software Foundation; version 2 + * of the License. + */ + +#ifndef _PMALLOC_H +#define _PMALLOC_H +#include + +#define PMALLOC_DEFAULT_ALLOC_ORDER (-1) + +/** + * pmalloc_create_pool - create a new protectable memory pool - + * @name: the name of the pool, must be unique + * @min_alloc_order: log2 of the minimum allocation size obtainable + * from the pool + * + * Creates a new (empty) memory pool for allocation of protectable + * memory. Memory will be allocated upon request (through pmalloc). + * + * Returns a pointer to the new pool, upon succes, otherwise a NULL. + */ +struct gen_pool *pmalloc_create_pool(const char *name, + int min_alloc_order); + + +/** + * pmalloc_get_pool - get a pool handler, from its name + * @name: the name of the pool sought after. + * + * Returns a pointer to the pool, upon succes, otherwise a NULL. + */ +struct gen_pool *pmalloc_get_pool(const char *name); + + + +/** + * pmalloc - allocate protectable memory from a pool + * @pool: handler to the pool to be used for memory allocation + * @size: amount of memory (in bytes) requested + * + * Allocates memory from an unprotected pool. If the pool doesn't have + * enough memory, an attempt is made to add to the pool a new chunk of + * memory (multiple of PAGE_SIZE) that can fit the new request. + * + * Returns the pointer to the memory requested, upon success, + * NULL otherwise (either no memory availabel or pool RO). + */ +void *pmalloc(struct gen_pool *pool, size_t size); + + + +/** + * pmalloc_free - release memory previously obtained through pmalloc + * @pool: the pool providing the memory + * @addr: the memory address obtained from pmalloc + * @size: the same amount of memory that was requested from pmalloc + * + * Releases the memory that was previously accounted for as in use. + * It works also on pocked pools, but the memory released is simply + * removed from the refcount of memory in use. It cannot be re-used. + */ +static __always_inline +void pmalloc_free(struct gen_pool *pool, void *addr, size_t size) +{ + gen_pool_free(pool, (unsigned long)addr, size); +} + + + +/** + * pmalloc_protect_pool - turn a RW pool into RO + * @pool: the pool to protect + * + * Write protects all the memory chunks assigned to the pool. + * This prevents further allocation. + * + * Returns 0 upon success, -EINVAL in abnormal cases. + */ +int pmalloc_protect_pool(struct gen_pool *pool); + + + +/** + * pmalloc_pool_protected - check if the pool is protected + * @pool: the pool to test + * + * Returns true if the pool is either protected or missing. False otherwise. + */ +bool pmalloc_pool_protected(struct gen_pool *pool); + + + +/** + * pmalloc_destroy_pool - destroys a pool and all the associated memory + * @pool: the pool to destroy + * + * All the memory that was allocated through pmalloc must first be freed + * with pmalloc_free. Falire to do so will BUG(). + * + * Returns 0 upon success, -EINVAL in abnormal cases. + */ +int pmalloc_destroy_pool(struct gen_pool *pool); +#endif diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflags.h index 304ff94..41d1587 100644 --- a/include/trace/events/mmflags.h +++ b/include/trace/events/mmflags.h @@ -91,6 +91,7 @@ {1UL << PG_lru, "lru" }, \ {1UL << PG_active, "active" }, \ {1UL << PG_slab, "slab" }, \ + {1UL << PG_pmalloc, "pmalloc" }, \ {1UL << PG_owner_priv_1, "owner_priv_1" }, \ {1UL << PG_arch_1, "arch_1" }, \ {1UL << PG_reserved, "reserved" }, \ diff --git a/init/main.c b/init/main.c index f866510..a703c9c 100644 --- a/init/main.c +++ b/init/main.c @@ -100,6 +100,7 @@ static int kernel_init(void *); extern void init_IRQ(void); extern void fork_init(void); extern void radix_tree_init(void); +int __init pmalloc_init(void); /* * Debug helper: via this flag we know that we are in 'early bootup code' @@ -653,6 +654,7 @@ asmlinkage __visible void __init start_kernel(void) proc_caches_init(); buffer_init(); key_init(); + pmalloc_init(); security_init(); dbg_late_init(); vfs_caches_init(); diff --git a/lib/Kconfig b/lib/Kconfig index 0c8b78a..3e3b8f6 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -270,6 +270,7 @@ config DECOMPRESS_LZ4 # Generic allocator support is selected if needed # config GENERIC_ALLOCATOR + depends on ARCH_HAS_SET_MEMORY bool # diff --git a/lib/genalloc.c b/lib/genalloc.c index 144fe6b..52165bb 100644 --- a/lib/genalloc.c +++ b/lib/genalloc.c @@ -648,12 +648,12 @@ unsigned long gen_pool_best_fit(unsigned long *map, unsigned long size, } EXPORT_SYMBOL(gen_pool_best_fit); -static void devm_gen_pool_release(struct device *dev, void *res) +void devm_gen_pool_release(struct device *dev, void *res) { gen_pool_destroy(*(struct gen_pool **)res); } -static int devm_gen_pool_match(struct device *dev, void *res, void *data) +int devm_gen_pool_match(struct device *dev, void *res, void *data) { struct gen_pool **p = res; diff --git a/mm/Makefile b/mm/Makefile index 026f6a8..b47dcf8 100644 --- a/mm/Makefile +++ b/mm/Makefile @@ -65,6 +65,7 @@ obj-$(CONFIG_SPARSEMEM) += sparse.o obj-$(CONFIG_SPARSEMEM_VMEMMAP) += sparse-vmemmap.o obj-$(CONFIG_SLOB) += slob.o obj-$(CONFIG_MMU_NOTIFIER) += mmu_notifier.o +obj-$(CONFIG_ARCH_HAS_SET_MEMORY) += pmalloc.o obj-$(CONFIG_KSM) += ksm.o obj-$(CONFIG_PAGE_POISONING) += page_poison.o obj-$(CONFIG_SLAB) += slab.o diff --git a/mm/pmalloc.c b/mm/pmalloc.c new file mode 100644 index 0000000..26f2bae --- /dev/null +++ b/mm/pmalloc.c @@ -0,0 +1,346 @@ +/* + * pmalloc.c: Protectable Memory Allocator + * + * (C) Copyright 2017 Huawei Technologies Co. Ltd. + * Author: Igor Stoppa + * + * 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 the Free Software Foundation; version 2 + * of the License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +/** + * pmalloc_data contains the data specific to a pmalloc pool, + * in a format compatible with the design of gen_alloc. + * Some of the fields are used for exposing the corresponding parameter + * to userspace, through sysfs. + */ +struct pmalloc_data { + struct gen_pool *pool; /* Link back to the associated pool. */ + atomic_t protected; /* Status of the pool: RO or RW. */ + atomic_t processed; /* Is the pool already in sysfs? */ + struct device dev; /* Device used to connect to sysfs. */ + struct device_attribute attr_protected; /* Sysfs attribute. */ + struct device_attribute attr_avail; /* Sysfs attribute. */ + struct device_attribute attr_size; /* Sysfs attribute. */ +}; + +/** + * Keeps track of the safe point, where operatioms according to the normal + * device model are supported. Before this point, such operation are not + * available. + */ +static atomic_t into_post_init; + +static struct device pmalloc_dev; +static struct lock_class_key pmalloc_lock_key; +static struct class pmalloc_class = { + .name = "pmalloc", + .owner = THIS_MODULE, +}; + +static ssize_t __pmalloc_pool_show_protected(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct pmalloc_data *data; + + data = container_of(attr, struct pmalloc_data, attr_protected); + if (atomic_read(&data->protected)) + return sprintf(buf, "protected\n"); + else + return sprintf(buf, "unprotected\n"); +} + +static ssize_t __pmalloc_pool_show_avail(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct pmalloc_data *data; + + data = container_of(attr, struct pmalloc_data, attr_avail); + return sprintf(buf, "%lu\n", gen_pool_avail(data->pool)); +} + +static ssize_t __pmalloc_pool_show_size(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct pmalloc_data *data; + + data = container_of(attr, struct pmalloc_data, attr_size); + return sprintf(buf, "%lu\n", gen_pool_size(data->pool)); +} + +/** + * Exposes the pool and its attributes through sysfs. + */ +static void __pmalloc_connect(struct pmalloc_data *data) +{ + device_add(&data->dev); + device_create_file(&data->dev, &data->attr_protected); + device_create_file(&data->dev, &data->attr_avail); + device_create_file(&data->dev, &data->attr_size); +} + +/** + * Removes the pool and its attributes from sysfs. + */ +static void __pmalloc_disconnect(struct pmalloc_data *data) +{ + device_remove_file(&data->dev, &data->attr_protected); + device_remove_file(&data->dev, &data->attr_avail); + device_remove_file(&data->dev, &data->attr_size); + device_del(&data->dev); +} + +/** + * Declares an attribute of the pool. + */ +#define __pmalloc_attr_init(data, attr_name) \ +{ \ + data->attr_##attr_name.attr.name = #attr_name; \ + data->attr_##attr_name.attr.mode = VERIFY_OCTAL_PERMISSIONS(0444); \ + data->attr_##attr_name.show = __pmalloc_pool_show_##attr_name; \ +} + +struct gen_pool *pmalloc_create_pool(const char *name, + int min_alloc_order) +{ + struct gen_pool *pool; + struct pmalloc_data *data; + + data = kzalloc(sizeof(struct pmalloc_data), GFP_KERNEL); + if (!data) + return NULL; + if (min_alloc_order < 0) + min_alloc_order = ilog2(sizeof(unsigned long)); + pool = devm_gen_pool_create(&pmalloc_dev, min_alloc_order, + -1, name); + if (!pool) { + kfree(data); + return NULL; + } + atomic_set(&data->protected, false); + device_initialize(&data->dev); + dev_set_name(&data->dev, "%s", name); + data->dev.class = &pmalloc_class; + atomic_set(&data->processed, atomic_read(&into_post_init)); + data->pool = pool; + __pmalloc_attr_init(data, protected); + __pmalloc_attr_init(data, avail); + __pmalloc_attr_init(data, size); + if (atomic_read(&data->processed)) /* Check sysfs availability. */ + __pmalloc_connect(data); /* After late init. */ + pool->data = data; + return pool; +} + + +struct gen_pool *pmalloc_get_pool(const char *name) +{ + return gen_pool_get(&pmalloc_dev, name); +} + + +/** + * To support hardened usercopy, tag/untag pages supplied by pmalloc. + * Pages are tagged when added to a pool and untagged when removed + * from said pool. + */ +#define PMALLOC_TAG_PAGE true +#define PMALLOC_UNTAG_PAGE false +static inline +int __pmalloc_tag_pages(void *base, const size_t size, const bool set_tag) +{ + void *end = base + size - 1; + + do { + struct page *page; + + if (!is_vmalloc_addr(base)) + return -EINVAL; + page = vmalloc_to_page(base); + if (set_tag) + __SetPagePmalloc(page); + else + __ClearPagePmalloc(page); + base += PAGE_SIZE; + } while ((PAGE_MASK & (unsigned long)base) <= + (PAGE_MASK & (unsigned long)end)); + return 0; +} + + +static void __page_untag(struct gen_pool *pool, + struct gen_pool_chunk *chunk, void *data) +{ + __pmalloc_tag_pages((void *)chunk->start_addr, + chunk->end_addr - chunk->start_addr + 1, + PMALLOC_UNTAG_PAGE); +} + +void *pmalloc(struct gen_pool *pool, size_t size) +{ + void *retval, *chunk; + size_t chunk_size; + + if (!size || !pool || + atomic_read(&((struct pmalloc_data *)pool->data)->protected)) + return NULL; + retval = (void *)gen_pool_alloc(pool, size); + if (retval) + return retval; + chunk_size = roundup(size, PAGE_SIZE); + chunk = vmalloc(chunk_size); + if (!chunk) + return NULL; + __pmalloc_tag_pages(chunk, size, PMALLOC_TAG_PAGE); + BUG_ON(gen_pool_add_virt(pool, (unsigned long)chunk, + (phys_addr_t)NULL, chunk_size, -1)); + return (void *)gen_pool_alloc(pool, size); +} + +static void __page_protection(struct gen_pool *pool, + struct gen_pool_chunk *chunk, void *data) +{ + unsigned long pages; + + if (!data) + return; + pages = roundup(chunk->end_addr - chunk->start_addr + 1, + PAGE_SIZE) / PAGE_SIZE; + if (*(bool *)data) + set_memory_ro(chunk->start_addr, pages); + else + set_memory_rw(chunk->start_addr, pages); +} + +static int __pmalloc_pool_protection(struct gen_pool *pool, bool protection) +{ + if (!pool) + return -EINVAL; + BUG_ON(atomic_read(&((struct pmalloc_data *)pool->data)->protected) + == protection); + atomic_set(&((struct pmalloc_data *)pool->data)->protected, protection); + gen_pool_for_each_chunk(pool, __page_protection, &protection); + return 0; +} + +int pmalloc_protect_pool(struct gen_pool *pool) +{ + return __pmalloc_pool_protection(pool, true); +} + + +bool pmalloc_pool_protected(struct gen_pool *pool) +{ + if (!pool) + return true; + return atomic_read(&(((struct pmalloc_data *)pool->data)->protected)); +} + + +void devm_gen_pool_release(struct device *dev, void *res); +int devm_gen_pool_match(struct device *dev, void *res, void *data); + +int pmalloc_destroy_pool(struct gen_pool *pool) +{ + struct gen_pool **p; + struct pmalloc_data *data; + + data = (struct pmalloc_data *)pool->data; + p = devres_find(&pmalloc_dev, devm_gen_pool_release, + devm_gen_pool_match, (void *)pool->name); + if (!p) + return -EINVAL; + __pmalloc_pool_protection(pool, false); + gen_pool_for_each_chunk(pool, __page_untag, NULL); + devm_gen_pool_release(&pmalloc_dev, p); + __pmalloc_disconnect(data); + kfree(data); + return 0; +} + +static const char msg[] = "Not a valid Pmalloc object."; +const char *__pmalloc_check_object(const void *ptr, unsigned long n) +{ + unsigned long p; + + p = (unsigned long)ptr; + n = p + n - 1; + for (; (PAGE_MASK & p) <= (PAGE_MASK & n); p += PAGE_SIZE) { + struct page *page; + + if (!is_vmalloc_addr((void *)p)) + return msg; + page = vmalloc_to_page((void *)p); + if (!(page && PagePmalloc(page))) + return msg; + } + return NULL; +} +EXPORT_SYMBOL(__pmalloc_check_object); + + +/** + * Early init function, the main purpose is to create the device used + * in conjunction with genalloc, to track the pools as resources. + * It cannot register the device because it is called very early in the + * boot sequence and the sysfs is not yet fully initialized. + */ +int __init pmalloc_init(void) +{ + device_initialize(&pmalloc_dev); + dev_set_name(&pmalloc_dev, "%s", "pmalloc"); + atomic_set(&into_post_init, false); + return 0; +} + +static void __pmalloc_late_add(struct device *dev, void *pool_ptr, void *d) +{ + struct pmalloc_data *data; + + data = (*(struct gen_pool **)pool_ptr)->data; + if (!atomic_read(&data->processed)) { + atomic_set(&data->processed, true); + __pmalloc_connect(data); + } +} + + +/** + * When the sysfs is ready for recieving registrations, connect all the + * pools previously created. Also enable further pools to be connected + * right away. + */ +static int __init pmalloc_late_init(void) +{ + int retval; + + atomic_set(&into_post_init, true); + retval = __class_register(&pmalloc_class, &pmalloc_lock_key); + devres_for_each_res(&pmalloc_dev, devm_gen_pool_release, + NULL, NULL, __pmalloc_late_add, NULL); + return retval; +} +late_initcall(pmalloc_late_init); diff --git a/mm/usercopy.c b/mm/usercopy.c index a9852b2..29bb691 100644 --- a/mm/usercopy.c +++ b/mm/usercopy.c @@ -195,22 +195,28 @@ static inline const char *check_page_span(const void *ptr, unsigned long n, return NULL; } +extern const char *__pmalloc_check_object(const void *ptr, unsigned long n); + static inline const char *check_heap_object(const void *ptr, unsigned long n, bool to_user) { struct page *page; - if (!virt_addr_valid(ptr)) - return NULL; - - page = virt_to_head_page(ptr); - - /* Check slab allocator for flags and size. */ - if (PageSlab(page)) - return __check_heap_object(ptr, n, page); + if (virt_addr_valid(ptr)) { + page = virt_to_head_page(ptr); + /* Check slab allocator for flags and size. */ + if (PageSlab(page)) + return __check_heap_object(ptr, n, page); /* Verify object does not incorrectly span multiple pages. */ - return check_page_span(ptr, n, page, to_user); + return check_page_span(ptr, n, page, to_user); + } + if (likely(is_vmalloc_addr(ptr))) { + page = vmalloc_to_page(ptr); + if (unlikely(page && PagePmalloc(page))) + return __pmalloc_check_object(ptr, n); + } + return NULL; } /* -- 2.9.3 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot0-f199.google.com (mail-ot0-f199.google.com [74.125.82.199]) by kanga.kvack.org (Postfix) with ESMTP id D43786B0313 for ; Mon, 26 Jun 2017 10:43:56 -0400 (EDT) Received: by mail-ot0-f199.google.com with SMTP id 63so1982808otc.5 for ; Mon, 26 Jun 2017 07:43:56 -0700 (PDT) Received: from lhrrgout.huawei.com (lhrrgout.huawei.com. [194.213.3.17]) by mx.google.com with ESMTPS id b16si97906oth.118.2017.06.26.07.43.55 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 26 Jun 2017 07:43:55 -0700 (PDT) From: Igor Stoppa Subject: [PATCH 2/3] LSM: Convert security_hook_heads into explicit array of struct list_head Date: Mon, 26 Jun 2017 17:41:15 +0300 Message-ID: <20170626144116.27599-3-igor.stoppa@huawei.com> In-Reply-To: <20170626144116.27599-1-igor.stoppa@huawei.com> References: <20170626144116.27599-1-igor.stoppa@huawei.com> MIME-Version: 1.0 Content-Type: text/plain Sender: owner-linux-mm@kvack.org List-ID: To: keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, labbott@redhat.com Cc: penguin-kernel@I-love.SAKURA.ne.jp, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, hch@infradead.org, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, James Morris , Igor Stoppa From: Tetsuo Handa Commit 3dfc9b02864b19f4 ("LSM: Initialize security_hook_heads upon registration.") treats "struct security_hook_heads" as an implicit array of "struct list_head" so that we can eliminate code for static initialization. Although we haven't encountered compilers which do not treat sizeof(security_hook_heads) != sizeof(struct list_head) * (sizeof(security_hook_heads) / sizeof(struct list_head)), Casey does not like the assumption that a structure of N elements can be assumed to be the same as an array of N elements. Now that Kees found that randstruct complains about such casting security/security.c: In function 'security_init': security/security.c:59:20: note: found mismatched op0 struct pointer types: 'struct list_head' and 'struct security_hook_heads' struct list_head *list = (struct list_head *) &security_hook_heads; and Christoph thinks that we should fix it rather than make randstruct whitelist it, this patch fixes it. It would be possible to revert commit 3dfc9b02864b19f4, but this patch converts security_hook_heads into an explicit array of struct list_head by introducing an enum, due to reasons explained below. Igor proposed a sealable memory allocator, and the LSM hooks ("struct security_hook_heads security_hook_heads" and "struct security_hook_list ...[]") will benefit from that allocator via protection using set_memory_ro()/set_memory_rw(), and that allocator will remove CONFIG_SECURITY_WRITABLE_HOOKS config option. Thus, we will likely be moving to that direction. This means that these structures will be allocated at run time using that allocator, and therefore the address of these structures will be determined at run time rather than compile time. But currently, LSM_HOOK_INIT() macro depends on the address of security_hook_heads being known at compile time. If we use an enum so that LSM_HOOK_INIT() macro does not need to know absolute address of security_hook_heads, it will help us to use that allocator for LSM hooks. As a result of introducing an enum, security_hook_heads becomes a local variable. In order to pass 80 columns check by scripts/checkpatch.pl , rename security_hook_heads to hook_heads. Signed-off-by: Tetsuo Handa Rebased-by: Igor Stoppa Cc: Kees Cook Cc: Paul Moore Cc: Stephen Smalley Cc: Casey Schaufler Cc: James Morris Cc: Igor Stoppa Cc: Christoph Hellwig --- include/linux/lsm_hooks.h | 420 +++++++++++++++++++++++----------------------- security/security.c | 31 ++-- 2 files changed, 227 insertions(+), 224 deletions(-) diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h index 3cc9d77..32f30fa 100644 --- a/include/linux/lsm_hooks.h +++ b/include/linux/lsm_hooks.h @@ -1694,225 +1694,226 @@ union security_list_options { #endif /* CONFIG_AUDIT */ }; -struct security_hook_heads { - struct list_head binder_set_context_mgr; - struct list_head binder_transaction; - struct list_head binder_transfer_binder; - struct list_head binder_transfer_file; - struct list_head ptrace_access_check; - struct list_head ptrace_traceme; - struct list_head capget; - struct list_head capset; - struct list_head capable; - struct list_head quotactl; - struct list_head quota_on; - struct list_head syslog; - struct list_head settime; - struct list_head vm_enough_memory; - struct list_head bprm_set_creds; - struct list_head bprm_check_security; - struct list_head bprm_secureexec; - struct list_head bprm_committing_creds; - struct list_head bprm_committed_creds; - struct list_head sb_alloc_security; - struct list_head sb_free_security; - struct list_head sb_copy_data; - struct list_head sb_remount; - struct list_head sb_kern_mount; - struct list_head sb_show_options; - struct list_head sb_statfs; - struct list_head sb_mount; - struct list_head sb_umount; - struct list_head sb_pivotroot; - struct list_head sb_set_mnt_opts; - struct list_head sb_clone_mnt_opts; - struct list_head sb_parse_opts_str; - struct list_head dentry_init_security; - struct list_head dentry_create_files_as; +enum security_hook_index { + LSM_binder_set_context_mgr, + LSM_binder_transaction, + LSM_binder_transfer_binder, + LSM_binder_transfer_file, + LSM_ptrace_access_check, + LSM_ptrace_traceme, + LSM_capget, + LSM_capset, + LSM_capable, + LSM_quotactl, + LSM_quota_on, + LSM_syslog, + LSM_settime, + LSM_vm_enough_memory, + LSM_bprm_set_creds, + LSM_bprm_check_security, + LSM_bprm_secureexec, + LSM_bprm_committing_creds, + LSM_bprm_committed_creds, + LSM_sb_alloc_security, + LSM_sb_free_security, + LSM_sb_copy_data, + LSM_sb_remount, + LSM_sb_kern_mount, + LSM_sb_show_options, + LSM_sb_statfs, + LSM_sb_mount, + LSM_sb_umount, + LSM_sb_pivotroot, + LSM_sb_set_mnt_opts, + LSM_sb_clone_mnt_opts, + LSM_sb_parse_opts_str, + LSM_dentry_init_security, + LSM_dentry_create_files_as, #ifdef CONFIG_SECURITY_PATH - struct list_head path_unlink; - struct list_head path_mkdir; - struct list_head path_rmdir; - struct list_head path_mknod; - struct list_head path_truncate; - struct list_head path_symlink; - struct list_head path_link; - struct list_head path_rename; - struct list_head path_chmod; - struct list_head path_chown; - struct list_head path_chroot; + LSM_path_unlink, + LSM_path_mkdir, + LSM_path_rmdir, + LSM_path_mknod, + LSM_path_truncate, + LSM_path_symlink, + LSM_path_link, + LSM_path_rename, + LSM_path_chmod, + LSM_path_chown, + LSM_path_chroot, #endif - struct list_head inode_alloc_security; - struct list_head inode_free_security; - struct list_head inode_init_security; - struct list_head inode_create; - struct list_head inode_link; - struct list_head inode_unlink; - struct list_head inode_symlink; - struct list_head inode_mkdir; - struct list_head inode_rmdir; - struct list_head inode_mknod; - struct list_head inode_rename; - struct list_head inode_readlink; - struct list_head inode_follow_link; - struct list_head inode_permission; - struct list_head inode_setattr; - struct list_head inode_getattr; - struct list_head inode_setxattr; - struct list_head inode_post_setxattr; - struct list_head inode_getxattr; - struct list_head inode_listxattr; - struct list_head inode_removexattr; - struct list_head inode_need_killpriv; - struct list_head inode_killpriv; - struct list_head inode_getsecurity; - struct list_head inode_setsecurity; - struct list_head inode_listsecurity; - struct list_head inode_getsecid; - struct list_head inode_copy_up; - struct list_head inode_copy_up_xattr; - struct list_head file_permission; - struct list_head file_alloc_security; - struct list_head file_free_security; - struct list_head file_ioctl; - struct list_head mmap_addr; - struct list_head mmap_file; - struct list_head file_mprotect; - struct list_head file_lock; - struct list_head file_fcntl; - struct list_head file_set_fowner; - struct list_head file_send_sigiotask; - struct list_head file_receive; - struct list_head file_open; - struct list_head task_create; - struct list_head task_alloc; - struct list_head task_free; - struct list_head cred_alloc_blank; - struct list_head cred_free; - struct list_head cred_prepare; - struct list_head cred_transfer; - struct list_head kernel_act_as; - struct list_head kernel_create_files_as; - struct list_head kernel_read_file; - struct list_head kernel_post_read_file; - struct list_head kernel_module_request; - struct list_head task_fix_setuid; - struct list_head task_setpgid; - struct list_head task_getpgid; - struct list_head task_getsid; - struct list_head task_getsecid; - struct list_head task_setnice; - struct list_head task_setioprio; - struct list_head task_getioprio; - struct list_head task_prlimit; - struct list_head task_setrlimit; - struct list_head task_setscheduler; - struct list_head task_getscheduler; - struct list_head task_movememory; - struct list_head task_kill; - struct list_head task_prctl; - struct list_head task_to_inode; - struct list_head ipc_permission; - struct list_head ipc_getsecid; - struct list_head msg_msg_alloc_security; - struct list_head msg_msg_free_security; - struct list_head msg_queue_alloc_security; - struct list_head msg_queue_free_security; - struct list_head msg_queue_associate; - struct list_head msg_queue_msgctl; - struct list_head msg_queue_msgsnd; - struct list_head msg_queue_msgrcv; - struct list_head shm_alloc_security; - struct list_head shm_free_security; - struct list_head shm_associate; - struct list_head shm_shmctl; - struct list_head shm_shmat; - struct list_head sem_alloc_security; - struct list_head sem_free_security; - struct list_head sem_associate; - struct list_head sem_semctl; - struct list_head sem_semop; - struct list_head netlink_send; - struct list_head d_instantiate; - struct list_head getprocattr; - struct list_head setprocattr; - struct list_head ismaclabel; - struct list_head secid_to_secctx; - struct list_head secctx_to_secid; - struct list_head release_secctx; - struct list_head inode_invalidate_secctx; - struct list_head inode_notifysecctx; - struct list_head inode_setsecctx; - struct list_head inode_getsecctx; + LSM_inode_alloc_security, + LSM_inode_free_security, + LSM_inode_init_security, + LSM_inode_create, + LSM_inode_link, + LSM_inode_unlink, + LSM_inode_symlink, + LSM_inode_mkdir, + LSM_inode_rmdir, + LSM_inode_mknod, + LSM_inode_rename, + LSM_inode_readlink, + LSM_inode_follow_link, + LSM_inode_permission, + LSM_inode_setattr, + LSM_inode_getattr, + LSM_inode_setxattr, + LSM_inode_post_setxattr, + LSM_inode_getxattr, + LSM_inode_listxattr, + LSM_inode_removexattr, + LSM_inode_need_killpriv, + LSM_inode_killpriv, + LSM_inode_getsecurity, + LSM_inode_setsecurity, + LSM_inode_listsecurity, + LSM_inode_getsecid, + LSM_inode_copy_up, + LSM_inode_copy_up_xattr, + LSM_file_permission, + LSM_file_alloc_security, + LSM_file_free_security, + LSM_file_ioctl, + LSM_mmap_addr, + LSM_mmap_file, + LSM_file_mprotect, + LSM_file_lock, + LSM_file_fcntl, + LSM_file_set_fowner, + LSM_file_send_sigiotask, + LSM_file_receive, + LSM_file_open, + LSM_task_create, + LSM_task_alloc, + LSM_task_free, + LSM_cred_alloc_blank, + LSM_cred_free, + LSM_cred_prepare, + LSM_cred_transfer, + LSM_kernel_act_as, + LSM_kernel_create_files_as, + LSM_kernel_read_file, + LSM_kernel_post_read_file, + LSM_kernel_module_request, + LSM_task_fix_setuid, + LSM_task_setpgid, + LSM_task_getpgid, + LSM_task_getsid, + LSM_task_getsecid, + LSM_task_setnice, + LSM_task_setioprio, + LSM_task_getioprio, + LSM_task_prlimit, + LSM_task_setrlimit, + LSM_task_setscheduler, + LSM_task_getscheduler, + LSM_task_movememory, + LSM_task_kill, + LSM_task_prctl, + LSM_task_to_inode, + LSM_ipc_permission, + LSM_ipc_getsecid, + LSM_msg_msg_alloc_security, + LSM_msg_msg_free_security, + LSM_msg_queue_alloc_security, + LSM_msg_queue_free_security, + LSM_msg_queue_associate, + LSM_msg_queue_msgctl, + LSM_msg_queue_msgsnd, + LSM_msg_queue_msgrcv, + LSM_shm_alloc_security, + LSM_shm_free_security, + LSM_shm_associate, + LSM_shm_shmctl, + LSM_shm_shmat, + LSM_sem_alloc_security, + LSM_sem_free_security, + LSM_sem_associate, + LSM_sem_semctl, + LSM_sem_semop, + LSM_netlink_send, + LSM_d_instantiate, + LSM_getprocattr, + LSM_setprocattr, + LSM_ismaclabel, + LSM_secid_to_secctx, + LSM_secctx_to_secid, + LSM_release_secctx, + LSM_inode_invalidate_secctx, + LSM_inode_notifysecctx, + LSM_inode_setsecctx, + LSM_inode_getsecctx, #ifdef CONFIG_SECURITY_NETWORK - struct list_head unix_stream_connect; - struct list_head unix_may_send; - struct list_head socket_create; - struct list_head socket_post_create; - struct list_head socket_bind; - struct list_head socket_connect; - struct list_head socket_listen; - struct list_head socket_accept; - struct list_head socket_sendmsg; - struct list_head socket_recvmsg; - struct list_head socket_getsockname; - struct list_head socket_getpeername; - struct list_head socket_getsockopt; - struct list_head socket_setsockopt; - struct list_head socket_shutdown; - struct list_head socket_sock_rcv_skb; - struct list_head socket_getpeersec_stream; - struct list_head socket_getpeersec_dgram; - struct list_head sk_alloc_security; - struct list_head sk_free_security; - struct list_head sk_clone_security; - struct list_head sk_getsecid; - struct list_head sock_graft; - struct list_head inet_conn_request; - struct list_head inet_csk_clone; - struct list_head inet_conn_established; - struct list_head secmark_relabel_packet; - struct list_head secmark_refcount_inc; - struct list_head secmark_refcount_dec; - struct list_head req_classify_flow; - struct list_head tun_dev_alloc_security; - struct list_head tun_dev_free_security; - struct list_head tun_dev_create; - struct list_head tun_dev_attach_queue; - struct list_head tun_dev_attach; - struct list_head tun_dev_open; + LSM_unix_stream_connect, + LSM_unix_may_send, + LSM_socket_create, + LSM_socket_post_create, + LSM_socket_bind, + LSM_socket_connect, + LSM_socket_listen, + LSM_socket_accept, + LSM_socket_sendmsg, + LSM_socket_recvmsg, + LSM_socket_getsockname, + LSM_socket_getpeername, + LSM_socket_getsockopt, + LSM_socket_setsockopt, + LSM_socket_shutdown, + LSM_socket_sock_rcv_skb, + LSM_socket_getpeersec_stream, + LSM_socket_getpeersec_dgram, + LSM_sk_alloc_security, + LSM_sk_free_security, + LSM_sk_clone_security, + LSM_sk_getsecid, + LSM_sock_graft, + LSM_inet_conn_request, + LSM_inet_csk_clone, + LSM_inet_conn_established, + LSM_secmark_relabel_packet, + LSM_secmark_refcount_inc, + LSM_secmark_refcount_dec, + LSM_req_classify_flow, + LSM_tun_dev_alloc_security, + LSM_tun_dev_free_security, + LSM_tun_dev_create, + LSM_tun_dev_attach_queue, + LSM_tun_dev_attach, + LSM_tun_dev_open, #endif /* CONFIG_SECURITY_NETWORK */ #ifdef CONFIG_SECURITY_INFINIBAND - struct list_head ib_pkey_access; - struct list_head ib_endport_manage_subnet; - struct list_head ib_alloc_security; - struct list_head ib_free_security; + LSM_ib_pkey_access, + LSM_ib_endport_manage_subnet, + LSM_ib_alloc_security, + LSM_ib_free_security, #endif /* CONFIG_SECURITY_INFINIBAND */ #ifdef CONFIG_SECURITY_NETWORK_XFRM - struct list_head xfrm_policy_alloc_security; - struct list_head xfrm_policy_clone_security; - struct list_head xfrm_policy_free_security; - struct list_head xfrm_policy_delete_security; - struct list_head xfrm_state_alloc; - struct list_head xfrm_state_alloc_acquire; - struct list_head xfrm_state_free_security; - struct list_head xfrm_state_delete_security; - struct list_head xfrm_policy_lookup; - struct list_head xfrm_state_pol_flow_match; - struct list_head xfrm_decode_session; + LSM_xfrm_policy_alloc_security, + LSM_xfrm_policy_clone_security, + LSM_xfrm_policy_free_security, + LSM_xfrm_policy_delete_security, + LSM_xfrm_state_alloc, + LSM_xfrm_state_alloc_acquire, + LSM_xfrm_state_free_security, + LSM_xfrm_state_delete_security, + LSM_xfrm_policy_lookup, + LSM_xfrm_state_pol_flow_match, + LSM_xfrm_decode_session, #endif /* CONFIG_SECURITY_NETWORK_XFRM */ #ifdef CONFIG_KEYS - struct list_head key_alloc; - struct list_head key_free; - struct list_head key_permission; - struct list_head key_getsecurity; + LSM_key_alloc, + LSM_key_free, + LSM_key_permission, + LSM_key_getsecurity, #endif /* CONFIG_KEYS */ #ifdef CONFIG_AUDIT - struct list_head audit_rule_init; - struct list_head audit_rule_known; - struct list_head audit_rule_match; - struct list_head audit_rule_free; + LSM_audit_rule_init, + LSM_audit_rule_known, + LSM_audit_rule_match, + LSM_audit_rule_free, #endif /* CONFIG_AUDIT */ + LSM_MAX_HOOK_INDEX, }; /* @@ -1921,8 +1922,8 @@ struct security_hook_heads { */ struct security_hook_list { struct list_head list; - struct list_head *head; union security_list_options hook; + enum security_hook_index idx; char *lsm; }; @@ -1933,9 +1934,8 @@ struct security_hook_list { * text involved. */ #define LSM_HOOK_INIT(HEAD, HOOK) \ - { .head = &security_hook_heads.HEAD, .hook = { .HEAD = HOOK } } + { .idx = LSM_##HEAD, .hook = { .HEAD = HOOK } } -extern struct security_hook_heads security_hook_heads; extern char *lsm_names; extern void security_add_hooks(struct security_hook_list *hooks, int count, diff --git a/security/security.c b/security/security.c index 3013237..44c47b6 100644 --- a/security/security.c +++ b/security/security.c @@ -34,7 +34,8 @@ /* Maximum number of letters for an LSM name string */ #define SECURITY_NAME_MAX 10 -struct security_hook_heads security_hook_heads __lsm_ro_after_init; +static struct list_head hook_heads[LSM_MAX_HOOK_INDEX] + __lsm_ro_after_init; static ATOMIC_NOTIFIER_HEAD(lsm_notifier_chain); char *lsm_names; @@ -59,12 +60,10 @@ static void __init do_security_initcalls(void) */ int __init security_init(void) { - int i; - struct list_head *list = (struct list_head *) &security_hook_heads; + enum security_hook_index i; - for (i = 0; i < sizeof(security_hook_heads) / sizeof(struct list_head); - i++) - INIT_LIST_HEAD(&list[i]); + for (i = 0; i < LSM_MAX_HOOK_INDEX; i++) + INIT_LIST_HEAD(&hook_heads[i]); pr_info("Security Framework initialized\n"); /* @@ -161,8 +160,12 @@ void __init security_add_hooks(struct security_hook_list *hooks, int count, int i; for (i = 0; i < count; i++) { + enum security_hook_index idx = hooks[i].idx; + hooks[i].lsm = lsm; - list_add_tail_rcu(&hooks[i].list, hooks[i].head); + /* Can't hit this BUG_ON() unless LSM_HOOK_INIT() is broken. */ + BUG_ON(idx < 0 || idx >= LSM_MAX_HOOK_INDEX); + list_add_tail_rcu(&hooks[i].list, &hook_heads[idx]); } if (lsm_append(lsm, &lsm_names) < 0) panic("%s - Cannot get early memory.\n", __func__); @@ -200,7 +203,7 @@ EXPORT_SYMBOL(unregister_lsm_notifier); do { \ struct security_hook_list *P; \ \ - list_for_each_entry(P, &security_hook_heads.FUNC, list) \ + list_for_each_entry(P, &hook_heads[LSM_##FUNC], list) \ P->hook.FUNC(__VA_ARGS__); \ } while (0) @@ -209,7 +212,7 @@ EXPORT_SYMBOL(unregister_lsm_notifier); do { \ struct security_hook_list *P; \ \ - list_for_each_entry(P, &security_hook_heads.FUNC, list) { \ + list_for_each_entry(P, &hook_heads[LSM_##FUNC], list) { \ RC = P->hook.FUNC(__VA_ARGS__); \ if (RC != 0) \ break; \ @@ -316,7 +319,7 @@ int security_vm_enough_memory_mm(struct mm_struct *mm, long pages) * agree that it should be set it will. If any module * thinks it should not be set it won't. */ - list_for_each_entry(hp, &security_hook_heads.vm_enough_memory, list) { + list_for_each_entry(hp, &hook_heads[LSM_vm_enough_memory], list) { rc = hp->hook.vm_enough_memory(mm, pages); if (rc <= 0) { cap_sys_admin = 0; @@ -809,7 +812,7 @@ int security_inode_getsecurity(struct inode *inode, const char *name, void **buf /* * Only one module will provide an attribute with a given name. */ - list_for_each_entry(hp, &security_hook_heads.inode_getsecurity, list) { + list_for_each_entry(hp, &hook_heads[LSM_inode_getsecurity], list) { rc = hp->hook.inode_getsecurity(inode, name, buffer, alloc); if (rc != -EOPNOTSUPP) return rc; @@ -827,7 +830,7 @@ int security_inode_setsecurity(struct inode *inode, const char *name, const void /* * Only one module will provide an attribute with a given name. */ - list_for_each_entry(hp, &security_hook_heads.inode_setsecurity, list) { + list_for_each_entry(hp, &hook_heads[LSM_inode_setsecurity], list) { rc = hp->hook.inode_setsecurity(inode, name, value, size, flags); if (rc != -EOPNOTSUPP) @@ -1135,7 +1138,7 @@ int security_task_prctl(int option, unsigned long arg2, unsigned long arg3, int rc = -ENOSYS; struct security_hook_list *hp; - list_for_each_entry(hp, &security_hook_heads.task_prctl, list) { + list_for_each_entry(hp, &hook_heads[LSM_task_prctl], list) { thisrc = hp->hook.task_prctl(option, arg2, arg3, arg4, arg5); if (thisrc != -ENOSYS) { rc = thisrc; @@ -1638,7 +1641,7 @@ int security_xfrm_state_pol_flow_match(struct xfrm_state *x, * For speed optimization, we explicitly break the loop rather than * using the macro */ - list_for_each_entry(hp, &security_hook_heads.xfrm_state_pol_flow_match, + list_for_each_entry(hp, &hook_heads[LSM_xfrm_state_pol_flow_match], list) { rc = hp->hook.xfrm_state_pol_flow_match(x, xp, fl); break; -- 2.9.3 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f199.google.com (mail-wr0-f199.google.com [209.85.128.199]) by kanga.kvack.org (Postfix) with ESMTP id 962F36B0313 for ; Mon, 26 Jun 2017 10:46:02 -0400 (EDT) Received: by mail-wr0-f199.google.com with SMTP id f49so28997054wrf.5 for ; Mon, 26 Jun 2017 07:46:02 -0700 (PDT) Received: from lhrrgout.huawei.com (lhrrgout.huawei.com. [194.213.3.17]) by mx.google.com with ESMTPS id q22si12597251wrb.377.2017.06.26.07.46.01 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 26 Jun 2017 07:46:01 -0700 (PDT) From: Igor Stoppa Subject: [PATCH 3/3] Make LSM Writable Hooks a command line option Date: Mon, 26 Jun 2017 17:41:16 +0300 Message-ID: <20170626144116.27599-4-igor.stoppa@huawei.com> In-Reply-To: <20170626144116.27599-1-igor.stoppa@huawei.com> References: <20170626144116.27599-1-igor.stoppa@huawei.com> MIME-Version: 1.0 Content-Type: text/plain Sender: owner-linux-mm@kvack.org List-ID: To: keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, labbott@redhat.com Cc: penguin-kernel@I-love.SAKURA.ne.jp, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, hch@infradead.org, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Igor Stoppa , Igor Stoppa From: Igor Stoppa This patch shows how it is possible to take advantage of pmalloc: instead of using the build-time option __lsm_ro_after_init, to decide if it is possible to keep the hooks modifiable, now this becomes a boot-time decision, based on the kernel command line. This patch relies on: "Convert security_hook_heads into explicit array of struct list_head" Author: Tetsuo Handa to break free from the static constraint imposed by the previous hardening model, based on __ro_after_init. The default value is disabled, unless SE Linux debugging is turned on. Signed-off-by: Igor Stoppa CC: Tetsuo Handa --- security/security.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/security/security.c b/security/security.c index 44c47b6..c7b4670 100644 --- a/security/security.c +++ b/security/security.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #define MAX_LSM_EVM_XATTR 2 @@ -34,10 +35,19 @@ /* Maximum number of letters for an LSM name string */ #define SECURITY_NAME_MAX 10 -static struct list_head hook_heads[LSM_MAX_HOOK_INDEX] - __lsm_ro_after_init; static ATOMIC_NOTIFIER_HEAD(lsm_notifier_chain); +static int dynamic_lsm = IS_ENABLED(CONFIG_SECURITY_SELINUX_DISABLE); + +static __init int set_dynamic_lsm(char *str) +{ + get_option(&str, &dynamic_lsm); + return 0; +} +early_param("dynamic_lsm", set_dynamic_lsm); + +static struct list_head *hook_heads; +static struct gen_pool *sec_pool; char *lsm_names; /* Boot-time LSM user choice */ static __initdata char chosen_lsm[SECURITY_NAME_MAX + 1] = @@ -62,6 +72,11 @@ int __init security_init(void) { enum security_hook_index i; + sec_pool = pmalloc_create_pool("security", PMALLOC_DEFAULT_ALLOC_ORDER); + BUG_ON(!sec_pool); + hook_heads = pmalloc(sec_pool, + sizeof(struct list_head) * LSM_MAX_HOOK_INDEX); + BUG_ON(!hook_heads); for (i = 0; i < LSM_MAX_HOOK_INDEX; i++) INIT_LIST_HEAD(&hook_heads[i]); pr_info("Security Framework initialized\n"); @@ -77,7 +92,8 @@ int __init security_init(void) * Load all the remaining security modules. */ do_security_initcalls(); - + if (!dynamic_lsm) + pmalloc_protect_pool(sec_pool); return 0; } -- 2.9.3 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f199.google.com (mail-pf0-f199.google.com [209.85.192.199]) by kanga.kvack.org (Postfix) with ESMTP id 1B2306B0279 for ; Mon, 26 Jun 2017 23:18:14 -0400 (EDT) Received: by mail-pf0-f199.google.com with SMTP id c12so16198707pfj.12 for ; Mon, 26 Jun 2017 20:18:14 -0700 (PDT) Received: from mga04.intel.com (mga04.intel.com. [192.55.52.120]) by mx.google.com with ESMTPS id g5si1220665plj.193.2017.06.26.20.18.12 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Jun 2017 20:18:13 -0700 (PDT) Date: Tue, 27 Jun 2017 11:17:37 +0800 From: kbuild test robot Subject: Re: [PATCH 1/3] Protectable memory support Message-ID: <201706271155.SBkfOuT6%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="2oS5YaxWCcQjTEyO" Content-Disposition: inline In-Reply-To: <20170626144116.27599-2-igor.stoppa@huawei.com> Sender: owner-linux-mm@kvack.org List-ID: To: Igor Stoppa Cc: kbuild-all@01.org, keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, labbott@redhat.com, penguin-kernel@I-love.SAKURA.ne.jp, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, hch@infradead.org, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Igor Stoppa --2oS5YaxWCcQjTEyO Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Igor, [auto build test WARNING on mmotm/master] [also build test WARNING on v4.12-rc7 next-20170626] [cannot apply to linus/master linux/master] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Igor-Stoppa/ro-protection-for-dynamic-data/20170627-103230 base: git://git.cmpxchg.org/linux-mmotm.git master config: i386-tinyconfig (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 All warnings (new ones prefixed by >>): mm/pmalloc.c: In function '__pmalloc_pool_show_avail': >> mm/pmalloc.c:81:25: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=] return sprintf(buf, "%lu\n", gen_pool_avail(data->pool)); ^ mm/pmalloc.c: In function '__pmalloc_pool_show_size': mm/pmalloc.c:91:25: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=] return sprintf(buf, "%lu\n", gen_pool_size(data->pool)); ^ vim +81 mm/pmalloc.c 65 struct pmalloc_data *data; 66 67 data = container_of(attr, struct pmalloc_data, attr_protected); 68 if (atomic_read(&data->protected)) 69 return sprintf(buf, "protected\n"); 70 else 71 return sprintf(buf, "unprotected\n"); 72 } 73 74 static ssize_t __pmalloc_pool_show_avail(struct device *dev, 75 struct device_attribute *attr, 76 char *buf) 77 { 78 struct pmalloc_data *data; 79 80 data = container_of(attr, struct pmalloc_data, attr_avail); > 81 return sprintf(buf, "%lu\n", gen_pool_avail(data->pool)); 82 } 83 84 static ssize_t __pmalloc_pool_show_size(struct device *dev, 85 struct device_attribute *attr, 86 char *buf) 87 { 88 struct pmalloc_data *data; 89 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --2oS5YaxWCcQjTEyO Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 --2oS5YaxWCcQjTEyO-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg0-f71.google.com (mail-pg0-f71.google.com [74.125.83.71]) by kanga.kvack.org (Postfix) with ESMTP id 446736B0279 for ; Mon, 26 Jun 2017 23:45:16 -0400 (EDT) Received: by mail-pg0-f71.google.com with SMTP id s4so17553519pgr.3 for ; Mon, 26 Jun 2017 20:45:16 -0700 (PDT) Received: from mga14.intel.com (mga14.intel.com. [192.55.52.115]) by mx.google.com with ESMTPS id o14si1265156pli.540.2017.06.26.20.45.14 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Jun 2017 20:45:15 -0700 (PDT) Date: Tue, 27 Jun 2017 11:55:06 +0800 From: kbuild test robot Subject: Re: [PATCH 1/3] Protectable memory support Message-ID: <201706271120.I5LWa6tp%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="KsGdsel6WgEHnImy" Content-Disposition: inline In-Reply-To: <20170626144116.27599-2-igor.stoppa@huawei.com> Sender: owner-linux-mm@kvack.org List-ID: To: Igor Stoppa Cc: kbuild-all@01.org, keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, labbott@redhat.com, penguin-kernel@I-love.SAKURA.ne.jp, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, hch@infradead.org, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Igor Stoppa --KsGdsel6WgEHnImy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Igor, [auto build test WARNING on mmotm/master] [also build test WARNING on v4.12-rc7 next-20170626] [cannot apply to linus/master linux/master] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Igor-Stoppa/ro-protection-for-dynamic-data/20170627-103230 base: git://git.cmpxchg.org/linux-mmotm.git master config: powerpc-allyesconfig (attached as .config) compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705 reproduce: wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=powerpc All warnings (new ones prefixed by >>): warning: (ARCH_HAS_SET_MEMORY && CPM && TEE && SGI_XP && SRAM && CAIF_VIRTIO && FSL_FMAN && MVNETA_BM && VIDEO_CODA && FB_SH_MOBILE_MERAM && INFINIBAND_CXGB3 && INFINIBAND_CXGB4 && INFINIBAND_I40IW && MMP_TDMA && UIO_PRUSS && ION && FSL_PAMU && FSL_DPAA && QUICC_ENGINE) selects GENERIC_ALLOCATOR which has unmet direct dependencies (ARCH_HAS_SET_MEMORY) --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --KsGdsel6WgEHnImy Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 --KsGdsel6WgEHnImy-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f197.google.com (mail-pf0-f197.google.com [209.85.192.197]) by kanga.kvack.org (Postfix) with ESMTP id 2783C6B0279 for ; Tue, 27 Jun 2017 01:07:21 -0400 (EDT) Received: by mail-pf0-f197.google.com with SMTP id d62so17755872pfb.13 for ; Mon, 26 Jun 2017 22:07:21 -0700 (PDT) Received: from mga11.intel.com (mga11.intel.com. [192.55.52.93]) by mx.google.com with ESMTPS id 63si1384818plb.49.2017.06.26.22.07.19 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Jun 2017 22:07:20 -0700 (PDT) Date: Tue, 27 Jun 2017 13:07:00 +0800 From: kbuild test robot Subject: Re: [PATCH 3/3] Make LSM Writable Hooks a command line option Message-ID: <201706271329.1BcwNJr9%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="gKMricLos+KVdGMg" Content-Disposition: inline In-Reply-To: <20170626144116.27599-4-igor.stoppa@huawei.com> Sender: owner-linux-mm@kvack.org List-ID: To: Igor Stoppa Cc: kbuild-all@01.org, keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, labbott@redhat.com, penguin-kernel@I-love.SAKURA.ne.jp, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, hch@infradead.org, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Igor Stoppa --gKMricLos+KVdGMg Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Igor, [auto build test ERROR on mmotm/master] [cannot apply to linus/master linux/master v4.12-rc7 next-20170626] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Igor-Stoppa/ro-protection-for-dynamic-data/20170627-103230 base: git://git.cmpxchg.org/linux-mmotm.git master config: ia64-allmodconfig (attached as .config) compiler: ia64-linux-gcc (GCC) 6.2.0 reproduce: wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=ia64 All errors (new ones prefixed by >>): init/built-in.o: In function `start_kernel': (.init.text+0x1832): undefined reference to `pmalloc_init' mm/built-in.o: In function `__check_object_size': (.text+0x14f1b2): undefined reference to `__pmalloc_check_object' security/built-in.o: In function `security_init': >> (.init.text+0x802): undefined reference to `pmalloc_create_pool' security/built-in.o: In function `security_init': >> (.init.text+0x832): undefined reference to `pmalloc' security/built-in.o: In function `security_init': >> (.init.text+0x9d2): undefined reference to `pmalloc_protect_pool' --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --gKMricLos+KVdGMg Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 AA== --gKMricLos+KVdGMg-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg0-f71.google.com (mail-pg0-f71.google.com [74.125.83.71]) by kanga.kvack.org (Postfix) with ESMTP id CEE476B0279 for ; Tue, 27 Jun 2017 02:49:30 -0400 (EDT) Received: by mail-pg0-f71.google.com with SMTP id d191so20193415pga.15 for ; Mon, 26 Jun 2017 23:49:30 -0700 (PDT) Received: from mga04.intel.com (mga04.intel.com. [192.55.52.120]) by mx.google.com with ESMTPS id y9si1578860pli.458.2017.06.26.23.49.29 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Jun 2017 23:49:29 -0700 (PDT) Date: Tue, 27 Jun 2017 14:48:38 +0800 From: kbuild test robot Subject: Re: [PATCH 3/3] Make LSM Writable Hooks a command line option Message-ID: <201706271400.vAtoRsLU%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="VbJkn9YxBvnuCH5J" Content-Disposition: inline In-Reply-To: <20170626144116.27599-4-igor.stoppa@huawei.com> Sender: owner-linux-mm@kvack.org List-ID: To: Igor Stoppa Cc: kbuild-all@01.org, keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, labbott@redhat.com, penguin-kernel@I-love.SAKURA.ne.jp, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, hch@infradead.org, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Igor Stoppa --VbJkn9YxBvnuCH5J Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Igor, [auto build test ERROR on mmotm/master] [cannot apply to linus/master linux/master v4.12-rc7 next-20170626] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Igor-Stoppa/ro-protection-for-dynamic-data/20170627-103230 base: git://git.cmpxchg.org/linux-mmotm.git master config: tile-tilegx_defconfig (attached as .config) compiler: tilegx-linux-gcc (GCC) 4.6.2 reproduce: wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=tile All errors (new ones prefixed by >>): init/built-in.o: In function `start_kernel': init/main.c:678: undefined reference to `pmalloc_init' security/built-in.o: In function `security_init': >> security/security.c:75: undefined reference to `pmalloc_create_pool' >> security/security.c:77: undefined reference to `pmalloc' >> security/security.c:96: undefined reference to `pmalloc_protect_pool' vim +75 security/security.c 69 * This should be called early in the kernel initialization sequence. 70 */ 71 int __init security_init(void) 72 { 73 enum security_hook_index i; 74 > 75 sec_pool = pmalloc_create_pool("security", PMALLOC_DEFAULT_ALLOC_ORDER); 76 BUG_ON(!sec_pool); > 77 hook_heads = pmalloc(sec_pool, 78 sizeof(struct list_head) * LSM_MAX_HOOK_INDEX); 79 BUG_ON(!hook_heads); 80 for (i = 0; i < LSM_MAX_HOOK_INDEX; i++) 81 INIT_LIST_HEAD(&hook_heads[i]); 82 pr_info("Security Framework initialized\n"); 83 84 /* 85 * Load minor LSMs, with the capability module always first. 86 */ 87 capability_add_hooks(); 88 yama_add_hooks(); 89 loadpin_add_hooks(); 90 91 /* 92 * Load all the remaining security modules. 93 */ 94 do_security_initcalls(); 95 if (!dynamic_lsm) > 96 pmalloc_protect_pool(sec_pool); 97 return 0; 98 } 99 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --VbJkn9YxBvnuCH5J Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 Abfb8ZfpBAEA --VbJkn9YxBvnuCH5J-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f200.google.com (mail-wr0-f200.google.com [209.85.128.200]) by kanga.kvack.org (Postfix) with ESMTP id 655EA6B03A6 for ; Tue, 27 Jun 2017 13:38:13 -0400 (EDT) Received: by mail-wr0-f200.google.com with SMTP id v88so31699527wrb.1 for ; Tue, 27 Jun 2017 10:38:13 -0700 (PDT) Received: from lhrrgout.huawei.com (lhrrgout.huawei.com. [194.213.3.17]) by mx.google.com with ESMTPS id r194si3049104wmf.122.2017.06.27.10.38.11 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 27 Jun 2017 10:38:12 -0700 (PDT) From: Igor Stoppa Subject: [PATCH 3/3] Make LSM Writable Hooks a command line option Date: Tue, 27 Jun 2017 20:33:23 +0300 Message-ID: <20170627173323.11287-4-igor.stoppa@huawei.com> In-Reply-To: <20170627173323.11287-1-igor.stoppa@huawei.com> References: <20170627173323.11287-1-igor.stoppa@huawei.com> MIME-Version: 1.0 Content-Type: text/plain Sender: owner-linux-mm@kvack.org List-ID: To: keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org Cc: penguin-kernel@I-love.SAKURA.ne.jp, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, hch@infradead.org, labbott@redhat.com, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Igor Stoppa , Igor Stoppa From: Igor Stoppa This patch shows how it is possible to take advantage of pmalloc: instead of using the build-time option __lsm_ro_after_init, to decide if it is possible to keep the hooks modifiable, now this becomes a boot-time decision, based on the kernel command line. This patch relies on: "Convert security_hook_heads into explicit array of struct list_head" Author: Tetsuo Handa to break free from the static constraint imposed by the previous hardening model, based on __ro_after_init. The default value is disabled, unless SE Linux debugging is turned on. Signed-off-by: Igor Stoppa CC: Tetsuo Handa --- security/security.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/security/security.c b/security/security.c index 44c47b6..c7b4670 100644 --- a/security/security.c +++ b/security/security.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #define MAX_LSM_EVM_XATTR 2 @@ -34,10 +35,19 @@ /* Maximum number of letters for an LSM name string */ #define SECURITY_NAME_MAX 10 -static struct list_head hook_heads[LSM_MAX_HOOK_INDEX] - __lsm_ro_after_init; static ATOMIC_NOTIFIER_HEAD(lsm_notifier_chain); +static int dynamic_lsm = IS_ENABLED(CONFIG_SECURITY_SELINUX_DISABLE); + +static __init int set_dynamic_lsm(char *str) +{ + get_option(&str, &dynamic_lsm); + return 0; +} +early_param("dynamic_lsm", set_dynamic_lsm); + +static struct list_head *hook_heads; +static struct gen_pool *sec_pool; char *lsm_names; /* Boot-time LSM user choice */ static __initdata char chosen_lsm[SECURITY_NAME_MAX + 1] = @@ -62,6 +72,11 @@ int __init security_init(void) { enum security_hook_index i; + sec_pool = pmalloc_create_pool("security", PMALLOC_DEFAULT_ALLOC_ORDER); + BUG_ON(!sec_pool); + hook_heads = pmalloc(sec_pool, + sizeof(struct list_head) * LSM_MAX_HOOK_INDEX); + BUG_ON(!hook_heads); for (i = 0; i < LSM_MAX_HOOK_INDEX; i++) INIT_LIST_HEAD(&hook_heads[i]); pr_info("Security Framework initialized\n"); @@ -77,7 +92,8 @@ int __init security_init(void) * Load all the remaining security modules. */ do_security_initcalls(); - + if (!dynamic_lsm) + pmalloc_protect_pool(sec_pool); return 0; } -- 2.9.3 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f198.google.com (mail-pf0-f198.google.com [209.85.192.198]) by kanga.kvack.org (Postfix) with ESMTP id BB89E6B03A7 for ; Tue, 27 Jun 2017 13:51:34 -0400 (EDT) Received: by mail-pf0-f198.google.com with SMTP id d5so32432241pfe.2 for ; Tue, 27 Jun 2017 10:51:34 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org. [65.50.211.133]) by mx.google.com with ESMTPS id h64si451478pfc.82.2017.06.27.10.51.33 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Jun 2017 10:51:33 -0700 (PDT) Date: Tue, 27 Jun 2017 10:51:18 -0700 From: Christoph Hellwig Subject: Re: [PATCH 3/3] Make LSM Writable Hooks a command line option Message-ID: <20170627175118.GA14286@infradead.org> References: <20170627173323.11287-1-igor.stoppa@huawei.com> <20170627173323.11287-4-igor.stoppa@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170627173323.11287-4-igor.stoppa@huawei.com> Sender: owner-linux-mm@kvack.org List-ID: To: Igor Stoppa Cc: keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, penguin-kernel@I-love.SAKURA.ne.jp, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, hch@infradead.org, labbott@redhat.com, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Igor Stoppa On Tue, Jun 27, 2017 at 08:33:23PM +0300, Igor Stoppa wrote: > From: Igor Stoppa > > This patch shows how it is possible to take advantage of pmalloc: > instead of using the build-time option __lsm_ro_after_init, to decide if > it is possible to keep the hooks modifiable, now this becomes a > boot-time decision, based on the kernel command line. > > This patch relies on: > > "Convert security_hook_heads into explicit array of struct list_head" > Author: Tetsuo Handa > > to break free from the static constraint imposed by the previous > hardening model, based on __ro_after_init. > > The default value is disabled, unless SE Linux debugging is turned on. Can we please just force it to be read-only? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vk0-f71.google.com (mail-vk0-f71.google.com [209.85.213.71]) by kanga.kvack.org (Postfix) with ESMTP id DF8B76B02F4 for ; Tue, 27 Jun 2017 16:07:39 -0400 (EDT) Received: by mail-vk0-f71.google.com with SMTP id a67so12401216vkf.12 for ; Tue, 27 Jun 2017 13:07:39 -0700 (PDT) Received: from mail-ua0-x241.google.com (mail-ua0-x241.google.com. [2607:f8b0:400c:c08::241]) by mx.google.com with ESMTPS id j12si64572vkc.276.2017.06.27.13.07.38 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Jun 2017 13:07:38 -0700 (PDT) Received: by mail-ua0-x241.google.com with SMTP id g40so3011314uaa.3 for ; Tue, 27 Jun 2017 13:07:38 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <20170627175118.GA14286@infradead.org> References: <20170627173323.11287-1-igor.stoppa@huawei.com> <20170627173323.11287-4-igor.stoppa@huawei.com> <20170627175118.GA14286@infradead.org> From: "igor.stoppa@gmail.com" Date: Tue, 27 Jun 2017 23:07:17 +0300 Message-ID: Subject: Re: [PATCH 3/3] Make LSM Writable Hooks a command line option Content-Type: multipart/alternative; boundary="94eb2c047dc68424bb0552f69e2c" Sender: owner-linux-mm@kvack.org List-ID: To: Christoph Hellwig Cc: Igor Stoppa , keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, penguin-kernel@i-love.sakura.ne.jp, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, labbott@redhat.com, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com --94eb2c047dc68424bb0552f69e2c Content-Type: text/plain; charset="UTF-8" On 27 June 2017 at 20:51, Christoph Hellwig wrote: > On Tue, Jun 27, 2017 at 08:33:23PM +0300, Igor Stoppa wrote: > > [...] > > The default value is disabled, unless SE Linux debugging is turned on. > > Can we please just force it to be read-only? > I'm sorry, I'm not quite sure I understand your comment. I'm trying to replicate the behavior of __lsm_ro_after_init: line 1967 @ [1] - Did I get it wrong? thanks, igor [1] https://kernel.googlesource.com/pub/scm/linux/kernel/git/jmorris/linux-security/+/5965453d5e3fb425e6f9d6b4fec403bda3f33107/include/linux/lsm_hooks.h --94eb2c047dc68424bb0552f69e2c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On 2= 7 June 2017 at 20:51, Christoph Hellwig <hch@infradead.org> = wrote:
On Tue, Jun 27, 2017 at 08:33:23PM +0300, Igor Stoppa wrote:
[...]
=C2=A0
> The default value is disabled, unless SE Linux debugging is turned on.=

Can we please just force it to be read-only?

I'm sorry, I'm not quite sure I understand y= our comment.

I'= ;m trying to replicate the behavior of __lsm_ro_after_init:

line 1967 @ [1] =C2= =A0 - Did I get it wrong?

thanks, igor

=


<= div class=3D"gmail_extra">[1] https://kernel.googlesource.com/pu= b/scm/linux/kernel/git/jmorris/linux-security/+/5965453d5e3fb425e6f9d6b4fec= 403bda3f33107/include/linux/lsm_hooks.h
--94eb2c047dc68424bb0552f69e2c-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f198.google.com (mail-pf0-f198.google.com [209.85.192.198]) by kanga.kvack.org (Postfix) with ESMTP id 6CE516B0292 for ; Wed, 28 Jun 2017 04:28:00 -0400 (EDT) Received: by mail-pf0-f198.google.com with SMTP id v62so49110769pfd.10 for ; Wed, 28 Jun 2017 01:28:00 -0700 (PDT) Received: from lhrrgout.huawei.com (lhrrgout.huawei.com. [194.213.3.17]) by mx.google.com with ESMTPS id i145si4150293wmf.4.2017.06.28.01.27.59 for (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 28 Jun 2017 01:27:59 -0700 (PDT) Subject: Re: [PATCH 3/3] Make LSM Writable Hooks a command line option References: <20170627173323.11287-1-igor.stoppa@huawei.com> <20170627173323.11287-4-igor.stoppa@huawei.com> <20170627175118.GA14286@infradead.org> From: Igor Stoppa Message-ID: Date: Wed, 28 Jun 2017 11:25:37 +0300 MIME-Version: 1.0 In-Reply-To: <20170627175118.GA14286@infradead.org> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org List-ID: To: Christoph Hellwig Cc: keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, penguin-kernel@I-love.SAKURA.ne.jp, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, labbott@redhat.com, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Igor Stoppa Resending my reply, I mistakenly used the wrong mail account yesterday and my reply didn't et to the ml. On 27/06/17 20:51, Christoph Hellwig wrote: > On Tue, Jun 27, 2017 at 08:33:23PM +0300, Igor Stoppa wrote: [...] >> The default value is disabled, unless SE Linux debugging is turned on. > > Can we please just force it to be read-only? I'm sorry, I'm not quite sure I understand your comment. I'm trying to replicate the behavior of __lsm_ro_after_init: line 1967 @ [1] - Did I get it wrong? thanks, igor [1] https://kernel.googlesource.com/pub/scm/linux/kernel/git/jmorris/linux-security/+/5965453d5e3fb425e6f9d6b4fec403bda3f33107/include/linux/lsm_hooks.h -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f200.google.com (mail-pf0-f200.google.com [209.85.192.200]) by kanga.kvack.org (Postfix) with ESMTP id 426066B0292 for ; Wed, 28 Jun 2017 22:27:13 -0400 (EDT) Received: by mail-pf0-f200.google.com with SMTP id d62so72944608pfb.13 for ; Wed, 28 Jun 2017 19:27:13 -0700 (PDT) Received: from mga05.intel.com (mga05.intel.com. [192.55.52.43]) by mx.google.com with ESMTPS id 184si2664404pgj.9.2017.06.28.19.27.10 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Jun 2017 19:27:11 -0700 (PDT) Date: Thu, 29 Jun 2017 10:26:35 +0800 From: kernel test robot Subject: 7361ce7529: BUG:sleeping_function_called_from_invalid_context_at_mm/slab.h Message-ID: <20170629022635.GA109626@inn.lkp.intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Nq2Wo0NMKNjxTN9z" Content-Disposition: inline In-Reply-To: <20170626144116.27599-4-igor.stoppa@huawei.com> Sender: owner-linux-mm@kvack.org List-ID: To: Igor Stoppa Cc: keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, labbott@redhat.com, penguin-kernel@I-love.SAKURA.ne.jp, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, hch@infradead.org, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Igor Stoppa , lkp@01.org --Nq2Wo0NMKNjxTN9z Content-Type: text/plain; charset=us-ascii Content-Disposition: inline FYI, we noticed the following commit: commit: 7361ce7529bd0a6525d088a0def0f392d98f00d3 ("Make LSM Writable Hooks a command line option") url: https://github.com/0day-ci/linux/commits/Igor-Stoppa/ro-protection-for-dynamic-data/20170627-103230 base: git://git.cmpxchg.org/linux-mmotm.git master in testcase: trinity with following parameters: runtime: 300s test-description: Trinity is a linux system call fuzz tester. test-url: http://codemonkey.org.uk/projects/trinity/ on test machine: qemu-system-x86_64 -enable-kvm -m 420M caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace): +----------------------------------------------------------------+------------+------------+ | | 2131b0bc3a | 7361ce7529 | +----------------------------------------------------------------+------------+------------+ | boot_successes | 12 | 0 | | boot_failures | 0 | 66 | | BUG:sleeping_function_called_from_invalid_context_at_mm/slab.h | 0 | 66 | | INFO:lockdep_is_turned_off | 0 | 66 | | BUG:key_not_in.data | 0 | 66 | +----------------------------------------------------------------+------------+------------+ [ 8.693078] BUG: sleeping function called from invalid context at mm/slab.h:416 [ 8.694030] in_atomic(): 1, irqs_disabled(): 1, pid: 1, name: swapper/0 [ 8.694651] INFO: lockdep is turned off. [ 8.695074] irq event stamp: 1559917 [ 8.695493] hardirqs last enabled at (1559917): [] _raw_spin_unlock_irqrestore+0x46/0x5a [ 8.696443] hardirqs last disabled at (1559916): [] _raw_spin_lock_irqsave+0x23/0x84 [ 8.697373] softirqs last enabled at (1559890): [] bnx2fc_mod_init+0x1f6/0x319 [ 8.698238] softirqs last disabled at (1559888): [] bnx2fc_mod_init+0x1e3/0x319 [ 8.699097] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.12.0-rc5-mm1-00320-g7361ce75 #22 [ 8.699904] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-20161025_171302-gandalf 04/01/2014 [ 8.700864] Call Trace: [ 8.701187] dump_stack+0x82/0xb8 [ 8.701566] ___might_sleep+0x1bc/0x1cf [ 8.701985] __might_sleep+0x6d/0x74 [ 8.702413] slab_pre_alloc_hook+0x32/0x3f [ 8.702868] __kmalloc+0x52/0x148 [ 8.703244] ? ___cache_free+0x176/0x3e2 [ 8.703667] ? kzalloc+0xe/0x10 [ 8.704152] ? __pmalloc_connect+0x4d/0x4d [ 8.704585] ? gen_pool_destroy+0xb1/0xb1 [ 8.705010] kzalloc+0xe/0x10 [ 8.705462] device_private_init+0x17/0x64 [ 8.705891] device_add+0x5e/0x509 [ 8.706276] ? lock_acquired+0xcd/0x2bc [ 8.706684] ? devres_for_each_res+0x46/0xc2 [ 8.707129] ? __pmalloc_connect+0x4d/0x4d [ 8.707564] ? gen_pool_destroy+0xb1/0xb1 [ 8.708020] __pmalloc_connect+0x1b/0x4d [ 8.708439] __pmalloc_late_add+0x23/0x25 [ 8.708865] devres_for_each_res+0x82/0xc2 [ 8.709304] ? sparse_mem_maps_populate_node+0x13a/0x13a [ 8.709843] ? set_debug_rodata+0x17/0x17 [ 8.710266] pmalloc_late_init+0x4b/0x50 [ 8.710681] do_one_initcall+0x90/0x138 [ 8.711094] ? set_debug_rodata+0x17/0x17 [ 8.711514] kernel_init_freeable+0x1c6/0x24e [ 8.711964] ? rest_init+0xd8/0xd8 [ 8.712346] kernel_init+0xe/0xfa [ 8.712735] ret_from_fork+0x2a/0x40 [ 8.713173] BUG: key ffff9356f80c24e0 not in .data! [ 8.713682] BUG: key ffff9356f80c2510 not in .data! [ 8.714264] BUG: key ffff9356f80c2540 not in .data! [ 8.715020] kAFS: Red Hat AFS client v0.1 registering. [ 8.715591] random: generate_random_uuid+0x12/0x2d get_random_bytes called with crng_init=0 [ 8.716473] FS-Cache: Netfs 'afs' registered for caching [ 8.718480] Btrfs loaded, crc32c=crc32c-generic [ 8.718999] random: key_alloc+0x25a/0x3ce get_random_bytes called with crng_init=0 [ 8.719815] random: prandom_seed_full_state+0x43/0x9c get_random_bytes called with crng_init=0 [ 8.721515] console [netcon0] enabled [ 8.721940] netconsole: network logging started [ 8.722500] rtc_cmos 00:00: setting system clock to 2017-06-27 11:19:14 UTC (1498562354) [ 8.723373] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found [ 8.724025] EDD information not available. [ 8.724952] IPv6: ADDRCONF(NETDEV_UP): bond0: link is not ready [ 8.725577] 8021q: adding VLAN 0 to HW filter on device bond0 [ 8.726198] random: ip_auto_config+0x269/0xeaa get_random_bytes called with crng_init=0 [ 8.727514] IP-Config: Failed to open ipddp0 [ 8.729906] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 8.730943] 8021q: adding VLAN 0 to HW filter on device eth0 [ 8.731579] IP-Config: Failed to open plip0 [ 8.732056] ieee80211 phy0: mac80211_hwsim_start [ 8.732558] ieee80211 phy0: mac80211_hwsim_add_interface (type=2 mac_addr=02:00:00:00:00:00) [ 8.733424] ieee80211 phy0: mac80211_hwsim_bss_info_changed(changed=0xe vif->addr=02:00:00:00:00:00) [ 8.734421] ieee80211 phy0: ERP_CTS_PROT: 0 [ 8.734901] ieee80211 phy0: ERP_PREAMBLE: 0 [ 8.735373] ieee80211 phy0: ERP_SLOT: 0 [ 8.735810] ieee80211 phy0: mac80211_hwsim_conf_tx (queue=0 txop=0 cw_min=15 cw_max=1023 aifs=2) [ 8.737179] ieee80211 phy0: mac80211_hwsim_conf_tx (queue=1 txop=0 cw_min=15 cw_max=1023 aifs=2) [ 8.738083] ieee80211 phy0: mac80211_hwsim_conf_tx (queue=2 txop=0 cw_min=15 cw_max=1023 aifs=2) [ 8.738978] ieee80211 phy0: mac80211_hwsim_conf_tx (queue=3 txop=0 cw_min=15 cw_max=1023 aifs=2) [ 8.739886] ieee80211 phy0: mac80211_hwsim_bss_info_changed(changed=0x2000 vif->addr=02:00:00:00:00:00) [ 8.741218] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX [ 8.742321] ieee80211 phy0: mac80211_hwsim_config (freq=2412(2412 - 0)/noht idle=1 ps=0 smps=static) [ 8.743244] ieee80211 phy0: mac80211_hwsim_configure_filter [ 8.743846] ieee80211 phy0: mac80211_hwsim_configure_filter [ 8.744631] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 8.745260] ieee80211 phy0: mac80211_hwsim_configure_filter [ 8.745847] ieee80211 phy1: mac80211_hwsim_start [ 8.746336] ieee80211 phy1: mac80211_hwsim_add_interface (type=2 mac_addr=02:00:00:00:01:00) [ 8.747198] ieee80211 phy1: mac80211_hwsim_bss_info_changed(changed=0xe vif->addr=02:00:00:00:01:00) [ 8.748125] ieee80211 phy1: ERP_CTS_PROT: 0 [ 8.748580] ieee80211 phy1: ERP_PREAMBLE: 0 [ 8.749037] ieee80211 phy1: ERP_SLOT: 0 [ 8.749468] ieee80211 phy1: mac80211_hwsim_conf_tx (queue=0 txop=0 cw_min=15 cw_max=1023 aifs=2) [ 8.750358] ieee80211 phy1: mac80211_hwsim_conf_tx (queue=1 txop=0 cw_min=15 cw_max=1023 aifs=2) [ 8.751244] ieee80211 phy1: mac80211_hwsim_conf_tx (queue=2 txop=0 cw_min=15 cw_max=1023 aifs=2) [ 8.752122] ieee80211 phy1: mac80211_hwsim_conf_tx (queue=3 txop=0 cw_min=15 cw_max=1023 aifs=2) [ 8.753012] ieee80211 phy1: mac80211_hwsim_bss_info_changed(changed=0x2000 vif->addr=02:00:00:00:01:00) [ 8.754011] ieee80211 phy1: mac80211_hwsim_config (freq=2412(2412 - 0)/noht idle=1 ps=0 smps=static) [ 8.754931] ieee80211 phy1: mac80211_hwsim_configure_filter [ 8.755556] ieee80211 phy1: mac80211_hwsim_configure_filter [ 8.756353] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready [ 8.756973] ieee80211 phy1: mac80211_hwsim_configure_filter [ 8.757604] IP-Config: Failed to open gretap0 [ 8.758097] IP-Config: Failed to open irlan0 [ 8.758631] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 8.759805] random: addrconf_dad_kick+0x9f/0xa8 get_random_bytes called with crng_init=0 [ 8.776028] Sending DHCP requests . [ 8.776034] random: ip_auto_config+0x4ad/0xeaa get_random_bytes called with crng_init=0 [ 8.777423] random: hash_conntrack_raw+0x42/0x13b get_random_bytes called with crng_init=0 [ 8.778372] , OK [ 8.778726] IP-Config: Got DHCP answer from 10.0.2.2, my address is 10.0.2.15 [ 8.779436] IP-Config: Complete: [ 8.779835] device=eth0, hwaddr=52:54:00:12:34:56, ipaddr=10.0.2.15, mask=255.255.255.0, gw=10.0.2.2 [ 8.780769] host=vm-lkp-hsw01-openwrt-ia32-18, domain=, nis-domain=(none) [ 8.781543] bootserver=10.0.2.2, rootserver=10.0.2.2, rootpath= nameserver0=10.0.2.3 [ 8.782856] ieee80211 phy0: mac80211_hwsim_configure_filter [ 8.783444] ieee80211 phy0: mac80211_hwsim_remove_interface (type=2 mac_addr=02:00:00:00:00:00) [ 8.784381] ieee80211 phy0: mac80211_hwsim_stop [ 8.784907] ieee80211 phy1: mac80211_hwsim_configure_filter [ 8.785519] ieee80211 phy1: mac80211_hwsim_remove_interface (type=2 mac_addr=02:00:00:00:01:00) [ 8.786422] ieee80211 phy1: mac80211_hwsim_stop [ 8.787006] PM: Hibernation image not present or could not be loaded. [ 8.787655] ALSA device list: [ 8.788042] #0: Dummy 1 [ 8.788383] #1: Loopback 1 [ 8.788749] #2: Virtual MIDI Card 1 [ 8.796051] Freeing unused kernel memory: 4788K [ 8.796586] Write protecting the kernel read-only data: 49152k [ 8.797768] Freeing unused kernel memory: 40K [ 8.803432] Freeing unused kernel memory: 1596K [ 8.803954] rodata_test: all tests were successful [ 8.804563] random: arch_pick_mmap_layout+0x3a/0xf8 get_random_u64 called with crng_init=0 [ 8.805439] random: arch_pick_mmap_layout+0x9b/0xf8 get_random_u64 called with crng_init=0 [ 8.806298] random: load_elf_binary+0x32a/0xe32 get_random_u64 called with crng_init=0 [ 8.807107] random: arch_align_stack+0x2d/0x3f get_random_u32 called with crng_init=0 [ 8.807984] random: create_elf_tables+0xae/0x53c get_random_bytes called with crng_init=0 [ 8.808815] random: randomize_page+0x4e/0x62 get_random_u64 called with crng_init=0 [ 8.828632] init: Console is alive [ 8.829143] init: - watchdog - [ 8.829818] random: arch_pick_mmap_layout+0x3a/0xf8 get_random_u64 called with crng_init=0 [ 8.830677] random: arch_pick_mmap_layout+0x9b/0xf8 get_random_u64 called with crng_init=0 [ 8.831515] random: load_elf_binary+0x32a/0xe32 get_random_u64 called with crng_init=0 [ 8.832538] random: randomize_page+0x4e/0x62 get_random_u64 called with crng_init=0 [ 9.830020] init: - preinit - [ 9.831539] random: arch_pick_mmap_layout+0x3a/0xf8 get_random_u64 called with crng_init=0 [ 9.833342] random: arch_pick_mmap_layout+0x3a/0xf8 get_random_u64 called with crng_init=0 [ 9.833347] random: arch_pick_mmap_layout+0x9b/0xf8 get_random_u64 called with crng_init=0 [ 9.833356] random: load_elf_binary+0x32a/0xe32 get_random_u64 called with crng_init=0 [ 9.833419] random: randomize_page+0x4e/0x62 get_random_u64 called with crng_init=0 [ 9.840254] random: arch_pick_mmap_layout+0x9b/0xf8 get_random_u64 called with crng_init=0 [ 9.841701] random: load_elf_binary+0x32a/0xe32 get_random_u64 called with crng_init=0 To reproduce: git clone https://github.com/01org/lkp-tests.git cd lkp-tests bin/lkp qemu -k job-script # job-script is attached in this email Thanks, Kernel Test Robot --Nq2Wo0NMKNjxTN9z Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="config-4.12.0-rc5-mm1-00320-g7361ce75" # # Automatically generated file; DO NOT EDIT. # Linux/x86_64 4.12.0-rc5-mm1 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_MMU=y CONFIG_ARCH_MMAP_RND_BITS_MIN=28 CONFIG_ARCH_MMAP_RND_BITS_MAX=32 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ZONE_DMA32=y CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y # # General setup # CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" # CONFIG_COMPILE_TEST is not set CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_HAVE_KERNEL_LZ4=y CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set # CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set # CONFIG_KERNEL_LZ4 is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_FHANDLE=y CONFIG_USELIB=y CONFIG_AUDIT=y CONFIG_HAVE_ARCH_AUDITSYSCALL=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y # # IRQ subsystem # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_MSI_IRQ_DOMAIN=y # CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y CONFIG_GENERIC_CMOS_UPDATE=y # # Timers subsystem # CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y # CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y # # CPU/Task time and stats accounting # CONFIG_TICK_CPU_ACCOUNTING=y # CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set # CONFIG_IRQ_TIME_ACCOUNTING is not set CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y CONFIG_TASK_IO_ACCOUNTING=y # # RCU Subsystem # CONFIG_TREE_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y CONFIG_TREE_SRCU=y # CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y CONFIG_BUILD_BIN2C=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=17 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_ARCH_SUPPORTS_INT128=y # CONFIG_NUMA_BALANCING is not set CONFIG_CGROUPS=y # CONFIG_MEMCG is not set CONFIG_BLK_CGROUP=y # CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y # CONFIG_CFS_BANDWIDTH is not set # CONFIG_RT_GROUP_SCHED is not set # CONFIG_CGROUP_PIDS is not set # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y # CONFIG_CGROUP_HUGETLB is not set CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_DEVICE=y # CONFIG_CGROUP_CPUACCT is not set # CONFIG_CGROUP_PERF is not set # CONFIG_CGROUP_DEBUG is not set CONFIG_SOCK_CGROUP_DATA=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_SCHED_AUTOGROUP=y # CONFIG_SYSFS_DEPRECATED is not set CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y CONFIG_RD_LZ4=y # CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_ANON_INODES=y CONFIG_HAVE_UID16=y CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BPF=y # CONFIG_EXPERT is not set CONFIG_UID16=y CONFIG_MULTIUSER=y CONFIG_SGETMASK_SYSCALL=y CONFIG_SYSFS_SYSCALL=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_POSIX_TIMERS=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_PRINTK=y CONFIG_PRINTK_NMI=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y # CONFIG_BPF_SYSCALL is not set CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_ADVISE_SYSCALLS=y # CONFIG_USERFAULTFD is not set CONFIG_PCI_QUIRKS=y CONFIG_MEMBARRIER=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y # CONFIG_PC104 is not set # # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y # CONFIG_COMPAT_BRK is not set CONFIG_SLAB=y # CONFIG_SLUB is not set # CONFIG_SLAB_FREELIST_RANDOM is not set # CONFIG_SYSTEM_DATA_VERIFICATION is not set CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y CONFIG_CRASH_CORE=y CONFIG_KEXEC_CORE=y CONFIG_OPROFILE=y # CONFIG_OPROFILE_EVENT_MULTIPLEX is not set CONFIG_HAVE_OPROFILE=y CONFIG_OPROFILE_NMI_TIMER=y CONFIG_KPROBES=y # CONFIG_JUMP_LABEL is not set CONFIG_OPTPROBES=y CONFIG_KPROBES_ON_FTRACE=y CONFIG_UPROBES=y # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_KRETPROBES=y CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_KPROBES_ON_FTRACE=y CONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=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 CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y CONFIG_HAVE_CMPXCHG_LOCAL=y CONFIG_HAVE_CMPXCHG_DOUBLE=y CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_SECCOMP_FILTER=y CONFIG_HAVE_GCC_PLUGINS=y # CONFIG_GCC_PLUGINS is not set CONFIG_HAVE_CC_STACKPROTECTOR=y # CONFIG_CC_STACKPROTECTOR is not set CONFIG_CC_STACKPROTECTOR_NONE=y # CONFIG_CC_STACKPROTECTOR_REGULAR is not set # CONFIG_CC_STACKPROTECTOR_STRONG is not set CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y CONFIG_HAVE_ARCH_HUGE_VMAP=y CONFIG_HAVE_ARCH_SOFT_DIRTY=y CONFIG_MODULES_USE_ELF_RELA=y CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_HAVE_EXIT_THREAD=y CONFIG_ARCH_MMAP_RND_BITS=28 CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y CONFIG_HAVE_COPY_THREAD_TLS=y CONFIG_HAVE_STACK_VALIDATION=y # CONFIG_HAVE_ARCH_HASH is not set # CONFIG_ISA_BUS_API is not set CONFIG_OLD_SIGSUSPEND3=y CONFIG_COMPAT_OLD_SIGACTION=y # CONFIG_CPU_NO_EFFICIENT_FFS is not set CONFIG_HAVE_ARCH_VMAP_STACK=y CONFIG_VMAP_STACK=y # CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set # CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y # # GCOV-based kernel profiling # # CONFIG_GCOV_KERNEL is not set CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_MODULE_SIG is not set # CONFIG_MODULE_COMPRESS is not set CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y CONFIG_BLK_SCSI_REQUEST=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y # CONFIG_BLK_DEV_ZONED is not set # CONFIG_BLK_DEV_THROTTLING is not set # CONFIG_BLK_CMDLINE_PARSER is not set # CONFIG_BLK_WBT is not set CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_SED_OPAL is not set # # Partition Types # CONFIG_PARTITION_ADVANCED=y CONFIG_ACORN_PARTITION=y # CONFIG_ACORN_PARTITION_CUMANA is not set # CONFIG_ACORN_PARTITION_EESOX is not set CONFIG_ACORN_PARTITION_ICS=y # CONFIG_ACORN_PARTITION_ADFS is not set # CONFIG_ACORN_PARTITION_POWERTEC is not set CONFIG_ACORN_PARTITION_RISCIX=y # CONFIG_AIX_PARTITION is not set CONFIG_OSF_PARTITION=y CONFIG_AMIGA_PARTITION=y CONFIG_ATARI_PARTITION=y CONFIG_MAC_PARTITION=y CONFIG_MSDOS_PARTITION=y CONFIG_BSD_DISKLABEL=y CONFIG_MINIX_SUBPARTITION=y CONFIG_SOLARIS_X86_PARTITION=y CONFIG_UNIXWARE_DISKLABEL=y CONFIG_LDM_PARTITION=y # CONFIG_LDM_DEBUG is not set CONFIG_SGI_PARTITION=y CONFIG_ULTRIX_PARTITION=y CONFIG_SUN_PARTITION=y CONFIG_KARMA_PARTITION=y CONFIG_EFI_PARTITION=y # CONFIG_SYSV68_PARTITION is not set # CONFIG_CMDLINE_PARTITION is not set CONFIG_BLOCK_COMPAT=y CONFIG_BLK_MQ_PCI=y CONFIG_BLK_MQ_VIRTIO=y # # IO Schedulers # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y CONFIG_CFQ_GROUP_IOSCHED=y # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" CONFIG_MQ_IOSCHED_DEADLINE=y CONFIG_MQ_IOSCHED_KYBER=y # CONFIG_IOSCHED_BFQ is not set CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_RWSEM_SPIN_ON_OWNER=y CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y CONFIG_QUEUED_RWLOCKS=y CONFIG_FREEZER=y # # Processor type and features # CONFIG_ZONE_DMA=y CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_FAST_FEATURE_TESTS=y CONFIG_X86_X2APIC=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set # CONFIG_INTEL_RDT_A is not set # CONFIG_X86_EXTENDED_PLATFORM is not set # CONFIG_X86_INTEL_LPSS is not set # CONFIG_X86_AMD_PLATFORM_DEVICE is not set CONFIG_IOSF_MBI=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y # CONFIG_SCHED_OMIT_FRAME_POINTER is not set CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y # CONFIG_PARAVIRT_DEBUG is not set # CONFIG_PARAVIRT_SPINLOCKS is not set CONFIG_XEN=y CONFIG_XEN_PV=y CONFIG_XEN_PV_SMP=y CONFIG_XEN_DOM0=y CONFIG_XEN_PVHVM=y CONFIG_XEN_PVHVM_SMP=y CONFIG_XEN_512GB=y CONFIG_XEN_SAVE_RESTORE=y # CONFIG_XEN_DEBUG_FS is not set # CONFIG_XEN_PVH is not set CONFIG_KVM_GUEST=y # CONFIG_KVM_DEBUG_FS is not set # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set CONFIG_PARAVIRT_CLOCK=y CONFIG_NO_BOOTMEM=y # CONFIG_MK8 is not set # CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set CONFIG_GENERIC_CPU=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=64 CONFIG_X86_DEBUGCTLMSR=y CONFIG_CPU_SUP_INTEL=y CONFIG_CPU_SUP_AMD=y CONFIG_CPU_SUP_CENTAUR=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y CONFIG_GART_IOMMU=y CONFIG_CALGARY_IOMMU=y CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y CONFIG_SWIOTLB=y CONFIG_IOMMU_HELPER=y # CONFIG_MAXSMP is not set CONFIG_NR_CPUS=512 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y CONFIG_SCHED_MC_PRIO=y # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set CONFIG_PREEMPT_COUNT=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y CONFIG_X86_MCE=y # CONFIG_X86_MCELOG_LEGACY is not set CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y CONFIG_X86_MCE_THRESHOLD=y CONFIG_X86_MCE_INJECT=y CONFIG_X86_THERMAL_VECTOR=y # # Performance monitoring # CONFIG_PERF_EVENTS_INTEL_UNCORE=y CONFIG_PERF_EVENTS_INTEL_RAPL=y CONFIG_PERF_EVENTS_INTEL_CSTATE=y # CONFIG_PERF_EVENTS_AMD_POWER is not set # CONFIG_VM86 is not set CONFIG_X86_16BIT=y CONFIG_X86_ESPFIX64=y CONFIG_X86_VSYSCALL_EMULATION=y CONFIG_I8K=y CONFIG_MICROCODE=y CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y CONFIG_X86_MSR=y CONFIG_X86_CPUID=y CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_NUMA=y CONFIG_AMD_NUMA=y CONFIG_X86_64_ACPI_NUMA=y CONFIG_NODES_SPAN_OTHER_NODES=y CONFIG_NUMA_EMU=y CONFIG_NODES_SHIFT=6 CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_MEMORY_PROBE=y CONFIG_ARCH_PROC_KCORE_TEXT=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SPARSEMEM_MANUAL=y CONFIG_SPARSEMEM=y CONFIG_NEED_MULTIPLE_NODES=y CONFIG_HAVE_MEMORY_PRESENT=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_HAVE_MEMBLOCK=y CONFIG_HAVE_MEMBLOCK_NODE_MAP=y CONFIG_HAVE_GENERIC_GUP=y CONFIG_ARCH_DISCARD_MEMBLOCK=y CONFIG_MEMORY_ISOLATION=y CONFIG_HAVE_BOOTMEM_INFO_NODE=y CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTPLUG_SPARSE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTREMOVE=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y CONFIG_MEMORY_BALLOON=y CONFIG_BALLOON_COMPACTION=y CONFIG_COMPACTION=y CONFIG_MIGRATION=y CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y CONFIG_MEMORY_FAILURE=y CONFIG_HWPOISON_INJECT=y CONFIG_TRANSPARENT_HUGEPAGE=y # CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y CONFIG_ARCH_WANTS_THP_SWAP=y CONFIG_THP_SWAP=y CONFIG_TRANSPARENT_HUGE_PAGECACHE=y # CONFIG_CLEANCACHE is not set # CONFIG_FRONTSWAP is not set # CONFIG_CMA is not set # CONFIG_ZPOOL is not set # CONFIG_ZBUD is not set CONFIG_ZSMALLOC=y # CONFIG_PGTABLE_MAPPING is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_GENERIC_EARLY_IOREMAP=y CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set # CONFIG_ZONE_DEVICE is not set CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y CONFIG_ARCH_HAS_PKEYS=y # CONFIG_X86_PMEM_LEGACY is not set # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set CONFIG_X86_RESERVE_LOW=64 CONFIG_MTRR=y CONFIG_MTRR_SANITIZER=y CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y CONFIG_X86_SMAP=y # CONFIG_X86_INTEL_MPX is not set CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y CONFIG_EFI=y # CONFIG_EFI_STUB is not set CONFIG_SECCOMP=y # CONFIG_HZ_100 is not set CONFIG_HZ_250=y # CONFIG_HZ_300 is not set # CONFIG_HZ_1000 is not set CONFIG_HZ=250 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y # CONFIG_KEXEC_FILE is not set # CONFIG_CRASH_DUMP is not set # CONFIG_KEXEC_JUMP is not set CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y CONFIG_RANDOMIZE_BASE=y CONFIG_X86_NEED_RELOCS=y CONFIG_PHYSICAL_ALIGN=0x1000000 CONFIG_RANDOMIZE_MEMORY=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_HOTPLUG_CPU=y # CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set # CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_COMPAT_VDSO is not set # CONFIG_LEGACY_VSYSCALL_NATIVE is not set CONFIG_LEGACY_VSYSCALL_EMULATE=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set CONFIG_MODIFY_LDT_SYSCALL=y CONFIG_HAVE_LIVEPATCH=y # CONFIG_LIVEPATCH is not set CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y CONFIG_USE_PERCPU_NUMA_NODE_ID=y # # Power management and ACPI options # CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_HIBERNATE_CALLBACKS=y CONFIG_HIBERNATION=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y CONFIG_PM_DEBUG=y CONFIG_PM_ADVANCED_DEBUG=y CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_SLEEP_DEBUG=y # CONFIG_PM_TRACE_RTC is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y # CONFIG_ACPI_DEBUGGER is not set CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS_POWER is not set CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y # CONFIG_ACPI_EC_DEBUGFS is not set CONFIG_ACPI_AC=y CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=y CONFIG_ACPI_FAN=y CONFIG_ACPI_DOCK=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_IPMI=y CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=y CONFIG_ACPI_THERMAL=y CONFIG_ACPI_NUMA=y # CONFIG_ACPI_CUSTOM_DSDT is not set CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set CONFIG_ACPI_PCI_SLOT=y CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=y CONFIG_ACPI_HOTPLUG_MEMORY=y CONFIG_ACPI_HOTPLUG_IOAPIC=y CONFIG_ACPI_SBS=y CONFIG_ACPI_HED=y # CONFIG_ACPI_CUSTOM_METHOD is not set # CONFIG_ACPI_BGRT is not set # CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set # CONFIG_ACPI_NFIT is not set CONFIG_HAVE_ACPI_APEI=y CONFIG_HAVE_ACPI_APEI_NMI=y CONFIG_ACPI_APEI=y CONFIG_ACPI_APEI_GHES=y CONFIG_ACPI_APEI_PCIEAER=y CONFIG_ACPI_APEI_MEMORY_FAILURE=y # CONFIG_ACPI_APEI_EINJ is not set # CONFIG_ACPI_APEI_ERST_DEBUG is not set # CONFIG_DPTF_POWER is not set # CONFIG_ACPI_EXTLOG is not set # CONFIG_PMIC_OPREGION is not set # CONFIG_ACPI_CONFIGFS is not set CONFIG_SFI=y # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_ATTR_SET=y CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_STAT=y # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set # # CPU frequency scaling drivers # CONFIG_X86_INTEL_PSTATE=y CONFIG_X86_PCC_CPUFREQ=y CONFIG_X86_ACPI_CPUFREQ=y CONFIG_X86_ACPI_CPUFREQ_CPB=y CONFIG_X86_POWERNOW_K8=y # CONFIG_X86_AMD_FREQ_SENSITIVITY is not set CONFIG_X86_SPEEDSTEP_CENTRINO=y CONFIG_X86_P4_CLOCKMOD=y # # shared options # CONFIG_X86_SPEEDSTEP_LIB=y # # CPU Idle # CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y # CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set CONFIG_INTEL_IDLE=y # # Bus options (PCI etc.) # CONFIG_PCI=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_XEN=y CONFIG_PCI_DOMAINS=y CONFIG_PCIEPORTBUS=y CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_PCIEAER=y # CONFIG_PCIE_ECRC is not set CONFIG_PCIEAER_INJECT=y CONFIG_PCIEASPM=y CONFIG_PCIEASPM_DEBUG=y CONFIG_PCIEASPM_DEFAULT=y # CONFIG_PCIEASPM_POWERSAVE is not set # CONFIG_PCIEASPM_POWER_SUPERSAVE is not set # CONFIG_PCIEASPM_PERFORMANCE is not set CONFIG_PCIE_PME=y # CONFIG_PCIE_DPC is not set # CONFIG_PCIE_PTM is not set CONFIG_PCI_BUS_ADDR_T_64BIT=y CONFIG_PCI_MSI=y CONFIG_PCI_MSI_IRQ_DOMAIN=y # CONFIG_PCI_DEBUG is not set # CONFIG_PCI_REALLOC_ENABLE_AUTO is not set CONFIG_PCI_STUB=y CONFIG_XEN_PCIDEV_FRONTEND=y CONFIG_HT_IRQ=y CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y CONFIG_PCI_PRI=y CONFIG_PCI_PASID=y CONFIG_PCI_LABEL=y # CONFIG_PCI_HYPERV is not set CONFIG_HOTPLUG_PCI=y CONFIG_HOTPLUG_PCI_ACPI=y CONFIG_HOTPLUG_PCI_ACPI_IBM=y CONFIG_HOTPLUG_PCI_CPCI=y CONFIG_HOTPLUG_PCI_CPCI_ZT5550=y CONFIG_HOTPLUG_PCI_CPCI_GENERIC=y CONFIG_HOTPLUG_PCI_SHPC=y # # DesignWare PCI Core Support # # CONFIG_PCIE_DW_PLAT is not set # # PCI host controller drivers # # CONFIG_VMD is not set # # PCI Endpoint # # CONFIG_PCI_ENDPOINT is not set # # PCI switch controller drivers # # CONFIG_PCI_SW_SWITCHTEC is not set CONFIG_ISA_DMA_API=y CONFIG_AMD_NB=y CONFIG_PCCARD=y CONFIG_PCMCIA=y CONFIG_PCMCIA_LOAD_CIS=y CONFIG_CARDBUS=y # # PC-card bridges # CONFIG_YENTA=y CONFIG_YENTA_O2=y CONFIG_YENTA_RICOH=y CONFIG_YENTA_TI=y CONFIG_YENTA_ENE_TUNE=y CONFIG_YENTA_TOSHIBA=y CONFIG_PD6729=y CONFIG_I82092=y CONFIG_PCCARD_NONSTATIC=y # CONFIG_RAPIDIO is not set # CONFIG_X86_SYSFB is not set # # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y CONFIG_COMPAT_BINFMT_ELF=y CONFIG_ELFCORE=y CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_BINFMT_SCRIPT=y # CONFIG_HAVE_AOUT is not set CONFIG_BINFMT_MISC=y CONFIG_COREDUMP=y CONFIG_IA32_EMULATION=y CONFIG_IA32_AOUT=y # CONFIG_X86_X32 is not set CONFIG_COMPAT_32=y CONFIG_COMPAT=y CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y CONFIG_X86_DEV_DMA_OPS=y CONFIG_NET=y CONFIG_COMPAT_NETLINK_MESSAGES=y CONFIG_NET_INGRESS=y CONFIG_NET_EGRESS=y # # Networking options # CONFIG_PACKET=y # CONFIG_PACKET_DIAG is not set CONFIG_UNIX=y # CONFIG_UNIX_DIAG is not set CONFIG_TLS=m CONFIG_XFRM=y CONFIG_XFRM_ALGO=y CONFIG_XFRM_USER=y CONFIG_XFRM_SUB_POLICY=y CONFIG_XFRM_MIGRATE=y # CONFIG_XFRM_STATISTICS is not set CONFIG_XFRM_IPCOMP=y CONFIG_NET_KEY=y CONFIG_NET_KEY_MIGRATE=y # CONFIG_SMC is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_FIB_TRIE_STATS=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y CONFIG_IP_ROUTE_CLASSID=y CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y CONFIG_IP_PNP_BOOTP=y CONFIG_IP_PNP_RARP=y CONFIG_NET_IPIP=y CONFIG_NET_IPGRE_DEMUX=y CONFIG_NET_IP_TUNNEL=y CONFIG_NET_IPGRE=y CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y CONFIG_IP_MROUTE_MULTIPLE_TABLES=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_SYN_COOKIES=y # CONFIG_NET_IPVTI is not set CONFIG_NET_UDP_TUNNEL=y # CONFIG_NET_FOU is not set # CONFIG_NET_FOU_IP_TUNNELS is not set CONFIG_INET_AH=y CONFIG_INET_ESP=y # CONFIG_INET_ESP_OFFLOAD is not set CONFIG_INET_IPCOMP=y CONFIG_INET_XFRM_TUNNEL=y CONFIG_INET_TUNNEL=y CONFIG_INET_XFRM_MODE_TRANSPORT=y CONFIG_INET_XFRM_MODE_TUNNEL=y CONFIG_INET_XFRM_MODE_BEET=y CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y # CONFIG_INET_UDP_DIAG is not set # CONFIG_INET_RAW_DIAG is not set # CONFIG_INET_DIAG_DESTROY is not set CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=y CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=y CONFIG_TCP_CONG_HTCP=y CONFIG_TCP_CONG_HSTCP=y CONFIG_TCP_CONG_HYBLA=y CONFIG_TCP_CONG_VEGAS=y # CONFIG_TCP_CONG_NV is not set CONFIG_TCP_CONG_SCALABLE=y CONFIG_TCP_CONG_LP=y CONFIG_TCP_CONG_VENO=y CONFIG_TCP_CONG_YEAH=y CONFIG_TCP_CONG_ILLINOIS=y # CONFIG_TCP_CONG_DCTCP is not set # CONFIG_TCP_CONG_CDG is not set # CONFIG_TCP_CONG_BBR is not set # CONFIG_DEFAULT_BIC is not set CONFIG_DEFAULT_CUBIC=y # CONFIG_DEFAULT_HTCP is not set # CONFIG_DEFAULT_HYBLA is not set # CONFIG_DEFAULT_VEGAS is not set # CONFIG_DEFAULT_VENO is not set # CONFIG_DEFAULT_WESTWOOD is not set # CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_TCP_MD5SIG=y CONFIG_IPV6=y CONFIG_IPV6_ROUTER_PREF=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=y CONFIG_INET6_ESP=y # CONFIG_INET6_ESP_OFFLOAD is not set CONFIG_INET6_IPCOMP=y CONFIG_IPV6_MIP6=y # CONFIG_IPV6_ILA is not set CONFIG_INET6_XFRM_TUNNEL=y CONFIG_INET6_TUNNEL=y CONFIG_INET6_XFRM_MODE_TRANSPORT=y CONFIG_INET6_XFRM_MODE_TUNNEL=y CONFIG_INET6_XFRM_MODE_BEET=y CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=y # CONFIG_IPV6_VTI is not set CONFIG_IPV6_SIT=y CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=y # CONFIG_IPV6_GRE is not set # CONFIG_IPV6_FOU is not set # CONFIG_IPV6_FOU_TUNNEL is not set CONFIG_IPV6_MULTIPLE_TABLES=y CONFIG_IPV6_SUBTREES=y CONFIG_IPV6_MROUTE=y CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y CONFIG_IPV6_PIMSM_V2=y # CONFIG_IPV6_SEG6_LWTUNNEL is not set # CONFIG_IPV6_SEG6_HMAC is not set # CONFIG_NETLABEL is not set CONFIG_NETWORK_SECMARK=y CONFIG_NET_PTP_CLASSIFY=y # CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y CONFIG_BRIDGE_NETFILTER=y # # Core Netfilter Configuration # CONFIG_NETFILTER_INGRESS=y CONFIG_NETFILTER_NETLINK=y # CONFIG_NETFILTER_NETLINK_ACCT is not set CONFIG_NETFILTER_NETLINK_QUEUE=y CONFIG_NETFILTER_NETLINK_LOG=y CONFIG_NF_CONNTRACK=y # CONFIG_NF_LOG_NETDEV is not set CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y CONFIG_NF_CONNTRACK_ZONES=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y # CONFIG_NF_CONNTRACK_TIMEOUT is not set CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CT_PROTO_DCCP=y CONFIG_NF_CT_PROTO_GRE=y CONFIG_NF_CT_PROTO_SCTP=y CONFIG_NF_CT_PROTO_UDPLITE=y CONFIG_NF_CONNTRACK_AMANDA=y CONFIG_NF_CONNTRACK_FTP=y CONFIG_NF_CONNTRACK_H323=y CONFIG_NF_CONNTRACK_IRC=y CONFIG_NF_CONNTRACK_BROADCAST=y CONFIG_NF_CONNTRACK_NETBIOS_NS=y CONFIG_NF_CONNTRACK_SNMP=y CONFIG_NF_CONNTRACK_PPTP=y CONFIG_NF_CONNTRACK_SANE=y CONFIG_NF_CONNTRACK_SIP=y CONFIG_NF_CONNTRACK_TFTP=y CONFIG_NF_CT_NETLINK=y # CONFIG_NF_CT_NETLINK_TIMEOUT is not set # CONFIG_NETFILTER_NETLINK_GLUE_CT is not set # CONFIG_NF_TABLES is not set CONFIG_NETFILTER_XTABLES=y # # Xtables combined modules # CONFIG_NETFILTER_XT_MARK=y CONFIG_NETFILTER_XT_CONNMARK=y CONFIG_NETFILTER_XT_SET=y # # Xtables targets # CONFIG_NETFILTER_XT_TARGET_AUDIT=y CONFIG_NETFILTER_XT_TARGET_CHECKSUM=y CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y CONFIG_NETFILTER_XT_TARGET_CONNMARK=y CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y CONFIG_NETFILTER_XT_TARGET_CT=y CONFIG_NETFILTER_XT_TARGET_DSCP=y CONFIG_NETFILTER_XT_TARGET_HL=y # CONFIG_NETFILTER_XT_TARGET_HMARK is not set CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y CONFIG_NETFILTER_XT_TARGET_LED=y # CONFIG_NETFILTER_XT_TARGET_LOG is not set CONFIG_NETFILTER_XT_TARGET_MARK=y CONFIG_NETFILTER_XT_TARGET_NFLOG=y CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y CONFIG_NETFILTER_XT_TARGET_NOTRACK=y CONFIG_NETFILTER_XT_TARGET_RATEEST=y CONFIG_NETFILTER_XT_TARGET_TEE=y CONFIG_NETFILTER_XT_TARGET_TPROXY=y CONFIG_NETFILTER_XT_TARGET_TRACE=y CONFIG_NETFILTER_XT_TARGET_SECMARK=y CONFIG_NETFILTER_XT_TARGET_TCPMSS=y CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=y # # Xtables matches # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y # CONFIG_NETFILTER_XT_MATCH_BPF is not set # CONFIG_NETFILTER_XT_MATCH_CGROUP is not set CONFIG_NETFILTER_XT_MATCH_CLUSTER=y CONFIG_NETFILTER_XT_MATCH_COMMENT=y CONFIG_NETFILTER_XT_MATCH_CONNBYTES=y # CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y CONFIG_NETFILTER_XT_MATCH_CONNMARK=y CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y CONFIG_NETFILTER_XT_MATCH_CPU=y CONFIG_NETFILTER_XT_MATCH_DCCP=y CONFIG_NETFILTER_XT_MATCH_DEVGROUP=y CONFIG_NETFILTER_XT_MATCH_DSCP=y CONFIG_NETFILTER_XT_MATCH_ECN=y CONFIG_NETFILTER_XT_MATCH_ESP=y CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y CONFIG_NETFILTER_XT_MATCH_HELPER=y CONFIG_NETFILTER_XT_MATCH_HL=y # CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set CONFIG_NETFILTER_XT_MATCH_IPRANGE=y CONFIG_NETFILTER_XT_MATCH_IPVS=y CONFIG_NETFILTER_XT_MATCH_L2TP=y CONFIG_NETFILTER_XT_MATCH_LENGTH=y CONFIG_NETFILTER_XT_MATCH_LIMIT=y CONFIG_NETFILTER_XT_MATCH_MAC=y CONFIG_NETFILTER_XT_MATCH_MARK=y CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y # CONFIG_NETFILTER_XT_MATCH_NFACCT is not set CONFIG_NETFILTER_XT_MATCH_OSF=y CONFIG_NETFILTER_XT_MATCH_OWNER=y CONFIG_NETFILTER_XT_MATCH_POLICY=y CONFIG_NETFILTER_XT_MATCH_PHYSDEV=y CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y CONFIG_NETFILTER_XT_MATCH_QUOTA=y CONFIG_NETFILTER_XT_MATCH_RATEEST=y CONFIG_NETFILTER_XT_MATCH_REALM=y CONFIG_NETFILTER_XT_MATCH_RECENT=y CONFIG_NETFILTER_XT_MATCH_SCTP=y CONFIG_NETFILTER_XT_MATCH_STATE=y CONFIG_NETFILTER_XT_MATCH_STATISTIC=y CONFIG_NETFILTER_XT_MATCH_STRING=y CONFIG_NETFILTER_XT_MATCH_TCPMSS=y CONFIG_NETFILTER_XT_MATCH_TIME=y CONFIG_NETFILTER_XT_MATCH_U32=y CONFIG_IP_SET=y CONFIG_IP_SET_MAX=256 CONFIG_IP_SET_BITMAP_IP=y CONFIG_IP_SET_BITMAP_IPMAC=y CONFIG_IP_SET_BITMAP_PORT=y CONFIG_IP_SET_HASH_IP=y # CONFIG_IP_SET_HASH_IPMARK is not set CONFIG_IP_SET_HASH_IPPORT=y CONFIG_IP_SET_HASH_IPPORTIP=y CONFIG_IP_SET_HASH_IPPORTNET=y # CONFIG_IP_SET_HASH_IPMAC is not set # CONFIG_IP_SET_HASH_MAC is not set # CONFIG_IP_SET_HASH_NETPORTNET is not set CONFIG_IP_SET_HASH_NET=y # CONFIG_IP_SET_HASH_NETNET is not set CONFIG_IP_SET_HASH_NETPORT=y CONFIG_IP_SET_HASH_NETIFACE=y CONFIG_IP_SET_LIST_SET=y CONFIG_IP_VS=y CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set CONFIG_IP_VS_TAB_BITS=12 # # IPVS transport protocol load balancing support # CONFIG_IP_VS_PROTO_TCP=y CONFIG_IP_VS_PROTO_UDP=y CONFIG_IP_VS_PROTO_AH_ESP=y CONFIG_IP_VS_PROTO_ESP=y CONFIG_IP_VS_PROTO_AH=y CONFIG_IP_VS_PROTO_SCTP=y # # IPVS scheduler # CONFIG_IP_VS_RR=y CONFIG_IP_VS_WRR=y CONFIG_IP_VS_LC=y CONFIG_IP_VS_WLC=y # CONFIG_IP_VS_FO is not set # CONFIG_IP_VS_OVF is not set CONFIG_IP_VS_LBLC=y CONFIG_IP_VS_LBLCR=y CONFIG_IP_VS_DH=y CONFIG_IP_VS_SH=y CONFIG_IP_VS_SED=y CONFIG_IP_VS_NQ=y # # IPVS SH scheduler # CONFIG_IP_VS_SH_TAB_BITS=8 # # IPVS application helper # CONFIG_IP_VS_NFCT=y CONFIG_IP_VS_PE_SIP=y # # IP: Netfilter Configuration # CONFIG_NF_DEFRAG_IPV4=y CONFIG_NF_CONNTRACK_IPV4=y # CONFIG_NF_SOCKET_IPV4 is not set CONFIG_NF_DUP_IPV4=y # CONFIG_NF_LOG_ARP is not set # CONFIG_NF_LOG_IPV4 is not set CONFIG_NF_REJECT_IPV4=y # CONFIG_NF_NAT_IPV4 is not set CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_MATCH_AH=y CONFIG_IP_NF_MATCH_ECN=y # CONFIG_IP_NF_MATCH_RPFILTER is not set CONFIG_IP_NF_MATCH_TTL=y CONFIG_IP_NF_FILTER=y CONFIG_IP_NF_TARGET_REJECT=y # CONFIG_IP_NF_TARGET_SYNPROXY is not set # CONFIG_IP_NF_NAT is not set CONFIG_IP_NF_MANGLE=y CONFIG_IP_NF_TARGET_CLUSTERIP=y CONFIG_IP_NF_TARGET_ECN=y CONFIG_IP_NF_TARGET_TTL=y CONFIG_IP_NF_RAW=y CONFIG_IP_NF_SECURITY=y CONFIG_IP_NF_ARPTABLES=y CONFIG_IP_NF_ARPFILTER=y CONFIG_IP_NF_ARP_MANGLE=y # # IPv6: Netfilter Configuration # CONFIG_NF_DEFRAG_IPV6=y CONFIG_NF_CONNTRACK_IPV6=y # CONFIG_NF_SOCKET_IPV6 is not set CONFIG_NF_DUP_IPV6=y CONFIG_NF_REJECT_IPV6=y # CONFIG_NF_LOG_IPV6 is not set # CONFIG_NF_NAT_IPV6 is not set CONFIG_IP6_NF_IPTABLES=y CONFIG_IP6_NF_MATCH_AH=y CONFIG_IP6_NF_MATCH_EUI64=y CONFIG_IP6_NF_MATCH_FRAG=y CONFIG_IP6_NF_MATCH_OPTS=y CONFIG_IP6_NF_MATCH_HL=y CONFIG_IP6_NF_MATCH_IPV6HEADER=y CONFIG_IP6_NF_MATCH_MH=y # CONFIG_IP6_NF_MATCH_RPFILTER is not set CONFIG_IP6_NF_MATCH_RT=y CONFIG_IP6_NF_TARGET_HL=y CONFIG_IP6_NF_FILTER=y CONFIG_IP6_NF_TARGET_REJECT=y # CONFIG_IP6_NF_TARGET_SYNPROXY is not set CONFIG_IP6_NF_MANGLE=y CONFIG_IP6_NF_RAW=y CONFIG_IP6_NF_SECURITY=y # CONFIG_IP6_NF_NAT is not set # # DECnet: Netfilter Configuration # CONFIG_DECNET_NF_GRABULATOR=y CONFIG_BRIDGE_NF_EBTABLES=y CONFIG_BRIDGE_EBT_BROUTE=y CONFIG_BRIDGE_EBT_T_FILTER=y CONFIG_BRIDGE_EBT_T_NAT=y CONFIG_BRIDGE_EBT_802_3=y CONFIG_BRIDGE_EBT_AMONG=y CONFIG_BRIDGE_EBT_ARP=y CONFIG_BRIDGE_EBT_IP=y CONFIG_BRIDGE_EBT_IP6=y CONFIG_BRIDGE_EBT_LIMIT=y CONFIG_BRIDGE_EBT_MARK=y CONFIG_BRIDGE_EBT_PKTTYPE=y CONFIG_BRIDGE_EBT_STP=y CONFIG_BRIDGE_EBT_VLAN=y CONFIG_BRIDGE_EBT_ARPREPLY=y CONFIG_BRIDGE_EBT_DNAT=y CONFIG_BRIDGE_EBT_MARK_T=y CONFIG_BRIDGE_EBT_REDIRECT=y CONFIG_BRIDGE_EBT_SNAT=y CONFIG_BRIDGE_EBT_LOG=y CONFIG_BRIDGE_EBT_NFLOG=y CONFIG_IP_DCCP=y CONFIG_INET_DCCP_DIAG=y # # DCCP CCIDs Configuration # # CONFIG_IP_DCCP_CCID2_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_TFRC_LIB=y # # DCCP Kernel Hacking # # CONFIG_IP_DCCP_DEBUG is not set CONFIG_NET_DCCPPROBE=y CONFIG_IP_SCTP=y CONFIG_NET_SCTPPROBE=y # CONFIG_SCTP_DBG_OBJCNT is not set CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set CONFIG_SCTP_COOKIE_HMAC_MD5=y # CONFIG_SCTP_COOKIE_HMAC_SHA1 is not set CONFIG_INET_SCTP_DIAG=y # CONFIG_RDS is not set CONFIG_TIPC=y # CONFIG_TIPC_MEDIA_IB is not set CONFIG_TIPC_MEDIA_UDP=y CONFIG_ATM=y CONFIG_ATM_CLIP=y # CONFIG_ATM_CLIP_NO_ICMP is not set CONFIG_ATM_LANE=y CONFIG_ATM_MPOA=y CONFIG_ATM_BR2684=y # CONFIG_ATM_BR2684_IPFILTER is not set CONFIG_L2TP=y CONFIG_L2TP_DEBUGFS=y CONFIG_L2TP_V3=y CONFIG_L2TP_IP=y CONFIG_L2TP_ETH=y CONFIG_STP=y CONFIG_GARP=y CONFIG_BRIDGE=y CONFIG_BRIDGE_IGMP_SNOOPING=y # CONFIG_BRIDGE_VLAN_FILTERING is not set CONFIG_HAVE_NET_DSA=y # CONFIG_NET_DSA is not set CONFIG_VLAN_8021Q=y CONFIG_VLAN_8021Q_GVRP=y # CONFIG_VLAN_8021Q_MVRP is not set CONFIG_DECNET=y # CONFIG_DECNET_ROUTER is not set CONFIG_LLC=y CONFIG_LLC2=y CONFIG_IPX=y # CONFIG_IPX_INTERN is not set CONFIG_ATALK=y CONFIG_DEV_APPLETALK=y CONFIG_IPDDP=y CONFIG_IPDDP_ENCAP=y # CONFIG_X25 is not set CONFIG_LAPB=y CONFIG_PHONET=y # CONFIG_6LOWPAN is not set CONFIG_IEEE802154=y # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=y # CONFIG_MAC802154 is not set CONFIG_NET_SCHED=y # # Queueing/Scheduling # CONFIG_NET_SCH_CBQ=y CONFIG_NET_SCH_HTB=y CONFIG_NET_SCH_HFSC=y CONFIG_NET_SCH_ATM=y CONFIG_NET_SCH_PRIO=y CONFIG_NET_SCH_MULTIQ=y CONFIG_NET_SCH_RED=y CONFIG_NET_SCH_SFB=y CONFIG_NET_SCH_SFQ=y CONFIG_NET_SCH_TEQL=y CONFIG_NET_SCH_TBF=y CONFIG_NET_SCH_GRED=y CONFIG_NET_SCH_DSMARK=y CONFIG_NET_SCH_NETEM=y CONFIG_NET_SCH_DRR=y CONFIG_NET_SCH_MQPRIO=y CONFIG_NET_SCH_CHOKE=y CONFIG_NET_SCH_QFQ=y # CONFIG_NET_SCH_CODEL is not set # CONFIG_NET_SCH_FQ_CODEL is not set # CONFIG_NET_SCH_FQ is not set # CONFIG_NET_SCH_HHF is not set # CONFIG_NET_SCH_PIE is not set CONFIG_NET_SCH_INGRESS=y # CONFIG_NET_SCH_PLUG is not set # CONFIG_NET_SCH_DEFAULT is not set # # Classification # CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=y CONFIG_NET_CLS_TCINDEX=y CONFIG_NET_CLS_ROUTE4=y CONFIG_NET_CLS_FW=y CONFIG_NET_CLS_U32=y CONFIG_CLS_U32_PERF=y CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=y CONFIG_NET_CLS_RSVP6=y CONFIG_NET_CLS_FLOW=y CONFIG_NET_CLS_CGROUP=y # CONFIG_NET_CLS_BPF is not set # CONFIG_NET_CLS_FLOWER is not set # CONFIG_NET_CLS_MATCHALL is not set CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=y CONFIG_NET_EMATCH_NBYTE=y CONFIG_NET_EMATCH_U32=y CONFIG_NET_EMATCH_META=y CONFIG_NET_EMATCH_TEXT=y # CONFIG_NET_EMATCH_CANID is not set # CONFIG_NET_EMATCH_IPSET is not set CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=y CONFIG_NET_ACT_GACT=y CONFIG_GACT_PROB=y CONFIG_NET_ACT_MIRRED=y # CONFIG_NET_ACT_SAMPLE is not set CONFIG_NET_ACT_IPT=y CONFIG_NET_ACT_NAT=y CONFIG_NET_ACT_PEDIT=y CONFIG_NET_ACT_SIMP=y CONFIG_NET_ACT_SKBEDIT=y CONFIG_NET_ACT_CSUM=y # CONFIG_NET_ACT_VLAN is not set # CONFIG_NET_ACT_BPF is not set # CONFIG_NET_ACT_CONNMARK is not set # CONFIG_NET_ACT_SKBMOD is not set # CONFIG_NET_ACT_IFE is not set # CONFIG_NET_ACT_TUNNEL_KEY is not set CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y CONFIG_DCB=y CONFIG_DNS_RESOLVER=y CONFIG_BATMAN_ADV=y # CONFIG_BATMAN_ADV_BATMAN_V is not set CONFIG_BATMAN_ADV_BLA=y # CONFIG_BATMAN_ADV_DAT is not set # CONFIG_BATMAN_ADV_NC is not set # CONFIG_BATMAN_ADV_MCAST is not set CONFIG_BATMAN_ADV_DEBUGFS=y # CONFIG_BATMAN_ADV_DEBUG is not set # CONFIG_OPENVSWITCH is not set # CONFIG_VSOCKETS is not set # CONFIG_NETLINK_DIAG is not set # CONFIG_MPLS is not set # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_NET_NCSI is not set CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y # CONFIG_CGROUP_NET_PRIO is not set CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y CONFIG_BPF_JIT=y CONFIG_NET_FLOW_LIMIT=y # # Network testing # CONFIG_NET_PKTGEN=y # CONFIG_NET_TCPPROBE is not set CONFIG_NET_DROP_MONITOR=y CONFIG_HAMRADIO=y # # Packet Radio protocols # CONFIG_AX25=y # CONFIG_AX25_DAMA_SLAVE is not set CONFIG_NETROM=y CONFIG_ROSE=y # # AX.25 network device drivers # CONFIG_MKISS=y CONFIG_6PACK=y CONFIG_BPQETHER=y CONFIG_BAYCOM_SER_FDX=y CONFIG_BAYCOM_SER_HDX=y CONFIG_BAYCOM_PAR=y CONFIG_YAM=y CONFIG_CAN=y CONFIG_CAN_RAW=y CONFIG_CAN_BCM=y CONFIG_CAN_GW=y # # CAN Device Drivers # CONFIG_CAN_VCAN=y # CONFIG_CAN_VXCAN is not set CONFIG_CAN_SLCAN=y CONFIG_CAN_DEV=y CONFIG_CAN_CALC_BITTIMING=y # CONFIG_CAN_LEDS is not set # CONFIG_CAN_C_CAN is not set # CONFIG_CAN_CC770 is not set # CONFIG_CAN_IFI_CANFD is not set # CONFIG_CAN_M_CAN is not set # CONFIG_CAN_PEAK_PCIEFD is not set CONFIG_CAN_SJA1000=y # CONFIG_CAN_SJA1000_ISA is not set # CONFIG_CAN_SJA1000_PLATFORM is not set CONFIG_CAN_EMS_PCMCIA=y CONFIG_CAN_EMS_PCI=y # CONFIG_CAN_PEAK_PCMCIA is not set CONFIG_CAN_PEAK_PCI=y CONFIG_CAN_PEAK_PCIEC=y CONFIG_CAN_KVASER_PCI=y CONFIG_CAN_PLX_PCI=y CONFIG_CAN_SOFTING=y CONFIG_CAN_SOFTING_CS=y # # CAN SPI interfaces # # CONFIG_CAN_HI311X is not set CONFIG_CAN_MCP251X=y # # CAN USB interfaces # CONFIG_CAN_EMS_USB=y CONFIG_CAN_ESD_USB2=y # CONFIG_CAN_GS_USB is not set # CONFIG_CAN_KVASER_USB is not set # CONFIG_CAN_PEAK_USB is not set # CONFIG_CAN_8DEV_USB is not set # CONFIG_CAN_MCBA_USB is not set # CONFIG_CAN_DEBUG_DEVICES is not set CONFIG_IRDA=y # # IrDA protocols # CONFIG_IRLAN=y CONFIG_IRNET=y CONFIG_IRCOMM=y # CONFIG_IRDA_ULTRA is not set # # IrDA options # CONFIG_IRDA_CACHE_LAST_LSAP=y CONFIG_IRDA_FAST_RR=y # CONFIG_IRDA_DEBUG is not set # # Infrared-port device drivers # # # SIR device drivers # CONFIG_IRTTY_SIR=y # # Dongle support # CONFIG_DONGLE=y CONFIG_ESI_DONGLE=y CONFIG_ACTISYS_DONGLE=y CONFIG_TEKRAM_DONGLE=y CONFIG_TOIM3232_DONGLE=y CONFIG_LITELINK_DONGLE=y CONFIG_MA600_DONGLE=y CONFIG_GIRBIL_DONGLE=y CONFIG_MCP2120_DONGLE=y CONFIG_OLD_BELKIN_DONGLE=y CONFIG_ACT200L_DONGLE=y CONFIG_KINGSUN_DONGLE=y CONFIG_KSDAZZLE_DONGLE=y CONFIG_KS959_DONGLE=y # # FIR device drivers # CONFIG_USB_IRDA=y CONFIG_SIGMATEL_FIR=y CONFIG_NSC_FIR=y CONFIG_WINBOND_FIR=y CONFIG_SMC_IRCC_FIR=y CONFIG_ALI_FIR=y CONFIG_VLSI_FIR=y CONFIG_VIA_FIR=y CONFIG_MCS_FIR=y CONFIG_BT=y CONFIG_BT_BREDR=y CONFIG_BT_RFCOMM=y CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=y CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_CMTP=y CONFIG_BT_HIDP=y CONFIG_BT_HS=y CONFIG_BT_LE=y # CONFIG_BT_LEDS is not set # CONFIG_BT_SELFTEST is not set CONFIG_BT_DEBUGFS=y # # Bluetooth device drivers # CONFIG_BT_INTEL=y CONFIG_BT_BCM=y CONFIG_BT_RTL=y CONFIG_BT_HCIBTUSB=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIBTSDIO=y CONFIG_BT_HCIUART=y CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_ATH3K=y # CONFIG_BT_HCIUART_3WIRE is not set # CONFIG_BT_HCIUART_INTEL is not set # CONFIG_BT_HCIUART_BCM is not set # CONFIG_BT_HCIUART_QCA is not set # CONFIG_BT_HCIUART_AG6XX is not set # CONFIG_BT_HCIUART_MRVL is not set CONFIG_BT_HCIBCM203X=y CONFIG_BT_HCIBPA10X=y CONFIG_BT_HCIBFUSB=y CONFIG_BT_HCIDTL1=y CONFIG_BT_HCIBT3C=y CONFIG_BT_HCIBLUECARD=y CONFIG_BT_HCIBTUART=y CONFIG_BT_HCIVHCI=y CONFIG_BT_MRVL=y CONFIG_BT_MRVL_SDIO=y CONFIG_BT_ATH3K=y CONFIG_AF_RXRPC=y # CONFIG_AF_RXRPC_IPV6 is not set # CONFIG_AF_RXRPC_INJECT_LOSS is not set # CONFIG_AF_RXRPC_DEBUG is not set CONFIG_RXKAD=y # CONFIG_AF_KCM is not set # CONFIG_STREAM_PARSER is not set CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y CONFIG_WEXT_CORE=y CONFIG_WEXT_PROC=y CONFIG_WEXT_SPY=y CONFIG_WEXT_PRIV=y CONFIG_CFG80211=y # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set CONFIG_CFG80211_CRDA_SUPPORT=y CONFIG_CFG80211_WEXT=y CONFIG_CFG80211_WEXT_EXPORT=y CONFIG_LIB80211=y CONFIG_LIB80211_CRYPT_WEP=y CONFIG_LIB80211_CRYPT_CCMP=y CONFIG_LIB80211_CRYPT_TKIP=y # CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=y CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_MINSTREL_HT=y # CONFIG_MAC80211_RC_MINSTREL_VHT is not set CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y # CONFIG_MAC80211_DEBUGFS is not set # CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 CONFIG_WIMAX=y CONFIG_WIMAX_DEBUG_LEVEL=8 CONFIG_RFKILL=y CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y # CONFIG_RFKILL_GPIO is not set CONFIG_NET_9P=y CONFIG_NET_9P_VIRTIO=y # CONFIG_NET_9P_XEN is not set CONFIG_NET_9P_RDMA=y # CONFIG_NET_9P_DEBUG is not set # CONFIG_CAIF is not set CONFIG_CEPH_LIB=y # CONFIG_CEPH_LIB_PRETTYDEBUG is not set # CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set CONFIG_NFC=y # CONFIG_NFC_DIGITAL is not set CONFIG_NFC_NCI=y # CONFIG_NFC_NCI_SPI is not set # CONFIG_NFC_NCI_UART is not set # CONFIG_NFC_HCI is not set # # Near Field Communication (NFC) devices # # CONFIG_NFC_FDP is not set # CONFIG_NFC_PN533_USB is not set # CONFIG_NFC_PN533_I2C is not set # CONFIG_NFC_MRVL_USB is not set # CONFIG_NFC_ST_NCI_I2C is not set # CONFIG_NFC_ST_NCI_SPI is not set # CONFIG_NFC_NXP_NCI is not set # CONFIG_NFC_S3FWRN5_I2C is not set # CONFIG_PSAMPLE is not set # CONFIG_NET_IFE is not set # CONFIG_LWTUNNEL is not set CONFIG_DST_CACHE=y CONFIG_GRO_CELLS=y # CONFIG_NET_DEVLINK is not set CONFIG_MAY_USE_DEVLINK=y CONFIG_HAVE_EBPF_JIT=y # # Device Drivers # # # Generic Driver Options # CONFIG_UEVENT_HELPER=y CONFIG_UEVENT_HELPER_PATH="" CONFIG_DEVTMPFS=y # CONFIG_DEVTMPFS_MOUNT is not set CONFIG_STANDALONE=y 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_FALLBACK is not set CONFIG_WANT_DEV_COREDUMP=y CONFIG_ALLOW_DEV_COREDUMP=y CONFIG_DEV_COREDUMP=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_SYS_HYPERVISOR=y # CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_REGMAP=y CONFIG_REGMAP_I2C=y CONFIG_REGMAP_SPI=y CONFIG_DMA_SHARED_BUFFER=y # CONFIG_DMA_FENCE_TRACE is not set # # Bus devices # CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y CONFIG_MTD=y # CONFIG_MTD_TESTS is not set CONFIG_MTD_REDBOOT_PARTS=y CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 # CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set # CONFIG_MTD_REDBOOT_PARTS_READONLY is not set # CONFIG_MTD_CMDLINE_PARTS is not set CONFIG_MTD_AR7_PARTS=y # # User Modules And Translation Layers # CONFIG_MTD_BLKDEVS=y CONFIG_MTD_BLOCK=y CONFIG_FTL=y CONFIG_NFTL=y CONFIG_NFTL_RW=y CONFIG_INFTL=y CONFIG_RFD_FTL=y CONFIG_SSFDC=y # CONFIG_SM_FTL is not set CONFIG_MTD_OOPS=y CONFIG_MTD_SWAP=y # CONFIG_MTD_PARTITIONED_MASTER is not set # # RAM/ROM/Flash chip drivers # CONFIG_MTD_CFI=y CONFIG_MTD_JEDECPROBE=y CONFIG_MTD_GEN_PROBE=y # CONFIG_MTD_CFI_ADV_OPTIONS is not set CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set CONFIG_MTD_CFI_I1=y CONFIG_MTD_CFI_I2=y # CONFIG_MTD_CFI_I4 is not set # CONFIG_MTD_CFI_I8 is not set CONFIG_MTD_CFI_INTELEXT=y CONFIG_MTD_CFI_AMDSTD=y CONFIG_MTD_CFI_STAA=y CONFIG_MTD_CFI_UTIL=y CONFIG_MTD_RAM=y CONFIG_MTD_ROM=y CONFIG_MTD_ABSENT=y # # Mapping drivers for chip access # CONFIG_MTD_COMPLEX_MAPPINGS=y CONFIG_MTD_PHYSMAP=y # CONFIG_MTD_PHYSMAP_COMPAT is not set CONFIG_MTD_SBC_GXX=y # CONFIG_MTD_AMD76XROM is not set # CONFIG_MTD_ICHXROM is not set # CONFIG_MTD_ESB2ROM is not set # CONFIG_MTD_CK804XROM is not set # CONFIG_MTD_SCB2_FLASH is not set # CONFIG_MTD_NETtel is not set # CONFIG_MTD_L440GX is not set CONFIG_MTD_PCI=y CONFIG_MTD_PCMCIA=y # CONFIG_MTD_PCMCIA_ANONYMOUS is not set # CONFIG_MTD_GPIO_ADDR is not set CONFIG_MTD_INTEL_VR_NOR=y CONFIG_MTD_PLATRAM=y # CONFIG_MTD_LATCH_ADDR is not set # # Self-contained MTD device drivers # CONFIG_MTD_PMC551=y # CONFIG_MTD_PMC551_BUGFIX is not set # CONFIG_MTD_PMC551_DEBUG is not set CONFIG_MTD_DATAFLASH=y # CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set # CONFIG_MTD_DATAFLASH_OTP is not set # CONFIG_MTD_MCHP23K256 is not set CONFIG_MTD_SST25L=y CONFIG_MTD_SLRAM=y CONFIG_MTD_PHRAM=y CONFIG_MTD_MTDRAM=y CONFIG_MTDRAM_TOTAL_SIZE=4096 CONFIG_MTDRAM_ERASE_SIZE=128 CONFIG_MTD_BLOCK2MTD=y # # Disk-On-Chip Device Drivers # # CONFIG_MTD_DOCG3 is not set CONFIG_MTD_NAND_ECC=y # CONFIG_MTD_NAND_ECC_SMC is not set CONFIG_MTD_NAND=y # CONFIG_MTD_NAND_ECC_BCH is not set CONFIG_MTD_SM_COMMON=y # CONFIG_MTD_NAND_DENALI_PCI is not set # CONFIG_MTD_NAND_GPIO is not set # CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set CONFIG_MTD_NAND_RICOH=y CONFIG_MTD_NAND_DISKONCHIP=y # 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 is not set CONFIG_MTD_NAND_CAFE=y CONFIG_MTD_NAND_NANDSIM=y CONFIG_MTD_NAND_PLATFORM=y CONFIG_MTD_ONENAND=y CONFIG_MTD_ONENAND_VERIFY_WRITE=y CONFIG_MTD_ONENAND_GENERIC=y # CONFIG_MTD_ONENAND_OTP is not set CONFIG_MTD_ONENAND_2X_PROGRAM=y # # LPDDR & LPDDR2 PCM memory drivers # CONFIG_MTD_LPDDR=y CONFIG_MTD_QINFO_PROBE=y # CONFIG_MTD_SPI_NOR is not set CONFIG_MTD_UBI=y CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_LIMIT=20 # CONFIG_MTD_UBI_FASTMAP is not set # CONFIG_MTD_UBI_GLUEBI is not set # CONFIG_MTD_UBI_BLOCK is not set # CONFIG_OF is not set CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y CONFIG_PARPORT=y CONFIG_PARPORT_PC=y CONFIG_PARPORT_SERIAL=y # CONFIG_PARPORT_PC_FIFO is not set # CONFIG_PARPORT_PC_SUPERIO is not set CONFIG_PARPORT_PC_PCMCIA=y # CONFIG_PARPORT_GSC is not set CONFIG_PARPORT_AX88796=y CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y CONFIG_PNP=y # CONFIG_PNP_DEBUG_MESSAGES is not set # # Protocols # CONFIG_PNPACPI=y CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_NULL_BLK is not set CONFIG_BLK_DEV_FD=y # CONFIG_PARIDE is not set # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set # CONFIG_ZRAM is not set CONFIG_BLK_CPQ_CISS_DA=y CONFIG_CISS_SCSI_TAPE=y CONFIG_BLK_DEV_DAC960=y CONFIG_BLK_DEV_UMEM=y # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=y # CONFIG_BLK_DEV_SKD is not set CONFIG_BLK_DEV_SX8=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=65536 CONFIG_CDROM_PKTCDVD=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set CONFIG_ATA_OVER_ETH=y CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_BLKDEV_BACKEND=y CONFIG_VIRTIO_BLK=y # CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_BLK_DEV_RBD=y # CONFIG_BLK_DEV_RSXX is not set # CONFIG_BLK_DEV_NVME is not set # CONFIG_NVME_RDMA is not set # CONFIG_NVME_FC is not set # CONFIG_NVME_TARGET is not set # # Misc devices # CONFIG_SENSORS_LIS3LV02D=y CONFIG_AD525X_DPOT=y CONFIG_AD525X_DPOT_I2C=y CONFIG_AD525X_DPOT_SPI=y # CONFIG_DUMMY_IRQ is not set CONFIG_IBM_ASM=y CONFIG_PHANTOM=y CONFIG_SGI_IOC4=y CONFIG_TIFM_CORE=y CONFIG_TIFM_7XX1=y CONFIG_ICS932S401=y CONFIG_ENCLOSURE_SERVICES=y CONFIG_HP_ILO=y CONFIG_APDS9802ALS=y CONFIG_ISL29003=y CONFIG_ISL29020=y CONFIG_SENSORS_TSL2550=y CONFIG_SENSORS_BH1770=y CONFIG_SENSORS_APDS990X=y CONFIG_HMC6352=y CONFIG_DS1682=y CONFIG_TI_DAC7512=y # CONFIG_USB_SWITCH_FSA9480 is not set # CONFIG_LATTICE_ECP3_CONFIG is not set # CONFIG_SRAM is not set # CONFIG_PCI_ENDPOINT_TEST is not set CONFIG_C2PORT=y CONFIG_C2PORT_DURAMAR_2150=y # # EEPROM support # CONFIG_EEPROM_AT24=y CONFIG_EEPROM_AT25=y CONFIG_EEPROM_LEGACY=y CONFIG_EEPROM_MAX6875=y CONFIG_EEPROM_93CX6=y # CONFIG_EEPROM_93XX46 is not set # CONFIG_EEPROM_IDT_89HPESX is not set CONFIG_CB710_CORE=y # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y # # Texas Instruments shared transport line discipline # # CONFIG_TI_ST is not set CONFIG_SENSORS_LIS3_I2C=y # # Altera FPGA firmware download module # # CONFIG_ALTERA_STAPL is not set # CONFIG_INTEL_MEI is not set # CONFIG_INTEL_MEI_ME is not set # CONFIG_INTEL_MEI_TXE is not set # CONFIG_VMWARE_VMCI is not set # # Intel MIC Bus Driver # # CONFIG_INTEL_MIC_BUS is not set # # SCIF Bus Driver # # CONFIG_SCIF_BUS is not set # # VOP Bus Driver # # CONFIG_VOP_BUS is not set # # Intel MIC Host Driver # # # Intel MIC Card Driver # # # SCIF Driver # # # Intel MIC Coprocessor State Management (COSM) Drivers # # # VOP Driver # # CONFIG_GENWQE is not set # CONFIG_ECHO is not set # CONFIG_CXL_BASE is not set # CONFIG_CXL_AFU_DRIVER_OPS is not set CONFIG_HAVE_IDE=y CONFIG_IDE=y # # Please see Documentation/ide/ide.txt for help/info on IDE drives # CONFIG_IDE_XFER_MODE=y CONFIG_IDE_ATAPI=y # CONFIG_BLK_DEV_IDE_SATA is not set CONFIG_IDE_GD=y CONFIG_IDE_GD_ATA=y CONFIG_IDE_GD_ATAPI=y # CONFIG_BLK_DEV_IDECS is not set CONFIG_BLK_DEV_DELKIN=y CONFIG_BLK_DEV_IDECD=y CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y CONFIG_BLK_DEV_IDETAPE=y # CONFIG_BLK_DEV_IDEACPI is not set # CONFIG_IDE_TASK_IOCTL is not set CONFIG_IDE_PROC_FS=y # # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=y # CONFIG_BLK_DEV_PLATFORM is not set # CONFIG_BLK_DEV_CMD640 is not set CONFIG_BLK_DEV_IDEPNP=y CONFIG_BLK_DEV_IDEDMA_SFF=y # # PCI IDE chipsets support # CONFIG_BLK_DEV_IDEPCI=y CONFIG_IDEPCI_PCIBUS_ORDER=y # CONFIG_BLK_DEV_OFFBOARD is not set # CONFIG_BLK_DEV_GENERIC is not set CONFIG_BLK_DEV_OPTI621=y # CONFIG_BLK_DEV_RZ1000 is not set CONFIG_BLK_DEV_IDEDMA_PCI=y # CONFIG_BLK_DEV_AEC62XX is not set # CONFIG_BLK_DEV_ALI15X3 is not set # CONFIG_BLK_DEV_AMD74XX is not set # CONFIG_BLK_DEV_ATIIXP is not set # CONFIG_BLK_DEV_CMD64X is not set # CONFIG_BLK_DEV_TRIFLEX is not set CONFIG_BLK_DEV_HPT366=y # CONFIG_BLK_DEV_JMICRON is not set CONFIG_BLK_DEV_PIIX=y CONFIG_BLK_DEV_IT8172=y CONFIG_BLK_DEV_IT8213=y # CONFIG_BLK_DEV_IT821X is not set # CONFIG_BLK_DEV_NS87415 is not set # CONFIG_BLK_DEV_PDC202XX_OLD is not set # CONFIG_BLK_DEV_PDC202XX_NEW is not set # CONFIG_BLK_DEV_SVWKS is not set # CONFIG_BLK_DEV_SIIMAGE is not set # CONFIG_BLK_DEV_SIS5513 is not set # CONFIG_BLK_DEV_SLC90E66 is not set CONFIG_BLK_DEV_TRM290=y # CONFIG_BLK_DEV_VIA82CXXX is not set CONFIG_BLK_DEV_TC86C001=y CONFIG_BLK_DEV_IDEDMA=y # # SCSI device support # CONFIG_SCSI_MOD=y CONFIG_RAID_ATTRS=y CONFIG_SCSI=y CONFIG_SCSI_DMA=y CONFIG_SCSI_NETLINK=y # CONFIG_SCSI_MQ_DEFAULT is not set # CONFIG_SCSI_PROC_FS is not set # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=y CONFIG_CHR_DEV_ST=y CONFIG_CHR_DEV_OSST=y CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_SCH=y CONFIG_SCSI_ENCLOSURE=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y CONFIG_SCSI_SCAN_ASYNC=y # # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=y CONFIG_SCSI_FC_ATTRS=y CONFIG_SCSI_ISCSI_ATTRS=y CONFIG_SCSI_SAS_ATTRS=y CONFIG_SCSI_SAS_LIBSAS=y CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y CONFIG_SCSI_SRP_ATTRS=y CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=y CONFIG_ISCSI_BOOT_SYSFS=y CONFIG_SCSI_CXGB3_ISCSI=y CONFIG_SCSI_CXGB4_ISCSI=y CONFIG_SCSI_BNX2_ISCSI=y CONFIG_SCSI_BNX2X_FCOE=y CONFIG_BE2ISCSI=y CONFIG_BLK_DEV_3W_XXXX_RAID=y CONFIG_SCSI_HPSA=y CONFIG_SCSI_3W_9XXX=y CONFIG_SCSI_3W_SAS=y CONFIG_SCSI_ACARD=y CONFIG_SCSI_AACRAID=y CONFIG_SCSI_AIC7XXX=y CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 CONFIG_AIC7XXX_RESET_DELAY_MS=15000 CONFIG_AIC7XXX_DEBUG_ENABLE=y CONFIG_AIC7XXX_DEBUG_MASK=0 CONFIG_AIC7XXX_REG_PRETTY_PRINT=y CONFIG_SCSI_AIC79XX=y CONFIG_AIC79XX_CMDS_PER_DEVICE=32 CONFIG_AIC79XX_RESET_DELAY_MS=15000 CONFIG_AIC79XX_DEBUG_ENABLE=y CONFIG_AIC79XX_DEBUG_MASK=0 CONFIG_AIC79XX_REG_PRETTY_PRINT=y CONFIG_SCSI_AIC94XX=y # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=y # CONFIG_SCSI_MVSAS_DEBUG is not set # CONFIG_SCSI_MVSAS_TASKLET is not set CONFIG_SCSI_MVUMI=y CONFIG_SCSI_DPT_I2O=y CONFIG_SCSI_ADVANSYS=y CONFIG_SCSI_ARCMSR=y # CONFIG_SCSI_ESAS2R is not set CONFIG_MEGARAID_NEWGEN=y CONFIG_MEGARAID_MM=y CONFIG_MEGARAID_MAILBOX=y CONFIG_MEGARAID_LEGACY=y CONFIG_MEGARAID_SAS=y CONFIG_SCSI_MPT3SAS=y CONFIG_SCSI_MPT2SAS_MAX_SGE=128 CONFIG_SCSI_MPT3SAS_MAX_SGE=128 CONFIG_SCSI_MPT2SAS=y # CONFIG_SCSI_SMARTPQI is not set # CONFIG_SCSI_UFSHCD is not set CONFIG_SCSI_HPTIOP=y CONFIG_SCSI_BUSLOGIC=y # CONFIG_SCSI_FLASHPOINT is not set CONFIG_VMWARE_PVSCSI=y # CONFIG_XEN_SCSI_FRONTEND is not set CONFIG_HYPERV_STORAGE=y CONFIG_LIBFC=y CONFIG_LIBFCOE=y CONFIG_FCOE=y CONFIG_FCOE_FNIC=y # CONFIG_SCSI_SNIC is not set CONFIG_SCSI_DMX3191D=y CONFIG_SCSI_EATA=y CONFIG_SCSI_EATA_TAGGED_QUEUE=y CONFIG_SCSI_EATA_LINKED_COMMANDS=y CONFIG_SCSI_EATA_MAX_TAGS=16 CONFIG_SCSI_FUTURE_DOMAIN=y CONFIG_SCSI_GDTH=y CONFIG_SCSI_ISCI=y CONFIG_SCSI_IPS=y CONFIG_SCSI_INITIO=y CONFIG_SCSI_INIA100=y CONFIG_SCSI_PPA=y CONFIG_SCSI_IMM=y # CONFIG_SCSI_IZIP_EPP16 is not set # CONFIG_SCSI_IZIP_SLOW_CTR is not set CONFIG_SCSI_STEX=y CONFIG_SCSI_SYM53C8XX_2=y CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 CONFIG_SCSI_SYM53C8XX_MMIO=y CONFIG_SCSI_IPR=y # CONFIG_SCSI_IPR_TRACE is not set # CONFIG_SCSI_IPR_DUMP is not set CONFIG_SCSI_QLOGIC_1280=y CONFIG_SCSI_QLA_FC=y # CONFIG_TCM_QLA2XXX is not set CONFIG_SCSI_QLA_ISCSI=y # CONFIG_SCSI_LPFC is not set CONFIG_SCSI_DC395x=y # CONFIG_SCSI_AM53C974 is not set # CONFIG_SCSI_WD719X is not set # CONFIG_SCSI_DEBUG is not set CONFIG_SCSI_PMCRAID=y CONFIG_SCSI_PM8001=y CONFIG_SCSI_BFA_FC=y CONFIG_SCSI_VIRTIO=y # CONFIG_SCSI_CHELSIO_FCOE is not set CONFIG_SCSI_LOWLEVEL_PCMCIA=y CONFIG_PCMCIA_AHA152X=m CONFIG_PCMCIA_FDOMAIN=m CONFIG_PCMCIA_QLOGIC=m CONFIG_PCMCIA_SYM53C500=m CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=y CONFIG_SCSI_DH_HP_SW=y CONFIG_SCSI_DH_EMC=y CONFIG_SCSI_DH_ALUA=y CONFIG_SCSI_OSD_INITIATOR=y CONFIG_SCSI_OSD_ULD=y CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_SCSI_OSD_DEBUG is not set CONFIG_ATA=y # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y # CONFIG_SATA_ZPODD is not set CONFIG_SATA_PMP=y # # Controllers with non-SFF native interface # CONFIG_SATA_AHCI=y # CONFIG_SATA_AHCI_PLATFORM is not set CONFIG_SATA_INIC162X=y CONFIG_SATA_ACARD_AHCI=y CONFIG_SATA_SIL24=y CONFIG_ATA_SFF=y # # SFF controllers with custom DMA interface # CONFIG_PDC_ADMA=y CONFIG_SATA_QSTOR=y CONFIG_SATA_SX4=y CONFIG_ATA_BMDMA=y # # SATA SFF controllers with BMDMA # CONFIG_ATA_PIIX=y # CONFIG_SATA_DWC is not set CONFIG_SATA_MV=y CONFIG_SATA_NV=y CONFIG_SATA_PROMISE=y CONFIG_SATA_SIL=y CONFIG_SATA_SIS=y CONFIG_SATA_SVW=y CONFIG_SATA_ULI=y CONFIG_SATA_VIA=y CONFIG_SATA_VITESSE=y # # PATA SFF controllers with BMDMA # CONFIG_PATA_ALI=y CONFIG_PATA_AMD=y CONFIG_PATA_ARTOP=y CONFIG_PATA_ATIIXP=y CONFIG_PATA_ATP867X=y CONFIG_PATA_CMD64X=y # CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=y # CONFIG_PATA_HPT366 is not set # CONFIG_PATA_HPT37X is not set # CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3 is not set # CONFIG_PATA_IT8213 is not set CONFIG_PATA_IT821X=y CONFIG_PATA_JMICRON=y CONFIG_PATA_MARVELL=y CONFIG_PATA_NETCELL=y # CONFIG_PATA_NINJA32 is not set CONFIG_PATA_NS87415=y CONFIG_PATA_OLDPIIX=y # CONFIG_PATA_OPTIDMA is not set CONFIG_PATA_PDC2027X=y CONFIG_PATA_PDC_OLD=y # CONFIG_PATA_RADISYS is not set CONFIG_PATA_RDC=y CONFIG_PATA_SCH=y CONFIG_PATA_SERVERWORKS=y CONFIG_PATA_SIL680=y CONFIG_PATA_SIS=y CONFIG_PATA_TOSHIBA=y CONFIG_PATA_TRIFLEX=y CONFIG_PATA_VIA=y # CONFIG_PATA_WINBOND is not set # # PIO-only SFF controllers # # CONFIG_PATA_CMD640_PCI is not set CONFIG_PATA_MPIIX=y CONFIG_PATA_NS87410=y # CONFIG_PATA_OPTI is not set CONFIG_PATA_PCMCIA=y CONFIG_PATA_RZ1000=y # # Generic fallback / legacy drivers # # CONFIG_PATA_ACPI is not set CONFIG_ATA_GENERIC=y # CONFIG_PATA_LEGACY is not set CONFIG_MD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_AUTODETECT=y CONFIG_MD_LINEAR=y CONFIG_MD_RAID0=y CONFIG_MD_RAID1=y CONFIG_MD_RAID10=y CONFIG_MD_RAID456=y CONFIG_MD_MULTIPATH=y CONFIG_MD_FAULTY=y # CONFIG_MD_CLUSTER is not set # CONFIG_BCACHE is not set CONFIG_BLK_DEV_DM_BUILTIN=y CONFIG_BLK_DEV_DM=y # CONFIG_DM_MQ_DEFAULT is not set # CONFIG_DM_DEBUG is not set CONFIG_DM_BUFIO=y # CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set CONFIG_DM_BIO_PRISON=y CONFIG_DM_PERSISTENT_DATA=y CONFIG_DM_CRYPT=y CONFIG_DM_SNAPSHOT=y CONFIG_DM_THIN_PROVISIONING=y # CONFIG_DM_CACHE is not set # CONFIG_DM_ERA is not set CONFIG_DM_MIRROR=y CONFIG_DM_LOG_USERSPACE=y CONFIG_DM_RAID=y CONFIG_DM_ZERO=y CONFIG_DM_MULTIPATH=y CONFIG_DM_MULTIPATH_QL=y CONFIG_DM_MULTIPATH_ST=y CONFIG_DM_DELAY=y CONFIG_DM_UEVENT=y CONFIG_DM_FLAKEY=y # CONFIG_DM_VERITY is not set # CONFIG_DM_SWITCH is not set # CONFIG_DM_LOG_WRITES is not set # CONFIG_DM_INTEGRITY is not set CONFIG_TARGET_CORE=y CONFIG_TCM_IBLOCK=y CONFIG_TCM_FILEIO=y CONFIG_TCM_PSCSI=y # CONFIG_TCM_USER2 is not set CONFIG_LOOPBACK_TARGET=y CONFIG_TCM_FC=y CONFIG_ISCSI_TARGET=y # CONFIG_ISCSI_TARGET_CXGB4 is not set # CONFIG_SBP_TARGET is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=y CONFIG_FUSION_FC=y CONFIG_FUSION_SAS=y CONFIG_FUSION_MAX_SGE=128 CONFIG_FUSION_CTL=y CONFIG_FUSION_LAN=y # CONFIG_FUSION_LOGGING is not set # # IEEE 1394 (FireWire) support # CONFIG_FIREWIRE=y CONFIG_FIREWIRE_OHCI=y CONFIG_FIREWIRE_SBP2=y CONFIG_FIREWIRE_NET=y CONFIG_FIREWIRE_NOSY=y CONFIG_MACINTOSH_DRIVERS=y CONFIG_MAC_EMUMOUSEBTN=y CONFIG_NETDEVICES=y CONFIG_MII=y CONFIG_NET_CORE=y CONFIG_BONDING=y CONFIG_DUMMY=y CONFIG_EQUALIZER=y CONFIG_NET_FC=y CONFIG_IFB=y # CONFIG_NET_TEAM is not set CONFIG_MACVLAN=y CONFIG_MACVTAP=y # CONFIG_VXLAN is not set # CONFIG_GENEVE is not set # CONFIG_GTP is not set # CONFIG_MACSEC is not set CONFIG_NETCONSOLE=y CONFIG_NETCONSOLE_DYNAMIC=y CONFIG_NETPOLL=y CONFIG_NET_POLL_CONTROLLER=y CONFIG_TUN=y CONFIG_TAP=y # CONFIG_TUN_VNET_CROSS_LE is not set CONFIG_VETH=y CONFIG_VIRTIO_NET=y # CONFIG_NLMON is not set CONFIG_SUNGEM_PHY=y CONFIG_ARCNET=y CONFIG_ARCNET_1201=y CONFIG_ARCNET_1051=y CONFIG_ARCNET_RAW=y CONFIG_ARCNET_CAP=y CONFIG_ARCNET_COM90xx=y CONFIG_ARCNET_COM90xxIO=y CONFIG_ARCNET_RIM_I=y CONFIG_ARCNET_COM20020=y CONFIG_ARCNET_COM20020_PCI=y CONFIG_ARCNET_COM20020_CS=y CONFIG_ATM_DRIVERS=y CONFIG_ATM_DUMMY=y CONFIG_ATM_TCP=y CONFIG_ATM_LANAI=y CONFIG_ATM_ENI=y # CONFIG_ATM_ENI_DEBUG is not set # CONFIG_ATM_ENI_TUNE_BURST is not set CONFIG_ATM_FIRESTREAM=y CONFIG_ATM_ZATM=y # CONFIG_ATM_ZATM_DEBUG is not set CONFIG_ATM_NICSTAR=y CONFIG_ATM_NICSTAR_USE_SUNI=y CONFIG_ATM_NICSTAR_USE_IDT77105=y CONFIG_ATM_IDT77252=y # CONFIG_ATM_IDT77252_DEBUG is not set # CONFIG_ATM_IDT77252_RCV_ALL is not set CONFIG_ATM_IDT77252_USE_SUNI=y CONFIG_ATM_AMBASSADOR=y # CONFIG_ATM_AMBASSADOR_DEBUG is not set CONFIG_ATM_HORIZON=y # CONFIG_ATM_HORIZON_DEBUG is not set CONFIG_ATM_IA=y # CONFIG_ATM_IA_DEBUG is not set CONFIG_ATM_FORE200E=y # CONFIG_ATM_FORE200E_USE_TASKLET is not set CONFIG_ATM_FORE200E_TX_RETRY=16 CONFIG_ATM_FORE200E_DEBUG=0 CONFIG_ATM_HE=y CONFIG_ATM_HE_USE_SUNI=y CONFIG_ATM_SOLOS=y # # CAIF transport drivers # # # Distributed Switch Architecture drivers # CONFIG_ETHERNET=y CONFIG_MDIO=y CONFIG_NET_VENDOR_3COM=y CONFIG_PCMCIA_3C574=y CONFIG_PCMCIA_3C589=y CONFIG_VORTEX=y CONFIG_TYPHOON=y CONFIG_NET_VENDOR_ADAPTEC=y CONFIG_ADAPTEC_STARFIRE=y CONFIG_NET_VENDOR_AGERE=y CONFIG_ET131X=y CONFIG_NET_VENDOR_ALACRITECH=y # CONFIG_SLICOSS is not set CONFIG_NET_VENDOR_ALTEON=y CONFIG_ACENIC=y # CONFIG_ACENIC_OMIT_TIGON_I is not set # CONFIG_ALTERA_TSE is not set CONFIG_NET_VENDOR_AMAZON=y # CONFIG_ENA_ETHERNET is not set CONFIG_NET_VENDOR_AMD=y CONFIG_AMD8111_ETH=y CONFIG_PCNET32=y CONFIG_PCMCIA_NMCLAN=y # CONFIG_AMD_XGBE is not set # CONFIG_AMD_XGBE_HAVE_ECC is not set CONFIG_NET_VENDOR_AQUANTIA=y # CONFIG_AQTION is not set CONFIG_NET_VENDOR_ARC=y CONFIG_NET_VENDOR_ATHEROS=y CONFIG_ATL2=y CONFIG_ATL1=y CONFIG_ATL1E=y CONFIG_ATL1C=y # CONFIG_ALX is not set # CONFIG_NET_VENDOR_AURORA is not set CONFIG_NET_CADENCE=y # CONFIG_MACB is not set CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=y CONFIG_B44_PCI_AUTOSELECT=y CONFIG_B44_PCICORE_AUTOSELECT=y CONFIG_B44_PCI=y # CONFIG_BCMGENET is not set CONFIG_BNX2=y CONFIG_CNIC=y CONFIG_TIGON3=y CONFIG_TIGON3_HWMON=y CONFIG_BNX2X=y CONFIG_BNX2X_SRIOV=y # CONFIG_BNXT is not set CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=y CONFIG_NET_VENDOR_CAVIUM=y # CONFIG_THUNDER_NIC_PF is not set # CONFIG_THUNDER_NIC_VF is not set # CONFIG_THUNDER_NIC_BGX is not set # CONFIG_THUNDER_NIC_RGX is not set # CONFIG_LIQUIDIO is not set # CONFIG_LIQUIDIO_VF is not set CONFIG_NET_VENDOR_CHELSIO=y CONFIG_CHELSIO_T1=y CONFIG_CHELSIO_T1_1G=y CONFIG_CHELSIO_T3=y CONFIG_CHELSIO_T4=y # CONFIG_CHELSIO_T4_DCB is not set CONFIG_CHELSIO_T4VF=y CONFIG_CHELSIO_LIB=y CONFIG_NET_VENDOR_CISCO=y CONFIG_ENIC=y # CONFIG_CX_ECAT is not set CONFIG_DNET=y CONFIG_NET_VENDOR_DEC=y CONFIG_NET_TULIP=y CONFIG_DE2104X=y CONFIG_DE2104X_DSL=0 CONFIG_TULIP=y # CONFIG_TULIP_MWI is not set # CONFIG_TULIP_MMIO is not set CONFIG_TULIP_NAPI=y CONFIG_TULIP_NAPI_HW_MITIGATION=y CONFIG_DE4X5=y CONFIG_WINBOND_840=y CONFIG_DM9102=y CONFIG_ULI526X=y CONFIG_PCMCIA_XIRCOM=y CONFIG_NET_VENDOR_DLINK=y CONFIG_DL2K=y CONFIG_SUNDANCE=y # CONFIG_SUNDANCE_MMIO is not set CONFIG_NET_VENDOR_EMULEX=y CONFIG_BE2NET=y CONFIG_BE2NET_HWMON=y CONFIG_NET_VENDOR_EZCHIP=y CONFIG_NET_VENDOR_EXAR=y CONFIG_S2IO=y CONFIG_VXGE=y # CONFIG_VXGE_DEBUG_TRACE_ALL is not set CONFIG_NET_VENDOR_FUJITSU=y CONFIG_PCMCIA_FMVJ18X=y CONFIG_NET_VENDOR_HP=y CONFIG_HP100=y CONFIG_NET_VENDOR_INTEL=y CONFIG_E100=y CONFIG_E1000=y CONFIG_E1000E=y CONFIG_E1000E_HWTS=y CONFIG_IGB=y CONFIG_IGB_HWMON=y CONFIG_IGB_DCA=y CONFIG_IGBVF=y CONFIG_IXGB=y CONFIG_IXGBE=y CONFIG_IXGBE_HWMON=y CONFIG_IXGBE_DCA=y CONFIG_IXGBE_DCB=y CONFIG_IXGBEVF=y # CONFIG_I40E is not set # CONFIG_I40EVF is not set # CONFIG_FM10K is not set CONFIG_NET_VENDOR_I825XX=y CONFIG_JME=y CONFIG_NET_VENDOR_MARVELL=y # CONFIG_MVMDIO is not set CONFIG_SKGE=y CONFIG_SKGE_DEBUG=y CONFIG_SKGE_GENESIS=y CONFIG_SKY2=y CONFIG_SKY2_DEBUG=y CONFIG_NET_VENDOR_MELLANOX=y CONFIG_MLX4_EN=y CONFIG_MLX4_EN_DCB=y CONFIG_MLX4_CORE=y CONFIG_MLX4_DEBUG=y # CONFIG_MLX5_CORE is not set # CONFIG_MLXSW_CORE is not set CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=y CONFIG_KS8851=y CONFIG_KS8851_MLL=y CONFIG_KSZ884X_PCI=y CONFIG_NET_VENDOR_MICROCHIP=y CONFIG_ENC28J60=y # CONFIG_ENC28J60_WRITEVERIFY is not set # CONFIG_ENCX24J600 is not set CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=y CONFIG_MYRI10GE_DCA=y CONFIG_FEALNX=y CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NATSEMI=y CONFIG_NS83820=y CONFIG_NET_VENDOR_NETRONOME=y # CONFIG_NFP is not set CONFIG_NET_VENDOR_8390=y CONFIG_PCMCIA_AXNET=y CONFIG_NE2K_PCI=y CONFIG_PCMCIA_PCNET=y CONFIG_NET_VENDOR_NVIDIA=y CONFIG_FORCEDETH=y CONFIG_NET_VENDOR_OKI=y CONFIG_ETHOC=y CONFIG_NET_PACKET_ENGINE=y CONFIG_HAMACHI=y CONFIG_YELLOWFIN=y CONFIG_NET_VENDOR_QLOGIC=y CONFIG_QLA3XXX=y CONFIG_QLCNIC=y CONFIG_QLCNIC_SRIOV=y CONFIG_QLCNIC_DCB=y CONFIG_QLCNIC_HWMON=y CONFIG_QLGE=y CONFIG_NETXEN_NIC=y # CONFIG_QED is not set CONFIG_NET_VENDOR_QUALCOMM=y # CONFIG_QCOM_EMAC is not set CONFIG_NET_VENDOR_REALTEK=y CONFIG_ATP=y CONFIG_8139CP=y CONFIG_8139TOO=y CONFIG_8139TOO_PIO=y CONFIG_8139TOO_TUNE_TWISTER=y CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set CONFIG_R8169=y CONFIG_NET_VENDOR_RENESAS=y CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=y CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SAMSUNG=y # CONFIG_SXGBE_ETH is not set CONFIG_NET_VENDOR_SEEQ=y CONFIG_NET_VENDOR_SILAN=y CONFIG_SC92031=y CONFIG_NET_VENDOR_SIS=y CONFIG_SIS900=y CONFIG_SIS190=y CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_SFC=y CONFIG_SFC_MTD=y CONFIG_SFC_MCDI_MON=y CONFIG_SFC_SRIOV=y CONFIG_SFC_MCDI_LOGGING=y # CONFIG_SFC_FALCON is not set CONFIG_NET_VENDOR_SMSC=y CONFIG_PCMCIA_SMC91C92=y CONFIG_EPIC100=y # CONFIG_SMSC911X is not set CONFIG_SMSC9420=y CONFIG_NET_VENDOR_STMICRO=y # CONFIG_STMMAC_ETH is not set CONFIG_NET_VENDOR_SUN=y CONFIG_HAPPYMEAL=y CONFIG_SUNGEM=y CONFIG_CASSINI=y CONFIG_NIU=y CONFIG_NET_VENDOR_TEHUTI=y CONFIG_TEHUTI=y CONFIG_NET_VENDOR_TI=y # CONFIG_TI_CPSW_ALE is not set CONFIG_TLAN=y CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=y # CONFIG_VIA_RHINE_MMIO is not set CONFIG_VIA_VELOCITY=y CONFIG_NET_VENDOR_WIZNET=y # CONFIG_WIZNET_W5100 is not set # CONFIG_WIZNET_W5300 is not set CONFIG_NET_VENDOR_XIRCOM=y CONFIG_PCMCIA_XIRC2PS=y CONFIG_NET_VENDOR_SYNOPSYS=y # CONFIG_DWC_XLGMAC is not set CONFIG_FDDI=y CONFIG_DEFXX=y # CONFIG_DEFXX_MMIO is not set CONFIG_SKFP=y CONFIG_HIPPI=y CONFIG_ROADRUNNER=y # CONFIG_ROADRUNNER_LARGE_RINGS is not set CONFIG_NET_SB1000=y CONFIG_MDIO_DEVICE=y CONFIG_MDIO_BITBANG=y # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_THUNDER is not set CONFIG_PHYLIB=y # CONFIG_LED_TRIGGER_PHY is not set # # MII PHY device drivers # # CONFIG_AMD_PHY is not set # CONFIG_AQUANTIA_PHY is not set # CONFIG_AT803X_PHY is not set # CONFIG_BCM7XXX_PHY is not set # CONFIG_BCM87XX_PHY is not set CONFIG_BCM_NET_PHYLIB=y CONFIG_BROADCOM_PHY=y CONFIG_CICADA_PHY=y # CONFIG_CORTINA_PHY is not set CONFIG_DAVICOM_PHY=y # CONFIG_DP83848_PHY is not set # CONFIG_DP83867_PHY is not set # CONFIG_FIXED_PHY is not set CONFIG_ICPLUS_PHY=y # CONFIG_INTEL_XWAY_PHY is not set CONFIG_LSI_ET1011C_PHY=y CONFIG_LXT_PHY=y CONFIG_MARVELL_PHY=y # CONFIG_MARVELL_10G_PHY is not set CONFIG_MICREL_PHY=y # CONFIG_MICROCHIP_PHY is not set # CONFIG_MICROSEMI_PHY is not set CONFIG_NATIONAL_PHY=y CONFIG_QSEMI_PHY=y CONFIG_REALTEK_PHY=y CONFIG_SMSC_PHY=y CONFIG_STE10XP=y # CONFIG_TERANETICS_PHY is not set CONFIG_VITESSE_PHY=y # CONFIG_XILINX_GMII2RGMII is not set # CONFIG_MICREL_KS8995MA is not set CONFIG_PLIP=y CONFIG_PPP=y CONFIG_PPP_BSDCOMP=y CONFIG_PPP_DEFLATE=y CONFIG_PPP_FILTER=y CONFIG_PPP_MPPE=y CONFIG_PPP_MULTILINK=y CONFIG_PPPOATM=y CONFIG_PPPOE=y CONFIG_PPTP=y CONFIG_PPPOL2TP=y CONFIG_PPP_ASYNC=y CONFIG_PPP_SYNC_TTY=y CONFIG_SLIP=y CONFIG_SLHC=y CONFIG_SLIP_COMPRESSED=y CONFIG_SLIP_SMART=y CONFIG_SLIP_MODE_SLIP6=y CONFIG_USB_NET_DRIVERS=y CONFIG_USB_CATC=y CONFIG_USB_KAWETH=y CONFIG_USB_PEGASUS=y CONFIG_USB_RTL8150=y # CONFIG_USB_RTL8152 is not set # CONFIG_USB_LAN78XX is not set CONFIG_USB_USBNET=y CONFIG_USB_NET_AX8817X=y CONFIG_USB_NET_AX88179_178A=y CONFIG_USB_NET_CDCETHER=y CONFIG_USB_NET_CDC_EEM=y CONFIG_USB_NET_CDC_NCM=y # CONFIG_USB_NET_HUAWEI_CDC_NCM is not set # CONFIG_USB_NET_CDC_MBIM is not set CONFIG_USB_NET_DM9601=y # CONFIG_USB_NET_SR9700 is not set # CONFIG_USB_NET_SR9800 is not set CONFIG_USB_NET_SMSC75XX=y CONFIG_USB_NET_SMSC95XX=y CONFIG_USB_NET_GL620A=y CONFIG_USB_NET_NET1080=y CONFIG_USB_NET_PLUSB=y CONFIG_USB_NET_MCS7830=y CONFIG_USB_NET_RNDIS_HOST=y CONFIG_USB_NET_CDC_SUBSET_ENABLE=y CONFIG_USB_NET_CDC_SUBSET=y CONFIG_USB_ALI_M5632=y CONFIG_USB_AN2720=y CONFIG_USB_BELKIN=y CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=y CONFIG_USB_NET_CX82310_ETH=y CONFIG_USB_NET_KALMIA=y # CONFIG_USB_NET_QMI_WWAN is not set CONFIG_USB_HSO=y CONFIG_USB_NET_INT51X1=y CONFIG_USB_CDC_PHONET=y CONFIG_USB_IPHETH=y CONFIG_USB_SIERRA_NET=y CONFIG_USB_VL600=y # CONFIG_USB_NET_CH9200 is not set CONFIG_WLAN=y CONFIG_WLAN_VENDOR_ADMTEK=y CONFIG_ADM8211=y CONFIG_ATH_COMMON=y CONFIG_WLAN_VENDOR_ATH=y # CONFIG_ATH_DEBUG is not set CONFIG_ATH5K=y # CONFIG_ATH5K_DEBUG is not set # CONFIG_ATH5K_TRACER is not set CONFIG_ATH5K_PCI=y CONFIG_ATH9K_HW=y CONFIG_ATH9K_COMMON=y CONFIG_ATH9K_BTCOEX_SUPPORT=y CONFIG_ATH9K=y CONFIG_ATH9K_PCI=y # CONFIG_ATH9K_AHB is not set # CONFIG_ATH9K_DEBUGFS is not set # CONFIG_ATH9K_DYNACK is not set # CONFIG_ATH9K_WOW is not set CONFIG_ATH9K_RFKILL=y # CONFIG_ATH9K_CHANNEL_CONTEXT is not set CONFIG_ATH9K_PCOEM=y CONFIG_ATH9K_HTC=y # CONFIG_ATH9K_HTC_DEBUGFS is not set # CONFIG_ATH9K_HWRNG is not set CONFIG_CARL9170=y CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_WPC=y # CONFIG_CARL9170_HWRNG is not set # CONFIG_ATH6KL is not set # CONFIG_AR5523 is not set # CONFIG_WIL6210 is not set # CONFIG_ATH10K is not set # CONFIG_WCN36XX is not set CONFIG_WLAN_VENDOR_ATMEL=y CONFIG_ATMEL=y CONFIG_PCI_ATMEL=y CONFIG_PCMCIA_ATMEL=y CONFIG_AT76C50X_USB=y CONFIG_WLAN_VENDOR_BROADCOM=y CONFIG_B43=y CONFIG_B43_BCMA=y CONFIG_B43_SSB=y CONFIG_B43_BUSES_BCMA_AND_SSB=y # CONFIG_B43_BUSES_BCMA is not set # CONFIG_B43_BUSES_SSB is not set CONFIG_B43_PCI_AUTOSELECT=y CONFIG_B43_PCICORE_AUTOSELECT=y CONFIG_B43_SDIO=y CONFIG_B43_BCMA_PIO=y CONFIG_B43_PIO=y CONFIG_B43_PHY_G=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_HT=y CONFIG_B43_LEDS=y CONFIG_B43_HWRNG=y # CONFIG_B43_DEBUG is not set CONFIG_B43LEGACY=y CONFIG_B43LEGACY_PCI_AUTOSELECT=y CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y CONFIG_B43LEGACY_LEDS=y CONFIG_B43LEGACY_HWRNG=y CONFIG_B43LEGACY_DEBUG=y CONFIG_B43LEGACY_DMA=y CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y # CONFIG_B43LEGACY_DMA_MODE is not set # CONFIG_B43LEGACY_PIO_MODE is not set CONFIG_BRCMUTIL=y CONFIG_BRCMSMAC=y # CONFIG_BRCMFMAC is not set # CONFIG_BRCM_TRACING is not set # CONFIG_BRCMDBG is not set CONFIG_WLAN_VENDOR_CISCO=y CONFIG_AIRO=y CONFIG_AIRO_CS=y CONFIG_WLAN_VENDOR_INTEL=y # CONFIG_IPW2100 is not set CONFIG_IPW2200=y CONFIG_IPW2200_MONITOR=y CONFIG_IPW2200_RADIOTAP=y CONFIG_IPW2200_PROMISCUOUS=y CONFIG_IPW2200_QOS=y # CONFIG_IPW2200_DEBUG is not set CONFIG_LIBIPW=y # CONFIG_LIBIPW_DEBUG is not set CONFIG_IWLEGACY=y CONFIG_IWL4965=y CONFIG_IWL3945=y # # iwl3945 / iwl4965 Debugging Options # # CONFIG_IWLEGACY_DEBUG is not set CONFIG_IWLWIFI=y CONFIG_IWLWIFI_LEDS=y # CONFIG_IWLDVM is not set # CONFIG_IWLMVM is not set # # WARNING: iwlwifi is useless without IWLDVM or IWLMVM # # # Debugging Options # # CONFIG_IWLWIFI_DEBUG is not set # CONFIG_IWLWIFI_DEVICE_TRACING is not set CONFIG_WLAN_VENDOR_INTERSIL=y CONFIG_HOSTAP=y CONFIG_HOSTAP_FIRMWARE=y # CONFIG_HOSTAP_FIRMWARE_NVRAM is not set CONFIG_HOSTAP_PLX=y CONFIG_HOSTAP_PCI=y CONFIG_HOSTAP_CS=y CONFIG_HERMES=y # CONFIG_HERMES_PRISM is not set CONFIG_HERMES_CACHE_FW_ON_INIT=y CONFIG_PLX_HERMES=y CONFIG_TMD_HERMES=y CONFIG_NORTEL_HERMES=y CONFIG_PCMCIA_HERMES=y CONFIG_PCMCIA_SPECTRUM=y CONFIG_ORINOCO_USB=y CONFIG_P54_COMMON=y CONFIG_P54_USB=y CONFIG_P54_PCI=y CONFIG_P54_SPI=y # CONFIG_P54_SPI_DEFAULT_EEPROM is not set CONFIG_P54_LEDS=y # CONFIG_PRISM54 is not set CONFIG_WLAN_VENDOR_MARVELL=y CONFIG_LIBERTAS=y CONFIG_LIBERTAS_USB=y CONFIG_LIBERTAS_CS=y CONFIG_LIBERTAS_SDIO=y CONFIG_LIBERTAS_SPI=y # CONFIG_LIBERTAS_DEBUG is not set CONFIG_LIBERTAS_MESH=y CONFIG_LIBERTAS_THINFIRM=y # CONFIG_LIBERTAS_THINFIRM_DEBUG is not set CONFIG_LIBERTAS_THINFIRM_USB=y CONFIG_MWIFIEX=y CONFIG_MWIFIEX_SDIO=y CONFIG_MWIFIEX_PCIE=y # CONFIG_MWIFIEX_USB is not set CONFIG_MWL8K=y CONFIG_WLAN_VENDOR_MEDIATEK=y # CONFIG_MT7601U is not set CONFIG_WLAN_VENDOR_RALINK=y CONFIG_RT2X00=y CONFIG_RT2400PCI=y CONFIG_RT2500PCI=y CONFIG_RT61PCI=y CONFIG_RT2800PCI=y CONFIG_RT2800PCI_RT33XX=y CONFIG_RT2800PCI_RT35XX=y CONFIG_RT2800PCI_RT53XX=y CONFIG_RT2800PCI_RT3290=y CONFIG_RT2500USB=y CONFIG_RT73USB=y CONFIG_RT2800USB=y CONFIG_RT2800USB_RT33XX=y CONFIG_RT2800USB_RT35XX=y # CONFIG_RT2800USB_RT3573 is not set CONFIG_RT2800USB_RT53XX=y # CONFIG_RT2800USB_RT55XX is not set # CONFIG_RT2800USB_UNKNOWN is not set CONFIG_RT2800_LIB=y CONFIG_RT2800_LIB_MMIO=y CONFIG_RT2X00_LIB_MMIO=y CONFIG_RT2X00_LIB_PCI=y CONFIG_RT2X00_LIB_USB=y CONFIG_RT2X00_LIB=y CONFIG_RT2X00_LIB_FIRMWARE=y CONFIG_RT2X00_LIB_CRYPTO=y CONFIG_RT2X00_LIB_LEDS=y # CONFIG_RT2X00_DEBUG is not set CONFIG_WLAN_VENDOR_REALTEK=y CONFIG_RTL8180=y CONFIG_RTL8187=y CONFIG_RTL8187_LEDS=y CONFIG_RTL_CARDS=y CONFIG_RTL8192CE=y CONFIG_RTL8192SE=y CONFIG_RTL8192DE=y # CONFIG_RTL8723AE is not set # CONFIG_RTL8723BE is not set # CONFIG_RTL8188EE is not set # CONFIG_RTL8192EE is not set # CONFIG_RTL8821AE is not set CONFIG_RTL8192CU=y CONFIG_RTLWIFI=y CONFIG_RTLWIFI_PCI=y CONFIG_RTLWIFI_USB=y CONFIG_RTLWIFI_DEBUG=y CONFIG_RTL8192C_COMMON=y # CONFIG_RTL8XXXU is not set CONFIG_WLAN_VENDOR_RSI=y # CONFIG_RSI_91X is not set CONFIG_WLAN_VENDOR_ST=y # CONFIG_CW1200 is not set CONFIG_WLAN_VENDOR_TI=y # CONFIG_WL1251 is not set # CONFIG_WL12XX is not set # CONFIG_WL18XX is not set # CONFIG_WLCORE is not set CONFIG_WLAN_VENDOR_ZYDAS=y CONFIG_USB_ZD1201=y CONFIG_ZD1211RW=y # CONFIG_ZD1211RW_DEBUG is not set CONFIG_WLAN_VENDOR_QUANTENNA=y # CONFIG_QTNFMAC_PEARL_PCIE is not set CONFIG_PCMCIA_RAYCS=y CONFIG_PCMCIA_WL3501=y CONFIG_MAC80211_HWSIM=y CONFIG_USB_NET_RNDIS_WLAN=y # # WiMAX Wireless Broadband devices # CONFIG_WIMAX_I2400M=y CONFIG_WIMAX_I2400M_USB=y CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 CONFIG_WAN=y CONFIG_LANMEDIA=y CONFIG_HDLC=y CONFIG_HDLC_RAW=y CONFIG_HDLC_RAW_ETH=y CONFIG_HDLC_CISCO=y CONFIG_HDLC_FR=y CONFIG_HDLC_PPP=y # CONFIG_HDLC_X25 is not set CONFIG_PCI200SYN=y CONFIG_WANXL=y # CONFIG_PC300TOO is not set CONFIG_FARSYNC=y CONFIG_DSCC4=m CONFIG_DSCC4_PCISYNC=y CONFIG_DSCC4_PCI_RST=y CONFIG_DLCI=y CONFIG_DLCI_MAX=8 CONFIG_SBNI=y # CONFIG_SBNI_MULTILINE is not set CONFIG_IEEE802154_DRIVERS=y CONFIG_XEN_NETDEV_FRONTEND=y CONFIG_XEN_NETDEV_BACKEND=y CONFIG_VMXNET3=y # CONFIG_FUJITSU_ES is not set CONFIG_HYPERV_NET=y CONFIG_ISDN=y # CONFIG_ISDN_I4L is not set CONFIG_ISDN_CAPI=y CONFIG_CAPI_TRACE=y CONFIG_ISDN_CAPI_CAPI20=y CONFIG_ISDN_CAPI_MIDDLEWARE=y # # CAPI hardware drivers # CONFIG_CAPI_AVM=y CONFIG_ISDN_DRV_AVMB1_B1PCI=y CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=y CONFIG_ISDN_DRV_AVMB1_AVM_CS=y CONFIG_ISDN_DRV_AVMB1_T1PCI=y CONFIG_ISDN_DRV_AVMB1_C4=y # CONFIG_CAPI_EICON is not set CONFIG_ISDN_DRV_GIGASET=y CONFIG_GIGASET_CAPI=y # CONFIG_GIGASET_DUMMYLL is not set CONFIG_GIGASET_BASE=y CONFIG_GIGASET_M105=y CONFIG_GIGASET_M101=y # CONFIG_GIGASET_DEBUG is not set CONFIG_HYSDN=m CONFIG_HYSDN_CAPI=y CONFIG_MISDN=y CONFIG_MISDN_DSP=y CONFIG_MISDN_L1OIP=y # # mISDN hardware drivers # CONFIG_MISDN_HFCPCI=y CONFIG_MISDN_HFCMULTI=y CONFIG_MISDN_HFCUSB=y CONFIG_MISDN_AVMFRITZ=y CONFIG_MISDN_SPEEDFAX=y CONFIG_MISDN_INFINEON=y CONFIG_MISDN_W6692=y # CONFIG_MISDN_NETJET is not set CONFIG_MISDN_IPAC=y CONFIG_MISDN_ISAR=y # CONFIG_NVM is not set # # Input device support # CONFIG_INPUT=y CONFIG_INPUT_LEDS=y CONFIG_INPUT_FF_MEMLESS=y CONFIG_INPUT_POLLDEV=y CONFIG_INPUT_SPARSEKMAP=y CONFIG_INPUT_MATRIXKMAP=y # # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_JOYDEV=y CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ADP5588=y # CONFIG_KEYBOARD_ADP5589 is not set CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_QT1070 is not set CONFIG_KEYBOARD_QT2160=y # CONFIG_KEYBOARD_DLINK_DIR685 is not set CONFIG_KEYBOARD_LKKBD=y # CONFIG_KEYBOARD_GPIO is not set # CONFIG_KEYBOARD_GPIO_POLLED is not set # CONFIG_KEYBOARD_TCA6416 is not set # CONFIG_KEYBOARD_TCA8418 is not set # CONFIG_KEYBOARD_MATRIX is not set CONFIG_KEYBOARD_LM8323=y # CONFIG_KEYBOARD_LM8333 is not set CONFIG_KEYBOARD_MAX7359=y # CONFIG_KEYBOARD_MCS is not set # CONFIG_KEYBOARD_MPR121 is not set CONFIG_KEYBOARD_NEWTON=y CONFIG_KEYBOARD_OPENCORES=y # CONFIG_KEYBOARD_SAMSUNG is not set CONFIG_KEYBOARD_STOWAWAY=y CONFIG_KEYBOARD_SUNKBD=y # CONFIG_KEYBOARD_TM2_TOUCHKEY is not set CONFIG_KEYBOARD_XTKBD=y CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=y CONFIG_MOUSE_PS2_ALPS=y CONFIG_MOUSE_PS2_BYD=y CONFIG_MOUSE_PS2_LOGIPS2PP=y CONFIG_MOUSE_PS2_SYNAPTICS=y CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y CONFIG_MOUSE_PS2_CYPRESS=y 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_FOCALTECH=y # CONFIG_MOUSE_PS2_VMMOUSE is not set CONFIG_MOUSE_PS2_SMBUS=y CONFIG_MOUSE_SERIAL=y CONFIG_MOUSE_APPLETOUCH=y CONFIG_MOUSE_BCM5974=y # CONFIG_MOUSE_CYAPA is not set # CONFIG_MOUSE_ELAN_I2C is not set CONFIG_MOUSE_VSXXXAA=y # CONFIG_MOUSE_GPIO is not set CONFIG_MOUSE_SYNAPTICS_I2C=y # CONFIG_MOUSE_SYNAPTICS_USB is not set CONFIG_INPUT_JOYSTICK=y CONFIG_JOYSTICK_ANALOG=y CONFIG_JOYSTICK_A3D=y CONFIG_JOYSTICK_ADI=y CONFIG_JOYSTICK_COBRA=y CONFIG_JOYSTICK_GF2K=y CONFIG_JOYSTICK_GRIP=y CONFIG_JOYSTICK_GRIP_MP=y CONFIG_JOYSTICK_GUILLEMOT=y CONFIG_JOYSTICK_INTERACT=y CONFIG_JOYSTICK_SIDEWINDER=y CONFIG_JOYSTICK_TMDC=y CONFIG_JOYSTICK_IFORCE=y CONFIG_JOYSTICK_IFORCE_USB=y CONFIG_JOYSTICK_IFORCE_232=y CONFIG_JOYSTICK_WARRIOR=y CONFIG_JOYSTICK_MAGELLAN=y CONFIG_JOYSTICK_SPACEORB=y CONFIG_JOYSTICK_SPACEBALL=y CONFIG_JOYSTICK_STINGER=y CONFIG_JOYSTICK_TWIDJOY=y CONFIG_JOYSTICK_ZHENHUA=y CONFIG_JOYSTICK_DB9=y CONFIG_JOYSTICK_GAMECON=y CONFIG_JOYSTICK_TURBOGRAFX=y # CONFIG_JOYSTICK_AS5011 is not set CONFIG_JOYSTICK_JOYDUMP=y CONFIG_JOYSTICK_XPAD=y CONFIG_JOYSTICK_XPAD_FF=y CONFIG_JOYSTICK_XPAD_LEDS=y CONFIG_JOYSTICK_WALKERA0701=y # CONFIG_JOYSTICK_PSXPAD_SPI is not set CONFIG_INPUT_TABLET=y CONFIG_TABLET_USB_ACECAD=y CONFIG_TABLET_USB_AIPTEK=y CONFIG_TABLET_USB_GTCO=y CONFIG_TABLET_USB_HANWANG=y CONFIG_TABLET_USB_KBTAB=y # CONFIG_TABLET_USB_PEGASUS is not set # CONFIG_TABLET_SERIAL_WACOM4 is not set CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_PROPERTIES=y CONFIG_TOUCHSCREEN_ADS7846=y CONFIG_TOUCHSCREEN_AD7877=y CONFIG_TOUCHSCREEN_AD7879=y CONFIG_TOUCHSCREEN_AD7879_I2C=y # CONFIG_TOUCHSCREEN_AD7879_SPI is not set # CONFIG_TOUCHSCREEN_ATMEL_MXT is not set # CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set # CONFIG_TOUCHSCREEN_BU21013 is not set # CONFIG_TOUCHSCREEN_CY8CTMG110 is not set # CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set # CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set CONFIG_TOUCHSCREEN_DYNAPRO=y CONFIG_TOUCHSCREEN_HAMPSHIRE=y CONFIG_TOUCHSCREEN_EETI=y # CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set CONFIG_TOUCHSCREEN_FUJITSU=y # CONFIG_TOUCHSCREEN_GOODIX is not set # CONFIG_TOUCHSCREEN_ILI210X is not set CONFIG_TOUCHSCREEN_GUNZE=y # CONFIG_TOUCHSCREEN_EKTF2127 is not set # CONFIG_TOUCHSCREEN_ELAN is not set CONFIG_TOUCHSCREEN_ELO=y CONFIG_TOUCHSCREEN_WACOM_W8001=y # CONFIG_TOUCHSCREEN_WACOM_I2C is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set CONFIG_TOUCHSCREEN_MCS5000=y # CONFIG_TOUCHSCREEN_MMS114 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set CONFIG_TOUCHSCREEN_MTOUCH=y CONFIG_TOUCHSCREEN_INEXIO=y CONFIG_TOUCHSCREEN_MK712=y CONFIG_TOUCHSCREEN_PENMOUNT=y # CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set CONFIG_TOUCHSCREEN_TOUCHRIGHT=y CONFIG_TOUCHSCREEN_TOUCHWIN=y # CONFIG_TOUCHSCREEN_PIXCIR is not set # CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set CONFIG_TOUCHSCREEN_WM97XX=y CONFIG_TOUCHSCREEN_WM9705=y CONFIG_TOUCHSCREEN_WM9712=y CONFIG_TOUCHSCREEN_WM9713=y CONFIG_TOUCHSCREEN_USB_COMPOSITE=y CONFIG_TOUCHSCREEN_USB_EGALAX=y CONFIG_TOUCHSCREEN_USB_PANJIT=y CONFIG_TOUCHSCREEN_USB_3M=y CONFIG_TOUCHSCREEN_USB_ITM=y CONFIG_TOUCHSCREEN_USB_ETURBO=y CONFIG_TOUCHSCREEN_USB_GUNZE=y CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y CONFIG_TOUCHSCREEN_USB_IRTOUCH=y CONFIG_TOUCHSCREEN_USB_IDEALTEK=y CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y CONFIG_TOUCHSCREEN_USB_GOTOP=y CONFIG_TOUCHSCREEN_USB_JASTEC=y CONFIG_TOUCHSCREEN_USB_ELO=y CONFIG_TOUCHSCREEN_USB_E2I=y CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y CONFIG_TOUCHSCREEN_USB_NEXIO=y CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y CONFIG_TOUCHSCREEN_TOUCHIT213=y # CONFIG_TOUCHSCREEN_TSC_SERIO is not set # CONFIG_TOUCHSCREEN_TSC2004 is not set # CONFIG_TOUCHSCREEN_TSC2005 is not set CONFIG_TOUCHSCREEN_TSC2007=y # CONFIG_TOUCHSCREEN_RM_TS is not set # CONFIG_TOUCHSCREEN_SILEAD is not set # CONFIG_TOUCHSCREEN_SIS_I2C is not set # CONFIG_TOUCHSCREEN_ST1232 is not set # CONFIG_TOUCHSCREEN_STMFTS is not set # CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set # CONFIG_TOUCHSCREEN_SX8654 is not set CONFIG_TOUCHSCREEN_TPS6507X=y # CONFIG_TOUCHSCREEN_ZET6223 is not set # CONFIG_TOUCHSCREEN_ZFORCE is not set # CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set CONFIG_INPUT_MISC=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_E3X0_BUTTON is not set CONFIG_INPUT_PCSPKR=y # CONFIG_INPUT_MMA8450 is not set CONFIG_INPUT_APANEL=y # CONFIG_INPUT_GP2A is not set # CONFIG_INPUT_GPIO_BEEPER is not set # CONFIG_INPUT_GPIO_TILT_POLLED is not set # CONFIG_INPUT_GPIO_DECODER is not set CONFIG_INPUT_ATLAS_BTNS=y CONFIG_INPUT_ATI_REMOTE2=y CONFIG_INPUT_KEYSPAN_REMOTE=y # CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=y CONFIG_INPUT_YEALINK=y CONFIG_INPUT_CM109=y # CONFIG_INPUT_REGULATOR_HAPTIC is not set CONFIG_INPUT_UINPUT=y CONFIG_INPUT_PCF50633_PMU=y # CONFIG_INPUT_PCF8574 is not set # CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set # CONFIG_INPUT_ADXL34X is not set # CONFIG_INPUT_IMS_PCU is not set # CONFIG_INPUT_CMA3000 is not set CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y # CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set # CONFIG_INPUT_DRV260X_HAPTICS is not set # CONFIG_INPUT_DRV2665_HAPTICS is not set # CONFIG_INPUT_DRV2667_HAPTICS is not set # CONFIG_RMI4_CORE is not set # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=y CONFIG_SERIO_CT82C710=y CONFIG_SERIO_PARKBD=y CONFIG_SERIO_PCIPS2=y CONFIG_SERIO_LIBPS2=y CONFIG_SERIO_RAW=y CONFIG_SERIO_ALTERA_PS2=y # CONFIG_SERIO_PS2MULT is not set # CONFIG_SERIO_ARC_PS2 is not set CONFIG_HYPERV_KEYBOARD=y # CONFIG_USERIO is not set CONFIG_GAMEPORT=y CONFIG_GAMEPORT_NS558=y CONFIG_GAMEPORT_L4=y CONFIG_GAMEPORT_EMU10K1=y CONFIG_GAMEPORT_FM801=y # # Character devices # CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y # CONFIG_LEGACY_PTYS is not set CONFIG_SERIAL_NONSTANDARD=y CONFIG_ROCKETPORT=y CONFIG_CYCLADES=y # CONFIG_CYZ_INTR is not set CONFIG_MOXA_INTELLIO=y CONFIG_MOXA_SMARTIO=y CONFIG_SYNCLINK=y CONFIG_SYNCLINKMP=y CONFIG_SYNCLINK_GT=y CONFIG_NOZOMI=y CONFIG_ISI=y CONFIG_N_HDLC=y CONFIG_N_GSM=y # CONFIG_TRACE_SINK is not set CONFIG_DEVMEM=y # CONFIG_DEVKMEM is not set # # Serial drivers # CONFIG_SERIAL_EARLYCON=y CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y CONFIG_SERIAL_8250_PNP=y # CONFIG_SERIAL_8250_FINTEK is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_EXAR=y CONFIG_SERIAL_8250_CS=y CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y # CONFIG_SERIAL_8250_FSL is not set # CONFIG_SERIAL_8250_DW is not set # CONFIG_SERIAL_8250_RT288X is not set CONFIG_SERIAL_8250_LPSS=y CONFIG_SERIAL_8250_MID=y # CONFIG_SERIAL_8250_MOXA is not set # # Non-8250 serial port support # CONFIG_SERIAL_MAX3100=y # CONFIG_SERIAL_MAX310X is not set # CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_JSM=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SC16IS7XX is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_IFX6X60 is not set # CONFIG_SERIAL_ARC is not set # CONFIG_SERIAL_RP2 is not set # CONFIG_SERIAL_FSL_LPUART is not set # CONFIG_SERIAL_DEV_BUS is not set CONFIG_PRINTER=y # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=y CONFIG_HVC_DRIVER=y CONFIG_HVC_IRQ=y CONFIG_HVC_XEN=y CONFIG_HVC_XEN_FRONTEND=y CONFIG_VIRTIO_CONSOLE=y CONFIG_IPMI_HANDLER=y # CONFIG_IPMI_PANIC_EVENT is not set CONFIG_IPMI_DEVICE_INTERFACE=y CONFIG_IPMI_SI=y # CONFIG_IPMI_SSIF is not set CONFIG_IPMI_WATCHDOG=y CONFIG_IPMI_POWEROFF=y CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=y CONFIG_HW_RANDOM_INTEL=y CONFIG_HW_RANDOM_AMD=y CONFIG_HW_RANDOM_VIA=y CONFIG_HW_RANDOM_VIRTIO=y CONFIG_HW_RANDOM_TPM=y CONFIG_NVRAM=y CONFIG_R3964=y CONFIG_APPLICOM=y # # PCMCIA character devices # CONFIG_SYNCLINK_CS=y CONFIG_CARDMAN_4000=y CONFIG_CARDMAN_4040=y # CONFIG_SCR24X is not set CONFIG_IPWIRELESS=y CONFIG_MWAVE=y CONFIG_RAW_DRIVER=y CONFIG_MAX_RAW_DEVS=256 CONFIG_HPET=y CONFIG_HPET_MMAP=y CONFIG_HPET_MMAP_DEFAULT=y CONFIG_HANGCHECK_TIMER=y CONFIG_TCG_TPM=y CONFIG_TCG_TIS_CORE=y CONFIG_TCG_TIS=y # CONFIG_TCG_TIS_SPI is not set # CONFIG_TCG_TIS_I2C_ATMEL is not set # CONFIG_TCG_TIS_I2C_INFINEON is not set # CONFIG_TCG_TIS_I2C_NUVOTON is not set CONFIG_TCG_NSC=y CONFIG_TCG_ATMEL=y CONFIG_TCG_INFINEON=y # CONFIG_TCG_XEN is not set # CONFIG_TCG_CRB is not set # CONFIG_TCG_VTPM_PROXY is not set # CONFIG_TCG_TIS_ST33ZP24_I2C is not set # CONFIG_TCG_TIS_ST33ZP24_SPI is not set CONFIG_TELCLOCK=y CONFIG_DEVPORT=y # CONFIG_XILLYBUS is not set # # I2C support # CONFIG_I2C=y CONFIG_ACPI_I2C_OPREGION=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=y # CONFIG_I2C_MUX is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=y CONFIG_I2C_ALGOBIT=y CONFIG_I2C_ALGOPCA=y # # I2C Hardware Bus support # # # PC SMBus host controller drivers # CONFIG_I2C_ALI1535=y CONFIG_I2C_ALI1563=y CONFIG_I2C_ALI15X3=y CONFIG_I2C_AMD756=y CONFIG_I2C_AMD756_S4882=y CONFIG_I2C_AMD8111=y CONFIG_I2C_I801=y CONFIG_I2C_ISCH=y # CONFIG_I2C_ISMT is not set CONFIG_I2C_PIIX4=y CONFIG_I2C_NFORCE2=y CONFIG_I2C_NFORCE2_S4985=y CONFIG_I2C_SIS5595=y CONFIG_I2C_SIS630=y CONFIG_I2C_SIS96X=y CONFIG_I2C_VIA=y CONFIG_I2C_VIAPRO=y # # ACPI drivers # CONFIG_I2C_SCMI=y # # I2C system bus drivers (mostly embedded / system-on-chip) # # CONFIG_I2C_CBUS_GPIO is not set # CONFIG_I2C_DESIGNWARE_PLATFORM is not set # CONFIG_I2C_DESIGNWARE_PCI is not set # CONFIG_I2C_EMEV2 is not set # CONFIG_I2C_GPIO is not set CONFIG_I2C_OCORES=y CONFIG_I2C_PCA_PLATFORM=y # CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=y # CONFIG_I2C_XILINX is not set # # External I2C/SMBus adapter drivers # CONFIG_I2C_DIOLAN_U2C=y CONFIG_I2C_PARPORT=y CONFIG_I2C_PARPORT_LIGHT=y # CONFIG_I2C_ROBOTFUZZ_OSIF is not set CONFIG_I2C_TAOS_EVM=y CONFIG_I2C_TINY_USB=y # # Other I2C/SMBus bus drivers # # CONFIG_I2C_MLXCPLD is not set CONFIG_I2C_STUB=m # CONFIG_I2C_SLAVE is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set CONFIG_SPI=y # CONFIG_SPI_DEBUG is not set CONFIG_SPI_MASTER=y # # SPI Master Controller Drivers # # CONFIG_SPI_ALTERA is not set # CONFIG_SPI_AXI_SPI_ENGINE is not set CONFIG_SPI_BITBANG=y CONFIG_SPI_BUTTERFLY=y # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_DESIGNWARE is not set # CONFIG_SPI_GPIO is not set CONFIG_SPI_LM70_LLP=y # CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_PXA2XX is not set # CONFIG_SPI_PXA2XX_PCI is not set # CONFIG_SPI_ROCKCHIP is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_XCOMM is not set # CONFIG_SPI_XILINX is not set # CONFIG_SPI_ZYNQMP_GQSPI is not set # # SPI Protocol Masters # # CONFIG_SPI_SPIDEV is not set # CONFIG_SPI_LOOPBACK_TEST is not set CONFIG_SPI_TLE62X0=y # CONFIG_SPI_SLAVE is not set # CONFIG_SPMI is not set # CONFIG_HSI is not set CONFIG_PPS=y # CONFIG_PPS_DEBUG is not set # # PPS clients support # # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=y CONFIG_PPS_CLIENT_PARPORT=y # CONFIG_PPS_CLIENT_GPIO is not set # # PPS generators support # # # PTP clock support # CONFIG_PTP_1588_CLOCK=y # # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. # CONFIG_PTP_1588_CLOCK_KVM=y CONFIG_GPIOLIB=y CONFIG_GPIO_ACPI=y # CONFIG_DEBUG_GPIO is not set # CONFIG_GPIO_SYSFS is not set # # Memory mapped GPIO drivers # # CONFIG_GPIO_AMDPT is not set # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_EXAR is not set # CONFIG_GPIO_GENERIC_PLATFORM is not set # CONFIG_GPIO_ICH is not set # CONFIG_GPIO_LYNXPOINT is not set # CONFIG_GPIO_MOCKUP is not set # CONFIG_GPIO_VX855 is not set # # Port-mapped I/O GPIO drivers # # CONFIG_GPIO_F7188X is not set # CONFIG_GPIO_IT87 is not set # CONFIG_GPIO_SCH is not set # CONFIG_GPIO_SCH311X is not set # # I2C GPIO expanders # # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_MAX7300 is not set # CONFIG_GPIO_MAX732X is not set # CONFIG_GPIO_PCA953X is not set # CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_TPIC2810 is not set # # MFD GPIO expanders # # # PCI GPIO expanders # # CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_BT8XX is not set CONFIG_GPIO_ML_IOH=y # CONFIG_GPIO_PCI_IDIO_16 is not set # CONFIG_GPIO_RDC321X is not set # # SPI GPIO expanders # # CONFIG_GPIO_MAX7301 is not set # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_PISOSR is not set # CONFIG_GPIO_XRA1403 is not set # # USB GPIO expanders # CONFIG_W1=y CONFIG_W1_CON=y # # 1-wire Bus Masters # CONFIG_W1_MASTER_MATROX=y CONFIG_W1_MASTER_DS2490=y CONFIG_W1_MASTER_DS2482=y # CONFIG_W1_MASTER_DS1WM is not set # CONFIG_W1_MASTER_GPIO is not set # # 1-wire Slaves # CONFIG_W1_SLAVE_THERM=y CONFIG_W1_SLAVE_SMEM=y # CONFIG_W1_SLAVE_DS2405 is not set # CONFIG_W1_SLAVE_DS2408 is not set # CONFIG_W1_SLAVE_DS2413 is not set # CONFIG_W1_SLAVE_DS2406 is not set # CONFIG_W1_SLAVE_DS2423 is not set CONFIG_W1_SLAVE_DS2431=y CONFIG_W1_SLAVE_DS2433=y # CONFIG_W1_SLAVE_DS2433_CRC is not set # CONFIG_W1_SLAVE_DS2438 is not set CONFIG_W1_SLAVE_DS2760=y # CONFIG_W1_SLAVE_DS2780 is not set # CONFIG_W1_SLAVE_DS2781 is not set # CONFIG_W1_SLAVE_DS28E04 is not set CONFIG_W1_SLAVE_BQ27000=y # CONFIG_POWER_AVS is not set # CONFIG_POWER_RESET is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set CONFIG_PDA_POWER=y # CONFIG_TEST_POWER is not set CONFIG_BATTERY_DS2760=y # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2781 is not set CONFIG_BATTERY_DS2782=y # CONFIG_BATTERY_WM97XX is not set # CONFIG_BATTERY_SBS is not set # CONFIG_CHARGER_SBS is not set # CONFIG_BATTERY_BQ27XXX is not set CONFIG_BATTERY_MAX17040=y # CONFIG_BATTERY_MAX17042 is not set CONFIG_CHARGER_PCF50633=y # CONFIG_CHARGER_ISP1704 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set # CONFIG_CHARGER_MANAGER is not set # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_BQ2415X is not set # CONFIG_CHARGER_BQ24190 is not set # CONFIG_CHARGER_BQ24257 is not set # CONFIG_CHARGER_BQ24735 is not set # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_SMB347 is not set # CONFIG_BATTERY_GAUGE_LTC2941 is not set # CONFIG_CHARGER_RT9455 is not set CONFIG_HWMON=y CONFIG_HWMON_VID=y # CONFIG_HWMON_DEBUG_CHIP is not set # # Native drivers # CONFIG_SENSORS_ABITUGURU=y CONFIG_SENSORS_ABITUGURU3=y # CONFIG_SENSORS_AD7314 is not set CONFIG_SENSORS_AD7414=y CONFIG_SENSORS_AD7418=y CONFIG_SENSORS_ADM1021=y CONFIG_SENSORS_ADM1025=y CONFIG_SENSORS_ADM1026=y CONFIG_SENSORS_ADM1029=y CONFIG_SENSORS_ADM1031=y CONFIG_SENSORS_ADM9240=y # CONFIG_SENSORS_ADT7310 is not set # CONFIG_SENSORS_ADT7410 is not set CONFIG_SENSORS_ADT7411=y CONFIG_SENSORS_ADT7462=y CONFIG_SENSORS_ADT7470=y CONFIG_SENSORS_ADT7475=y CONFIG_SENSORS_ASC7621=y CONFIG_SENSORS_K8TEMP=y CONFIG_SENSORS_K10TEMP=y CONFIG_SENSORS_FAM15H_POWER=y CONFIG_SENSORS_APPLESMC=y CONFIG_SENSORS_ASB100=y # CONFIG_SENSORS_ASPEED is not set CONFIG_SENSORS_ATXP1=y CONFIG_SENSORS_DS620=y CONFIG_SENSORS_DS1621=y CONFIG_SENSORS_DELL_SMM=y CONFIG_SENSORS_I5K_AMB=y CONFIG_SENSORS_F71805F=y CONFIG_SENSORS_F71882FG=y CONFIG_SENSORS_F75375S=y CONFIG_SENSORS_FSCHMD=y # CONFIG_SENSORS_FTSTEUTATES is not set CONFIG_SENSORS_GL518SM=y CONFIG_SENSORS_GL520SM=y CONFIG_SENSORS_G760A=y # CONFIG_SENSORS_G762 is not set # CONFIG_SENSORS_GPIO_FAN is not set # CONFIG_SENSORS_HIH6130 is not set CONFIG_SENSORS_IBMAEM=y CONFIG_SENSORS_IBMPEX=y # CONFIG_SENSORS_I5500 is not set CONFIG_SENSORS_CORETEMP=y CONFIG_SENSORS_IT87=y # CONFIG_SENSORS_JC42 is not set # CONFIG_SENSORS_POWR1220 is not set CONFIG_SENSORS_LINEAGE=y # CONFIG_SENSORS_LTC2945 is not set # CONFIG_SENSORS_LTC2990 is not set CONFIG_SENSORS_LTC4151=y CONFIG_SENSORS_LTC4215=y # CONFIG_SENSORS_LTC4222 is not set CONFIG_SENSORS_LTC4245=y # CONFIG_SENSORS_LTC4260 is not set CONFIG_SENSORS_LTC4261=y CONFIG_SENSORS_MAX1111=y CONFIG_SENSORS_MAX16065=y CONFIG_SENSORS_MAX1619=y CONFIG_SENSORS_MAX1668=y # CONFIG_SENSORS_MAX197 is not set # CONFIG_SENSORS_MAX31722 is not set CONFIG_SENSORS_MAX6639=y CONFIG_SENSORS_MAX6642=y CONFIG_SENSORS_MAX6650=y # CONFIG_SENSORS_MAX6697 is not set # CONFIG_SENSORS_MAX31790 is not set # CONFIG_SENSORS_MCP3021 is not set # CONFIG_SENSORS_TC654 is not set CONFIG_SENSORS_ADCXX=y CONFIG_SENSORS_LM63=y CONFIG_SENSORS_LM70=y CONFIG_SENSORS_LM73=y CONFIG_SENSORS_LM75=y CONFIG_SENSORS_LM77=y CONFIG_SENSORS_LM78=y CONFIG_SENSORS_LM80=y CONFIG_SENSORS_LM83=y CONFIG_SENSORS_LM85=y CONFIG_SENSORS_LM87=y CONFIG_SENSORS_LM90=y CONFIG_SENSORS_LM92=y CONFIG_SENSORS_LM93=y # CONFIG_SENSORS_LM95234 is not set CONFIG_SENSORS_LM95241=y CONFIG_SENSORS_LM95245=y CONFIG_SENSORS_PC87360=y CONFIG_SENSORS_PC87427=y CONFIG_SENSORS_NTC_THERMISTOR=y # CONFIG_SENSORS_NCT6683 is not set # CONFIG_SENSORS_NCT6775 is not set # CONFIG_SENSORS_NCT7802 is not set # CONFIG_SENSORS_NCT7904 is not set CONFIG_SENSORS_PCF8591=y # CONFIG_PMBUS is not set # CONFIG_SENSORS_SHT15 is not set CONFIG_SENSORS_SHT21=y # CONFIG_SENSORS_SHT3x is not set # CONFIG_SENSORS_SHTC1 is not set CONFIG_SENSORS_SIS5595=y CONFIG_SENSORS_DME1737=y CONFIG_SENSORS_EMC1403=y CONFIG_SENSORS_EMC2103=y CONFIG_SENSORS_EMC6W201=y CONFIG_SENSORS_SMSC47M1=y CONFIG_SENSORS_SMSC47M192=y CONFIG_SENSORS_SMSC47B397=y CONFIG_SENSORS_SCH56XX_COMMON=y CONFIG_SENSORS_SCH5627=y # CONFIG_SENSORS_SCH5636 is not set # CONFIG_SENSORS_STTS751 is not set CONFIG_SENSORS_SMM665=y # CONFIG_SENSORS_ADC128D818 is not set CONFIG_SENSORS_ADS1015=y CONFIG_SENSORS_ADS7828=y CONFIG_SENSORS_ADS7871=y CONFIG_SENSORS_AMC6821=y # CONFIG_SENSORS_INA209 is not set # CONFIG_SENSORS_INA2XX is not set # CONFIG_SENSORS_INA3221 is not set # CONFIG_SENSORS_TC74 is not set CONFIG_SENSORS_THMC50=y CONFIG_SENSORS_TMP102=y # CONFIG_SENSORS_TMP103 is not set # CONFIG_SENSORS_TMP108 is not set CONFIG_SENSORS_TMP401=y CONFIG_SENSORS_TMP421=y CONFIG_SENSORS_VIA_CPUTEMP=y CONFIG_SENSORS_VIA686A=y CONFIG_SENSORS_VT1211=y CONFIG_SENSORS_VT8231=y CONFIG_SENSORS_W83781D=y CONFIG_SENSORS_W83791D=y CONFIG_SENSORS_W83792D=y CONFIG_SENSORS_W83793=y CONFIG_SENSORS_W83795=y # CONFIG_SENSORS_W83795_FANCTRL is not set CONFIG_SENSORS_W83L785TS=y CONFIG_SENSORS_W83L786NG=y CONFIG_SENSORS_W83627HF=y CONFIG_SENSORS_W83627EHF=y # CONFIG_SENSORS_XGENE is not set # # ACPI drivers # CONFIG_SENSORS_ACPI_POWER=y CONFIG_SENSORS_ATK0110=y CONFIG_THERMAL=y CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_HWMON=y CONFIG_THERMAL_WRITABLE_TRIPS=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 # CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set # CONFIG_THERMAL_GOV_FAIR_SHARE is not set CONFIG_THERMAL_GOV_STEP_WISE=y CONFIG_THERMAL_GOV_BANG_BANG=y CONFIG_THERMAL_GOV_USER_SPACE=y # CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set # CONFIG_THERMAL_EMULATION is not set # CONFIG_INTEL_POWERCLAMP is not set CONFIG_X86_PKG_TEMP_THERMAL=m # CONFIG_INTEL_SOC_DTS_THERMAL is not set # # ACPI INT340X thermal drivers # # CONFIG_INT340X_THERMAL is not set # CONFIG_INTEL_PCH_THERMAL is not set CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y # CONFIG_WATCHDOG_SYSFS is not set # # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=y # CONFIG_WDAT_WDT is not set # CONFIG_XILINX_WATCHDOG is not set # CONFIG_ZIIRAVE_WATCHDOG is not set # CONFIG_CADENCE_WATCHDOG is not set # CONFIG_DW_WATCHDOG is not set # CONFIG_MAX63XX_WATCHDOG is not set CONFIG_ACQUIRE_WDT=y CONFIG_ADVANTECH_WDT=y CONFIG_ALIM1535_WDT=y CONFIG_ALIM7101_WDT=y CONFIG_F71808E_WDT=y CONFIG_SP5100_TCO=y CONFIG_SBC_FITPC2_WATCHDOG=y # CONFIG_EUROTECH_WDT is not set CONFIG_IB700_WDT=y CONFIG_IBMASR=y CONFIG_WAFER_WDT=y CONFIG_I6300ESB_WDT=y # CONFIG_IE6XX_WDT is not set CONFIG_ITCO_WDT=y CONFIG_ITCO_VENDOR_SUPPORT=y CONFIG_IT8712F_WDT=y CONFIG_IT87_WDT=y CONFIG_HP_WATCHDOG=y CONFIG_HPWDT_NMI_DECODING=y CONFIG_SC1200_WDT=y CONFIG_PC87413_WDT=y CONFIG_NV_TCO=y CONFIG_60XX_WDT=y CONFIG_CPU5_WDT=y CONFIG_SMSC_SCH311X_WDT=y CONFIG_SMSC37B787_WDT=y # CONFIG_VIA_WDT is not set CONFIG_W83627HF_WDT=y CONFIG_W83877F_WDT=y CONFIG_W83977F_WDT=y CONFIG_MACHZ_WDT=y CONFIG_SBC_EPX_C3_WATCHDOG=y # CONFIG_NI903X_WDT is not set # CONFIG_NIC7018_WDT is not set # CONFIG_MEN_A21_WDT is not set CONFIG_XEN_WDT=y # # PCI-based Watchdog Cards # CONFIG_PCIPCWATCHDOG=y CONFIG_WDTPCI=y # # USB-based Watchdog Cards # CONFIG_USBPCWATCHDOG=y # # Watchdog Pretimeout Governors # # CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set CONFIG_SSB_POSSIBLE=y # # Sonics Silicon Backplane # CONFIG_SSB=y CONFIG_SSB_SPROM=y CONFIG_SSB_BLOCKIO=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y CONFIG_SSB_B43_PCI_BRIDGE=y CONFIG_SSB_PCMCIAHOST_POSSIBLE=y CONFIG_SSB_PCMCIAHOST=y CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y # CONFIG_SSB_DRIVER_GPIO is not set CONFIG_BCMA_POSSIBLE=y # # Broadcom specific AMBA # CONFIG_BCMA=y CONFIG_BCMA_BLOCKIO=y CONFIG_BCMA_HOST_PCI_POSSIBLE=y CONFIG_BCMA_HOST_PCI=y # CONFIG_BCMA_HOST_SOC is not set CONFIG_BCMA_DRIVER_PCI=y # CONFIG_BCMA_DRIVER_GMAC_CMN is not set # CONFIG_BCMA_DRIVER_GPIO is not set # CONFIG_BCMA_DEBUG is not set # # Multifunction device drivers # CONFIG_MFD_CORE=y # CONFIG_MFD_AS3711 is not set # CONFIG_PMIC_ADP5520 is not set # CONFIG_MFD_AAT2870_CORE is not set # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_CROS_EC is not set # CONFIG_PMIC_DA903X is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9055 is not set # CONFIG_MFD_DA9062 is not set # CONFIG_MFD_DA9063 is not set # CONFIG_MFD_DA9150 is not set # CONFIG_MFD_DLN2 is not set # CONFIG_MFD_MC13XXX_SPI is not set # CONFIG_MFD_MC13XXX_I2C is not set CONFIG_HTC_PASIC3=y # CONFIG_HTC_I2CPLD is not set # CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set CONFIG_LPC_ICH=y CONFIG_LPC_SCH=y # CONFIG_INTEL_SOC_PMIC is not set # CONFIG_INTEL_SOC_PMIC_CHTWC is not set # CONFIG_MFD_INTEL_LPSS_ACPI is not set # CONFIG_MFD_INTEL_LPSS_PCI is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_88PM800 is not set # CONFIG_MFD_88PM805 is not set # CONFIG_MFD_88PM860X is not set # CONFIG_MFD_MAX14577 is not set # CONFIG_MFD_MAX77693 is not set # CONFIG_MFD_MAX77843 is not set # CONFIG_MFD_MAX8907 is not set # CONFIG_MFD_MAX8925 is not set # CONFIG_MFD_MAX8997 is not set # CONFIG_MFD_MAX8998 is not set # CONFIG_MFD_MT6397 is not set # CONFIG_MFD_MENF21BMC is not set # CONFIG_EZX_PCAP is not set # CONFIG_MFD_VIPERBOARD is not set # CONFIG_MFD_RETU is not set CONFIG_MFD_PCF50633=y CONFIG_PCF50633_ADC=y CONFIG_PCF50633_GPIO=y # CONFIG_UCB1400_CORE is not set # CONFIG_MFD_RDC321X is not set # CONFIG_MFD_RTSX_PCI is not set # CONFIG_MFD_RT5033 is not set # CONFIG_MFD_RTSX_USB is not set # CONFIG_MFD_RC5T583 is not set # CONFIG_MFD_SEC_CORE is not set # CONFIG_MFD_SI476X_CORE is not set CONFIG_MFD_SM501=y # CONFIG_MFD_SM501_GPIO is not set # CONFIG_MFD_SKY81452 is not set # CONFIG_MFD_SMSC is not set # CONFIG_ABX500_CORE is not set # CONFIG_MFD_SYSCON is not set # CONFIG_MFD_TI_AM335X_TSCADC is not set # CONFIG_MFD_LP3943 is not set # CONFIG_MFD_LP8788 is not set # CONFIG_MFD_TI_LMU is not set # CONFIG_MFD_PALMAS is not set # CONFIG_TPS6105X is not set # CONFIG_TPS65010 is not set # CONFIG_TPS6507X is not set # CONFIG_MFD_TPS65086 is not set # CONFIG_MFD_TPS65090 is not set # CONFIG_MFD_TPS65217 is not set # CONFIG_MFD_TI_LP873X is not set # CONFIG_MFD_TPS65218 is not set # CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TPS65910 is not set # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912_SPI is not set # CONFIG_MFD_TPS80031 is not set # CONFIG_TWL4030_CORE is not set # CONFIG_TWL6040_CORE is not set CONFIG_MFD_WL1273_CORE=y # CONFIG_MFD_LM3533 is not set # CONFIG_MFD_TMIO is not set # CONFIG_MFD_VX855 is not set # CONFIG_MFD_ARIZONA_I2C is not set # CONFIG_MFD_ARIZONA_SPI is not set CONFIG_MFD_WM8400=y # CONFIG_MFD_WM831X_I2C is not set # CONFIG_MFD_WM831X_SPI is not set # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set CONFIG_REGULATOR_USERSPACE_CONSUMER=y # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set # CONFIG_REGULATOR_FAN53555 is not set # CONFIG_REGULATOR_GPIO is not set # CONFIG_REGULATOR_ISL9305 is not set # CONFIG_REGULATOR_ISL6271A is not set CONFIG_REGULATOR_LP3971=y # CONFIG_REGULATOR_LP3972 is not set # CONFIG_REGULATOR_LP872X is not set # CONFIG_REGULATOR_LP8755 is not set # CONFIG_REGULATOR_LTC3589 is not set # CONFIG_REGULATOR_LTC3676 is not set CONFIG_REGULATOR_MAX1586=y CONFIG_REGULATOR_MAX8649=y CONFIG_REGULATOR_MAX8660=y # CONFIG_REGULATOR_MAX8952 is not set # CONFIG_REGULATOR_MT6311 is not set CONFIG_REGULATOR_PCF50633=y # CONFIG_REGULATOR_PFUZE100 is not set # CONFIG_REGULATOR_PV88060 is not set # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set CONFIG_REGULATOR_TPS65023=y CONFIG_REGULATOR_TPS6507X=y # CONFIG_REGULATOR_TPS65132 is not set # CONFIG_REGULATOR_TPS6524X is not set CONFIG_REGULATOR_WM8400=y CONFIG_MEDIA_SUPPORT=y # # Multimedia core support # # CONFIG_MEDIA_CAMERA_SUPPORT is not set # CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set # CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set # CONFIG_MEDIA_RADIO_SUPPORT is not set # CONFIG_MEDIA_SDR_SUPPORT is not set # CONFIG_MEDIA_RC_SUPPORT is not set # CONFIG_MEDIA_CEC_SUPPORT is not set # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set # CONFIG_TTPCI_EEPROM is not set # # Media drivers # # CONFIG_MEDIA_USB_SUPPORT is not set # CONFIG_MEDIA_PCI_SUPPORT is not set # # Supported MMC/SDIO adapters # # CONFIG_CYPRESS_FIRMWARE is not set # # Media ancillary drivers (tuners, sensors, i2c, spi, frontends) # # # Customise DVB Frontends # # # Tools to develop new frontends # # # Graphics support # CONFIG_AGP=y CONFIG_AGP_AMD64=y CONFIG_AGP_INTEL=y CONFIG_AGP_SIS=y CONFIG_AGP_VIA=y CONFIG_INTEL_GTT=y CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=y CONFIG_DRM_MIPI_DSI=y # CONFIG_DRM_DP_AUX_CHARDEV is not set # CONFIG_DRM_DEBUG_MM is not set # CONFIG_DRM_DEBUG_MM_SELFTEST is not set CONFIG_DRM_KMS_HELPER=y CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 # CONFIG_DRM_LOAD_EDID_FIRMWARE is not set CONFIG_DRM_TTM=y CONFIG_DRM_VM=y # # I2C encoder or helper chips # CONFIG_DRM_I2C_CH7006=y CONFIG_DRM_I2C_SIL164=y # CONFIG_DRM_I2C_NXP_TDA998X is not set CONFIG_DRM_RADEON=y # CONFIG_DRM_RADEON_USERPTR is not set # CONFIG_DRM_AMDGPU is not set # # ACP (Audio CoProcessor) Configuration # CONFIG_DRM_NOUVEAU=y CONFIG_NOUVEAU_DEBUG=5 CONFIG_NOUVEAU_DEBUG_DEFAULT=3 CONFIG_DRM_NOUVEAU_BACKLIGHT=y CONFIG_DRM_I915=y # CONFIG_DRM_I915_ALPHA_SUPPORT is not set CONFIG_DRM_I915_CAPTURE_ERROR=y CONFIG_DRM_I915_COMPRESS_ERROR=y CONFIG_DRM_I915_USERPTR=y # CONFIG_DRM_I915_GVT is not set # CONFIG_DRM_VGEM is not set CONFIG_DRM_VMWGFX=y # CONFIG_DRM_VMWGFX_FBCON is not set # CONFIG_DRM_GMA500 is not set # CONFIG_DRM_UDL is not set # CONFIG_DRM_AST is not set # CONFIG_DRM_MGAG200 is not set # CONFIG_DRM_CIRRUS_QEMU is not set # CONFIG_DRM_QXL is not set # CONFIG_DRM_BOCHS is not set # CONFIG_DRM_VIRTIO_GPU is not set CONFIG_DRM_PANEL=y # # Display Panels # CONFIG_DRM_BRIDGE=y CONFIG_DRM_PANEL_BRIDGE=y # # Display Interface Bridges # # CONFIG_DRM_ANALOGIX_ANX78XX is not set # CONFIG_DRM_HISI_HIBMC is not set # CONFIG_DRM_TINYDRM is not set # CONFIG_DRM_LEGACY is not set # CONFIG_DRM_LIB_RANDOM is not set # # Frame buffer Devices # CONFIG_FB=y CONFIG_FIRMWARE_EDID=y CONFIG_FB_CMDLINE=y CONFIG_FB_NOTIFY=y CONFIG_FB_DDC=y CONFIG_FB_BOOT_VESA_SUPPORT=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set CONFIG_FB_SYS_FILLRECT=y CONFIG_FB_SYS_COPYAREA=y CONFIG_FB_SYS_IMAGEBLIT=y # CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=y CONFIG_FB_DEFERRED_IO=y CONFIG_FB_HECUBA=y CONFIG_FB_SVGALIB=y # CONFIG_FB_MACMODES is not set CONFIG_FB_BACKLIGHT=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_TILEBLITTING=y # # Frame buffer hardware drivers # # CONFIG_FB_CIRRUS is not set CONFIG_FB_PM2=y CONFIG_FB_PM2_FIFO_DISCONNECT=y CONFIG_FB_CYBER2000=y CONFIG_FB_CYBER2000_DDC=y CONFIG_FB_ARC=y # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_VGA16 is not set CONFIG_FB_UVESA=y CONFIG_FB_VESA=y CONFIG_FB_EFI=y CONFIG_FB_N411=y CONFIG_FB_HGA=y # CONFIG_FB_OPENCORES is not set CONFIG_FB_S1D13XXX=y CONFIG_FB_NVIDIA=y # CONFIG_FB_NVIDIA_I2C is not set # CONFIG_FB_NVIDIA_DEBUG is not set CONFIG_FB_NVIDIA_BACKLIGHT=y # CONFIG_FB_RIVA is not set # CONFIG_FB_I740 is not set CONFIG_FB_LE80578=y CONFIG_FB_CARILLO_RANCH=y CONFIG_FB_MATROX=y CONFIG_FB_MATROX_MILLENIUM=y CONFIG_FB_MATROX_MYSTIQUE=y CONFIG_FB_MATROX_G=y CONFIG_FB_MATROX_I2C=y CONFIG_FB_MATROX_MAVEN=y CONFIG_FB_RADEON=y CONFIG_FB_RADEON_I2C=y CONFIG_FB_RADEON_BACKLIGHT=y # CONFIG_FB_RADEON_DEBUG is not set CONFIG_FB_ATY128=y CONFIG_FB_ATY128_BACKLIGHT=y CONFIG_FB_ATY=y CONFIG_FB_ATY_CT=y # CONFIG_FB_ATY_GENERIC_LCD is not set CONFIG_FB_ATY_GX=y CONFIG_FB_ATY_BACKLIGHT=y CONFIG_FB_S3=y CONFIG_FB_S3_DDC=y CONFIG_FB_SAVAGE=y # CONFIG_FB_SAVAGE_I2C is not set # CONFIG_FB_SAVAGE_ACCEL is not set CONFIG_FB_SIS=y CONFIG_FB_SIS_300=y CONFIG_FB_SIS_315=y CONFIG_FB_VIA=y # CONFIG_FB_VIA_DIRECT_PROCFS is not set CONFIG_FB_VIA_X_COMPATIBILITY=y CONFIG_FB_NEOMAGIC=y CONFIG_FB_KYRO=y CONFIG_FB_3DFX=y # CONFIG_FB_3DFX_ACCEL is not set CONFIG_FB_3DFX_I2C=y CONFIG_FB_VOODOO1=y CONFIG_FB_VT8623=y CONFIG_FB_TRIDENT=y CONFIG_FB_ARK=y CONFIG_FB_PM3=y # CONFIG_FB_CARMINE is not set CONFIG_FB_SM501=y # CONFIG_FB_SMSCUFX is not set CONFIG_FB_UDL=y # CONFIG_FB_IBM_GXT4500 is not set CONFIG_FB_VIRTUAL=y CONFIG_XEN_FBDEV_FRONTEND=y CONFIG_FB_METRONOME=y CONFIG_FB_MB862XX=y CONFIG_FB_MB862XX_PCI_GDC=y CONFIG_FB_MB862XX_I2C=y # CONFIG_FB_BROADSHEET is not set # CONFIG_FB_AUO_K190X is not set # CONFIG_FB_HYPERV is not set # CONFIG_FB_SIMPLE is not set # CONFIG_FB_SM712 is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y # CONFIG_LCD_CLASS_DEVICE is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_BACKLIGHT_GENERIC is not set CONFIG_BACKLIGHT_APPLE=y # CONFIG_BACKLIGHT_PM8941_WLED is not set # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # CONFIG_BACKLIGHT_PCF50633 is not set # CONFIG_BACKLIGHT_LM3639 is not set # CONFIG_BACKLIGHT_GPIO is not set # CONFIG_BACKLIGHT_LV5207LP is not set # CONFIG_BACKLIGHT_BD6107 is not set # CONFIG_BACKLIGHT_ARCXCNN is not set CONFIG_VGASTATE=y CONFIG_HDMI=y # # Console display driver support # CONFIG_VGA_CONSOLE=y # CONFIG_VGACON_SOFT_SCROLLBACK is not set CONFIG_DUMMY_CONSOLE=y CONFIG_DUMMY_CONSOLE_COLUMNS=80 CONFIG_DUMMY_CONSOLE_ROWS=25 CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y # CONFIG_LOGO is not set CONFIG_SOUND=y CONFIG_SOUND_OSS_CORE=y # CONFIG_SOUND_OSS_CORE_PRECLAIM is not set CONFIG_SND=y CONFIG_SND_TIMER=y CONFIG_SND_PCM=y CONFIG_SND_HWDEP=y CONFIG_SND_SEQ_DEVICE=y CONFIG_SND_RAWMIDI=y CONFIG_SND_JACK=y CONFIG_SND_JACK_INPUT_DEV=y CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=y CONFIG_SND_PCM_OSS=y CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_PCM_TIMER=y CONFIG_SND_HRTIMER=y CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_MAX_CARDS=32 CONFIG_SND_SUPPORT_OLD_API=y CONFIG_SND_PROC_FS=y CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y CONFIG_SND_SEQUENCER=y CONFIG_SND_SEQ_DUMMY=y # CONFIG_SND_SEQUENCER_OSS is not set CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_SEQ_MIDI_EVENT=y CONFIG_SND_SEQ_MIDI_EMUL=y CONFIG_SND_SEQ_VIRMIDI=y CONFIG_SND_MPU401_UART=y CONFIG_SND_OPL3_LIB=y CONFIG_SND_OPL3_LIB_SEQ=y # CONFIG_SND_OPL4_LIB_SEQ is not set CONFIG_SND_VX_LIB=y CONFIG_SND_AC97_CODEC=y CONFIG_SND_DRIVERS=y CONFIG_SND_PCSP=y CONFIG_SND_DUMMY=y CONFIG_SND_ALOOP=y CONFIG_SND_VIRMIDI=y CONFIG_SND_MTPAV=y CONFIG_SND_MTS64=y CONFIG_SND_SERIAL_U16550=y CONFIG_SND_MPU401=y CONFIG_SND_PORTMAN2X4=y CONFIG_SND_AC97_POWER_SAVE=y CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 CONFIG_SND_SB_COMMON=y CONFIG_SND_PCI=y CONFIG_SND_AD1889=y CONFIG_SND_ALS300=y CONFIG_SND_ALS4000=y CONFIG_SND_ALI5451=y CONFIG_SND_ASIHPI=y CONFIG_SND_ATIIXP=y CONFIG_SND_ATIIXP_MODEM=y CONFIG_SND_AU8810=y CONFIG_SND_AU8820=y CONFIG_SND_AU8830=y # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=y CONFIG_SND_BT87X=y # CONFIG_SND_BT87X_OVERCLOCK is not set CONFIG_SND_CA0106=y CONFIG_SND_CMIPCI=y CONFIG_SND_OXYGEN_LIB=y CONFIG_SND_OXYGEN=y CONFIG_SND_CS4281=y CONFIG_SND_CS46XX=y CONFIG_SND_CS46XX_NEW_DSP=y CONFIG_SND_CTXFI=y CONFIG_SND_DARLA20=y CONFIG_SND_GINA20=y CONFIG_SND_LAYLA20=y CONFIG_SND_DARLA24=y CONFIG_SND_GINA24=y CONFIG_SND_LAYLA24=y CONFIG_SND_MONA=y CONFIG_SND_MIA=y CONFIG_SND_ECHO3G=y CONFIG_SND_INDIGO=y CONFIG_SND_INDIGOIO=y CONFIG_SND_INDIGODJ=y CONFIG_SND_INDIGOIOX=y CONFIG_SND_INDIGODJX=y CONFIG_SND_EMU10K1=y CONFIG_SND_EMU10K1_SEQ=y CONFIG_SND_EMU10K1X=y CONFIG_SND_ENS1370=y CONFIG_SND_ENS1371=y CONFIG_SND_ES1938=y CONFIG_SND_ES1968=y CONFIG_SND_ES1968_INPUT=y CONFIG_SND_FM801=y CONFIG_SND_HDSP=y # # Don't forget to add built-in firmwares for HDSP driver # CONFIG_SND_HDSPM=y CONFIG_SND_ICE1712=y CONFIG_SND_ICE1724=y CONFIG_SND_INTEL8X0=y CONFIG_SND_INTEL8X0M=y CONFIG_SND_KORG1212=y CONFIG_SND_LOLA=y CONFIG_SND_LX6464ES=y CONFIG_SND_MAESTRO3=y CONFIG_SND_MAESTRO3_INPUT=y CONFIG_SND_MIXART=y CONFIG_SND_NM256=y CONFIG_SND_PCXHR=y CONFIG_SND_RIPTIDE=y CONFIG_SND_RME32=y CONFIG_SND_RME96=y CONFIG_SND_RME9652=y CONFIG_SND_SONICVIBES=y CONFIG_SND_TRIDENT=y CONFIG_SND_VIA82XX=y CONFIG_SND_VIA82XX_MODEM=y CONFIG_SND_VIRTUOSO=y CONFIG_SND_VX222=y CONFIG_SND_YMFPCI=y # # HD-Audio # CONFIG_SND_HDA=y CONFIG_SND_HDA_INTEL=y CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INPUT_BEEP_MODE=1 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_CIRRUS=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y CONFIG_SND_HDA_CODEC_CA0132=y # CONFIG_SND_HDA_CODEC_CA0132_DSP is not set CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 CONFIG_SND_HDA_CORE=y CONFIG_SND_HDA_I915=y CONFIG_SND_HDA_PREALLOC_SIZE=64 CONFIG_SND_SPI=y CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=y CONFIG_SND_USB_UA101=y CONFIG_SND_USB_USX2Y=y CONFIG_SND_USB_CAIAQ=y CONFIG_SND_USB_CAIAQ_INPUT=y CONFIG_SND_USB_US122L=y CONFIG_SND_USB_6FIRE=y # CONFIG_SND_USB_HIFACE is not set # CONFIG_SND_BCD2000 is not set # CONFIG_SND_USB_POD is not set # CONFIG_SND_USB_PODHD is not set # CONFIG_SND_USB_TONEPORT is not set # CONFIG_SND_USB_VARIAX is not set CONFIG_SND_FIREWIRE=y CONFIG_SND_FIREWIRE_LIB=y # CONFIG_SND_DICE is not set # CONFIG_SND_OXFW is not set CONFIG_SND_ISIGHT=y # CONFIG_SND_FIREWORKS is not set # CONFIG_SND_BEBOB is not set # CONFIG_SND_FIREWIRE_DIGI00X is not set # CONFIG_SND_FIREWIRE_TASCAM is not set # CONFIG_SND_FIREWIRE_MOTU is not set # CONFIG_SND_FIREFACE is not set CONFIG_SND_PCMCIA=y CONFIG_SND_VXPOCKET=y CONFIG_SND_PDAUDIOCF=y # CONFIG_SND_SOC is not set CONFIG_SND_X86=y # CONFIG_HDMI_LPE_AUDIO is not set CONFIG_SND_SYNTH_EMUX=y CONFIG_AC97_BUS=y # # HID support # CONFIG_HID=y CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HIDRAW=y # CONFIG_UHID is not set CONFIG_HID_GENERIC=y # # Special HID drivers # CONFIG_HID_A4TECH=y # CONFIG_HID_ACCUTOUCH is not set CONFIG_HID_ACRUX=y # CONFIG_HID_ACRUX_FF is not set CONFIG_HID_APPLE=y # CONFIG_HID_APPLEIR is not set # CONFIG_HID_ASUS is not set # CONFIG_HID_AUREAL is not set CONFIG_HID_BELKIN=y # CONFIG_HID_BETOP_FF is not set CONFIG_HID_CHERRY=y CONFIG_HID_CHICONY=y # CONFIG_HID_CORSAIR is not set CONFIG_HID_PRODIKEYS=y # CONFIG_HID_CMEDIA is not set # CONFIG_HID_CP2112 is not set CONFIG_HID_CYPRESS=y CONFIG_HID_DRAGONRISE=y CONFIG_DRAGONRISE_FF=y CONFIG_HID_EMS_FF=y CONFIG_HID_ELECOM=y # CONFIG_HID_ELO is not set CONFIG_HID_EZKEY=y # CONFIG_HID_GEMBIRD is not set # CONFIG_HID_GFRM is not set # CONFIG_HID_HOLTEK is not set # CONFIG_HID_GT683R is not set CONFIG_HID_KEYTOUCH=y CONFIG_HID_KYE=y CONFIG_HID_UCLOGIC=y CONFIG_HID_WALTOP=y CONFIG_HID_GYRATION=y # CONFIG_HID_ICADE is not set CONFIG_HID_ITE=y CONFIG_HID_TWINHAN=y CONFIG_HID_KENSINGTON=y CONFIG_HID_LCPOWER=y # CONFIG_HID_LED is not set # CONFIG_HID_LENOVO is not set CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=y CONFIG_HID_LOGITECH_HIDPP=y CONFIG_LOGITECH_FF=y CONFIG_LOGIRUMBLEPAD2_FF=y CONFIG_LOGIG940_FF=y CONFIG_LOGIWHEELS_FF=y CONFIG_HID_MAGICMOUSE=y # CONFIG_HID_MAYFLASH is not set CONFIG_HID_MICROSOFT=y CONFIG_HID_MONTEREY=y CONFIG_HID_MULTITOUCH=y # CONFIG_HID_NTI is not set CONFIG_HID_NTRIG=y CONFIG_HID_ORTEK=y CONFIG_HID_PANTHERLORD=y CONFIG_PANTHERLORD_FF=y # CONFIG_HID_PENMOUNT is not set CONFIG_HID_PETALYNX=y CONFIG_HID_PICOLCD=y CONFIG_HID_PICOLCD_FB=y CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LEDS=y # CONFIG_HID_PLANTRONICS is not set # CONFIG_HID_PRIMAX is not set CONFIG_HID_ROCCAT=y # CONFIG_HID_SAITEK is not set CONFIG_HID_SAMSUNG=y CONFIG_HID_SONY=y # CONFIG_SONY_FF is not set # CONFIG_HID_SPEEDLINK is not set # CONFIG_HID_STEELSERIES is not set CONFIG_HID_SUNPLUS=y # CONFIG_HID_RMI is not set CONFIG_HID_GREENASIA=y CONFIG_GREENASIA_FF=y # CONFIG_HID_HYPERV_MOUSE is not set CONFIG_HID_SMARTJOYPLUS=y CONFIG_SMARTJOYPLUS_FF=y # CONFIG_HID_TIVO is not set CONFIG_HID_TOPSEED=y # CONFIG_HID_THINGM is not set CONFIG_HID_THRUSTMASTER=y CONFIG_THRUSTMASTER_FF=y # CONFIG_HID_UDRAW_PS3 is not set CONFIG_HID_WACOM=y # CONFIG_HID_WIIMOTE is not set # CONFIG_HID_XINMO is not set CONFIG_HID_ZEROPLUS=y CONFIG_ZEROPLUS_FF=y CONFIG_HID_ZYDACRON=y # CONFIG_HID_SENSOR_HUB is not set # CONFIG_HID_ALPS is not set # # USB HID support # CONFIG_USB_HID=y CONFIG_HID_PID=y CONFIG_USB_HIDDEV=y # # I2C HID support # # CONFIG_I2C_HID is not set # # Intel ISH HID support # # CONFIG_INTEL_ISH_HID is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_SUPPORT=y CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y CONFIG_USB_PCI=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # CONFIG_USB_DEFAULT_PERSIST=y CONFIG_USB_DYNAMIC_MINORS=y # CONFIG_USB_OTG is not set # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_LEDS_TRIGGER_USBPORT is not set CONFIG_USB_MON=y CONFIG_USB_WUSB=y CONFIG_USB_WUSB_CBAF=y # CONFIG_USB_WUSB_CBAF_DEBUG is not set # # USB Host Controller Drivers # CONFIG_USB_C67X00_HCD=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_PCI=y # CONFIG_USB_XHCI_PLATFORM is not set CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_PCI=y # CONFIG_USB_EHCI_HCD_PLATFORM is not set # CONFIG_USB_OXU210HP_HCD is not set CONFIG_USB_ISP116X_HCD=y # CONFIG_USB_ISP1362_HCD is not set # CONFIG_USB_FOTG210_HCD is not set # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_PCI=y # CONFIG_USB_OHCI_HCD_SSB is not set # CONFIG_USB_OHCI_HCD_PLATFORM is not set CONFIG_USB_UHCI_HCD=y CONFIG_USB_U132_HCD=y CONFIG_USB_SL811_HCD=y # CONFIG_USB_SL811_HCD_ISO is not set CONFIG_USB_SL811_CS=y CONFIG_USB_R8A66597_HCD=y CONFIG_USB_WHCI_HCD=y CONFIG_USB_HWA_HCD=y # CONFIG_USB_HCD_BCMA is not set # CONFIG_USB_HCD_SSB is not set # CONFIG_USB_HCD_TEST_MODE is not set # # USB Device Class drivers # CONFIG_USB_ACM=y CONFIG_USB_PRINTER=y CONFIG_USB_WDM=y CONFIG_USB_TMC=y # # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may # # # also be needed; see USB_STORAGE Help for more info # CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_REALTEK=y CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_DATAFAB=y CONFIG_USB_STORAGE_FREECOM=y CONFIG_USB_STORAGE_ISD200=y CONFIG_USB_STORAGE_USBAT=y CONFIG_USB_STORAGE_SDDR09=y CONFIG_USB_STORAGE_SDDR55=y CONFIG_USB_STORAGE_JUMPSHOT=y CONFIG_USB_STORAGE_ALAUDA=y CONFIG_USB_STORAGE_ONETOUCH=y CONFIG_USB_STORAGE_KARMA=y CONFIG_USB_STORAGE_CYPRESS_ATACB=y CONFIG_USB_STORAGE_ENE_UB6250=y CONFIG_USB_UAS=y # # USB Imaging devices # CONFIG_USB_MDC800=y CONFIG_USB_MICROTEK=y CONFIG_USBIP_CORE=y CONFIG_USBIP_VHCI_HCD=y CONFIG_USBIP_VHCI_HC_PORTS=8 CONFIG_USBIP_VHCI_NR_HCS=1 CONFIG_USBIP_HOST=y # CONFIG_USBIP_VUDC is not set # CONFIG_USBIP_DEBUG is not set # CONFIG_USB_MUSB_HDRC is not set # CONFIG_USB_DWC3 is not set # CONFIG_USB_DWC2 is not set # CONFIG_USB_CHIPIDEA is not set # CONFIG_USB_ISP1760 is not set # # USB port drivers # CONFIG_USB_USS720=y CONFIG_USB_SERIAL=y # CONFIG_USB_SERIAL_CONSOLE is not set CONFIG_USB_SERIAL_GENERIC=y # CONFIG_USB_SERIAL_SIMPLE is not set CONFIG_USB_SERIAL_AIRCABLE=y CONFIG_USB_SERIAL_ARK3116=y CONFIG_USB_SERIAL_BELKIN=y CONFIG_USB_SERIAL_CH341=y CONFIG_USB_SERIAL_WHITEHEAT=y CONFIG_USB_SERIAL_DIGI_ACCELEPORT=y CONFIG_USB_SERIAL_CP210X=y CONFIG_USB_SERIAL_CYPRESS_M8=y CONFIG_USB_SERIAL_EMPEG=y CONFIG_USB_SERIAL_FTDI_SIO=y CONFIG_USB_SERIAL_VISOR=y CONFIG_USB_SERIAL_IPAQ=y CONFIG_USB_SERIAL_IR=y CONFIG_USB_SERIAL_EDGEPORT=y CONFIG_USB_SERIAL_EDGEPORT_TI=y # CONFIG_USB_SERIAL_F81232 is not set # CONFIG_USB_SERIAL_F8153X is not set CONFIG_USB_SERIAL_GARMIN=y CONFIG_USB_SERIAL_IPW=y CONFIG_USB_SERIAL_IUU=y CONFIG_USB_SERIAL_KEYSPAN_PDA=y CONFIG_USB_SERIAL_KEYSPAN=y CONFIG_USB_SERIAL_KLSI=y CONFIG_USB_SERIAL_KOBIL_SCT=y CONFIG_USB_SERIAL_MCT_U232=y # CONFIG_USB_SERIAL_METRO is not set CONFIG_USB_SERIAL_MOS7720=y CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7840=y # CONFIG_USB_SERIAL_MXUPORT is not set CONFIG_USB_SERIAL_NAVMAN=y CONFIG_USB_SERIAL_PL2303=y CONFIG_USB_SERIAL_OTI6858=y CONFIG_USB_SERIAL_QCAUX=y CONFIG_USB_SERIAL_QUALCOMM=y CONFIG_USB_SERIAL_SPCP8X5=y CONFIG_USB_SERIAL_SAFE=y # CONFIG_USB_SERIAL_SAFE_PADDED is not set CONFIG_USB_SERIAL_SIERRAWIRELESS=y CONFIG_USB_SERIAL_SYMBOL=y CONFIG_USB_SERIAL_TI=y CONFIG_USB_SERIAL_CYBERJACK=y CONFIG_USB_SERIAL_XIRCOM=y CONFIG_USB_SERIAL_WWAN=y CONFIG_USB_SERIAL_OPTION=y CONFIG_USB_SERIAL_OMNINET=y CONFIG_USB_SERIAL_OPTICON=y # CONFIG_USB_SERIAL_XSENS_MT is not set # CONFIG_USB_SERIAL_WISHBONE is not set CONFIG_USB_SERIAL_SSU100=y # CONFIG_USB_SERIAL_QT2 is not set # CONFIG_USB_SERIAL_UPD78F0730 is not set CONFIG_USB_SERIAL_DEBUG=y # # USB Miscellaneous drivers # CONFIG_USB_EMI62=y CONFIG_USB_EMI26=y CONFIG_USB_ADUTUX=y CONFIG_USB_SEVSEG=y CONFIG_USB_RIO500=y CONFIG_USB_LEGOTOWER=y CONFIG_USB_LCD=y CONFIG_USB_CYPRESS_CY7C63=y CONFIG_USB_CYTHERM=y CONFIG_USB_IDMOUSE=y CONFIG_USB_FTDI_ELAN=y CONFIG_USB_APPLEDISPLAY=y CONFIG_USB_SISUSBVGA=y CONFIG_USB_SISUSBVGA_CON=y CONFIG_USB_LD=y CONFIG_USB_TRANCEVIBRATOR=y CONFIG_USB_IOWARRIOR=y CONFIG_USB_TEST=y # CONFIG_USB_EHSET_TEST_FIXTURE is not set CONFIG_USB_ISIGHTFW=y CONFIG_USB_YUREX=y CONFIG_USB_EZUSB_FX2=y # CONFIG_USB_HUB_USB251XB is not set # CONFIG_USB_HSIC_USB3503 is not set # CONFIG_USB_HSIC_USB4604 is not set # CONFIG_USB_LINK_LAYER_TEST is not set # CONFIG_USB_CHAOSKEY is not set # CONFIG_UCSI is not set CONFIG_USB_ATM=y CONFIG_USB_SPEEDTOUCH=y CONFIG_USB_CXACRU=y CONFIG_USB_UEAGLEATM=y CONFIG_USB_XUSBATM=y # # USB Physical Layer drivers # CONFIG_USB_PHY=y CONFIG_NOP_USB_XCEIV=y # CONFIG_USB_GPIO_VBUS is not set # CONFIG_USB_ISP1301 is not set CONFIG_USB_GADGET=y # CONFIG_USB_GADGET_DEBUG is not set # CONFIG_USB_GADGET_DEBUG_FILES is not set # CONFIG_USB_GADGET_DEBUG_FS is not set CONFIG_USB_GADGET_VBUS_DRAW=2 CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # # USB Peripheral Controller # # CONFIG_USB_FOTG210_UDC is not set # CONFIG_USB_GR_UDC is not set # CONFIG_USB_R8A66597 is not set # CONFIG_USB_PXA27X is not set # CONFIG_USB_MV_UDC is not set # CONFIG_USB_MV_U3D is not set # CONFIG_USB_M66592 is not set # CONFIG_USB_BDC_UDC is not set # CONFIG_USB_AMD5536UDC is not set # CONFIG_USB_NET2272 is not set # CONFIG_USB_NET2280 is not set # CONFIG_USB_GOKU is not set CONFIG_USB_EG20T=y # CONFIG_USB_DUMMY_HCD is not set # CONFIG_USB_CONFIGFS is not set # # USB Power Delivery and Type-C drivers # # CONFIG_USB_LED_TRIG is not set # CONFIG_USB_ULPI_BUS is not set CONFIG_UWB=y CONFIG_UWB_HWA=y CONFIG_UWB_WHCI=y CONFIG_UWB_I1480U=y CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=y CONFIG_MMC_BLOCK_MINORS=8 CONFIG_SDIO_UART=y # CONFIG_MMC_TEST is not set # # MMC/SD/SDIO Host Controller Drivers # CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_PCI=y CONFIG_MMC_RICOH_MMC=y # CONFIG_MMC_SDHCI_ACPI is not set CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_WBSD=y CONFIG_MMC_TIFM_SD=y CONFIG_MMC_SPI=y CONFIG_MMC_SDRICOH_CS=y CONFIG_MMC_CB710=y CONFIG_MMC_VIA_SDMMC=y CONFIG_MMC_VUB300=y CONFIG_MMC_USHC=y # CONFIG_MMC_USDHI6ROL0 is not set # CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_MTK is not set # CONFIG_MMC_SDHCI_XENON is not set CONFIG_MEMSTICK=y # CONFIG_MEMSTICK_DEBUG is not set # # MemoryStick drivers # # CONFIG_MEMSTICK_UNSAFE_RESUME is not set CONFIG_MSPRO_BLOCK=y # CONFIG_MS_BLOCK is not set # # MemoryStick Host Controller Drivers # CONFIG_MEMSTICK_TIFM_MS=y CONFIG_MEMSTICK_JMICRON_38X=y CONFIG_MEMSTICK_R592=y CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y # CONFIG_LEDS_CLASS_FLASH is not set # CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set # # LED drivers # # CONFIG_LEDS_LM3530 is not set # CONFIG_LEDS_LM3642 is not set CONFIG_LEDS_PCA9532=y # CONFIG_LEDS_PCA9532_GPIO is not set # CONFIG_LEDS_GPIO is not set CONFIG_LEDS_LP3944=y # CONFIG_LEDS_LP3952 is not set # CONFIG_LEDS_LP5521 is not set # CONFIG_LEDS_LP5523 is not set # CONFIG_LEDS_LP5562 is not set # CONFIG_LEDS_LP8501 is not set # CONFIG_LEDS_LP8860 is not set CONFIG_LEDS_CLEVO_MAIL=y CONFIG_LEDS_PCA955X=y # CONFIG_LEDS_PCA963X is not set CONFIG_LEDS_DAC124S085=y CONFIG_LEDS_REGULATOR=y CONFIG_LEDS_BD2802=y CONFIG_LEDS_INTEL_SS4200=y CONFIG_LEDS_LT3593=y # CONFIG_LEDS_TCA6507 is not set # CONFIG_LEDS_TLC591XX is not set # CONFIG_LEDS_LM355x is not set # # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) # # CONFIG_LEDS_BLINKM is not set # CONFIG_LEDS_MLXCPLD is not set # CONFIG_LEDS_USER is not set # CONFIG_LEDS_NIC78BX is not set # # LED Triggers # CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=y # CONFIG_LEDS_TRIGGER_ONESHOT is not set # CONFIG_LEDS_TRIGGER_DISK is not set # CONFIG_LEDS_TRIGGER_MTD is not set CONFIG_LEDS_TRIGGER_HEARTBEAT=y CONFIG_LEDS_TRIGGER_BACKLIGHT=y # CONFIG_LEDS_TRIGGER_CPU is not set # CONFIG_LEDS_TRIGGER_GPIO is not set CONFIG_LEDS_TRIGGER_DEFAULT_ON=y # # iptables trigger is under Netfilter config (LED target) # # CONFIG_LEDS_TRIGGER_TRANSIENT is not set # CONFIG_LEDS_TRIGGER_CAMERA is not set # CONFIG_LEDS_TRIGGER_PANIC is not set CONFIG_ACCESSIBILITY=y CONFIG_A11Y_BRAILLE_CONSOLE=y CONFIG_INFINIBAND=y CONFIG_INFINIBAND_USER_MAD=y CONFIG_INFINIBAND_USER_ACCESS=y CONFIG_INFINIBAND_USER_MEM=y CONFIG_INFINIBAND_ON_DEMAND_PAGING=y CONFIG_INFINIBAND_ADDR_TRANS=y CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y CONFIG_INFINIBAND_MTHCA=y CONFIG_INFINIBAND_MTHCA_DEBUG=y CONFIG_INFINIBAND_CXGB3=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB4=y CONFIG_MLX4_INFINIBAND=y CONFIG_INFINIBAND_NES=y # CONFIG_INFINIBAND_NES_DEBUG is not set # CONFIG_INFINIBAND_OCRDMA is not set # CONFIG_INFINIBAND_VMWARE_PVRDMA is not set # CONFIG_INFINIBAND_USNIC is not set CONFIG_INFINIBAND_IPOIB=y CONFIG_INFINIBAND_IPOIB_CM=y CONFIG_INFINIBAND_IPOIB_DEBUG=y # CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set CONFIG_INFINIBAND_SRP=y # CONFIG_INFINIBAND_SRPT is not set CONFIG_INFINIBAND_ISER=y # CONFIG_INFINIBAND_ISERT is not set # CONFIG_INFINIBAND_OPA_VNIC is not set # CONFIG_INFINIBAND_RDMAVT is not set # CONFIG_INFINIBAND_BNXT_RE is not set CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y CONFIG_EDAC=y CONFIG_EDAC_LEGACY_SYSFS=y # CONFIG_EDAC_DEBUG is not set CONFIG_EDAC_DECODE_MCE=y # CONFIG_EDAC_GHES is not set CONFIG_EDAC_AMD64=y # CONFIG_EDAC_AMD64_ERROR_INJECTION is not set CONFIG_EDAC_E752X=y CONFIG_EDAC_I82975X=y CONFIG_EDAC_I3000=y CONFIG_EDAC_I3200=y # CONFIG_EDAC_IE31200 is not set CONFIG_EDAC_X38=y CONFIG_EDAC_I5400=y CONFIG_EDAC_I7CORE=y CONFIG_EDAC_I5000=y CONFIG_EDAC_I5100=y CONFIG_EDAC_I7300=y # CONFIG_EDAC_SBRIDGE is not set # CONFIG_EDAC_SKX is not set # CONFIG_EDAC_PND2 is not set CONFIG_RTC_LIB=y CONFIG_RTC_MC146818_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" CONFIG_RTC_SYSTOHC=y CONFIG_RTC_SYSTOHC_DEVICE="rtc0" # CONFIG_RTC_DEBUG is not set # # RTC interfaces # CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set # CONFIG_RTC_DRV_TEST is not set # # I2C RTC drivers # # CONFIG_RTC_DRV_ABB5ZES3 is not set # CONFIG_RTC_DRV_ABX80X is not set CONFIG_RTC_DRV_DS1307=y CONFIG_RTC_DRV_DS1307_HWMON=y # CONFIG_RTC_DRV_DS1307_CENTURY is not set CONFIG_RTC_DRV_DS1374=y # CONFIG_RTC_DRV_DS1374_WDT is not set CONFIG_RTC_DRV_DS1672=y CONFIG_RTC_DRV_MAX6900=y CONFIG_RTC_DRV_RS5C372=y CONFIG_RTC_DRV_ISL1208=y # CONFIG_RTC_DRV_ISL12022 is not set CONFIG_RTC_DRV_X1205=y # CONFIG_RTC_DRV_PCF8523 is not set # CONFIG_RTC_DRV_PCF85063 is not set CONFIG_RTC_DRV_PCF8563=y CONFIG_RTC_DRV_PCF8583=y CONFIG_RTC_DRV_M41T80=y # CONFIG_RTC_DRV_M41T80_WDT is not set CONFIG_RTC_DRV_BQ32K=y CONFIG_RTC_DRV_S35390A=y CONFIG_RTC_DRV_FM3130=y # CONFIG_RTC_DRV_RX8010 is not set CONFIG_RTC_DRV_RX8581=y CONFIG_RTC_DRV_RX8025=y # CONFIG_RTC_DRV_EM3027 is not set # CONFIG_RTC_DRV_RV8803 is not set # # SPI RTC drivers # # CONFIG_RTC_DRV_M41T93 is not set CONFIG_RTC_DRV_M41T94=y # CONFIG_RTC_DRV_DS1302 is not set CONFIG_RTC_DRV_DS1305=y # CONFIG_RTC_DRV_DS1343 is not set # CONFIG_RTC_DRV_DS1347 is not set CONFIG_RTC_DRV_DS1390=y # CONFIG_RTC_DRV_MAX6916 is not set CONFIG_RTC_DRV_R9701=y # CONFIG_RTC_DRV_RX4581 is not set # CONFIG_RTC_DRV_RX6110 is not set CONFIG_RTC_DRV_RS5C348=y CONFIG_RTC_DRV_MAX6902=y CONFIG_RTC_DRV_PCF2123=y # CONFIG_RTC_DRV_MCP795 is not set CONFIG_RTC_I2C_AND_SPI=y # # SPI and I2C RTC drivers # # CONFIG_RTC_DRV_DS3232 is not set # CONFIG_RTC_DRV_PCF2127 is not set # CONFIG_RTC_DRV_RV3029C2 is not set # # Platform RTC drivers # CONFIG_RTC_DRV_CMOS=y CONFIG_RTC_DRV_DS1286=y CONFIG_RTC_DRV_DS1511=y CONFIG_RTC_DRV_DS1553=y # CONFIG_RTC_DRV_DS1685_FAMILY is not set CONFIG_RTC_DRV_DS1742=y # CONFIG_RTC_DRV_DS2404 is not set CONFIG_RTC_DRV_STK17TA8=y CONFIG_RTC_DRV_M48T86=y CONFIG_RTC_DRV_M48T35=y CONFIG_RTC_DRV_M48T59=y CONFIG_RTC_DRV_MSM6242=y CONFIG_RTC_DRV_BQ4802=y CONFIG_RTC_DRV_RP5C01=y CONFIG_RTC_DRV_V3020=y CONFIG_RTC_DRV_PCF50633=y # # on-CPU RTC drivers # # # HID Sensor RTC drivers # # CONFIG_RTC_DRV_HID_SENSOR_TIME is not set CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set # # DMA Devices # CONFIG_DMA_ENGINE=y CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DMA_ACPI=y # CONFIG_INTEL_IDMA64 is not set CONFIG_INTEL_IOATDMA=y # CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_HIDMA is not set CONFIG_DW_DMAC_CORE=y # CONFIG_DW_DMAC is not set # CONFIG_DW_DMAC_PCI is not set CONFIG_HSU_DMA=y # # DMA Clients # CONFIG_ASYNC_TX_DMA=y # CONFIG_DMATEST is not set CONFIG_DMA_ENGINE_RAID=y # # DMABUF options # CONFIG_SYNC_FILE=y # CONFIG_SW_SYNC is not set CONFIG_DCA=y # CONFIG_AUXDISPLAY is not set # CONFIG_PANEL is not set CONFIG_UIO=y CONFIG_UIO_CIF=y CONFIG_UIO_PDRV_GENIRQ=y # CONFIG_UIO_DMEM_GENIRQ is not set CONFIG_UIO_AEC=y CONFIG_UIO_SERCOS3=y CONFIG_UIO_PCI_GENERIC=y CONFIG_UIO_NETX=y # CONFIG_UIO_PRUSS is not set # CONFIG_UIO_MF624 is not set # CONFIG_UIO_HV_GENERIC is not set # CONFIG_VFIO is not set CONFIG_IRQ_BYPASS_MANAGER=y # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO=y # # Virtio drivers # CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_BALLOON=y # CONFIG_VIRTIO_INPUT is not set CONFIG_VIRTIO_MMIO=y # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set # # Microsoft Hyper-V guest support # CONFIG_HYPERV=y CONFIG_HYPERV_TSCPAGE=y CONFIG_HYPERV_UTILS=y # CONFIG_HYPERV_BALLOON is not set # # Xen driver support # CONFIG_XEN_BALLOON=y # CONFIG_XEN_BALLOON_MEMORY_HOTPLUG is not set CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DEV_EVTCHN=y CONFIG_XEN_BACKEND=y CONFIG_XENFS=y CONFIG_XEN_COMPAT_XENFS=y CONFIG_XEN_SYS_HYPERVISOR=y CONFIG_XEN_XENBUS_FRONTEND=y CONFIG_XEN_GNTDEV=y CONFIG_XEN_GRANT_DEV_ALLOC=y CONFIG_SWIOTLB_XEN=y CONFIG_XEN_PCIDEV_BACKEND=y # CONFIG_XEN_SCSI_BACKEND is not set CONFIG_XEN_PRIVCMD=y CONFIG_XEN_ACPI_PROCESSOR=m # CONFIG_XEN_MCE_LOG is not set CONFIG_XEN_HAVE_PVMMU=y CONFIG_XEN_EFI=y CONFIG_XEN_AUTO_XLATE=y CONFIG_XEN_ACPI=y CONFIG_XEN_SYMS=y CONFIG_XEN_HAVE_VPMU=y CONFIG_STAGING=y CONFIG_PRISM2_USB=y CONFIG_COMEDI=m # CONFIG_COMEDI_DEBUG is not set CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048 CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480 # CONFIG_COMEDI_MISC_DRIVERS is not set # CONFIG_COMEDI_ISA_DRIVERS is not set # CONFIG_COMEDI_PCI_DRIVERS is not set # CONFIG_COMEDI_PCMCIA_DRIVERS is not set # CONFIG_COMEDI_USB_DRIVERS is not set # CONFIG_COMEDI_8255_SA is not set # CONFIG_COMEDI_KCOMEDILIB is not set CONFIG_RTL8192U=m # CONFIG_RTLLIB is not set # CONFIG_RTL8723BS is not set CONFIG_R8712U=y # CONFIG_R8188EU is not set # CONFIG_RTS5208 is not set # CONFIG_VT6655 is not set CONFIG_VT6656=m # CONFIG_FB_SM750 is not set # CONFIG_FB_XGI is not set # # Speakup console speech # CONFIG_SPEAKUP=y CONFIG_SPEAKUP_SYNTH_ACNTSA=y CONFIG_SPEAKUP_SYNTH_APOLLO=y CONFIG_SPEAKUP_SYNTH_AUDPTR=y CONFIG_SPEAKUP_SYNTH_BNS=y CONFIG_SPEAKUP_SYNTH_DECTLK=y CONFIG_SPEAKUP_SYNTH_DECEXT=y CONFIG_SPEAKUP_SYNTH_LTLK=y CONFIG_SPEAKUP_SYNTH_SOFT=y CONFIG_SPEAKUP_SYNTH_SPKOUT=y CONFIG_SPEAKUP_SYNTH_TXPRT=y CONFIG_SPEAKUP_SYNTH_DUMMY=y CONFIG_STAGING_MEDIA=y # # Android # # CONFIG_LTE_GDM724X is not set # CONFIG_FIREWIRE_SERIAL is not set # CONFIG_MTD_SPINAND_MT29F is not set # CONFIG_LNET is not set # CONFIG_DGNC is not set # CONFIG_GS_FPGABOOT is not set # CONFIG_CRYPTO_SKEIN is not set # CONFIG_UNISYSSPAR is not set # CONFIG_FB_TFT is not set # CONFIG_WILC1000_SDIO is not set # CONFIG_WILC1000_SPI is not set # CONFIG_MOST is not set # CONFIG_KS7010 is not set # CONFIG_GREYBUS is not set # # USB Power Delivery and Type-C drivers # # CONFIG_TYPEC_TCPM is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=y CONFIG_ACERHDF=y # CONFIG_ALIENWARE_WMI is not set CONFIG_ASUS_LAPTOP=y CONFIG_DELL_SMBIOS=y CONFIG_DELL_LAPTOP=y CONFIG_DELL_WMI=y CONFIG_DELL_WMI_AIO=y # CONFIG_DELL_WMI_LED is not set # CONFIG_DELL_SMO8800 is not set # CONFIG_DELL_RBTN is not set CONFIG_FUJITSU_LAPTOP=y # CONFIG_FUJITSU_LAPTOP_DEBUG is not set # CONFIG_FUJITSU_TABLET is not set CONFIG_AMILO_RFKILL=y CONFIG_HP_ACCEL=y # CONFIG_HP_WIRELESS is not set CONFIG_HP_WMI=y CONFIG_MSI_LAPTOP=y CONFIG_PANASONIC_LAPTOP=y CONFIG_COMPAL_LAPTOP=y CONFIG_SONY_LAPTOP=y CONFIG_SONYPI_COMPAT=y CONFIG_IDEAPAD_LAPTOP=y # CONFIG_SURFACE3_WMI is not set CONFIG_THINKPAD_ACPI=y CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set # CONFIG_THINKPAD_ACPI_DEBUG is not set # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set CONFIG_THINKPAD_ACPI_VIDEO=y CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y CONFIG_SENSORS_HDAPS=y # CONFIG_INTEL_MENLOW is not set CONFIG_EEEPC_LAPTOP=y CONFIG_ASUS_WMI=y CONFIG_ASUS_NB_WMI=y CONFIG_EEEPC_WMI=y # CONFIG_ASUS_WIRELESS is not set CONFIG_ACPI_WMI=y CONFIG_MSI_WMI=y # CONFIG_PEAQ_WMI is not set CONFIG_TOPSTAR_LAPTOP=y CONFIG_TOSHIBA_BT_RFKILL=y # CONFIG_TOSHIBA_HAPS is not set # CONFIG_TOSHIBA_WMI is not set CONFIG_ACPI_CMPC=y # CONFIG_INTEL_CHT_INT33FE is not set # CONFIG_INTEL_INT0002_VGPIO is not set # CONFIG_INTEL_HID_EVENT is not set # CONFIG_INTEL_VBTN is not set CONFIG_INTEL_IPS=y # CONFIG_INTEL_PMC_CORE is not set # CONFIG_IBM_RTL is not set CONFIG_SAMSUNG_LAPTOP=y CONFIG_MXM_WMI=y CONFIG_INTEL_OAKTRAIL=y # CONFIG_SAMSUNG_Q10 is not set # CONFIG_APPLE_GMUX is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set # CONFIG_PVPANIC is not set # CONFIG_INTEL_PMC_IPC is not set # CONFIG_SURFACE_PRO3_BUTTON is not set # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_MLX_PLATFORM is not set # CONFIG_MLX_CPLD_PLATFORM is not set # CONFIG_INTEL_TURBO_MAX_3 is not set CONFIG_PMC_ATOM=y # CONFIG_CHROME_PLATFORMS is not set 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_CDCE706 is not set # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_NXP is not set # CONFIG_COMMON_CLK_PXA is not set # CONFIG_COMMON_CLK_PIC32 is not set # CONFIG_HWSPINLOCK is not set # # Clock Source drivers # CONFIG_CLKEVT_I8253=y CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # CONFIG_ATMEL_PIT is not set # CONFIG_SH_TIMER_CMT is not set # CONFIG_SH_TIMER_MTU2 is not set # CONFIG_SH_TIMER_TMU is not set # CONFIG_EM_TIMER_STI is not set CONFIG_MAILBOX=y CONFIG_PCC=y # CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y # # Generic IOMMU Pagetable Support # CONFIG_IOMMU_IOVA=y CONFIG_AMD_IOMMU=y # CONFIG_AMD_IOMMU_V2 is not set CONFIG_DMAR_TABLE=y CONFIG_INTEL_IOMMU=y # CONFIG_INTEL_IOMMU_SVM is not set # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set CONFIG_INTEL_IOMMU_FLOPPY_WA=y CONFIG_IRQ_REMAP=y # # Remoteproc drivers # # CONFIG_REMOTEPROC is not set # # Rpmsg drivers # # CONFIG_RPMSG_QCOM_GLINK_RPM is not set # # SOC (System On Chip) specific Drivers # # # Broadcom SoC drivers # # # i.MX SoC drivers # # CONFIG_SUNXI_SRAM is not set # CONFIG_SOC_TI is not set # CONFIG_SOC_ZTE is not set # CONFIG_PM_DEVFREQ is not set CONFIG_EXTCON=y # # Extcon Device Drivers # # CONFIG_EXTCON_GPIO is not set # CONFIG_EXTCON_INTEL_INT3496 is not set # CONFIG_EXTCON_MAX3355 is not set # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set # CONFIG_EXTCON_USB_GPIO is not set # CONFIG_MEMORY is not set # CONFIG_IIO is not set # CONFIG_NTB is not set # CONFIG_VME_BUS is not set # CONFIG_PWM is not set CONFIG_ARM_GIC_MAX_NR=1 # CONFIG_IPACK_BUS is not set # CONFIG_RESET_CONTROLLER is not set # CONFIG_FMC is not set # # PHY Subsystem # CONFIG_GENERIC_PHY=y # CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_POWERCAP is not set # CONFIG_MCB is not set # # Performance monitor support # CONFIG_RAS=y # CONFIG_RAS_CEC is not set # CONFIG_THUNDERBOLT is not set # # Android # # CONFIG_ANDROID is not set # CONFIG_LIBNVDIMM is not set CONFIG_DAX=y # CONFIG_DEV_DAX is not set CONFIG_NVMEM=y # CONFIG_STM is not set # CONFIG_INTEL_TH is not set # # FPGA Configuration Support # # CONFIG_FPGA is not set # # FSI support # # CONFIG_FSI is not set # CONFIG_MULTIPLEXER is not set # # Firmware Drivers # CONFIG_EDD=y # CONFIG_EDD_OFF is not set CONFIG_FIRMWARE_MEMMAP=y CONFIG_DELL_RBU=y CONFIG_DCDBAS=y CONFIG_DMIID=y # CONFIG_DMI_SYSFS is not set CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=y # CONFIG_FW_CFG_SYSFS is not set # CONFIG_GOOGLE_FIRMWARE is not set # # EFI (Extensible Firmware Interface) Support # CONFIG_EFI_VARS=y CONFIG_EFI_ESRT=y CONFIG_EFI_VARS_PSTORE=y # CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set CONFIG_EFI_RUNTIME_MAP=y # CONFIG_EFI_FAKE_MEMMAP is not set CONFIG_EFI_RUNTIME_WRAPPERS=y # CONFIG_EFI_BOOTLOADER_CONTROL is not set # CONFIG_EFI_CAPSULE_LOADER is not set # CONFIG_EFI_TEST is not set CONFIG_UEFI_CPER=y # CONFIG_EFI_DEV_PATH_PARSER is not set # # Tegra firmware driver # # # File systems # CONFIG_DCACHE_WORD_ACCESS=y CONFIG_FS_IOMAP=y CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y CONFIG_EXT3_FS=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y CONFIG_EXT4_FS=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_ENCRYPTION is not set # CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=y # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y CONFIG_JFS_FS=y CONFIG_JFS_POSIX_ACL=y CONFIG_JFS_SECURITY=y # CONFIG_JFS_DEBUG is not set # CONFIG_JFS_STATISTICS is not set CONFIG_XFS_FS=y CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_RT=y # CONFIG_XFS_WARN is not set # CONFIG_XFS_DEBUG is not set CONFIG_GFS2_FS=y CONFIG_GFS2_FS_LOCKING_DLM=y CONFIG_OCFS2_FS=y CONFIG_OCFS2_FS_O2CB=y CONFIG_OCFS2_FS_USERSPACE_CLUSTER=y CONFIG_OCFS2_FS_STATS=y CONFIG_OCFS2_DEBUG_MASKLOG=y # CONFIG_OCFS2_DEBUG_FS is not set CONFIG_BTRFS_FS=y CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set # CONFIG_BTRFS_DEBUG is not set # CONFIG_BTRFS_ASSERT is not set CONFIG_NILFS2_FS=y # CONFIG_F2FS_FS is not set # CONFIG_FS_DAX is not set CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y # CONFIG_EXPORTFS_BLOCK_OPS is not set CONFIG_FILE_LOCKING=y CONFIG_MANDATORY_FILE_LOCKING=y # CONFIG_FS_ENCRYPTION is not set CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y # CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y # CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=y CONFIG_QFMT_V1=y CONFIG_QFMT_V2=y CONFIG_QUOTACTL=y CONFIG_QUOTACTL_COMPAT=y CONFIG_AUTOFS4_FS=y CONFIG_FUSE_FS=y CONFIG_CUSE=y # CONFIG_OVERLAY_FS is not set # # Caches # CONFIG_FSCACHE=y CONFIG_FSCACHE_STATS=y # CONFIG_FSCACHE_HISTOGRAM is not set # CONFIG_FSCACHE_DEBUG is not set # CONFIG_FSCACHE_OBJECT_LIST is not set CONFIG_CACHEFILES=y # CONFIG_CACHEFILES_DEBUG is not set # CONFIG_CACHEFILES_HISTOGRAM is not set # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=y CONFIG_UDF_NLS=y # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=y CONFIG_MSDOS_FS=y CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="utf8" # CONFIG_FAT_DEFAULT_UTF8 is not set CONFIG_NTFS_FS=y # CONFIG_NTFS_DEBUG is not set CONFIG_NTFS_RW=y # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y # CONFIG_PROC_CHILDREN is not set CONFIG_KERNFS=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_ARCH_HAS_GIGANTIC_PAGE=y CONFIG_CONFIGFS_FS=y CONFIG_EFIVAR_FS=m CONFIG_MISC_FILESYSTEMS=y # CONFIG_ORANGEFS_FS is not set CONFIG_ADFS_FS=y # CONFIG_ADFS_FS_RW is not set CONFIG_AFFS_FS=y CONFIG_ECRYPT_FS=y # CONFIG_ECRYPT_FS_MESSAGING is not set CONFIG_HFS_FS=y CONFIG_HFSPLUS_FS=y # CONFIG_HFSPLUS_FS_POSIX_ACL is not set CONFIG_BEFS_FS=y # CONFIG_BEFS_DEBUG is not set CONFIG_BFS_FS=y CONFIG_EFS_FS=y CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y # CONFIG_JFFS2_FS_WBUF_VERIFY is not set CONFIG_JFFS2_SUMMARY=y CONFIG_JFFS2_FS_XATTR=y CONFIG_JFFS2_FS_POSIX_ACL=y CONFIG_JFFS2_FS_SECURITY=y CONFIG_JFFS2_COMPRESSION_OPTIONS=y CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_LZO=y CONFIG_JFFS2_RTIME=y # CONFIG_JFFS2_RUBIN is not set # CONFIG_JFFS2_CMODE_NONE is not set CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set # CONFIG_JFFS2_CMODE_FAVOURLZO is not set CONFIG_UBIFS_FS=y CONFIG_UBIFS_FS_ADVANCED_COMPR=y CONFIG_UBIFS_FS_LZO=y CONFIG_UBIFS_FS_ZLIB=y # CONFIG_UBIFS_ATIME_SUPPORT is not set # CONFIG_UBIFS_FS_ENCRYPTION is not set CONFIG_UBIFS_FS_SECURITY=y CONFIG_CRAMFS=y CONFIG_SQUASHFS=y CONFIG_SQUASHFS_FILE_CACHE=y # CONFIG_SQUASHFS_FILE_DIRECT is not set CONFIG_SQUASHFS_DECOMP_SINGLE=y # CONFIG_SQUASHFS_DECOMP_MULTI is not set # CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_ZLIB=y # CONFIG_SQUASHFS_LZ4 is not set CONFIG_SQUASHFS_LZO=y CONFIG_SQUASHFS_XZ=y # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 CONFIG_VXFS_FS=y CONFIG_MINIX_FS=y CONFIG_OMFS_FS=y # CONFIG_HPFS_FS is not set CONFIG_QNX4FS_FS=y # CONFIG_QNX6FS_FS is not set CONFIG_ROMFS_FS=y # CONFIG_ROMFS_BACKED_BY_BLOCK is not set # CONFIG_ROMFS_BACKED_BY_MTD is not set CONFIG_ROMFS_BACKED_BY_BOTH=y CONFIG_ROMFS_ON_BLOCK=y CONFIG_ROMFS_ON_MTD=y CONFIG_PSTORE=y CONFIG_PSTORE_ZLIB_COMPRESS=y # CONFIG_PSTORE_LZO_COMPRESS is not set # CONFIG_PSTORE_LZ4_COMPRESS is not set # CONFIG_PSTORE_CONSOLE is not set # CONFIG_PSTORE_PMSG is not set # CONFIG_PSTORE_FTRACE is not set # CONFIG_PSTORE_RAM is not set CONFIG_SYSV_FS=y CONFIG_UFS_FS=y # CONFIG_UFS_FS_WRITE is not set # CONFIG_UFS_DEBUG is not set CONFIG_EXOFS_FS=y # CONFIG_EXOFS_DEBUG is not set CONFIG_ORE=y CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=y CONFIG_NFS_V2=y CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y # CONFIG_NFS_SWAP is not set CONFIG_NFS_V4_1=y CONFIG_NFS_V4_2=y CONFIG_PNFS_FILE_LAYOUT=y CONFIG_PNFS_BLOCK=y CONFIG_PNFS_FLEXFILE_LAYOUT=m CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" # CONFIG_NFS_V4_1_MIGRATION is not set CONFIG_NFS_V4_SECURITY_LABEL=y CONFIG_ROOT_NFS=y CONFIG_NFS_FSCACHE=y # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y CONFIG_NFSD=y CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y # CONFIG_NFSD_BLOCKLAYOUT is not set # CONFIG_NFSD_SCSILAYOUT is not set # CONFIG_NFSD_FLEXFILELAYOUT is not set # CONFIG_NFSD_V4_SECURITY_LABEL is not set # CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_GRACE_PERIOD=y CONFIG_LOCKD=y CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y CONFIG_SUNRPC_GSS=y CONFIG_SUNRPC_BACKCHANNEL=y CONFIG_RPCSEC_GSS_KRB5=y # CONFIG_SUNRPC_DEBUG is not set CONFIG_SUNRPC_XPRT_RDMA=y CONFIG_CEPH_FS=y # CONFIG_CEPH_FSCACHE is not set # CONFIG_CEPH_FS_POSIX_ACL is not set CONFIG_CIFS=y # CONFIG_CIFS_STATS is not set CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y CONFIG_CIFS_ACL=y CONFIG_CIFS_DEBUG=y # CONFIG_CIFS_DEBUG2 is not set CONFIG_CIFS_DFS_UPCALL=y # CONFIG_CIFS_SMB2 is not set CONFIG_CIFS_FSCACHE=y CONFIG_NCP_FS=y CONFIG_NCPFS_PACKET_SIGNING=y CONFIG_NCPFS_IOCTL_LOCKING=y CONFIG_NCPFS_STRONG=y CONFIG_NCPFS_NFS_NS=y CONFIG_NCPFS_OS2_NS=y # CONFIG_NCPFS_SMALLDOS is not set CONFIG_NCPFS_NLS=y CONFIG_NCPFS_EXTRAS=y CONFIG_CODA_FS=y CONFIG_AFS_FS=y # CONFIG_AFS_DEBUG is not set CONFIG_AFS_FSCACHE=y CONFIG_9P_FS=y CONFIG_9P_FSCACHE=y CONFIG_9P_FS_POSIX_ACL=y # CONFIG_9P_FS_SECURITY is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_737=y CONFIG_NLS_CODEPAGE_775=y CONFIG_NLS_CODEPAGE_850=y CONFIG_NLS_CODEPAGE_852=y CONFIG_NLS_CODEPAGE_855=y CONFIG_NLS_CODEPAGE_857=y CONFIG_NLS_CODEPAGE_860=y CONFIG_NLS_CODEPAGE_861=y CONFIG_NLS_CODEPAGE_862=y CONFIG_NLS_CODEPAGE_863=y CONFIG_NLS_CODEPAGE_864=y CONFIG_NLS_CODEPAGE_865=y CONFIG_NLS_CODEPAGE_866=y CONFIG_NLS_CODEPAGE_869=y CONFIG_NLS_CODEPAGE_936=y CONFIG_NLS_CODEPAGE_950=y CONFIG_NLS_CODEPAGE_932=y CONFIG_NLS_CODEPAGE_949=y CONFIG_NLS_CODEPAGE_874=y CONFIG_NLS_ISO8859_8=y CONFIG_NLS_CODEPAGE_1250=y CONFIG_NLS_CODEPAGE_1251=y CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_2=y CONFIG_NLS_ISO8859_3=y CONFIG_NLS_ISO8859_4=y CONFIG_NLS_ISO8859_5=y CONFIG_NLS_ISO8859_6=y CONFIG_NLS_ISO8859_7=y CONFIG_NLS_ISO8859_9=y CONFIG_NLS_ISO8859_13=y CONFIG_NLS_ISO8859_14=y CONFIG_NLS_ISO8859_15=y CONFIG_NLS_KOI8_R=y CONFIG_NLS_KOI8_U=y # CONFIG_NLS_MAC_ROMAN is not set # CONFIG_NLS_MAC_CELTIC is not set # CONFIG_NLS_MAC_CENTEURO is not set # CONFIG_NLS_MAC_CROATIAN is not set # CONFIG_NLS_MAC_CYRILLIC is not set # CONFIG_NLS_MAC_GAELIC is not set # CONFIG_NLS_MAC_GREEK is not set # CONFIG_NLS_MAC_ICELAND is not set # CONFIG_NLS_MAC_INUIT is not set # CONFIG_NLS_MAC_ROMANIAN is not set # CONFIG_NLS_MAC_TURKISH is not set CONFIG_NLS_UTF8=y CONFIG_DLM=y CONFIG_DLM_DEBUG=y # # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y # # printk and dmesg options # CONFIG_PRINTK_TIME=y CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_DEBUG_SYNCHRO_TEST is not set CONFIG_BOOT_PRINTK_DELAY=y # CONFIG_DYNAMIC_DEBUG is not set # # Compile-time checks and compiler options # # CONFIG_DEBUG_INFO is not set CONFIG_ENABLE_WARN_DEPRECATED=y CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=2048 CONFIG_STRIP_ASM_SYMS=y # CONFIG_READABLE_ASM is not set CONFIG_UNUSED_SYMBOLS=y # CONFIG_PAGE_OWNER is not set CONFIG_DEBUG_FS=y CONFIG_HEADERS_CHECK=y CONFIG_DEBUG_SECTION_MISMATCH=y CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_FRAME_POINTER=y # CONFIG_STACK_VALIDATION is not set CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_DEBUG_KERNEL=y # # Memory Debugging # CONFIG_PAGE_EXTENSION=y CONFIG_DEBUG_PAGEALLOC=y # CONFIG_DEBUG_PAGEALLOC_ENABLE_DEFAULT is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_PAGE_REF is not set CONFIG_DEBUG_RODATA_TEST=y CONFIG_DEBUG_OBJECTS=y # CONFIG_DEBUG_OBJECTS_SELFTEST is not set # CONFIG_DEBUG_OBJECTS_FREE is not set # CONFIG_DEBUG_OBJECTS_TIMERS is not set # CONFIG_DEBUG_OBJECTS_WORK is not set # CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set # CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 CONFIG_DEBUG_SLAB=y # CONFIG_DEBUG_SLAB_LEAK is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set CONFIG_DEBUG_STACK_USAGE=y CONFIG_DEBUG_VM=y # CONFIG_DEBUG_VM_VMACACHE is not set # CONFIG_DEBUG_VM_RB is not set # CONFIG_DEBUG_VM_PGFLAGS is not set CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y CONFIG_DEBUG_VIRTUAL=y CONFIG_DEBUG_MEMORY_INIT=y CONFIG_DEBUG_PER_CPU_MAPS=y CONFIG_HAVE_DEBUG_STACKOVERFLOW=y CONFIG_DEBUG_STACKOVERFLOW=y CONFIG_HAVE_ARCH_KMEMCHECK=y CONFIG_HAVE_ARCH_KASAN=y CONFIG_ARCH_HAS_KCOV=y # CONFIG_KCOV is not set CONFIG_DEBUG_SHIRQ=y # # Debug Lockups and Hangs # CONFIG_LOCKUP_DETECTOR=y CONFIG_SOFTLOCKUP_DETECTOR=y CONFIG_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HARDLOCKUP_DETECTOR=y # CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=300 CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1 # CONFIG_WQ_WATCHDOG is not set # CONFIG_PANIC_ON_OOPS is not set CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 CONFIG_SCHED_DEBUG=y CONFIG_SCHED_INFO=y CONFIG_SCHEDSTATS=y # CONFIG_SCHED_STACK_END_CHECK is not set # CONFIG_DEBUG_TIMEKEEPING is not set # # Lock Debugging (spinlocks, mutexes, etc...) # CONFIG_DEBUG_RT_MUTEXES=y CONFIG_DEBUG_SPINLOCK=y CONFIG_DEBUG_MUTEXES=y # CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y CONFIG_LOCKDEP=y CONFIG_LOCK_STAT=y # CONFIG_DEBUG_LOCKDEP is not set CONFIG_DEBUG_ATOMIC_SLEEP=y CONFIG_DEBUG_LOCKING_API_SELFTESTS=y # CONFIG_LOCK_TORTURE_TEST is not set # CONFIG_WW_MUTEX_SELFTEST is not set CONFIG_TRACE_IRQFLAGS=y CONFIG_STACKTRACE=y CONFIG_WARN_UNSEEDED_RANDOM=y # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y CONFIG_DEBUG_LIST=y CONFIG_DEBUG_PI_LIST=y CONFIG_DEBUG_SG=y CONFIG_DEBUG_NOTIFIERS=y CONFIG_DEBUG_CREDENTIALS=y # # RCU Debugging # CONFIG_PROVE_RCU=y # CONFIG_TORTURE_TEST is not set # CONFIG_RCU_PERF_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60 CONFIG_RCU_TRACE=y # CONFIG_RCU_EQS_DEBUG is not set # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_NOTIFIER_ERROR_INJECTION is not set CONFIG_FAULT_INJECTION=y # CONFIG_FAILSLAB is not set # CONFIG_FAIL_PAGE_ALLOC is not set # CONFIG_FAIL_MAKE_REQUEST is not set # CONFIG_FAIL_IO_TIMEOUT is not set # CONFIG_FAIL_FUTEX is not set # CONFIG_FAULT_INJECTION_DEBUG_FS is not set CONFIG_LATENCYTOP=y CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_FENTRY=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACER_MAX_TRACE=y CONFIG_TRACE_CLOCK=y CONFIG_RING_BUFFER=y CONFIG_EVENT_TRACING=y CONFIG_CONTEXT_SWITCH_TRACER=y CONFIG_RING_BUFFER_ALLOW_SWAP=y CONFIG_TRACING=y CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y CONFIG_FTRACE=y CONFIG_FUNCTION_TRACER=y CONFIG_FUNCTION_GRAPH_TRACER=y CONFIG_IRQSOFF_TRACER=y CONFIG_SCHED_TRACER=y # CONFIG_HWLAT_TRACER is not set CONFIG_FTRACE_SYSCALLS=y CONFIG_TRACER_SNAPSHOT=y CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set # CONFIG_PROFILE_ALL_BRANCHES is not set # CONFIG_STACK_TRACER is not set CONFIG_BLK_DEV_IO_TRACE=y CONFIG_KPROBE_EVENTS=y CONFIG_UPROBE_EVENTS=y CONFIG_PROBE_EVENTS=y CONFIG_DYNAMIC_FTRACE=y CONFIG_DYNAMIC_FTRACE_WITH_REGS=y # CONFIG_FUNCTION_PROFILER is not set CONFIG_FTRACE_MCOUNT_RECORD=y # CONFIG_FTRACE_STARTUP_TEST is not set CONFIG_MMIOTRACE=y # CONFIG_HIST_TRIGGERS is not set # CONFIG_MMIOTRACE_TEST is not set # CONFIG_TRACEPOINT_BENCHMARK is not set # CONFIG_RING_BUFFER_BENCHMARK is not set # CONFIG_RING_BUFFER_STARTUP_TEST is not set # CONFIG_TRACE_ENUM_MAP_FILE is not set CONFIG_TRACING_EVENTS_GPIO=y # # Runtime Testing # CONFIG_LKDTM=y CONFIG_TEST_LIST_SORT=y # CONFIG_TEST_SORT is not set CONFIG_KPROBES_SANITY_TEST=y # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_RBTREE_TEST is not set # CONFIG_INTERVAL_TREE_TEST is not set # CONFIG_PERCPU_TEST is not set CONFIG_ATOMIC64_SELFTEST=y # CONFIG_ASYNC_RAID6_TEST is not set # CONFIG_TEST_HEXDUMP is not set # CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_KSTRTOX is not set # CONFIG_TEST_PRINTF is not set # CONFIG_TEST_BITMAP is not set # CONFIG_TEST_UUID is not set # CONFIG_TEST_RHASHTABLE is not set # CONFIG_TEST_HASH is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_TEST_LKM is not set # CONFIG_TEST_USER_COPY is not set # CONFIG_TEST_BPF is not set # CONFIG_TEST_FIRMWARE is not set # CONFIG_TEST_SYSCTL is not set # CONFIG_TEST_UDELAY is not set CONFIG_MEMTEST=y # CONFIG_TEST_STATIC_KEYS is not set # CONFIG_BUG_ON_DATA_CORRUPTION is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y # CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set # CONFIG_UBSAN is not set CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y CONFIG_STRICT_DEVMEM=y # CONFIG_IO_STRICT_DEVMEM is not set CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set # CONFIG_EARLY_PRINTK_EFI is not set # CONFIG_EARLY_PRINTK_USB_XDBC is not set CONFIG_X86_PTDUMP_CORE=y CONFIG_X86_PTDUMP=y # CONFIG_EFI_PGT_DUMP is not set # CONFIG_DEBUG_WX is not set CONFIG_DOUBLEFAULT=y # CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_DEBUG is not set # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y # CONFIG_X86_DECODER_SELFTEST is not set CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_UDELAY=2 CONFIG_IO_DELAY_TYPE_NONE=3 CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_0XED is not set # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 # CONFIG_DEBUG_BOOT_PARAMS is not set # CONFIG_CPA_DEBUG is not set CONFIG_OPTIMIZE_INLINING=y # CONFIG_DEBUG_ENTRY is not set CONFIG_DEBUG_NMI_SELFTEST=y CONFIG_X86_DEBUG_FPU=y # CONFIG_PUNIT_ATOM_DEBUG is not set # # Security options # CONFIG_KEYS=y CONFIG_KEYS_COMPAT=y # CONFIG_PERSISTENT_KEYRINGS is not set # CONFIG_BIG_KEYS is not set # CONFIG_TRUSTED_KEYS is not set # CONFIG_ENCRYPTED_KEYS is not set # CONFIG_KEY_DH_OPERATIONS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set CONFIG_SECURITY=y # CONFIG_SECURITY_WRITABLE_HOOKS is not set CONFIG_SECURITYFS=y CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_INFINIBAND is not set CONFIG_SECURITY_NETWORK_XFRM=y CONFIG_SECURITY_PATH=y # CONFIG_INTEL_TXT is not set CONFIG_LSM_MMAP_MIN_ADDR=65536 CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_HARDENED_USERCOPY is not set # CONFIG_STATIC_USERMODEHELPER is not set CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_SELINUX_BOOTPARAM is not set # 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_SMACK is not set # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y # CONFIG_SECURITY_APPARMOR_DEBUG is not set # CONFIG_SECURITY_LOADPIN is not set # CONFIG_SECURITY_YAMA is not set CONFIG_INTEGRITY=y # CONFIG_INTEGRITY_SIGNATURE is not set CONFIG_INTEGRITY_AUDIT=y # CONFIG_IMA is not set # CONFIG_EVM is not set # CONFIG_DEFAULT_SECURITY_SELINUX is not set # CONFIG_DEFAULT_SECURITY_APPARMOR is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=y CONFIG_ASYNC_CORE=y CONFIG_ASYNC_MEMCPY=y CONFIG_ASYNC_XOR=y CONFIG_ASYNC_PQ=y CONFIG_ASYNC_RAID6_RECOV=y CONFIG_CRYPTO=y # # Crypto core or helper # CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_KPP2=y CONFIG_CRYPTO_ACOMP2=y # CONFIG_CRYPTO_RSA is not set # CONFIG_CRYPTO_DH is not set CONFIG_CRYPTO_ECDH=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y # CONFIG_CRYPTO_USER is not set CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_PCRYPT=y CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=y # CONFIG_CRYPTO_MCRYPTD is not set CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_TEST=m CONFIG_CRYPTO_SIMD=y CONFIG_CRYPTO_GLUE_HELPER_X86=y CONFIG_CRYPTO_ENGINE=m # # Authenticated Encryption with Associated Data # CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_GCM=y # CONFIG_CRYPTO_CHACHA20POLY1305 is not set CONFIG_CRYPTO_SEQIV=y CONFIG_CRYPTO_ECHAINIV=y # # Block modes # CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=y CONFIG_CRYPTO_ECB=y CONFIG_CRYPTO_LRW=y CONFIG_CRYPTO_PCBC=y CONFIG_CRYPTO_XTS=y # CONFIG_CRYPTO_KEYWRAP is not set # # Hash modes # CONFIG_CRYPTO_CMAC=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=y CONFIG_CRYPTO_VMAC=y # # Digest # CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_CRC32C_INTEL=y # CONFIG_CRYPTO_CRC32 is not set # CONFIG_CRYPTO_CRC32_PCLMUL is not set CONFIG_CRYPTO_CRCT10DIF=y # CONFIG_CRYPTO_CRCT10DIF_PCLMUL is not set CONFIG_CRYPTO_GHASH=y # CONFIG_CRYPTO_POLY1305 is not set # CONFIG_CRYPTO_POLY1305_X86_64 is not set CONFIG_CRYPTO_MD4=y CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=y CONFIG_CRYPTO_RMD128=y CONFIG_CRYPTO_RMD160=y CONFIG_CRYPTO_RMD256=y CONFIG_CRYPTO_RMD320=y CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA1_SSSE3=y # CONFIG_CRYPTO_SHA256_SSSE3 is not set # CONFIG_CRYPTO_SHA512_SSSE3 is not set # CONFIG_CRYPTO_SHA1_MB is not set # CONFIG_CRYPTO_SHA256_MB is not set # CONFIG_CRYPTO_SHA512_MB is not set CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y # CONFIG_CRYPTO_SHA3 is not set CONFIG_CRYPTO_TGR192=y CONFIG_CRYPTO_WP512=y CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=y # # Ciphers # CONFIG_CRYPTO_AES=y # CONFIG_CRYPTO_AES_TI is not set CONFIG_CRYPTO_AES_X86_64=y CONFIG_CRYPTO_AES_NI_INTEL=y CONFIG_CRYPTO_ANUBIS=y CONFIG_CRYPTO_ARC4=y CONFIG_CRYPTO_BLOWFISH=y CONFIG_CRYPTO_BLOWFISH_COMMON=y CONFIG_CRYPTO_BLOWFISH_X86_64=y CONFIG_CRYPTO_CAMELLIA=y # CONFIG_CRYPTO_CAMELLIA_X86_64 is not set # CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set CONFIG_CRYPTO_CAST_COMMON=y CONFIG_CRYPTO_CAST5=y # CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set CONFIG_CRYPTO_CAST6=y # CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_DES3_EDE_X86_64 is not set CONFIG_CRYPTO_FCRYPT=y CONFIG_CRYPTO_KHAZAD=y CONFIG_CRYPTO_SALSA20=y CONFIG_CRYPTO_SALSA20_X86_64=y # CONFIG_CRYPTO_CHACHA20 is not set # CONFIG_CRYPTO_CHACHA20_X86_64 is not set CONFIG_CRYPTO_SEED=y CONFIG_CRYPTO_SERPENT=y # CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set # CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set # CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set CONFIG_CRYPTO_TEA=y CONFIG_CRYPTO_TWOFISH=y CONFIG_CRYPTO_TWOFISH_COMMON=y CONFIG_CRYPTO_TWOFISH_X86_64=y CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=y # CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set # # Compression # CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_842 is not set # CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4HC is not set # # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=y CONFIG_CRYPTO_DRBG_MENU=y CONFIG_CRYPTO_DRBG_HMAC=y # CONFIG_CRYPTO_DRBG_HASH is not set # CONFIG_CRYPTO_DRBG_CTR is not set CONFIG_CRYPTO_DRBG=y CONFIG_CRYPTO_JITTERENTROPY=y CONFIG_CRYPTO_USER_API=y CONFIG_CRYPTO_USER_API_HASH=y CONFIG_CRYPTO_USER_API_SKCIPHER=y # CONFIG_CRYPTO_USER_API_RNG is not set # CONFIG_CRYPTO_USER_API_AEAD is not set CONFIG_CRYPTO_HASH_INFO=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=y CONFIG_CRYPTO_DEV_PADLOCK_AES=y CONFIG_CRYPTO_DEV_PADLOCK_SHA=y # CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set # CONFIG_CRYPTO_DEV_CCP is not set # CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set # CONFIG_CRYPTO_DEV_QAT_C3XXX is not set # CONFIG_CRYPTO_DEV_QAT_C62X is not set # CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set # CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set # CONFIG_CRYPTO_DEV_QAT_C62XVF is not set CONFIG_CRYPTO_DEV_NITROX=m CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m # CONFIG_CRYPTO_DEV_CHELSIO is not set CONFIG_CRYPTO_DEV_VIRTIO=m # CONFIG_ASYMMETRIC_KEY_TYPE is not set # # Certificates for signature checking # # CONFIG_SYSTEM_BLACKLIST_KEYRING is not set CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_IRQFD=y CONFIG_HAVE_KVM_IRQ_ROUTING=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_MMIO=y CONFIG_KVM_ASYNC_PF=y CONFIG_HAVE_KVM_MSI=y CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y CONFIG_KVM_VFIO=y CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y CONFIG_KVM_COMPAT=y CONFIG_HAVE_KVM_IRQ_BYPASS=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=y CONFIG_KVM_INTEL=y CONFIG_KVM_AMD=y # CONFIG_KVM_MMU_AUDIT is not set CONFIG_VHOST_NET=y # CONFIG_VHOST_SCSI is not set CONFIG_VHOST=y # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set CONFIG_BINARY_PRINTF=y # # Library routines # CONFIG_RAID6_PQ=y CONFIG_BITREVERSE=y # CONFIG_HAVE_ARCH_BITREVERSE is not set CONFIG_RATIONAL=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_IO=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_ARCH_HAS_FAST_MULTIPLIER=y CONFIG_CRC_CCITT=y CONFIG_CRC16=y CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=y CONFIG_CRC32=y # CONFIG_CRC32_SELFTEST is not set CONFIG_CRC32_SLICEBY8=y # CONFIG_CRC32_SLICEBY4 is not set # CONFIG_CRC32_SARWATE is not set # CONFIG_CRC32_BIT is not set # CONFIG_CRC4 is not set CONFIG_CRC7=y CONFIG_LIBCRC32C=y CONFIG_CRC8=y # CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_DECOMPRESS=y CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y CONFIG_XZ_DEC_POWERPC=y CONFIG_XZ_DEC_IA64=y CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_ARMTHUMB=y CONFIG_XZ_DEC_SPARC=y CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_LZ4=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_REED_SOLOMON=y CONFIG_REED_SOLOMON_DEC16=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=y CONFIG_TEXTSEARCH_BM=y CONFIG_TEXTSEARCH_FSM=y CONFIG_BTREE=y CONFIG_INTERVAL_TREE=y CONFIG_RADIX_TREE_MULTIORDER=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y # CONFIG_DMA_NOOP_OPS is not set # CONFIG_DMA_VIRT_OPS is not set CONFIG_CHECK_SIGNATURE=y # CONFIG_CPUMASK_OFFSTACK is not set CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_GLOB=y # CONFIG_GLOB_SELFTEST is not set CONFIG_NLATTR=y CONFIG_CORDIC=y # CONFIG_DDR is not set CONFIG_IRQ_POLL=y CONFIG_OID_REGISTRY=y CONFIG_UCS2_STRING=y CONFIG_FONT_SUPPORT=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y # CONFIG_SG_SPLIT is not set CONFIG_SG_POOL=y CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_ARCH_HAS_PMEM_API=y CONFIG_ARCH_HAS_MMIO_FLUSH=y CONFIG_SBITMAP=y --Nq2Wo0NMKNjxTN9z Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=job-script #!/bin/sh export_top_env() { export suite='trinity' export testcase='trinity' export runtime=300 export job_origin='/lkp/lkp/src/allot/rand/vm-lkp-hsw01-openwrt-ia32/trinity.yaml' export testbox='vm-lkp-hsw01-openwrt-ia32-18' export tbox_group='vm-lkp-hsw01-openwrt-ia32' export kconfig='x86_64-allyesdebian' export compiler='gcc-6' export queue='rand' export branch='linux-review/Igor-Stoppa/ro-protection-for-dynamic-data/20170627-103230' export commit='7361ce7529bd0a6525d088a0def0f392d98f00d3' export repeat_to=2 export submit_id='5951cea00b9a938694464f4b' export job_file='/lkp/scheduled/vm-lkp-hsw01-openwrt-ia32-18/trinity-300s-openwrt-i386-2016-03-16.cgz-7361ce7529bd0a6525d088a0def0f392d98f00d3-20170627-34452-188b8i5-0.yaml' export id='86ad2cdcc5bcaf7ea2897096390530e6ee6c0832' export model='qemu-system-x86_64 -enable-kvm' export nr_vm=30 export nr_cpu=1 export memory='420M' export rootfs='openwrt-i386-2016-03-16.cgz' export need_kconfig='CONFIG_KVM_GUEST=y' export enqueue_time='2017-06-27 11:18:56 +0800' export _id='5951cea00b9a938694464f4b' export _rt='/result/trinity/300s/vm-lkp-hsw01-openwrt-ia32/openwrt-i386-2016-03-16.cgz/x86_64-allyesdebian/gcc-6/7361ce7529bd0a6525d088a0def0f392d98f00d3' export user='lkp' export kernel='/pkg/linux/x86_64-allyesdebian/gcc-6/7361ce7529bd0a6525d088a0def0f392d98f00d3/vmlinuz-4.12.0-rc5-mm1-00320-g7361ce75' export result_root='/result/trinity/300s/vm-lkp-hsw01-openwrt-ia32/openwrt-i386-2016-03-16.cgz/x86_64-allyesdebian/gcc-6/7361ce7529bd0a6525d088a0def0f392d98f00d3/0' export dequeue_time='2017-06-27 11:19:04 +0800' export LKP_SERVER='inn' export max_uptime=1500 export initrd='/osimage/openwrt/openwrt-i386-2016-03-16.cgz' export bootloader_append='root=/dev/ram0 user=lkp job=/lkp/scheduled/vm-lkp-hsw01-openwrt-ia32-18/trinity-300s-openwrt-i386-2016-03-16.cgz-7361ce7529bd0a6525d088a0def0f392d98f00d3-20170627-34452-188b8i5-0.yaml ARCH=x86_64 kconfig=x86_64-allyesdebian branch=linux-review/Igor-Stoppa/ro-protection-for-dynamic-data/20170627-103230 commit=7361ce7529bd0a6525d088a0def0f392d98f00d3 BOOT_IMAGE=/pkg/linux/x86_64-allyesdebian/gcc-6/7361ce7529bd0a6525d088a0def0f392d98f00d3/vmlinuz-4.12.0-rc5-mm1-00320-g7361ce75 max_uptime=1500 RESULT_ROOT=/result/trinity/300s/vm-lkp-hsw01-openwrt-ia32/openwrt-i386-2016-03-16.cgz/x86_64-allyesdebian/gcc-6/7361ce7529bd0a6525d088a0def0f392d98f00d3/0 LKP_SERVER=inn debug apic=debug sysrq_always_enabled rcupdate.rcu_cpu_stall_timeout=100 net.ifnames=0 printk.devkmsg=on panic=-1 softlockup_panic=1 nmi_watchdog=panic oops=panic load_ramdisk=2 prompt_ramdisk=0 drbd.minor_count=8 systemd.log_level=err ignore_loglevel earlyprintk=ttyS0,115200 console=ttyS0,115200 console=tty0 vga=normal rw' export lkp_initrd='/lkp/lkp/lkp-i386.cgz' export modules_initrd='/pkg/linux/x86_64-allyesdebian/gcc-6/7361ce7529bd0a6525d088a0def0f392d98f00d3/modules.cgz' export bm_initrd='/osimage/pkg/static/trinity-i386.cgz' export site='inn' export LKP_CGI_PORT=80 export LKP_CIFS_PORT=139 export job_initrd='/lkp/scheduled/vm-lkp-hsw01-openwrt-ia32-18/trinity-300s-openwrt-i386-2016-03-16.cgz-7361ce7529bd0a6525d088a0def0f392d98f00d3-20170627-34452-188b8i5-0.cgz' [ -n "$LKP_SRC" ] || export LKP_SRC=/lkp/${user:-lkp}/src } run_job() { echo $$ > $TMP/run-job.pid . $LKP_SRC/lib/http.sh . $LKP_SRC/lib/job.sh . $LKP_SRC/lib/env.sh export_top_env run_monitor $LKP_SRC/monitors/wrapper kmsg run_monitor $LKP_SRC/monitors/wrapper oom-killer run_monitor $LKP_SRC/monitors/plain/watchdog run_monitor $LKP_SRC/monitors/wrapper nfs-hang run_test $LKP_SRC/tests/wrapper trinity } extract_stats() { $LKP_SRC/stats/wrapper kmsg $LKP_SRC/stats/wrapper time trinity.time $LKP_SRC/stats/wrapper time $LKP_SRC/stats/wrapper dmesg $LKP_SRC/stats/wrapper kmsg $LKP_SRC/stats/wrapper stderr $LKP_SRC/stats/wrapper last_state } "$@" --Nq2Wo0NMKNjxTN9z Content-Type: application/octet-stream Content-Disposition: attachment; filename="dmesg.xz" Content-Transfer-Encoding: base64 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 --Nq2Wo0NMKNjxTN9z-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f199.google.com (mail-wr0-f199.google.com [209.85.128.199]) by kanga.kvack.org (Postfix) with ESMTP id C13DB6B02FA for ; Wed, 5 Jul 2017 09:50:10 -0400 (EDT) Received: by mail-wr0-f199.google.com with SMTP id 23so41849191wry.4 for ; Wed, 05 Jul 2017 06:50:10 -0700 (PDT) Received: from lhrrgout.huawei.com (lhrrgout.huawei.com. [194.213.3.17]) by mx.google.com with ESMTPS id 62si24340953wmv.29.2017.07.05.06.50.09 for (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 05 Jul 2017 06:50:09 -0700 (PDT) From: Igor Stoppa Subject: [PATCH 3/3] Make LSM Writable Hooks a command line option Date: Wed, 5 Jul 2017 16:46:28 +0300 Message-ID: <20170705134628.3803-4-igor.stoppa@huawei.com> In-Reply-To: <20170705134628.3803-1-igor.stoppa@huawei.com> References: <20170705134628.3803-1-igor.stoppa@huawei.com> MIME-Version: 1.0 Content-Type: text/plain Sender: owner-linux-mm@kvack.org List-ID: To: keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, labbott@redhat.com, hch@infradead.org Cc: penguin-kernel@I-love.SAKURA.ne.jp, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Igor Stoppa This patch shows how it is possible to take advantage of pmalloc: instead of using the build-time option __lsm_ro_after_init, to decide if it is possible to keep the hooks modifiable, now this becomes a boot-time decision, based on the kernel command line. This patch relies on: "Convert security_hook_heads into explicit array of struct list_head" Author: Tetsuo Handa to break free from the static constraint imposed by the previous hardening model, based on __ro_after_init. The default value is disabled, unless SE Linux debugging is turned on. Signed-off-by: Igor Stoppa CC: Tetsuo Handa --- security/security.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/security/security.c b/security/security.c index 44c47b6..c7b4670 100644 --- a/security/security.c +++ b/security/security.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #define MAX_LSM_EVM_XATTR 2 @@ -34,10 +35,19 @@ /* Maximum number of letters for an LSM name string */ #define SECURITY_NAME_MAX 10 -static struct list_head hook_heads[LSM_MAX_HOOK_INDEX] - __lsm_ro_after_init; static ATOMIC_NOTIFIER_HEAD(lsm_notifier_chain); +static int dynamic_lsm = IS_ENABLED(CONFIG_SECURITY_SELINUX_DISABLE); + +static __init int set_dynamic_lsm(char *str) +{ + get_option(&str, &dynamic_lsm); + return 0; +} +early_param("dynamic_lsm", set_dynamic_lsm); + +static struct list_head *hook_heads; +static struct gen_pool *sec_pool; char *lsm_names; /* Boot-time LSM user choice */ static __initdata char chosen_lsm[SECURITY_NAME_MAX + 1] = @@ -62,6 +72,11 @@ int __init security_init(void) { enum security_hook_index i; + sec_pool = pmalloc_create_pool("security", PMALLOC_DEFAULT_ALLOC_ORDER); + BUG_ON(!sec_pool); + hook_heads = pmalloc(sec_pool, + sizeof(struct list_head) * LSM_MAX_HOOK_INDEX); + BUG_ON(!hook_heads); for (i = 0; i < LSM_MAX_HOOK_INDEX; i++) INIT_LIST_HEAD(&hook_heads[i]); pr_info("Security Framework initialized\n"); @@ -77,7 +92,8 @@ int __init security_init(void) * Load all the remaining security modules. */ do_security_initcalls(); - + if (!dynamic_lsm) + pmalloc_protect_pool(sec_pool); return 0; } -- 2.9.3 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f199.google.com (mail-wr0-f199.google.com [209.85.128.199]) by kanga.kvack.org (Postfix) with ESMTP id 63BAC6B04B0 for ; Mon, 10 Jul 2017 11:09:24 -0400 (EDT) Received: by mail-wr0-f199.google.com with SMTP id r103so25069872wrb.0 for ; Mon, 10 Jul 2017 08:09:24 -0700 (PDT) Received: from lhrrgout.huawei.com (lhrrgout.huawei.com. [194.213.3.17]) by mx.google.com with ESMTPS id b204si6810675wmh.72.2017.07.10.08.09.22 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 10 Jul 2017 08:09:22 -0700 (PDT) From: Igor Stoppa Subject: [PATCH 3/3] Make LSM Writable Hooks a command line option Date: Mon, 10 Jul 2017 18:06:03 +0300 Message-ID: <20170710150603.387-4-igor.stoppa@huawei.com> In-Reply-To: <20170710150603.387-1-igor.stoppa@huawei.com> References: <20170710150603.387-1-igor.stoppa@huawei.com> MIME-Version: 1.0 Content-Type: text/plain Sender: owner-linux-mm@kvack.org List-ID: To: jglisse@redhat.com, keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, penguin-kernel@I-love.SAKURA.ne.jp, labbott@redhat.com, hch@infradead.org Cc: paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Igor Stoppa This patch shows how it is possible to take advantage of pmalloc: instead of using the build-time option __lsm_ro_after_init, to decide if it is possible to keep the hooks modifiable, now this becomes a boot-time decision, based on the kernel command line. This patch relies on: "Convert security_hook_heads into explicit array of struct list_head" Author: Tetsuo Handa to break free from the static constraint imposed by the previous hardening model, based on __ro_after_init. The default value is disabled, unless SE Linux debugging is turned on. Signed-off-by: Igor Stoppa CC: Tetsuo Handa --- security/security.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/security/security.c b/security/security.c index 44c47b6..c7b4670 100644 --- a/security/security.c +++ b/security/security.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #define MAX_LSM_EVM_XATTR 2 @@ -34,10 +35,19 @@ /* Maximum number of letters for an LSM name string */ #define SECURITY_NAME_MAX 10 -static struct list_head hook_heads[LSM_MAX_HOOK_INDEX] - __lsm_ro_after_init; static ATOMIC_NOTIFIER_HEAD(lsm_notifier_chain); +static int dynamic_lsm = IS_ENABLED(CONFIG_SECURITY_SELINUX_DISABLE); + +static __init int set_dynamic_lsm(char *str) +{ + get_option(&str, &dynamic_lsm); + return 0; +} +early_param("dynamic_lsm", set_dynamic_lsm); + +static struct list_head *hook_heads; +static struct gen_pool *sec_pool; char *lsm_names; /* Boot-time LSM user choice */ static __initdata char chosen_lsm[SECURITY_NAME_MAX + 1] = @@ -62,6 +72,11 @@ int __init security_init(void) { enum security_hook_index i; + sec_pool = pmalloc_create_pool("security", PMALLOC_DEFAULT_ALLOC_ORDER); + BUG_ON(!sec_pool); + hook_heads = pmalloc(sec_pool, + sizeof(struct list_head) * LSM_MAX_HOOK_INDEX); + BUG_ON(!hook_heads); for (i = 0; i < LSM_MAX_HOOK_INDEX; i++) INIT_LIST_HEAD(&hook_heads[i]); pr_info("Security Framework initialized\n"); @@ -77,7 +92,8 @@ int __init security_init(void) * Load all the remaining security modules. */ do_security_initcalls(); - + if (!dynamic_lsm) + pmalloc_protect_pool(sec_pool); return 0; } -- 2.9.3 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f200.google.com (mail-pf0-f200.google.com [209.85.192.200]) by kanga.kvack.org (Postfix) with ESMTP id EA6416B04B8 for ; Tue, 11 Jul 2017 00:13:22 -0400 (EDT) Received: by mail-pf0-f200.google.com with SMTP id c23so133745197pfe.11 for ; Mon, 10 Jul 2017 21:13:22 -0700 (PDT) Received: from mga11.intel.com (mga11.intel.com. [192.55.52.93]) by mx.google.com with ESMTPS id 82si9183294pfn.127.2017.07.10.21.13.21 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 10 Jul 2017 21:13:22 -0700 (PDT) Date: Tue, 11 Jul 2017 12:12:33 +0800 From: kbuild test robot Subject: Re: [PATCH 3/3] Make LSM Writable Hooks a command line option Message-ID: <201707111218.WdNdnvYN%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="cNdxnHkX5QqsyA0e" Content-Disposition: inline In-Reply-To: <20170710150603.387-4-igor.stoppa@huawei.com> Sender: owner-linux-mm@kvack.org List-ID: To: Igor Stoppa Cc: kbuild-all@01.org, jglisse@redhat.com, keescook@chromium.org, mhocko@kernel.org, jmorris@namei.org, penguin-kernel@I-love.SAKURA.ne.jp, labbott@redhat.com, hch@infradead.org, paul@paul-moore.com, sds@tycho.nsa.gov, casey@schaufler-ca.com, linux-security-module@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com --cNdxnHkX5QqsyA0e Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Igor, [auto build test ERROR on linus/master] [cannot apply to v4.12] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Igor-Stoppa/mm-security-ro-protection-for-dynamic-data/20170711-084116 config: score-spct6600_defconfig (attached as .config) compiler: score-elf-gcc (GCC) 4.9.1 20140622 (prerelease) reproduce: wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=score All errors (new ones prefixed by >>): security/security.o: In function `security_init': >> security.c:(.init.text+0x68): undefined reference to `pmalloc_create_pool' >> security.c:(.init.text+0x98): undefined reference to `pmalloc' >> security.c:(.init.text+0x150): undefined reference to `pmalloc_protect_pool' --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --cNdxnHkX5QqsyA0e Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 --cNdxnHkX5QqsyA0e-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org