Prepared the files for the kernel 4.12.2, the first take

This commit is contained in:
Evgenii Shatokhin 2017-07-16 22:50:33 +03:00
parent c9922ff0b1
commit c2d7aa28fb
17 changed files with 670 additions and 18951 deletions

View file

@ -1,3 +1,3 @@
sources:
linux-4.11.tar.xz: 0d2594b7aa3e79521f229569f9e14dc56bdcbd78
patch-4.11.9.xz: 42627a156cb3815a3b2be144dee93d79f7d9829f
linux-4.12.tar.xz: f5dda0344401c436aa47685fbf345f4b7975fcf5
patch-4.12.2.xz: 97521561145d5b79dd07d6c128042d1c471e7694

View file

@ -1,103 +0,0 @@
From a0bd3c561ad7ec10c22a5ca345c6e4c5df117e41 Mon Sep 17 00:00:00 2001
From: Paolo Valente <paolo.valente@unimore.it>
Date: Tue, 7 Apr 2015 13:39:12 +0200
Subject: [PATCH 1/4] block: cgroups, kconfig, build bits for BFQ-v7r11-4.11.0
Update Kconfig.iosched and do the related Makefile changes to include
kernel configuration options for BFQ. Also increase the number of
policies supported by the blkio controller so that BFQ can add its
own.
Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
Signed-off-by: Arianna Avanzini <avanzini@google.com>
---
block/Kconfig.iosched | 32 ++++++++++++++++++++++++++++++++
block/Makefile | 1 +
include/linux/blkdev.h | 2 +-
3 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/block/Kconfig.iosched b/block/Kconfig.iosched
index 58fc868..bb47b1a 100644
--- a/block/Kconfig.iosched
+++ b/block/Kconfig.iosched
@@ -39,6 +39,27 @@ config CFQ_GROUP_IOSCHED
---help---
Enable group IO scheduling in CFQ.
+config IOSCHED_BFQ
+ tristate "BFQ I/O scheduler"
+ default n
+ ---help---
+ The BFQ I/O scheduler tries to distribute bandwidth among
+ all processes according to their weights.
+ It aims at distributing the bandwidth as desired, independently of
+ the disk parameters and with any workload. It also tries to
+ guarantee low latency to interactive and soft real-time
+ applications. If compiled built-in (saying Y here), BFQ can
+ be configured to support hierarchical scheduling.
+
+config CGROUP_BFQIO
+ bool "BFQ hierarchical scheduling support"
+ depends on CGROUPS && IOSCHED_BFQ=y
+ default n
+ ---help---
+ Enable hierarchical scheduling in BFQ, using the cgroups
+ filesystem interface. The name of the subsystem will be
+ bfqio.
+
choice
prompt "Default I/O scheduler"
default DEFAULT_CFQ
@@ -52,6 +73,16 @@ choice
config DEFAULT_CFQ
bool "CFQ" if IOSCHED_CFQ=y
+ config DEFAULT_BFQ
+ bool "BFQ" if IOSCHED_BFQ=y
+ help
+ Selects BFQ as the default I/O scheduler which will be
+ used by default for all block devices.
+ The BFQ I/O scheduler aims at distributing the bandwidth
+ as desired, independently of the disk parameters and with
+ any workload. It also tries to guarantee low latency to
+ interactive and soft real-time applications.
+
config DEFAULT_NOOP
bool "No-op"
@@ -61,6 +92,7 @@ config DEFAULT_IOSCHED
string
default "deadline" if DEFAULT_DEADLINE
default "cfq" if DEFAULT_CFQ
+ default "bfq" if DEFAULT_BFQ
default "noop" if DEFAULT_NOOP
config MQ_IOSCHED_DEADLINE
diff --git a/block/Makefile b/block/Makefile
index 081bb68..91869f2 100644
--- a/block/Makefile
+++ b/block/Makefile
@@ -20,6 +20,7 @@ obj-$(CONFIG_IOSCHED_NOOP) += noop-iosched.o
obj-$(CONFIG_IOSCHED_DEADLINE) += deadline-iosched.o
obj-$(CONFIG_IOSCHED_CFQ) += cfq-iosched.o
obj-$(CONFIG_MQ_IOSCHED_DEADLINE) += mq-deadline.o
+obj-$(CONFIG_IOSCHED_BFQ) += bfq-iosched.o
obj-$(CONFIG_BLOCK_COMPAT) += compat_ioctl.o
obj-$(CONFIG_BLK_CMDLINE_PARSER) += cmdline-parser.o
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 01a696b..29d537d 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -48,7 +48,7 @@ struct rq_wb;
* Maximum number of blkcg policies allowed to be registered concurrently.
* Defined here to simplify include dependency.
*/
-#define BLKCG_MAX_POLS 2
+#define BLKCG_MAX_POLS 3
typedef void (rq_end_io_fn)(struct request *, int);
--
2.10.0

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,786 +0,0 @@
Budget Fair Queueing I/O Scheduler
==================================
This patchset introduces BFQ-v8r11 into Linux 4.11.0.
For further information: http://algogroup.unimore.it/people/paolo/disk_sched/
The overall diffstat is the following:
Documentation/block/00-INDEX | 2 +
Documentation/block/bfq-iosched.txt | 530 ++++++
Makefile | 2 +-
block/Kconfig.iosched | 30 +
block/Makefile | 1 +
block/bfq-cgroup.c | 1191 +++++++++++++
block/bfq-ioc.c | 36 +
block/bfq-iosched.c | 5306 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
block/bfq-sched.c | 1989 ++++++++++++++++++++++
block/bfq.h | 935 +++++++++++
include/linux/blkdev.h | 2 +-
11 files changed, 10022 insertions(+), 2 deletions(-)
CHANGELOG
BFQ v8r11
BUGFIX: use pointer entity->sched_data only if set.
In the function __bfq_deactivate_entity, the pointer
entity->sched_data could happen to be used before being properly
initialized. This led to a NULL pointer dereference. This commit fixes
this bug by just using this pointer only where it is safe to do so.
Reported-by: Tom Harrison <l12436.tw@gmail.com>
Tested-by: Tom Harrison <l12436.tw@gmail.com>
BUGFIX: don't dereference bic before null checking it.
The call to bfq_check_ioprio_change will dereference bic, however,
the null check for bic is after this call. Move the the null
check on bic to before the call to avoid any potential null
pointer dereference issues.
Detected by CoverityScan, CID#1430138 ("Dereference before null check")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
BFQ v8r10
BUGFIX: Handle failure of weight-counter allocation
Reported-by: Bart Van Assche <Bart.VanAssche@sandisk.com>
BUGFIX: Remove problematic check on max service duration
Reported-by: Bart Van Assche <Bart.VanAssche@sandisk.com>
BFQ v8r9
BUGIFX: remove use of bfq queues after free
bfq queues occasionally happened to be used after being freed, because
they were accessed after some invocations of bfq_put_queue that could
cause them to be freed. This commit refactors code, when needed, to
avoid any occurrence of such a use-after-free of a bfq queue. This
commit also adds comments to make references to bfq queues easier to
follow.
BFQ v8r8
. BUGFIX: Removed a wrong compilation warning, due to the compiler
not taking into account short circuit in a condition.
. BUGIFX: Added several forgotten static qualifiers in function
definitions (completely harmless issue).
. BUGFIX: Put async queues on exit also without cgroups
. BUGFIX: The putting of async queues on scheduler exit was missing in case
cgroups support was not active. This fix adds the missing operation.
. BUGFIX: In the peak-rate estimator, there was a serious error in the
check that the percentage of sequential I/O-request dispatches was high
enough to trigger an update of the peak-rate estimate. This commit fixes
that check.
. IMPROVEMENT Luca Miccio has run a few responsiveness tests on recent
Android systems with average-speed storage devices. These tests have
shown that the following BFQ parameter was too low for these
systems: reference duration for slow storage devices of weight
raising for interactive applications. This commit raises that
duration to a value that is yelding optimal results in our
tests. Contributed by Luca Miccio.
. IMPROVEMENT This commit anticipates the complete check of budget
exhaustion, for the in-service bfq_queue, to when the next bfq_queue
to serve is selected (during a dispatch operation). This enables a
new bfq_queue to be immediately selected for service in case the
in-service bfq_queue has actually exhausted its budget. As a
consequence, a second dispatch invocation is not needed any more, to
have a new request dispatched. To implement this improvement, this
commit implements a further improvement too: the field next_rq of a
bfq_queue now always contains the actual next request to dispatch
(or NULL if the bfq_queue is empty).
. BUGFIX Make bfq_bic_update_cgroup() return nothing if
CONFIG_BFQ_GROUP_IOSCHED is disabled, as it happens if this option
is enabled. Contributed by Oleksandr Natalenko.
BFQ v8r7
. BUGFIX: make BFQ compile also without hierarchical support
BFQ v8r6
. BUGFIX Removed the check that, when the new queue to set in service
must be selected, the cached next_in_service entities coincide with
the entities chosen by __bfq_lookup_next_entity. This check, issuing
a warning on failure, was wrong, because the cached and the newly
chosen entity could differ in case of a CLASS_IDLE timeout.
. EFFICIENCY IMPROVEMENT (this improvement is related to the above
BUGFIX) The cached next_in_service entities are now really used to
select the next queue to serve when the in-service queue
expires. Before this change, the cached values were used only for
extra (and in general wrong) consistency checks. This caused
additional overhead instead of reducing it.
. EFFICIENCY IMPROVEMENT The next entity to serve, for each level of
the hierarchy, is now updated on every event that may change it,
i.e., on every activation or deactivation of any entity. This finer
granularity is not strictly needed for corectness, because it is
only on queue expirations that BFQ needs to know what are the next
entities to serve. Yet this change makes it possible to implement
optimizations in which it is necessary to know the next queue to
serve before the in-service queue expires.
. SERVICE-ACCURACY IMPROVEMENT The per-device CLASS_IDLE service
timeout has been turned into a much more accurate per-group timeout.
. CODE-QUALITY IMPROVEMENT The non-trivial parts touched by the above
improvements have been partially rewritten, and enriched of
comments, so as to improve their transparency and understandability.
. IMPROVEMENT Ported and improved CFQ commit 41647e7a Before this
improvememtn, BFQ used the same logic for detecting seeky queues for
rotational disks and SSDs. This logic is appropriate for the former,
as it takes into account only inter-request distance, and the latter
is the dominant latency factor on a rotational device. Yet things
change with flash-based devices, where serving a large request still
yields a high throughput, even the request is far from the previous
request served. This commits extends seeky detection to take into
accoutn also this fact with flash-based devices. In particular, this
commit is an improved port of the original commit 41647e7a for CFQ.
. CODE IMPROVEMENT Remove useless parameter from bfq_del_bfqq_busy
. OPTIMIZATION Optimize the update of next_in_service entity. If the
update of the next_in_service candidate entity is triggered by the
activation of an entity, then it is not necessary to perform full
lookups in the active trees to update next_in_service. In fact, it
is enough to check whether the just-activated entity has a higher
priority than next_in_service, or, even if it has the same priority
as next_in_service, is eligible and has a lower virtual finish time
than next_in_service. If this compound condition holds, then the new
entity can be set as the new next_in_service. Otherwise no change is
needed. This commit implements this optimization.
. BUGFIX Fix bug causing occasional loss of weight raising. When a
bfq_queue, say bfqq, is split after a merging with another
bfq_queue, BFQ checks whether it has to restore for bfqq the
weight-raising state that bfqq had before being merged. In
particular, the weight-raising is restored only if, according to the
weight-raising duration decided for bfqq when it started to be
weight-raised (before being merged), bfqq would not have already
finished its weight-raising period. Yet, by mistake, such a
duration was not saved when bfqq is merged. So, if bfqq was freed
and reallocated when it was split, then this duration was wrongly
set to zero on the split. As a consequence, the weight-raising state
of bfqq was wrongly not restored, which caused BFQ to fail in
guaranteeing a low latency to bfqq. This commit fixes this bug by
saving weight-raising duration when bfqq is merged, and correctly
restoring it when bfqq is split.
. BUGFIX Fix wrong reset of in-service entities In-service entities
were reset with an indirect logic, which happened to be even buggy
for some cases. This commit fixes this bug in two important
steps. First, by replacing this indirect logic with a direct logic,
in which all involved entities are immediately reset, with a
bubble-up loop, when the in-service queue is reset. Second, by
restructuring the code related to this change, so as to become not
only correct with respect to this change, but also cleaner and
hopefully clearer.
. CODE IMPROVEMENT Add code to be able to redirect trace log to
console.
. BUGFIX Fixed bug in optimized update of next_in_service entity.
There was a case where bfq_update_next_in_service did not update
next_in_service, even if it might need to be changed: in case of
requeueing or repositioning of the entity that happened to be
pointed exactly by next_in_service. This could result in violation
of service guarantees, because, after a change of timestamps for
such an entity, it might be the case that next_in_service had to
point to a different entity. This commit fixes this bug.
. OPTIMIZATION Stop bubble-up of next_in_service update if possible.
. BUGFIX Fixed a false-positive warning for uninitialized var
BFQ-v8r5
. DOCUMENTATION IMPROVEMENT Added documentation of BFQ benefits, inner
workings, interface and tunables.
. BUGFIX: Replaced max wrongly used for modulo numbers.
. DOCUMENTATION IMPROVEMENT Improved help message in Kconfig.iosched.
. BUGFIX: Removed wrong conversion in use of bfq_fifo_expire.
. CODE IMPROVEMENT Added parentheses to complex macros.
v8r4
. BUGFIX The function bfq_find_set_group may return a NULL pointer,
which happened not to properly handled in the function
__bfq_bic_change_cgroup. This fix handles this case. Contributed by
Lee Tibbert.
. BUGFIX Fix recovery of lost service for soft real-time
applications. This recovery is important for soft real-time
application to continue enjoying proper weight raising even if their
service happens to be delayed for a while. Contributed by Luca
Miccio.
. BUGFIX Fix handling of wait_request state. The semantics of
hrtimers makes the following assumption false after invoking
hrtimer_try_to_cancel: the timer results as non
active. Unfortunately this assumption was used in the previous
version of the code. This change lets code comply with the new
semantics.
. IMPROVEMENT Improve the peak-rate estimator. This change is a
complete rewrite of the peak-rate estimation algorithm. It is both
an improvement and a simplification: in particular it replaces the
previous, less effective, stable and clear algorithm for estimating
the peak rate. The previous algorihtm approximated the service rate
using the individual dispatch rates observed during the service
slots of queues. As such, it took into account not only just
individual queue workloads, but also rather short time intervals.
The new algorithm considers the global workload served by the
device, and computes the peak rate over much larger time
intervals. This makes the new algorihtm extremely more effective
with queueing devices and, in general, with devices with a
fluctuating bandwidth, either physical or virtual.
. IMPROVEMENT Force the device to serve one request at a time if
strict_guarantees is true. Forcing this service scheme is currently
the ONLY way to guarantee that the request service order enforced by
the scheduler is respected by a queueing device. Otherwise the
device is free even to make some unlucky request wait for as long as
the device wishes.
Of course, serving one request at at time may cause loss of throughput.
. IMPROVEMENT Let weight raising start for a soft real-time
application even while the application is till enjoying
weight-raising for interactive tasks. This allows soft real-time
applications to start enjoying the benefits of their special weight
raising as soon as possible.
v8r3
. BUGFIX Update weight-raising coefficient when switching from
interactive to soft real-time.
v8r2
. BUGFIX Removed variables that are not used if tracing is
disabled. Reported by Lee Tibbert <lee.tibbert@gmail.com>
. IMPROVEMENT Ported commit ae11889636: turned blkg_lookup_create into
blkg_lookup. As a side benefit, this finally enables BFQ to be used
as a module even with full hierarchical support.
v8r1
. BUGFIX Fixed incorrect invariant check
. IMPROVEMENT Privileged soft real-time applications against
interactive ones, to guarantee a lower and more stable latency to
the former
v8
. BUGFIX: Fixed incorrect rcu locking in bfq_bic_update_cgroup
. BUGFIX Fixed a few cgroups-related bugs, causing sporadic crashes
. BUGFIX Fixed wrong computation of queue weights as a function of ioprios
. BUGFIX Fixed wrong Kconfig.iosched dependency for BFQ_GROUP_IOSCHED
. IMPROVEMENT Preemption-based, idle-less service guarantees. If
several processes are competing for the device at the same time, but
all processes and groups have the same weight, then the mechanism
introduced by this improvement enables BFQ to guarantee the expected
throughput distribution without ever idling the device. Throughput
is then much higher in this common scenario.
. IMPROVEMENT Made burst handling more robust
. IMPROVEMENT Reduced false positives in EQM
. IMPROVEMENT Let queues preserve weight-raising also when shared
. IMPROVEMENT Improved peak-rate estimation and autotuning of the
parameters related to the device rate
. IMPROVEMENT Improved the weight-raising mechanism so as to further
reduce latency and to increase robustness
. IMPROVEMENT Added a strict-guarantees tunable. If this tunable is
set, then device-idling is forced whenever needed to provide
accurate service guarantees. CAVEAT: idling unconditionally may even
increase latencies, in case of processes that did stop doing I/O.
. IMPROVEMENT Improved handling of async (write) I/O requests
. IMPROVEMENT Ported several good CFQ commits
. CHANGE Changed default group weight to 100
. CODE IMPROVEMENT Refactored I/O-request-insertion code
v7r11:
. BUGFIX Remove the group_list data structure, which ended up in an
inconsistent state if BFQ happened to be activated for some device
when some blkio groups already existed (these groups where not added
to the list). The blkg list for the request queue is now used where
the removed group_list was used.
. BUGFIX Init and reset also dead_stats.
. BUGFIX Added, in __bfq_deactivate_entity, the correct handling of the
case where the entity to deactivate has not yet been activated at all.
. BUGFIX Added missing free of the root group for the case where full
hierarchical support is not activated.
. IMPROVEMENT Removed the now useless bfq_disconnect_groups
function. The same functionality is achieved through multiple
invocations of bfq_pd_offline (which are in their turn guaranteed to
be executed, when needed, by the blk-cgroups code).
v7r10 <VERSION RETIRED, BECAUSE OF THE BUGS FIXED IN v7r11!!!>:
. BUGFIX: Fixed wrong check on whether cooperating processes belong
to the same cgroup.
v7r9:
. IMPROVEMENT: Changed BFQ to use the blkio controller instead of its
own controller. BFQ now registers itself as a policy to the blkio
controller and implements its hierarchical scheduling support using
data structures that already exist in blk-cgroup. The bfqio
controller's code is completely removed.
. CODE IMPROVEMENTS: Applied all suggestions from Tejun Heo, received
on the last submission to lkml: https://lkml.org/lkml/2014/5/27/314.
v7r8:
. BUGFIX: Let weight-related fields of a bfq_entity be correctly initialized
(also) when the I/O priority of the entity is changed before the first
request is inserted into the bfq_queue associated to the entity.
. BUGFIX: When merging requests belonging to different bfq_queues, avoid
repositioning the surviving request. In fact, in this case the repositioning
may result in the surviving request being moved across bfq_queues, which
would ultimately cause bfq_queues' data structures to become inconsistent.
. BUGFIX: When merging requests belonging to the same bfq_queue, reposition
the surviving request so that it gets in the correct position, namely the
position of the dropped request, instead of always being moved to the head
of the FIFO of the bfq_queue (which means to let the request be considered
the eldest one).
. BUGFIX: Reduce the idling slice for seeky queues only if the scenario is
symmetric. This guarantees that also processes associated to seeky queues
do receive their reserved share of the throughput.
Contributed by Riccardo Pizzetti and Samuele Zecchini.
. IMPROVEMENT: Always perform device idling if the scenario is asymmetric in
terms of throughput distribution among processes.
This extends throughput-distribution guarantees to any process, regardless
of the properties of its request pattern and of the request patterns of the
other processes, and regardless of whether the device is NCQ-capable.
. IMPROVEMENT: Remove the current limitation on the maximum number of in-flight
requests allowed for a sync queue (limitation set in place for fairness
issues in CFQ, inherited by the first version of BFQ, but made unnecessary
by the latest accurate fairness strategies added to BFQ). Removing this
limitation enables devices with long internal queues to fill their queues
as much as they deem appropriate, also with sync requests. This avoids
throughput losses on these devices, because, to achieve a high throughput,
they often need to have a high number of requests queued internally.
. CODE IMPROVEMENT: Simplify I/O priority change logic by turning it into a
single-step procedure instead of a two-step one; improve readability by
rethinking the names of the functions involved in changing the I/O priority
of a bfq_queue.
v7r7:
. BUGFIX: Prevent the OOM queue from being involved in the queue
cooperation mechanism. In fact, since the requests temporarily
redirected to the OOM queue could be redirected again to dedicated
queues at any time, the state needed to correctly handle merging
with the OOM queue would be quite complex and expensive to
maintain. Besides, in such a critical condition as an out of
memory, the benefits of queue merging may be little relevant, or
even negligible.
. IMPROVEMENT: Let the OOM queue be initialized only once. Previously,
the OOM queue was reinitialized, at each request enqueue, with the
parameters related to the process that issued that request.
Depending on the parameters of the processes doing I/O, this could
easily cause the OOM queue to be moved continuously across service
trees, or even across groups. It also caused the parameters of the
OOM queue to be continuously reset in any case.
. CODE IMPROVEMENT. Performed some minor code cleanups, and added some
BUG_ON()s that, if the weight of an entity becomes inconsistent,
should better help understand why.
v7r6:
. IMPROVEMENT: Introduced a new mechanism that helps get the job done
more quickly with services and applications that create or reactivate
many parallel I/O-bound processes. This is the case, for example, with
systemd at boot, or with commands like git grep.
. CODE IMPROVEMENTS: Small code cleanups and improvements.
v7r5:
. IMPROVEMENT: Improve throughput boosting by idling the device
only for processes that, in addition to perform sequential I/O,
are I/O-bound (apart from weight-raised queues, for which idling
is always performed to guarantee them a low latency).
. IMPROVEMENT: Improve throughput boosting by depriving processes
that cooperate often of weight-raising.
. CODE IMPROVEMENT: Pass of improvement of the readability of both
comments and actual code.
v7r4:
. BUGFIX. Modified the code so as to be robust against late detection of
NCQ support for a rotational device.
. BUGFIX. Removed a bug that hindered the correct throughput distribution
on flash-based devices when not every process had to receive the same
fraction of the throughput. This fix entailed also a little efficiency
improvement, because it implied the removal of a short function executed
in a hot path.
. CODESTYLE IMPROVEMENT: removed quoted strings split across lines.
v7r3:
. IMPROVEMENT: Improved throughput boosting with NCQ-capable HDDs and
random workloads. The mechanism that further boosts throghput with
these devices and workloads is activated only in the cases where it
does not cause any violation of throughput-distribution and latency
guarantees.
. IMPROVEMENT: Generalized the computation of the parameters of the
low-latency heuristic for interactive applications, so as to fit also
slower storage devices. The purpose of this improvement is to preserve
low-latency guarantees for interactive applications also on slower
devices, such as portable hard disks, multimedia and SD cards.
. BUGFIX: Re-added MODULE_LICENSE macro.
. CODE IMPROVEMENTS: Small code cleanups; introduced a coherent naming
scheme for all identifiers related to weight raising; refactored and
optimized a few hot paths.
v7r2:
. BUGFIX/IMPROVEMENT. One of the requirements for an application to be
deemed as soft real-time is that it issues its requests in batches, and
stops doing I/O for a well-defined amount of time before issuing a new
batch. Imposing this minimum idle time allows BFQ to filter out I/O-bound
applications that may otherwise be incorrectly deemed as soft real-time
(under the circumstances described in detail in the comments to the
function bfq_bfqq_softrt_next_start()). Unfortunately, BFQ could however
start counting this idle time from two different events: either from the
expiration of the queue, if all requests of the queue had also been already
completed when the queue expired, or, if the previous condition did not
hold, from the first completion of one of the still outstanding requests.
In the second case, an application had more chances to be deemed as soft
real-time.
Actually, there was no reason for this differentiated treatment. We
addressed this issue by defining more precisely the above requirement for
an application to be deemed as soft real-time, and changing the code
consequently: a well-defined amount of time must elapse between the
completion of *all the requests* of the current pending batch and the
issuing of the first request of the next batch (this is, in the end, what
happens with a true soft real-time application). This change further
reduced false positives, and, as such, improved responsiveness and reduced
latency for actual soft real-time applications.
. CODE IMPROVEMENT. We cleaned up the code a little bit and addressed
some issues pointed out by the checkpatch.pl script.
v7r1:
. BUGFIX. Replace the old value used to approximate 'infinity', with
the correct one to use in case times are compared through the macro
time_is_before_jiffies(). In fact, this macro, designed to take
wraparound issues into account, easily returns anomalous results if
its argument is equal to the value that we used as an approximation
of 'infinity', namely ((unsigned long) (-1)). The consequence was
that the logical expression used to determine whether a queue
belongs to a soft real-time application often yielded an incorrect
result. In the end, some application happened to be incorrectly
deemed as soft real-time and hence weight-raised. This affected both
throughput and latency guarantees.
. BUGFIX. Fixed a scriverner's error made in an attempt to use the
above macro in a logical expression.
. IMPROVEMENT/BUGFIX. On the expiration of a queue, use a more general
condition to allow a weight-raising period to start if the queue is
soft real-time. The previous condition could prevent an empty,
soft-real time queue from being correctly deemed as soft real-time.
. IMPROVEMENT/MINOR BUGFIX. Use jiffies-comparison macros also in the
following cases:
. to establish whether an application initially deemed as interactive
is now meeting the requirements for being classified as soft
real-time;
. to determine if a weight-raising period must be ended.
. CODE IMPROVEMENT. Change the type of the time quantities used in the
weight-raising heuristics to unsigned long, as the type of the time
(jiffies) is unsigned long.
v7:
- IMPROVEMENT: In the presence of weight-raised queues and if the
device is NCQ-enabled, device idling is now disabled for non-raised
readers, i.e., for their associated sync queues. Hence a sync queue
is expired immediately if it becomes empty, and a new queue is
served. As explained in detail in the papers about BFQ, not idling
the device for sync queues when the latter become empty causes BFQ to
assign higher timestamps to these queues when they get backlogged
again, and hence to serve these queues less frequently. This fact,
plus to the fact that, because of the immediate expiration itself,
these queues get less service while they are granted access to the
disk, reduces the relative rate at which the processes associated to
these queues ask for requests from the I/O request pool. If the pool
is saturated, as it happens in the presence of write hogs, reducing
the above relative rate increases the probability that a request is
available (soon) in the pool when a weight-raised process needs it.
This change does seem to mitigate the typical starvation problems
that occur in the presence of write hogs and NCQ, and hence to
guarantee a higher application and system responsiveness in these
hostile scenarios.
- IMPROVEMENT/BUGFIX: Introduced a new classification rule to the soft
real-time heuristic, which takes into account also the isochronous
nature of such applications. The computation of next_start has been
fixed as well. Now it is correctly done from the time of the last
transition from idle to backlogged; the next_start is therefore
computed from the service received by the queue from its last
transition from idle to backlogged. Finally, the code which
preserved weight-raising for a soft real-time queue even with no
idle->backlogged transition has been removed.
- IMPROVEMENT: Add a few jiffies to the reference time interval used to
establish whether an application is greedy or not. This reference
interval was, by default, HZ/125 seconds, which could generate false
positives in the following two cases (especially if both cases occur):
1) If HZ is so low that the duration of a jiffie is comparable to or
higher than the above reference time interval. This happens, e.g.,
on slow devices with HZ=100.
2) If jiffies, instead of increasing at a constant rate, may stop
increasing for some time, then suddenly 'jump' by several units to
recover the lost increments. This seems to happen, e.g., in virtual
machines.
The added number of jiffies has been found experimentally. In particular,
according to our experiments, adding this number of jiffies seems to make
the filter quite precise also in embedded systems and KVM/QEMU virtual
machines. Also contributed by
Alexander Spyridakis <a.spyridakis@virtualopensystems.com>.
- IMPROVEMENT/BUGFIX: Keep disk idling also for NCQ-provided
rotational devices, which boosts the throughput on NCQ-enabled
rotational devices.
- BUGFIX: The budget-timeout condition in the bfq_rq_enqueued() function
was checked only if the request is large enough to provoke an unplug. As
a consequence, for a process always issuing small I/O requests the
budget timeout was never checked. The queue associated to the process
therefore expired only when its budget was exhausted, even if the
queue had already incurred a budget timeout from a while.
This fix lets a queue be checked for budget timeout at each request
enqueue, and, if needed, expires the queue accordingly even if the
request is small.
- BUGFIX: Make sure that weight-raising is resumed for a split queue,
if it was merged when already weight-raised.
- MINOR BUGFIX: Let bfq_end_raising_async() correctly end weight-raising
also for the queues belonging to the root group.
- IMPROVEMENT: Get rid of the some_coop_idle flag, which in its turn
was used to decide whether to disable idling for an in-service
shared queue whose seek mean decreased. In fact, disabling idling
for such a queue turned out to be useless.
- CODE IMPROVEMENT: The bfq_bfqq_must_idle() function and the
bfq_select_queue() function may not change the current in-service
queue in various cases. We have cleaned up the involved conditions,
by factoring out the common parts and getting rid of the useless
ones.
- MINOR CODE IMPROVEMENT: The idle_for_long_time condition in the
bfq_add_rq_rb() function should be evaluated only on an
idle->backlogged transition. Now the condition is set to false
by default, evaluating it only if the queue was not busy on a
request insertion.
- MINOR CODE IMPROVEMENT: Added a comment describing the rationale
behind the condition evaluated in the function
bfq_bfqq_must_not_expire().
v6r2:
- Fairness fix: the case of queue expiration for budget timeout is
now correctly handled also for sync queues, thus allowing also
the processes corresponding to these queues to be guaranteed their
reserved share of the disk throughput.
- Fixed a bug that prevented group weights from being correctly
set via the sysfs interface.
- Fixed a bug that cleared a previously-set group weight if the
same value was re-inserted via the sysfs interface.
- Fixed an EQM bug that allowed a newly-started process to skip
its initial weight-raising period if its queue was merged before
its first request was inserted.
- Fixed a bug that preserved already-started weight-raising periods
even if the low_latency tunable was disabled.
- The raising_max_time tunable now shows, more user-friendly, the
maximum raising time in milliseconds.
v6r1:
- Fix use-after-free of queues in __bfq_bfqq_expire(). It may happen that
a call to bfq_del_bfqq_busy() puts the last reference taken on a queue
and frees it. Subsequent accesses to that same queue would result in a
use-after-free. Make sure that a queue that has just been deleted from
busy is no more touched.
- Use the uninitialized_var() macro when needed. It may happen that a
variable is initialized in a function that is called by the function
that defined it. Use the uninitialized_var() macro in these cases.
v6:
- Replacement of the cooperating-queue merging mechanism borrowed from
CFQ with Early Queue Merge (EQM), a unified mechanism to get a
sequential read pattern, and hence a high throughput, with any set of
processes performing interleaved I/O. EQM also preserves low latency.
(see http://algogroup.unimore.it/people/paolo/disk_sched/description.php
for more details). Contributed by Mauro Andreolini and Arianna Avanzini.
The code for detecting whether two queues have to be merged is a
slightly modified version of the CFQ code for detecting whether two
queues belong to cooperating processes and whether the service of a
queue should be preempted to boost the throughput.
- Fix a bug that caused the peak rate of a disk to be computed as zero
in case of multiple I/O errors. Subsequent estimations of the weight
raising duration caused a division-by-zero error.
v5r1:
- BUG FIX: Fixed stall occurring when the active queue is moved to
a different group while idling (this caused the idling timer to be
cancelled and hence no new queue to be selected, and no new
request to be dispatched).
- BUG FIX: Fixed wrong assignment of too high budgets to queues during
the first few seconds after initialization.
- BUG FIX: Added proper locking to the function handling the "weights"
tunable.
v5:
- Added an heuristic that, if the tunable raising_max_time is set to
0, automatically computes the duration of the weight raising
according to the estimated peak rate of the device. This enables
flash-based devices to reach maximum throughput as soon as possible,
without sacrificing latency.
v4:
- Throughput-boosting for flash-based devices: improved version of commits
a68bbdd and f7d7b7a, which boosts the throughput while still preserving
latency guarantees for interactive and soft real-time applications.
- Better identification of NCQ-capable disks: port of commit e459dd0.
v3-r4:
- Bugfixes
* Removed an important memory leak: under some circumstances the process references
to a queue were not decremented correctly, which prevented unused shared bfq_queue
to be correctly deallocated.
* Fixed various errors related to hierarchical scheduling:
* Removed an error causing tasks to be attached to the bfqio cgroup
controller even when BFQ was not the active scheduler
* Corrected wrong update of the budgets from the leaf to the root upon
forced selection of a service tree or a bfq_queue
* Fixed the way how active leaf entities are moved to the root group before
the group entity is deactivated when a cgroup is destroyed
- Throughput-boosting improvement for cooperating queues: close detection is now based
on a fixed threshold instead of the queue's average seek. This is a port of one of
the changes in the CFQ commit 3dde36d by Corrado Zoccolo.
v3-r3:
- Bugfix: removed an important error causing occasional kernel panics when
moving a process to a new cgroup. The panic occurred if:
1) the queue associated to the process was idle when the process was moved
and
2) a new disk request was inserted into the queue just after the move.
- Further latency improvement through a better treatment of low-bandwidth
async queues.
v3-r2:
- Bugfix: added a forgotten condition that prevents weights of low-bw async
queues from being raised when low_latency is off.
- Latency improvement: low-bw async queues are now better identified.
v3-r1:
- Fixed an important request-dispatch bug causing occasional IO hangs.
- Added a new mechanism to reduce the latency of low-bw async queues.
This reduces the latency of also the sync queues synchronized with
the above async queues.
- Fixed a minor bug in iocontext locking (port of commits 9b50902 and 3181faa
from CFQ).
v3:
- Improved low-latency mechanisms, including a more accurate criterion to
distinguish between greedy-but-seeky and soft real-time applications.
Interactive applications now enjoy noticeably lower latencies.
- Switch to the simpler one-request-dispatch-at-a-time scheme as in CFQ.
- Ported cooperating-queues merging from CFQ (6d048f5, 1afba04,
d9e7620, a36e71f, 04dc6e7, 26a2ac0, 3ac6c9f, f2d1f0a, 83096eb,
2e46e8b, df5fe3e, b3b6d04, e6c5bc7, c0324a0, f04a642, 8682e1f,
b9d8f4c, 2f7a2d8, ae54abe, e9ce335, 39c01b2, d02a2c0, c10b61f).
Contributed by Arianna Avanzini. Queues of processes performing IO
on interleaved, yet contiguous disk zones are merged to boost the
throughput. Some little optimizations to get a more stable throughput
have been added to the original CFQ version.
- Added static fallback queue for extreme OOM conditions (porting of
CFQ commits d5036d7, 6118b70, b706f64, 32f2e80). Port contributed by
Francesco Allertsen.
- Ported CFQ commits b0b78f8, 40bb54d, 30996f4, dddb745, ad5ebd2, cf7c25c;
mainly code cleanup and fix of minor bugs. Port contributed by
Francesco Allertsen.
v2:
- An issue that may cause little throughput loss on fast disks has been solved.
BFQ-v1 and CFQ may suffer from this problem.
- The disk-idling timeout has been better tuned to further file latency
(especially for the idle- or light-loaded-disk scenarios).
- One of the parameters of the low-latency heuristics has been tuned a little
bit more, so as to reduce the probability that a disk-bound process may
hamper the reduction of the latency of interactive and soft real-time
applications.
- Same low-latency guarantees with and without NCQ.
- Latency for interactive applications about halved with respect to BFQ-v1.
- When the low_latency tunable is set, also soft real-time applications
now enjoy reduced latency.
- A very little minimum bandwidth is now guaranteed to the
Idle IO-scheduling class also when the other classes are
backlogged, just to prevent them from starving.
v1:
This is a new version of BFQ with respect to the versions you can
find on Fabio's site: http://feanor.sssup.it/~fabio/linux/bfq.
Here is what we changed with respect to the previous versions:
1) re-tuned the budget feedback mechanism: it is now slighlty more
biased toward assigning high budgets, to boost the aggregated
throughput more, and more quickly as new processes are started
2) introduced more tolerance toward seeky queues (I verified that the
phenomena described below used to occur systematically):
2a: if a queue is expired after having received very little
service, then it is not punished as a seeky queue, even if it
occurred to consume that little service too slowly; the
rationale is that, if the new active queue has been served for
a too short time interval, then its possible sequential
accesses may not yet prevail on the initial latencies for
moving the disk head on the first sector requested
2b: the waiting time (disk idling) of a queue detected as seeky as
a function of the position of the requests it issued is reduced
to a very low value only after the queue has consumed a minimum
fraction of the assigned budget; this prevents processes
generating (partly) seeky workloads from being too ill-treated
2c: if a queue has consumed 'enough' budget upon a budget timeout, then,
even if it did not consume all of its budget, that queue is not punished
as any seeky queue; the rationale is that, depending on the disk zones,
a queue may be served at a lower rate than the estimated peak rate.
Changes 2a and 2b have been critical in lowering latencies, whereas
change 2c, in addition to change 1, helped a lot increase the disk
throughput.
3) slightly changed the peak rate estimator: a low-pass filter is now
used instead of just keeping the highest rate sampled; the rationale
is that the peak rate of a disk should be quite stable, so the filter
should converge more or less smoothly to the right value; it seemed to
correctly catch the peak rate with all disks we used
4) added the low latency mechanism described in detail in
http://algogroup.unimore.it/people/paolo/disk_sched/description.php.

File diff suppressed because it is too large Load diff

View file

@ -1,19 +0,0 @@
From Thierry Vignaud <tvignaud@mandriva.com> (Mandriva)
We now lacks /usr/include/linux/pci_ids.h which break ldetect build...
Can you readd it please?
Thanks
---
include/linux/Kbuild | 1 +
1 file changed, 1 insertion(+)
--- linux/include/uapi/linux/Kbuild.include-kbuild-export-pci_ids.orig
+++ linux/include/uapi/linux/Kbuild
@@ -277,6 +277,7 @@ header-y += param.h
header-y += parport.h
header-y += patchkey.h
header-y += pci.h
+header-y += pci_ids.h
header-y += pci_regs.h
header-y += perf_event.h
header-y += personality.h

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 4.11.x-nrj-desktop Kernel Configuration
# Linux/x86 4.12.x-nrj-desktop Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@ -264,6 +264,7 @@ CONFIG_BLK_DEV_BSGLIB=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_ZONED=y
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_THROTTLING_LOW is not set
# CONFIG_BLK_CMDLINE_PARSER is not set
CONFIG_BLK_WBT=y
# CONFIG_BLK_WBT_SQ is not set
@ -305,14 +306,14 @@ 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=y
CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
CONFIG_DEFAULT_BFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="bfq"
CONFIG_MQ_IOSCHED_DEADLINE=y
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PADATA=y
CONFIG_ASN1=y
@ -417,11 +418,11 @@ 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_ANCIENT_MCE is not set
CONFIG_X86_MCE_THRESHOLD=y
# CONFIG_X86_MCE_INJECT is not set
CONFIG_X86_THERMAL_VECTOR=y
#
@ -603,6 +604,7 @@ CONFIG_ACPI_WATCHDOG=y
CONFIG_ACPI_EXTLOG=m
CONFIG_PMIC_OPREGION=y
CONFIG_CRC_PMIC_OPREGION=y
# CONFIG_XPOWER_PMIC_OPREGION is not set
# CONFIG_BXT_WC_PMIC_OPREGION is not set
CONFIG_ACPI_CONFIGFS=m
CONFIG_SFI=y
@ -722,9 +724,23 @@ CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
CONFIG_HOTPLUG_PCI_SHPC=m
#
# PCI host controller drivers
# DesignWare PCI Core Support
#
# CONFIG_PCIE_DW_PLAT is not set
#
# PCI host controller drivers
#
#
# PCI Endpoint
#
# CONFIG_PCI_ENDPOINT is not set
#
# PCI switch controller drivers
#
CONFIG_PCI_SW_SWITCHTEC=m
# CONFIG_ISA_BUS is not set
CONFIG_ISA_DMA_API=y
CONFIG_ISA=y
@ -1300,11 +1316,12 @@ CONFIG_BRIDGE=m
CONFIG_BRIDGE_IGMP_SNOOPING=y
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_NET_DSA=m
CONFIG_NET_DSA_TAG_BRCM=y
CONFIG_NET_DSA_TAG_DSA=y
CONFIG_NET_DSA_TAG_EDSA=y
CONFIG_NET_DSA_TAG_TRAILER=y
CONFIG_NET_DSA_TAG_QCA=y
CONFIG_NET_DSA_TAG_MTK=y
CONFIG_NET_DSA_TAG_LAN9303=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
@ -1375,6 +1392,7 @@ CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
# CONFIG_NET_SCH_DEFAULT is not set
#
# Classification
@ -1491,6 +1509,7 @@ CONFIG_CAN_GW=m
# CAN Device Drivers
#
CONFIG_CAN_VCAN=m
CONFIG_CAN_VXCAN=m
CONFIG_CAN_SLCAN=m
CONFIG_CAN_DEV=m
# CONFIG_CAN_CALC_BITTIMING is not set
@ -1505,6 +1524,7 @@ CONFIG_CAN_CC770_ISA=m
CONFIG_CAN_CC770_PLATFORM=m
CONFIG_CAN_IFI_CANFD=m
CONFIG_CAN_M_CAN=m
CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_SJA1000=m
CONFIG_CAN_SJA1000_ISA=m
# CONFIG_CAN_SJA1000_PLATFORM is not set
@ -1522,6 +1542,7 @@ CONFIG_CAN_SOFTING_CS=m
#
# CAN SPI interfaces
#
CONFIG_CAN_HI311X=m
CONFIG_CAN_MCP251X=m
#
@ -1533,6 +1554,7 @@ CONFIG_CAN_GS_USB=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_PEAK_USB=m
CONFIG_CAN_8DEV_USB=m
CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_DEBUG_DEVICES is not set
CONFIG_IRDA=m
@ -1619,7 +1641,9 @@ CONFIG_BT_HCIBTUSB_BCM=y
CONFIG_BT_HCIBTUSB_RTL=y
CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIUART_ATH3K=y
CONFIG_BT_HCIUART_LL=y
@ -1710,7 +1734,6 @@ CONFIG_NFC_SHDLC=y
#
# Near Field Communication (NFC) devices
#
CONFIG_NFC_WILINK=m
CONFIG_NFC_TRF7970A=m
CONFIG_NFC_MEI_PHY=m
CONFIG_NFC_SIM=m
@ -1890,10 +1913,8 @@ CONFIG_MTD_NAND_ECC_BCH=y
CONFIG_MTD_SM_COMMON=m
CONFIG_MTD_NAND_DENALI=m
CONFIG_MTD_NAND_DENALI_PCI=m
CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
CONFIG_MTD_NAND_GPIO=m
# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
CONFIG_MTD_NAND_IDS=m
CONFIG_MTD_NAND_RICOH=m
CONFIG_MTD_NAND_DISKONCHIP=m
# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
@ -2047,10 +2068,7 @@ CONFIG_PCH_PHUB=m
CONFIG_USB_SWITCH_FSA9480=m
CONFIG_LATTICE_ECP3_CONFIG=m
CONFIG_SRAM=y
CONFIG_PANEL=m
CONFIG_PANEL_PARPORT=0
CONFIG_PANEL_PROFILE=5
# CONFIG_PANEL_CHANGE_MESSAGE is not set
# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_C2PORT=m
CONFIG_C2PORT_DURAMAR_2150=m
@ -2416,7 +2434,6 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
CONFIG_DM_CACHE_CLEANER=m
CONFIG_DM_ERA=m
CONFIG_DM_MIRROR=m
CONFIG_DM_LOG_USERSPACE=m
@ -2432,6 +2449,7 @@ CONFIG_DM_VERITY=m
# CONFIG_DM_VERITY_FEC is not set
CONFIG_DM_SWITCH=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_INTEGRITY=m
CONFIG_TARGET_CORE=m
CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
@ -2490,6 +2508,7 @@ CONFIG_VETH=m
CONFIG_VIRTIO_NET=m
CONFIG_NLMON=m
CONFIG_NET_VRF=m
CONFIG_VSOCKMON=m
CONFIG_SUNGEM_PHY=m
#
@ -2505,7 +2524,6 @@ CONFIG_CAIF_VIRTIO=m
# Distributed Switch Architecture drivers
#
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_B53=m
CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_MDIO_DRIVER=m
@ -2514,7 +2532,11 @@ CONFIG_B53_SRAB_DRIVER=m
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_QCA8K=m
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_SMSC_LAN9303=m
CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_ETHERNET=y
CONFIG_MDIO=m
CONFIG_NET_VENDOR_3COM=y
@ -2566,6 +2588,7 @@ CONFIG_BCMGENET=m
CONFIG_BNX2=m
CONFIG_CNIC=m
CONFIG_TIGON3=m
CONFIG_TIGON3_HWMON=y
CONFIG_BNX2X=m
CONFIG_BNX2X_SRIOV=y
CONFIG_BNXT=m
@ -2634,7 +2657,6 @@ CONFIG_IXGBE_DCB=y
CONFIG_IXGBEVF=m
CONFIG_I40E=m
CONFIG_I40E_DCB=y
CONFIG_I40E_FCOE=y
CONFIG_I40EVF=m
CONFIG_FM10K=m
CONFIG_NET_VENDOR_I825XX=y
@ -2655,6 +2677,7 @@ CONFIG_MLX4_CORE=m
CONFIG_MLX5_CORE=m
CONFIG_MLX5_CORE_EN=y
CONFIG_MLX5_CORE_EN_DCB=y
# CONFIG_MLX5_CORE_IPOIB is not set
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE_THERMAL=y
@ -2761,7 +2784,6 @@ CONFIG_HAPPYMEAL=m
CONFIG_SUNGEM=m
CONFIG_CASSINI=m
CONFIG_NIU=m
CONFIG_NET_VENDOR_SYNOPSYS=y
CONFIG_NET_VENDOR_TEHUTI=y
CONFIG_TEHUTI=m
CONFIG_NET_VENDOR_TI=y
@ -2780,18 +2802,17 @@ CONFIG_WIZNET_BUS_ANY=y
CONFIG_WIZNET_W5100_SPI=m
CONFIG_NET_VENDOR_XIRCOM=y
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_NET_VENDOR_SYNOPSYS=y
CONFIG_DWC_XLGMAC=m
CONFIG_DWC_XLGMAC_PCI=m
CONFIG_NET_SB1000=m
CONFIG_MDIO_DEVICE=y
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_GPIO=m
CONFIG_PHYLIB=y
CONFIG_SWPHY=y
CONFIG_LED_TRIGGER_PHY=y
#
# MDIO bus device drivers
#
CONFIG_MDIO_BCM_UNIMAC=m
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_GPIO=m
#
# MII PHY device drivers
#
@ -3147,6 +3168,8 @@ CONFIG_IEEE802154_MRF24J40=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_ATUSB=m
CONFIG_IEEE802154_ADF7242=m
CONFIG_IEEE802154_CA8210=m
# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
CONFIG_VMXNET3=m
CONFIG_FUJITSU_ES=m
CONFIG_HYPERV_NET=m
@ -3276,6 +3299,7 @@ CONFIG_ISDN_HDLC=m
CONFIG_NVM=y
# CONFIG_NVM_DEBUG is not set
CONFIG_NVM_RRPC=m
CONFIG_NVM_PBLK=m
#
# Input device support
@ -3335,6 +3359,7 @@ 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
@ -3343,6 +3368,7 @@ CONFIG_MOUSE_PS2_SENTELIC=y
CONFIG_MOUSE_PS2_TOUCHKIT=y
CONFIG_MOUSE_PS2_FOCALTECH=y
CONFIG_MOUSE_PS2_VMMOUSE=y
CONFIG_MOUSE_PS2_SMBUS=y
CONFIG_MOUSE_SERIAL=m
CONFIG_MOUSE_APPLETOUCH=m
CONFIG_MOUSE_BCM5974=m
@ -3389,6 +3415,8 @@ CONFIG_JOYSTICK_XPAD=m
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_WALKERA0701=m
CONFIG_JOYSTICK_PSXPAD_SPI=m
# CONFIG_JOYSTICK_PSXPAD_SPI_FF is not set
CONFIG_INPUT_TABLET=y
CONFIG_TABLET_USB_ACECAD=m
CONFIG_TABLET_USB_AIPTEK=m
@ -3478,6 +3506,7 @@ CONFIG_TOUCHSCREEN_TSC200X_CORE=m
CONFIG_TOUCHSCREEN_TSC2004=m
CONFIG_TOUCHSCREEN_TSC2005=m
CONFIG_TOUCHSCREEN_TSC2007=m
# CONFIG_TOUCHSCREEN_TSC2007_IIO is not set
CONFIG_TOUCHSCREEN_PCAP=m
CONFIG_TOUCHSCREEN_RM_TS=m
CONFIG_TOUCHSCREEN_SILEAD=m
@ -3651,6 +3680,7 @@ CONFIG_SERIAL_KGDB_NMI=y
CONFIG_SERIAL_MAX3100=m
CONFIG_SERIAL_MAX310X=y
CONFIG_SERIAL_UARTLITE=m
CONFIG_SERIAL_UARTLITE_NR_UARTS=1
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_CONSOLE_POLL=y
@ -3754,6 +3784,7 @@ CONFIG_I2C_MUX=m
# Multiplexer I2C Chip support
#
CONFIG_I2C_MUX_GPIO=m
CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_MUX_PINCTRL=m
@ -3952,11 +3983,7 @@ CONFIG_GPIO_LYNXPOINT=y
#
# Port-mapped I/O GPIO drivers
#
CONFIG_GPIO_104_DIO_48E=m
CONFIG_GPIO_104_IDIO_16=m
CONFIG_GPIO_104_IDI_48=m
CONFIG_GPIO_F7188X=m
# CONFIG_GPIO_GPIO_MM is not set
CONFIG_GPIO_IT87=m
CONFIG_GPIO_SCH=m
CONFIG_GPIO_SCH311X=m
@ -4051,6 +4078,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433=m
# CONFIG_W1_SLAVE_DS2433_CRC is not set
CONFIG_W1_SLAVE_DS2438=m
# CONFIG_W1_SLAVE_DS2760 is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@ -4078,6 +4106,9 @@ CONFIG_BATTERY_BQ27XXX=m
CONFIG_BATTERY_BQ27XXX_I2C=m
CONFIG_BATTERY_DA9030=m
CONFIG_BATTERY_DA9052=m
CONFIG_CHARGER_AXP20X=m
CONFIG_BATTERY_AXP20X=m
CONFIG_AXP20X_POWER=m
CONFIG_AXP288_CHARGER=m
# CONFIG_AXP288_FUEL_GAUGE is not set
CONFIG_BATTERY_MAX17040=m
@ -4104,7 +4135,6 @@ CONFIG_CHARGER_TPS65090=m
CONFIG_CHARGER_TPS65217=m
CONFIG_BATTERY_GAUGE_LTC2941=m
CONFIG_CHARGER_RT9455=m
CONFIG_AXP20X_POWER=m
CONFIG_HWMON=y
CONFIG_HWMON_VID=m
# CONFIG_HWMON_DEBUG_CHIP is not set
@ -4136,6 +4166,7 @@ CONFIG_SENSORS_K10TEMP=m
CONFIG_SENSORS_FAM15H_POWER=m
CONFIG_SENSORS_APPLESMC=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_DS620=m
CONFIG_SENSORS_DS1621=m
@ -4257,7 +4288,6 @@ CONFIG_SENSORS_TMP103=m
CONFIG_SENSORS_TMP108=m
CONFIG_SENSORS_TMP401=m
CONFIG_SENSORS_TMP421=m
CONFIG_SENSORS_TWL4030_MADC=m
CONFIG_SENSORS_VIA_CPUTEMP=m
CONFIG_SENSORS_VIA686A=m
CONFIG_SENSORS_VT1211=m
@ -4282,6 +4312,7 @@ CONFIG_SENSORS_XGENE=m
CONFIG_SENSORS_ACPI_POWER=m
CONFIG_SENSORS_ATK0110=m
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
@ -4470,6 +4501,7 @@ CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m
CONFIG_LPC_ICH=m
CONFIG_LPC_SCH=m
CONFIG_INTEL_SOC_PMIC=y
CONFIG_INTEL_SOC_PMIC_BXTWC=m
CONFIG_MFD_INTEL_LPSS=m
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
@ -4509,6 +4541,7 @@ CONFIG_MFD_SYSCON=y
CONFIG_MFD_TI_AM335X_TSCADC=m
CONFIG_MFD_LP3943=m
CONFIG_MFD_LP8788=y
CONFIG_MFD_TI_LMU=m
CONFIG_MFD_PALMAS=y
# CONFIG_TPS6105X is not set
# CONFIG_TPS65010 is not set
@ -4548,6 +4581,7 @@ CONFIG_MFD_WM8350=y
CONFIG_MFD_WM8350_I2C=y
CONFIG_MFD_WM8994=y
# CONFIG_REGULATOR is not set
CONFIG_CEC_CORE=m
CONFIG_MEDIA_SUPPORT=m
#
@ -4560,8 +4594,7 @@ CONFIG_MEDIA_RADIO_SUPPORT=y
CONFIG_MEDIA_SDR_SUPPORT=y
CONFIG_MEDIA_RC_SUPPORT=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CEC_DEBUG is not set
CONFIG_MEDIA_CEC_EDID=y
# CONFIG_MEDIA_CEC_RC is not set
CONFIG_MEDIA_CONTROLLER=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_VIDEO_DEV=m
@ -4627,6 +4660,7 @@ CONFIG_RC_LOOPBACK=m
CONFIG_IR_GPIO_CIR=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SIR=m
CONFIG_MEDIA_USB_SUPPORT=y
#
@ -4795,6 +4829,7 @@ CONFIG_USB_MSI2500=m
# USB HDMI CEC adapters
#
CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_RAINSHADOW_CEC=m
CONFIG_MEDIA_PCI_SUPPORT=y
#
@ -4884,11 +4919,13 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
CONFIG_VIDEO_SH_VEU=m
CONFIG_V4L_TEST_DRIVERS=y
CONFIG_VIDEO_VIMC=m
CONFIG_VIDEO_VIVID=m
CONFIG_VIDEO_VIVID_CEC=y
CONFIG_VIDEO_VIVID_MAX_DEVS=64
CONFIG_VIDEO_VIM2M=m
CONFIG_DVB_PLATFORM_DRIVERS=y
# CONFIG_CEC_PLATFORM_DRIVERS is not set
#
# Supported MMC/SDIO adapters
@ -5016,6 +5053,7 @@ CONFIG_VIDEO_ADV7175=m
#
# Camera sensor devices
#
CONFIG_VIDEO_OV2640=m
CONFIG_VIDEO_OV7640=m
CONFIG_VIDEO_OV7670=m
CONFIG_VIDEO_MT9M111=m
@ -5054,7 +5092,6 @@ CONFIG_SOC_CAMERA_MT9M111=m
CONFIG_SOC_CAMERA_MT9T031=m
CONFIG_SOC_CAMERA_MT9T112=m
CONFIG_SOC_CAMERA_MT9V022=m
CONFIG_SOC_CAMERA_OV2640=m
CONFIG_SOC_CAMERA_OV5642=m
CONFIG_SOC_CAMERA_OV6650=m
CONFIG_SOC_CAMERA_OV772X=m
@ -5275,6 +5312,7 @@ CONFIG_DRM_MIPI_DSI=y
CONFIG_DRM_KMS_HELPER=m
CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_TTM=m
CONFIG_DRM_GEM_CMA_HELPER=y
@ -5315,6 +5353,9 @@ CONFIG_DRM_I915_USERPTR=y
# CONFIG_DRM_I915_WERROR is not set
# CONFIG_DRM_I915_DEBUG is not set
# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
# CONFIG_DRM_I915_SELFTEST is not set
# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
CONFIG_DRM_VGEM=m
CONFIG_DRM_VMWGFX=m
CONFIG_DRM_VMWGFX_FBCON=y
@ -5508,6 +5549,7 @@ CONFIG_BACKLIGHT_AS3711=m
CONFIG_BACKLIGHT_GPIO=m
CONFIG_BACKLIGHT_LV5207LP=m
CONFIG_BACKLIGHT_BD6107=m
CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_VGASTATE=m
CONFIG_HDMI=y
@ -5746,6 +5788,8 @@ CONFIG_SND_FIREWORKS=m
CONFIG_SND_BEBOB=m
CONFIG_SND_FIREWIRE_DIGI00X=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREFACE=m
CONFIG_SND_PCMCIA=y
CONFIG_SND_VXPOCKET=m
CONFIG_SND_PDAUDIOCF=m
@ -5757,7 +5801,7 @@ CONFIG_SND_SOC_TOPOLOGY=y
CONFIG_SND_SOC_AMD_ACP=m
CONFIG_SND_ATMEL_SOC=m
CONFIG_SND_DESIGNWARE_I2S=m
CONFIG_SND_DESIGNWARE_PCM=m
# CONFIG_SND_DESIGNWARE_PCM is not set
#
# SoC Audio for Freescale CPUs
@ -5772,6 +5816,7 @@ CONFIG_SND_SOC_FSL_SSI=m
CONFIG_SND_SOC_FSL_SPDIF=m
CONFIG_SND_SOC_FSL_ESAI=m
CONFIG_SND_SOC_IMX_AUDMUX=m
CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_SOC_IMG=y
CONFIG_SND_SOC_IMG_I2S_IN=m
CONFIG_SND_SOC_IMG_I2S_OUT=m
@ -5797,18 +5842,26 @@ CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
CONFIG_SND_SOC_INTEL_SKYLAKE=m
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
CONFIG_SND_SOC_XTFPGA_I2S=m
CONFIG_ZX_TDM=m
CONFIG_SND_SOC_I2C_AND_SPI=m
#
# CODEC drivers
#
CONFIG_SND_SOC_AC97_CODEC=m
CONFIG_SND_SOC_ADAU_UTILS=m
CONFIG_SND_SOC_ADAU1701=m
CONFIG_SND_SOC_ADAU17X1=m
CONFIG_SND_SOC_ADAU1761=m
CONFIG_SND_SOC_ADAU1761_I2C=m
CONFIG_SND_SOC_ADAU1761_SPI=m
CONFIG_SND_SOC_ADAU7002=m
CONFIG_SND_SOC_AK4104=m
CONFIG_SND_SOC_AK4554=m
@ -5820,6 +5873,7 @@ CONFIG_SND_SOC_BT_SCO=m
CONFIG_SND_SOC_CS35L32=m
CONFIG_SND_SOC_CS35L33=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS42L42=m
CONFIG_SND_SOC_CS42L51=m
CONFIG_SND_SOC_CS42L51_I2C=m
@ -5835,9 +5889,12 @@ CONFIG_SND_SOC_CS42XX8=m
CONFIG_SND_SOC_CS42XX8_I2C=m
CONFIG_SND_SOC_CS4349=m
CONFIG_SND_SOC_CS53L30=m
CONFIG_SND_SOC_DA7213=m
CONFIG_SND_SOC_DA7219=m
CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328_SPI=m
@ -5847,6 +5904,7 @@ CONFIG_SND_SOC_INNO_RK3036=m
CONFIG_SND_SOC_MAX98090=m
CONFIG_SND_SOC_MAX98357A=m
CONFIG_SND_SOC_MAX98504=m
CONFIG_SND_SOC_MAX98927=m
CONFIG_SND_SOC_MAX9860=m
CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
@ -5875,6 +5933,7 @@ CONFIG_SND_SOC_RT5677_SPI=m
CONFIG_SND_SOC_SGTL5000=m
CONFIG_SND_SOC_SIGMADSP=m
CONFIG_SND_SOC_SIGMADSP_I2C=m
CONFIG_SND_SOC_SIGMADSP_REGMAP=m
CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m
CONFIG_SND_SOC_SPDIF=m
CONFIG_SND_SOC_SSM2602=m
@ -5918,13 +5977,13 @@ CONFIG_SND_SOC_WM8978=m
CONFIG_SND_SOC_WM8985=m
CONFIG_SND_SOC_NAU8540=m
CONFIG_SND_SOC_NAU8810=m
CONFIG_SND_SOC_NAU8824=m
CONFIG_SND_SOC_NAU8825=m
CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SIMPLE_CARD_UTILS=m
CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_X86=y
CONFIG_HDMI_LPE_AUDIO=m
# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=m
#
@ -5940,6 +5999,7 @@ CONFIG_HID_GENERIC=m
# Special HID drivers
#
CONFIG_HID_A4TECH=m
CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_APPLE=m
@ -5989,6 +6049,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=m
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@ -6055,6 +6116,7 @@ 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
#
@ -6319,6 +6381,7 @@ CONFIG_USB_R8A66597=m
CONFIG_USB_PXA27X=m
CONFIG_USB_MV_UDC=m
CONFIG_USB_MV_U3D=m
CONFIG_USB_SNP_CORE=m
# CONFIG_USB_M66592 is not set
CONFIG_USB_BDC_UDC=m
@ -6401,6 +6464,11 @@ CONFIG_USB_G_DBGP=m
# CONFIG_USB_G_DBGP_PRINTK is not set
CONFIG_USB_G_DBGP_SERIAL=y
CONFIG_USB_G_WEBCAM=m
#
# USB Power Delivery and Type-C drivers
#
CONFIG_TYPEC=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_ULPI_BUS=m
CONFIG_UWB=m
@ -6435,6 +6503,7 @@ CONFIG_MMC_REALTEK_PCI=m
CONFIG_MMC_REALTEK_USB=m
CONFIG_MMC_TOSHIBA_PCI=m
CONFIG_MMC_MTK=m
CONFIG_MMC_SDHCI_XENON=m
CONFIG_MEMSTICK=m
# CONFIG_MEMSTICK_DEBUG is not set
@ -6464,6 +6533,7 @@ CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
CONFIG_LEDS_88PM860X=m
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_LM3642=m
CONFIG_LEDS_MT6323=m
CONFIG_LEDS_NET48XX=m
CONFIG_LEDS_WRAP=m
CONFIG_LEDS_PCA9532=m
@ -6491,7 +6561,6 @@ CONFIG_LEDS_PWM=m
CONFIG_LEDS_INTEL_SS4200=m
CONFIG_LEDS_LT3593=m
CONFIG_LEDS_ADP5520=m
CONFIG_LEDS_DELL_NETBOOKS=m
CONFIG_LEDS_MC13783=m
CONFIG_LEDS_TCA6507=m
CONFIG_LEDS_TLC591XX=m
@ -6534,7 +6603,7 @@ CONFIG_EDAC=y
CONFIG_EDAC_LEGACY_SYSFS=y
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_DECODE_MCE=y
CONFIG_EDAC_MM_EDAC=m
# CONFIG_EDAC_GHES is not set
CONFIG_EDAC_AMD64=m
# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
CONFIG_EDAC_AMD76X=m
@ -6703,7 +6772,6 @@ CONFIG_DW_DMAC_CORE=m
CONFIG_DW_DMAC=m
CONFIG_DW_DMAC_PCI=m
CONFIG_HSU_DMA=m
CONFIG_HSU_DMA_PCI=m
#
# DMA Clients
@ -6717,12 +6785,18 @@ CONFIG_ASYNC_TX_DMA=y
CONFIG_SYNC_FILE=y
CONFIG_SW_SYNC=y
CONFIG_AUXDISPLAY=y
CONFIG_CHARLCD=m
CONFIG_HD44780=m
CONFIG_KS0108=m
CONFIG_KS0108_PORT=0x378
CONFIG_KS0108_DELAY=2
CONFIG_CFAG12864B=m
CONFIG_CFAG12864B_RATE=20
# CONFIG_IMG_ASCII_LCD is not set
CONFIG_PANEL=m
CONFIG_PANEL_PARPORT=0
CONFIG_PANEL_PROFILE=5
# CONFIG_PANEL_CHANGE_MESSAGE is not set
CONFIG_UIO=m
CONFIG_UIO_CIF=m
# CONFIG_UIO_PDRV_GENIRQ is not set
@ -6747,7 +6821,7 @@ CONFIG_VFIO_MDEV=m
CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_IRQ_BYPASS_MANAGER=m
CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO=m
#
# Virtio drivers
@ -6912,6 +6986,7 @@ CONFIG_RTLLIB_CRYPTO_CCMP=m
CONFIG_RTLLIB_CRYPTO_TKIP=m
CONFIG_RTLLIB_CRYPTO_WEP=m
CONFIG_RTL8192E=m
CONFIG_RTL8723BS=m
CONFIG_R8712U=m
CONFIG_R8188EU=m
CONFIG_88EU_AP_MODE=y
@ -7022,14 +7097,23 @@ CONFIG_SPEAKUP_SYNTH_SPKOUT=m
CONFIG_SPEAKUP_SYNTH_TXPRT=m
CONFIG_SPEAKUP_SYNTH_DUMMY=m
CONFIG_STAGING_MEDIA=y
CONFIG_INTEL_ATOMISP=y
CONFIG_VIDEO_ATOMISP=m
CONFIG_VIDEO_OV5693=m
CONFIG_VIDEO_OV2722=m
CONFIG_VIDEO_GC2235=m
CONFIG_VIDEO_OV8858=m
CONFIG_VIDEO_MSRLIST_HELPER=m
CONFIG_VIDEO_MT9M114=m
CONFIG_VIDEO_AP1302=m
CONFIG_VIDEO_GC0310=m
CONFIG_VIDEO_OV2680=m
CONFIG_VIDEO_LM3554=m
CONFIG_VIDEO_IMX=m
CONFIG_I2C_BCM2048=m
CONFIG_DVB_CXD2099=m
CONFIG_LIRC_STAGING=y
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SIR=m
CONFIG_LIRC_ZILOG=m
#
@ -7065,6 +7149,13 @@ CONFIG_HDM_I2C=m
CONFIG_HDM_USB=m
# CONFIG_KS7010 is not set
# CONFIG_GREYBUS is not set
#
# USB Power Delivery and Type-C drivers
#
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TCPCI=m
CONFIG_TYPEC_FUSB302=m
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@ -7074,6 +7165,7 @@ CONFIG_DELL_SMBIOS=m
CONFIG_DELL_LAPTOP=m
CONFIG_DELL_WMI=m
CONFIG_DELL_WMI_AIO=m
CONFIG_DELL_WMI_LED=m
CONFIG_DELL_SMO8800=m
CONFIG_DELL_RBTN=m
CONFIG_FUJITSU_LAPTOP=m
@ -7113,6 +7205,7 @@ CONFIG_TOSHIBA_BT_RFKILL=m
CONFIG_TOSHIBA_HAPS=m
CONFIG_TOSHIBA_WMI=m
CONFIG_ACPI_CMPC=m
CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_VBTN=m
CONFIG_INTEL_IPS=m
@ -7207,6 +7300,10 @@ CONFIG_REMOTEPROC=m
#
# Broadcom SoC drivers
#
#
# i.MX SoC drivers
#
# CONFIG_SUNXI_SRAM is not set
CONFIG_SOC_TI=y
CONFIG_SOC_ZTE=y
@ -7262,6 +7359,9 @@ CONFIG_IIO_TRIGGERED_EVENT=m
#
# Accelerometers
#
CONFIG_ADXL345=m
CONFIG_ADXL345_I2C=m
CONFIG_ADXL345_SPI=m
CONFIG_BMA180=m
CONFIG_BMA220=m
CONFIG_BMC150_ACCEL=m
@ -7305,22 +7405,25 @@ CONFIG_AD7793=m
CONFIG_AD7887=m
CONFIG_AD7923=m
CONFIG_AD799X=m
CONFIG_AXP20X_ADC=m
CONFIG_AXP288_ADC=m
CONFIG_HI8435=m
CONFIG_HX711=m
CONFIG_INA2XX_ADC=m
CONFIG_LP8788_ADC=m
CONFIG_LTC2485=m
CONFIG_LTC2497=m
CONFIG_MAX1027=m
CONFIG_MAX11100=m
CONFIG_MAX1118=m
CONFIG_MAX1363=m
CONFIG_MAX9611=m
CONFIG_MCP320X=m
CONFIG_MCP3422=m
CONFIG_NAU7802=m
CONFIG_PALMAS_GPADC=m
CONFIG_QCOM_SPMI_IADC=m
# CONFIG_QCOM_SPMI_VADC is not set
CONFIG_STX104=m
CONFIG_TI_ADC081C=m
CONFIG_TI_ADC0832=m
CONFIG_TI_ADC12138=m
@ -7367,7 +7470,6 @@ CONFIG_IIO_ST_SENSORS_CORE=m
#
# Counters
#
CONFIG_104_QUAD_8=m
#
# Digital to analog converters
@ -7383,6 +7485,7 @@ CONFIG_AD5592R=m
CONFIG_AD5593R=m
CONFIG_AD5504=m
CONFIG_AD5624R_SPI=m
CONFIG_LTC2632=m
CONFIG_AD5686=m
CONFIG_AD5755=m
CONFIG_AD5761=m
@ -7443,6 +7546,7 @@ CONFIG_ITG3200=m
CONFIG_AFE4403=m
CONFIG_AFE4404=m
CONFIG_MAX30100=m
CONFIG_MAX30102=m
#
# Humidity sensors
@ -7450,6 +7554,7 @@ CONFIG_MAX30100=m
CONFIG_AM2315=m
CONFIG_DHT11=m
CONFIG_HDC100X=m
CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HTS221=m
CONFIG_HTS221_I2C=m
CONFIG_HTS221_SPI=m
@ -7489,6 +7594,7 @@ CONFIG_CM32181=m
CONFIG_CM3232=m
CONFIG_CM3323=m
CONFIG_CM36651=m
CONFIG_IIO_CROS_EC_LIGHT_PROX=m
CONFIG_GP2AP020A00F=m
CONFIG_SENSORS_ISL29018=m
CONFIG_ISL29125=m
@ -7510,6 +7616,7 @@ CONFIG_TSL4531=m
CONFIG_US5182D=m
CONFIG_VCNL4000=m
CONFIG_VEML6070=m
CONFIG_VL6180=m
#
# Magnetometer sensors
@ -7585,6 +7692,7 @@ CONFIG_IIO_CROS_EC_BARO=m
# Proximity and distance sensors
#
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_SRF04=m
# CONFIG_SX9500 is not set
CONFIG_SRF08=m
@ -7592,6 +7700,7 @@ CONFIG_SRF08=m
# Temperature sensors
#
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_HID_SENSOR_TEMP=m
CONFIG_MLX90614=m
CONFIG_TMP006=m
CONFIG_TMP007=m
@ -7639,6 +7748,7 @@ CONFIG_IPACK_BUS=m
CONFIG_RESET_CONTROLLER=y
# CONFIG_RESET_ATH79 is not set
# CONFIG_RESET_BERLIN is not set
# CONFIG_RESET_IMX7 is not set
# CONFIG_RESET_LPC18XX is not set
# CONFIG_RESET_MESON is not set
# CONFIG_RESET_PISTACHIO is not set
@ -7677,6 +7787,7 @@ CONFIG_INTEL_RAPL=m
#
CONFIG_RAS=y
CONFIG_MCE_AMD_INJ=m
# CONFIG_RAS_CEC is not set
CONFIG_THUNDERBOLT=m
#
@ -7689,8 +7800,8 @@ CONFIG_ND_BLK=y
CONFIG_ND_CLAIM=y
CONFIG_ND_BTT=y
CONFIG_BTT=y
CONFIG_DAX=y
CONFIG_DEV_DAX=m
CONFIG_NR_DEV_DAX=32768
CONFIG_NVMEM=m
CONFIG_STM=m
CONFIG_STM_DUMMY=m
@ -7709,6 +7820,8 @@ CONFIG_INTEL_TH_PTI=m
# FPGA Configuration Support
#
CONFIG_FPGA=m
CONFIG_FPGA_MGR_XILINX_SPI=m
CONFIG_ALTERA_PR_IP_CORE=m
#
# FSI support
@ -7926,6 +8039,7 @@ CONFIG_UBIFS_FS_LZO=y
CONFIG_UBIFS_FS_ZLIB=y
# CONFIG_UBIFS_ATIME_SUPPORT is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS_SECURITY=y
CONFIG_CRAMFS=y
CONFIG_SQUASHFS=y
# CONFIG_SQUASHFS_FILE_CACHE is not set
@ -7998,7 +8112,6 @@ CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=m
CONFIG_PNFS_BLOCK=m
CONFIG_PNFS_OBJLAYOUT=m
CONFIG_PNFS_FLEXFILE_LAYOUT=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
CONFIG_NFS_V4_1_MIGRATION=y
@ -8335,6 +8448,7 @@ CONFIG_STRICT_DEVMEM=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 is not set
# CONFIG_X86_PTDUMP is not set
# CONFIG_EFI_PGT_DUMP is not set
@ -8596,6 +8710,7 @@ CONFIG_PKCS7_MESSAGE_PARSER=y
# Certificates for signature checking
#
# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_KVM_VFIO=y
@ -8605,7 +8720,6 @@ CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_MMU_AUDIT=y
CONFIG_KVM_DEVICE_ASSIGNMENT=y
CONFIG_VHOST_NET=m
CONFIG_VHOST_SCSI=m
CONFIG_VHOST_VSOCK=m

View file

@ -29,6 +29,7 @@ CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_SRPT=m
CONFIG_INFINIBAND_ISER=m
CONFIG_INFINIBAND_ISERT=m
CONFIG_INFINIBAND_OPA_VNIC=m
CONFIG_INFINIBAND_RDMAVT=m
# CONFIG_INFINIBAND_QEDR is not set
CONFIG_INFINIBAND_BNXT_RE=m

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 4.11.x-nrj-desktop Kernel Configuration
# Linux/x86 4.12.x-nrj-desktop Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@ -269,6 +269,7 @@ CONFIG_BLK_DEV_BSGLIB=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_ZONED=y
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_THROTTLING_LOW is not set
# CONFIG_BLK_CMDLINE_PARSER is not set
CONFIG_BLK_WBT=y
# CONFIG_BLK_WBT_SQ is not set
@ -311,14 +312,14 @@ 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=y
CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
CONFIG_DEFAULT_BFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="bfq"
CONFIG_MQ_IOSCHED_DEADLINE=y
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PADATA=y
CONFIG_ASN1=y
@ -358,8 +359,11 @@ 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
@ -405,6 +409,7 @@ 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
@ -698,10 +703,24 @@ CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
CONFIG_HOTPLUG_PCI_SHPC=m
#
# PCI host controller drivers
# 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=m
# CONFIG_ISA_BUS is not set
CONFIG_ISA_DMA_API=y
CONFIG_AMD_NB=y
@ -760,7 +779,6 @@ CONFIG_COMPAT_32=y
CONFIG_COMPAT=y
CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_KEYS_COMPAT=y
CONFIG_X86_DEV_DMA_OPS=y
CONFIG_NET=y
CONFIG_COMPAT_NETLINK_MESSAGES=y
@ -1282,6 +1300,8 @@ CONFIG_NET_DSA_TAG_DSA=y
CONFIG_NET_DSA_TAG_EDSA=y
CONFIG_NET_DSA_TAG_TRAILER=y
CONFIG_NET_DSA_TAG_QCA=y
CONFIG_NET_DSA_TAG_MTK=y
CONFIG_NET_DSA_TAG_LAN9303=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
@ -1348,6 +1368,7 @@ CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
# CONFIG_NET_SCH_DEFAULT is not set
#
# Classification
@ -1461,6 +1482,7 @@ CONFIG_CAN_GW=m
# CAN Device Drivers
#
CONFIG_CAN_VCAN=m
CONFIG_CAN_VXCAN=m
CONFIG_CAN_SLCAN=m
CONFIG_CAN_DEV=m
# CONFIG_CAN_CALC_BITTIMING is not set
@ -1474,6 +1496,7 @@ CONFIG_CAN_CC770_ISA=m
CONFIG_CAN_CC770_PLATFORM=m
CONFIG_CAN_IFI_CANFD=m
CONFIG_CAN_M_CAN=m
CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_SJA1000=m
CONFIG_CAN_SJA1000_ISA=m
CONFIG_CAN_SJA1000_PLATFORM=m
@ -1490,6 +1513,7 @@ CONFIG_CAN_SOFTING_CS=m
#
# CAN SPI interfaces
#
CONFIG_CAN_HI311X=m
CONFIG_CAN_MCP251X=m
#
@ -1501,6 +1525,7 @@ CONFIG_CAN_GS_USB=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_PEAK_USB=m
CONFIG_CAN_8DEV_USB=m
CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_DEBUG_DEVICES is not set
CONFIG_IRDA=m
@ -1586,7 +1611,9 @@ CONFIG_BT_HCIBTUSB_BCM=y
CONFIG_BT_HCIBTUSB_RTL=y
CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIUART_ATH3K=y
CONFIG_BT_HCIUART_LL=y
@ -1659,6 +1686,7 @@ CONFIG_RFKILL_INPUT=y
CONFIG_RFKILL_GPIO=m
CONFIG_NET_9P=m
CONFIG_NET_9P_VIRTIO=m
CONFIG_NET_9P_XEN=m
# CONFIG_NET_9P_DEBUG is not set
CONFIG_CAIF=m
# CONFIG_CAIF_DEBUG is not set
@ -2010,10 +2038,7 @@ CONFIG_VMWARE_BALLOON=m
CONFIG_USB_SWITCH_FSA9480=m
CONFIG_LATTICE_ECP3_CONFIG=m
CONFIG_SRAM=y
CONFIG_PANEL=m
CONFIG_PANEL_PARPORT=0
CONFIG_PANEL_PROFILE=5
# CONFIG_PANEL_CHANGE_MESSAGE is not set
# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_C2PORT=m
CONFIG_C2PORT_DURAMAR_2150=m
@ -2375,7 +2400,6 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
CONFIG_DM_CACHE_CLEANER=m
CONFIG_DM_ERA=m
CONFIG_DM_MIRROR=m
CONFIG_DM_LOG_USERSPACE=m
@ -2391,6 +2415,7 @@ CONFIG_DM_VERITY=m
# CONFIG_DM_VERITY_FEC is not set
CONFIG_DM_SWITCH=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_INTEGRITY=m
CONFIG_TARGET_CORE=m
CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
@ -2449,6 +2474,7 @@ CONFIG_VETH=m
CONFIG_VIRTIO_NET=m
CONFIG_NLMON=m
CONFIG_NET_VRF=m
CONFIG_VSOCKMON=m
CONFIG_SUNGEM_PHY=m
#
@ -2473,6 +2499,11 @@ CONFIG_B53_SRAB_DRIVER=m
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_QCA8K=m
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_SMSC_LAN9303=m
CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_ETHERNET=y
CONFIG_MDIO=m
CONFIG_NET_VENDOR_3COM=y
@ -2521,6 +2552,7 @@ CONFIG_BCMGENET=m
CONFIG_BNX2=m
CONFIG_CNIC=m
CONFIG_TIGON3=m
CONFIG_TIGON3_HWMON=y
CONFIG_BNX2X=m
CONFIG_BNX2X_SRIOV=y
CONFIG_BNXT=m
@ -2614,6 +2646,7 @@ CONFIG_MLX4_CORE=m
CONFIG_MLX5_CORE=m
CONFIG_MLX5_CORE_EN=y
CONFIG_MLX5_CORE_EN_DCB=y
# CONFIG_MLX5_CORE_IPOIB is not set
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE_THERMAL=y
@ -2734,6 +2767,9 @@ CONFIG_WIZNET_BUS_ANY=y
CONFIG_WIZNET_W5100_SPI=m
CONFIG_NET_VENDOR_XIRCOM=y
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_NET_VENDOR_SYNOPSYS=y
CONFIG_DWC_XLGMAC=m
CONFIG_DWC_XLGMAC_PCI=m
# CONFIG_HIPPI is not set
CONFIG_NET_SB1000=m
CONFIG_PHYLIB=y
@ -2743,7 +2779,7 @@ CONFIG_LED_TRIGGER_PHY=y
#
# MDIO bus device drivers
#
CONFIG_MDIO_BCM_UNIMAC=m
CONFIG_MDIO_DEVICE=y
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_CAVIUM=m
CONFIG_MDIO_GPIO=m
@ -3105,6 +3141,8 @@ CONFIG_IEEE802154_MRF24J40=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_ATUSB=m
CONFIG_IEEE802154_ADF7242=m
CONFIG_IEEE802154_CA8210=m
# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
CONFIG_XEN_NETDEV_FRONTEND=y
CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_VMXNET3=m
@ -3226,6 +3264,7 @@ CONFIG_ISDN_HDLC=m
CONFIG_NVM=y
# CONFIG_NVM_DEBUG is not set
CONFIG_NVM_RRPC=m
CONFIG_NVM_PBLK=m
#
# Input device support
@ -3285,6 +3324,7 @@ 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
@ -3293,6 +3333,7 @@ CONFIG_MOUSE_PS2_SENTELIC=y
CONFIG_MOUSE_PS2_TOUCHKIT=y
CONFIG_MOUSE_PS2_FOCALTECH=y
CONFIG_MOUSE_PS2_VMMOUSE=y
CONFIG_MOUSE_PS2_SMBUS=y
CONFIG_MOUSE_SERIAL=m
CONFIG_MOUSE_APPLETOUCH=m
CONFIG_MOUSE_BCM5974=m
@ -3335,6 +3376,8 @@ CONFIG_JOYSTICK_XPAD=m
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_WALKERA0701=m
CONFIG_JOYSTICK_PSXPAD_SPI=m
# CONFIG_JOYSTICK_PSXPAD_SPI_FF is not set
CONFIG_INPUT_TABLET=y
CONFIG_TABLET_USB_ACECAD=m
CONFIG_TABLET_USB_AIPTEK=m
@ -3423,6 +3466,7 @@ CONFIG_TOUCHSCREEN_TSC200X_CORE=m
CONFIG_TOUCHSCREEN_TSC2004=m
CONFIG_TOUCHSCREEN_TSC2005=m
CONFIG_TOUCHSCREEN_TSC2007=m
# CONFIG_TOUCHSCREEN_TSC2007_IIO is not set
CONFIG_TOUCHSCREEN_PCAP=m
CONFIG_TOUCHSCREEN_RM_TS=m
CONFIG_TOUCHSCREEN_SILEAD=m
@ -3592,6 +3636,7 @@ CONFIG_SERIAL_KGDB_NMI=y
CONFIG_SERIAL_MAX3100=m
CONFIG_SERIAL_MAX310X=y
CONFIG_SERIAL_UARTLITE=m
CONFIG_SERIAL_UARTLITE_NR_UARTS=1
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_CONSOLE_POLL=y
@ -3690,6 +3735,7 @@ CONFIG_I2C_MUX=m
# Multiplexer I2C Chip support
#
CONFIG_I2C_MUX_GPIO=m
CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_MUX_PINCTRL=m
@ -3977,6 +4023,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433=m
# CONFIG_W1_SLAVE_DS2433_CRC is not set
CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@ -4007,6 +4054,9 @@ CONFIG_BATTERY_DA9030=m
CONFIG_BATTERY_DA9052=m
CONFIG_CHARGER_DA9150=m
CONFIG_BATTERY_DA9150=m
CONFIG_CHARGER_AXP20X=m
CONFIG_BATTERY_AXP20X=m
CONFIG_AXP20X_POWER=m
CONFIG_AXP288_CHARGER=m
CONFIG_AXP288_FUEL_GAUGE=m
CONFIG_BATTERY_MAX17040=m
@ -4034,7 +4084,6 @@ CONFIG_CHARGER_TPS65217=m
CONFIG_BATTERY_GAUGE_LTC2941=m
CONFIG_BATTERY_RT5033=m
CONFIG_CHARGER_RT9455=m
CONFIG_AXP20X_POWER=m
CONFIG_HWMON=y
CONFIG_HWMON_VID=m
# CONFIG_HWMON_DEBUG_CHIP is not set
@ -4066,6 +4115,7 @@ CONFIG_SENSORS_K10TEMP=m
CONFIG_SENSORS_FAM15H_POWER=m
CONFIG_SENSORS_APPLESMC=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_DS620=m
CONFIG_SENSORS_DS1621=m
@ -4212,6 +4262,7 @@ CONFIG_SENSORS_XGENE=m
CONFIG_SENSORS_ACPI_POWER=m
CONFIG_SENSORS_ATK0110=m
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
@ -4388,6 +4439,7 @@ CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m
CONFIG_LPC_ICH=m
CONFIG_LPC_SCH=m
CONFIG_INTEL_SOC_PMIC=y
CONFIG_INTEL_SOC_PMIC_BXTWC=m
CONFIG_MFD_INTEL_LPSS=m
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
@ -4430,6 +4482,7 @@ CONFIG_MFD_SYSCON=y
CONFIG_MFD_TI_AM335X_TSCADC=m
CONFIG_MFD_LP3943=m
CONFIG_MFD_LP8788=y
CONFIG_MFD_TI_LMU=m
CONFIG_MFD_PALMAS=y
# CONFIG_TPS6105X is not set
# CONFIG_TPS65010 is not set
@ -4468,6 +4521,7 @@ CONFIG_MFD_WM8350=y
CONFIG_MFD_WM8350_I2C=y
CONFIG_MFD_WM8994=y
# CONFIG_REGULATOR is not set
CONFIG_CEC_CORE=m
CONFIG_MEDIA_SUPPORT=m
#
@ -4480,8 +4534,7 @@ CONFIG_MEDIA_RADIO_SUPPORT=y
CONFIG_MEDIA_SDR_SUPPORT=y
CONFIG_MEDIA_RC_SUPPORT=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CEC_DEBUG is not set
CONFIG_MEDIA_CEC_EDID=y
# CONFIG_MEDIA_CEC_RC is not set
CONFIG_MEDIA_CONTROLLER=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_VIDEO_DEV=m
@ -4547,6 +4600,7 @@ CONFIG_RC_LOOPBACK=m
CONFIG_IR_GPIO_CIR=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SIR=m
CONFIG_MEDIA_USB_SUPPORT=y
#
@ -4715,6 +4769,7 @@ CONFIG_USB_MSI2500=m
# USB HDMI CEC adapters
#
CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_RAINSHADOW_CEC=m
CONFIG_MEDIA_PCI_SUPPORT=y
#
@ -4797,11 +4852,13 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
CONFIG_VIDEO_SH_VEU=m
CONFIG_V4L_TEST_DRIVERS=y
CONFIG_VIDEO_VIMC=m
CONFIG_VIDEO_VIVID=m
CONFIG_VIDEO_VIVID_CEC=y
CONFIG_VIDEO_VIVID_MAX_DEVS=64
CONFIG_VIDEO_VIM2M=m
CONFIG_DVB_PLATFORM_DRIVERS=y
# CONFIG_CEC_PLATFORM_DRIVERS is not set
#
# Supported MMC/SDIO adapters
@ -4906,6 +4963,7 @@ CONFIG_VIDEO_SAA7127=m
#
# Camera sensor devices
#
CONFIG_VIDEO_OV2640=m
CONFIG_VIDEO_OV7640=m
CONFIG_VIDEO_OV7670=m
CONFIG_VIDEO_MT9M111=m
@ -4944,7 +5002,6 @@ CONFIG_SOC_CAMERA_MT9M111=m
CONFIG_SOC_CAMERA_MT9T031=m
CONFIG_SOC_CAMERA_MT9T112=m
CONFIG_SOC_CAMERA_MT9V022=m
CONFIG_SOC_CAMERA_OV2640=m
CONFIG_SOC_CAMERA_OV5642=m
CONFIG_SOC_CAMERA_OV6650=m
CONFIG_SOC_CAMERA_OV772X=m
@ -5159,6 +5216,7 @@ CONFIG_DRM_MIPI_DSI=y
CONFIG_DRM_KMS_HELPER=m
CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_TTM=m
CONFIG_DRM_GEM_CMA_HELPER=y
@ -5200,6 +5258,9 @@ CONFIG_DRM_I915_USERPTR=y
# CONFIG_DRM_I915_WERROR is not set
# CONFIG_DRM_I915_DEBUG is not set
# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
# CONFIG_DRM_I915_SELFTEST is not set
# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
CONFIG_DRM_VGEM=m
CONFIG_DRM_VMWGFX=m
CONFIG_DRM_VMWGFX_FBCON=y
@ -5394,6 +5455,7 @@ CONFIG_BACKLIGHT_AS3711=m
CONFIG_BACKLIGHT_GPIO=m
CONFIG_BACKLIGHT_LV5207LP=m
CONFIG_BACKLIGHT_BD6107=m
CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_VGASTATE=m
CONFIG_HDMI=y
@ -5590,6 +5652,8 @@ CONFIG_SND_FIREWORKS=m
CONFIG_SND_BEBOB=m
CONFIG_SND_FIREWIRE_DIGI00X=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREFACE=m
CONFIG_SND_PCMCIA=y
CONFIG_SND_VXPOCKET=m
CONFIG_SND_PDAUDIOCF=m
@ -5601,7 +5665,7 @@ CONFIG_SND_SOC_TOPOLOGY=y
CONFIG_SND_SOC_AMD_ACP=m
CONFIG_SND_ATMEL_SOC=m
CONFIG_SND_DESIGNWARE_I2S=m
CONFIG_SND_DESIGNWARE_PCM=m
# CONFIG_SND_DESIGNWARE_PCM is not set
#
# SoC Audio for Freescale CPUs
@ -5616,6 +5680,7 @@ CONFIG_SND_SOC_FSL_SSI=m
CONFIG_SND_SOC_FSL_SPDIF=m
CONFIG_SND_SOC_FSL_ESAI=m
CONFIG_SND_SOC_IMX_AUDMUX=m
CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_SOC_IMG=y
CONFIG_SND_SOC_IMG_I2S_IN=m
CONFIG_SND_SOC_IMG_I2S_OUT=m
@ -5641,18 +5706,26 @@ CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
CONFIG_SND_SOC_INTEL_SKYLAKE=m
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
CONFIG_SND_SOC_XTFPGA_I2S=m
CONFIG_ZX_TDM=m
CONFIG_SND_SOC_I2C_AND_SPI=m
#
# CODEC drivers
#
CONFIG_SND_SOC_AC97_CODEC=m
CONFIG_SND_SOC_ADAU_UTILS=m
CONFIG_SND_SOC_ADAU1701=m
CONFIG_SND_SOC_ADAU17X1=m
CONFIG_SND_SOC_ADAU1761=m
CONFIG_SND_SOC_ADAU1761_I2C=m
CONFIG_SND_SOC_ADAU1761_SPI=m
CONFIG_SND_SOC_ADAU7002=m
CONFIG_SND_SOC_AK4104=m
CONFIG_SND_SOC_AK4554=m
@ -5664,6 +5737,7 @@ CONFIG_SND_SOC_BT_SCO=m
CONFIG_SND_SOC_CS35L32=m
CONFIG_SND_SOC_CS35L33=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS42L42=m
CONFIG_SND_SOC_CS42L51=m
CONFIG_SND_SOC_CS42L51_I2C=m
@ -5679,9 +5753,12 @@ CONFIG_SND_SOC_CS42XX8=m
CONFIG_SND_SOC_CS42XX8_I2C=m
CONFIG_SND_SOC_CS4349=m
CONFIG_SND_SOC_CS53L30=m
CONFIG_SND_SOC_DA7213=m
CONFIG_SND_SOC_DA7219=m
CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328_SPI=m
@ -5691,6 +5768,7 @@ CONFIG_SND_SOC_INNO_RK3036=m
CONFIG_SND_SOC_MAX98090=m
CONFIG_SND_SOC_MAX98357A=m
CONFIG_SND_SOC_MAX98504=m
CONFIG_SND_SOC_MAX98927=m
CONFIG_SND_SOC_MAX9860=m
CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
@ -5719,6 +5797,7 @@ CONFIG_SND_SOC_RT5677_SPI=m
CONFIG_SND_SOC_SGTL5000=m
CONFIG_SND_SOC_SIGMADSP=m
CONFIG_SND_SOC_SIGMADSP_I2C=m
CONFIG_SND_SOC_SIGMADSP_REGMAP=m
CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m
CONFIG_SND_SOC_SPDIF=m
CONFIG_SND_SOC_SSM2602=m
@ -5762,6 +5841,7 @@ CONFIG_SND_SOC_WM8978=m
CONFIG_SND_SOC_WM8985=m
CONFIG_SND_SOC_NAU8540=m
CONFIG_SND_SOC_NAU8810=m
CONFIG_SND_SOC_NAU8824=m
CONFIG_SND_SOC_NAU8825=m
CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SIMPLE_CARD_UTILS=m
@ -5784,6 +5864,7 @@ CONFIG_HID_GENERIC=m
# Special HID drivers
#
CONFIG_HID_A4TECH=m
CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_APPLE=m
@ -5833,6 +5914,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=m
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@ -5904,6 +5986,7 @@ 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
#
@ -6170,6 +6253,7 @@ CONFIG_USB_R8A66597=m
CONFIG_USB_PXA27X=m
CONFIG_USB_MV_UDC=m
CONFIG_USB_MV_U3D=m
CONFIG_USB_SNP_CORE=m
# CONFIG_USB_M66592 is not set
CONFIG_USB_BDC_UDC=m
@ -6252,6 +6336,11 @@ CONFIG_USB_G_DBGP=m
# CONFIG_USB_G_DBGP_PRINTK is not set
CONFIG_USB_G_DBGP_SERIAL=y
CONFIG_USB_G_WEBCAM=m
#
# USB Power Delivery and Type-C drivers
#
CONFIG_TYPEC=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_ULPI_BUS=m
CONFIG_UWB=m
@ -6287,6 +6376,7 @@ CONFIG_MMC_REALTEK_PCI=m
CONFIG_MMC_REALTEK_USB=m
CONFIG_MMC_TOSHIBA_PCI=m
CONFIG_MMC_MTK=m
CONFIG_MMC_SDHCI_XENON=m
CONFIG_MEMSTICK=m
# CONFIG_MEMSTICK_DEBUG is not set
@ -6317,6 +6407,7 @@ CONFIG_LEDS_88PM860X=m
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_LM3533=m
CONFIG_LEDS_LM3642=m
CONFIG_LEDS_MT6323=m
CONFIG_LEDS_PCA9532=m
CONFIG_LEDS_PCA9532_GPIO=y
CONFIG_LEDS_GPIO=m
@ -6342,7 +6433,6 @@ CONFIG_LEDS_PWM=m
CONFIG_LEDS_INTEL_SS4200=m
CONFIG_LEDS_LT3593=m
CONFIG_LEDS_ADP5520=m
CONFIG_LEDS_DELL_NETBOOKS=m
CONFIG_LEDS_MC13783=m
CONFIG_LEDS_TCA6507=m
CONFIG_LEDS_TLC591XX=m
@ -6385,7 +6475,7 @@ CONFIG_EDAC=y
# CONFIG_EDAC_LEGACY_SYSFS is not set
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_MM_EDAC=m
# CONFIG_EDAC_GHES is not set
CONFIG_EDAC_AMD64=m
# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
CONFIG_EDAC_E752X=m
@ -6569,12 +6659,18 @@ CONFIG_SYNC_FILE=y
CONFIG_SW_SYNC=y
CONFIG_DCA=m
CONFIG_AUXDISPLAY=y
CONFIG_CHARLCD=m
CONFIG_HD44780=m
CONFIG_KS0108=m
CONFIG_KS0108_PORT=0x378
CONFIG_KS0108_DELAY=2
CONFIG_CFAG12864B=m
CONFIG_CFAG12864B_RATE=20
# CONFIG_IMG_ASCII_LCD is not set
CONFIG_PANEL=m
CONFIG_PANEL_PARPORT=0
CONFIG_PANEL_PROFILE=5
# CONFIG_PANEL_CHANGE_MESSAGE is not set
CONFIG_UIO=m
CONFIG_UIO_CIF=m
# CONFIG_UIO_PDRV_GENIRQ is not set
@ -6615,6 +6711,7 @@ CONFIG_VIRTIO_MMIO=m
# Microsoft Hyper-V guest support
#
CONFIG_HYPERV=m
CONFIG_HYPERV_TSCPAGE=y
CONFIG_HYPERV_UTILS=m
CONFIG_HYPERV_BALLOON=m
@ -6792,6 +6889,7 @@ CONFIG_RTLLIB_CRYPTO_CCMP=m
CONFIG_RTLLIB_CRYPTO_TKIP=m
CONFIG_RTLLIB_CRYPTO_WEP=m
CONFIG_RTL8192E=m
CONFIG_RTL8723BS=m
CONFIG_R8712U=m
CONFIG_R8188EU=m
CONFIG_88EU_AP_MODE=y
@ -6898,6 +6996,19 @@ CONFIG_SPEAKUP_SYNTH_SPKOUT=m
CONFIG_SPEAKUP_SYNTH_TXPRT=m
CONFIG_SPEAKUP_SYNTH_DUMMY=m
CONFIG_STAGING_MEDIA=y
CONFIG_INTEL_ATOMISP=y
CONFIG_VIDEO_ATOMISP=m
CONFIG_VIDEO_OV5693=m
CONFIG_VIDEO_OV2722=m
CONFIG_VIDEO_GC2235=m
CONFIG_VIDEO_OV8858=m
CONFIG_VIDEO_MSRLIST_HELPER=m
CONFIG_VIDEO_MT9M114=m
CONFIG_VIDEO_AP1302=m
CONFIG_VIDEO_GC0310=m
CONFIG_VIDEO_OV2680=m
CONFIG_VIDEO_LM3554=m
CONFIG_VIDEO_IMX=m
CONFIG_I2C_BCM2048=m
CONFIG_DVB_CXD2099=m
CONFIG_LIRC_STAGING=y
@ -6944,6 +7055,13 @@ CONFIG_HDM_I2C=m
CONFIG_HDM_USB=m
# CONFIG_KS7010 is not set
# CONFIG_GREYBUS is not set
#
# USB Power Delivery and Type-C drivers
#
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TCPCI=m
CONFIG_TYPEC_FUSB302=m
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@ -6953,6 +7071,7 @@ CONFIG_DELL_SMBIOS=m
CONFIG_DELL_LAPTOP=m
CONFIG_DELL_WMI=m
CONFIG_DELL_WMI_AIO=m
CONFIG_DELL_WMI_LED=m
CONFIG_DELL_SMO8800=m
CONFIG_DELL_RBTN=m
CONFIG_FUJITSU_LAPTOP=m
@ -6991,6 +7110,7 @@ CONFIG_TOSHIBA_BT_RFKILL=m
CONFIG_TOSHIBA_HAPS=m
CONFIG_TOSHIBA_WMI=m
CONFIG_ACPI_CMPC=m
CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_VBTN=m
CONFIG_INTEL_IPS=m
@ -7146,6 +7266,9 @@ CONFIG_IIO_TRIGGERED_EVENT=m
#
# Accelerometers
#
CONFIG_ADXL345=m
CONFIG_ADXL345_I2C=m
CONFIG_ADXL345_SPI=m
CONFIG_BMA180=m
CONFIG_BMA220=m
CONFIG_BMC150_ACCEL=m
@ -7189,6 +7312,7 @@ CONFIG_AD7793=m
CONFIG_AD7887=m
CONFIG_AD7923=m
CONFIG_AD799X=m
CONFIG_AXP20X_ADC=m
CONFIG_AXP288_ADC=m
CONFIG_DA9150_GPADC=m
CONFIG_HI8435=m
@ -7196,9 +7320,12 @@ CONFIG_HX711=m
CONFIG_INA2XX_ADC=m
CONFIG_LP8788_ADC=m
CONFIG_LTC2485=m
CONFIG_LTC2497=m
CONFIG_MAX1027=m
CONFIG_MAX11100=m
CONFIG_MAX1118=m
CONFIG_MAX1363=m
CONFIG_MAX9611=m
CONFIG_MCP320X=m
CONFIG_MCP3422=m
CONFIG_NAU7802=m
@ -7266,6 +7393,7 @@ CONFIG_AD5592R=m
CONFIG_AD5593R=m
CONFIG_AD5504=m
CONFIG_AD5624R_SPI=m
CONFIG_LTC2632=m
CONFIG_AD5686=m
CONFIG_AD5755=m
CONFIG_AD5761=m
@ -7326,6 +7454,7 @@ CONFIG_ITG3200=m
CONFIG_AFE4403=m
CONFIG_AFE4404=m
CONFIG_MAX30100=m
CONFIG_MAX30102=m
#
# Humidity sensors
@ -7333,6 +7462,7 @@ CONFIG_MAX30100=m
CONFIG_AM2315=m
CONFIG_DHT11=m
CONFIG_HDC100X=m
CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HTS221=m
CONFIG_HTS221_I2C=m
CONFIG_HTS221_SPI=m
@ -7372,6 +7502,7 @@ CONFIG_CM32181=m
CONFIG_CM3232=m
CONFIG_CM3323=m
CONFIG_CM36651=m
CONFIG_IIO_CROS_EC_LIGHT_PROX=m
CONFIG_GP2AP020A00F=m
CONFIG_SENSORS_ISL29018=m
CONFIG_ISL29125=m
@ -7394,6 +7525,7 @@ CONFIG_TSL4531=m
CONFIG_US5182D=m
CONFIG_VCNL4000=m
CONFIG_VEML6070=m
CONFIG_VL6180=m
#
# Magnetometer sensors
@ -7469,6 +7601,7 @@ CONFIG_IIO_CROS_EC_BARO=m
# Proximity and distance sensors
#
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_SRF04=m
# CONFIG_SX9500 is not set
CONFIG_SRF08=m
@ -7476,6 +7609,7 @@ CONFIG_SRF08=m
# Temperature sensors
#
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_HID_SENSOR_TEMP=m
CONFIG_MLX90614=m
CONFIG_TMP006=m
CONFIG_TMP007=m
@ -7523,6 +7657,7 @@ CONFIG_ARM_GIC_MAX_NR=1
CONFIG_RESET_CONTROLLER=y
# CONFIG_RESET_ATH79 is not set
# CONFIG_RESET_BERLIN is not set
# CONFIG_RESET_IMX7 is not set
# CONFIG_RESET_LPC18XX is not set
# CONFIG_RESET_MESON is not set
# CONFIG_RESET_PISTACHIO is not set
@ -7561,6 +7696,7 @@ CONFIG_INTEL_RAPL=m
#
CONFIG_RAS=y
CONFIG_MCE_AMD_INJ=m
# CONFIG_RAS_CEC is not set
CONFIG_THUNDERBOLT=m
#
@ -7573,8 +7709,8 @@ CONFIG_ND_BLK=y
CONFIG_ND_CLAIM=y
CONFIG_ND_BTT=y
CONFIG_BTT=y
CONFIG_DAX=y
CONFIG_DEV_DAX=m
CONFIG_NR_DEV_DAX=32768
CONFIG_NVMEM=m
CONFIG_STM=m
CONFIG_STM_DUMMY=m
@ -7593,6 +7729,8 @@ CONFIG_INTEL_TH_PTI=m
# FPGA Configuration Support
#
CONFIG_FPGA=m
CONFIG_FPGA_MGR_XILINX_SPI=m
CONFIG_ALTERA_PR_IP_CORE=m
#
# FSI support
@ -7811,6 +7949,7 @@ CONFIG_UBIFS_FS_LZO=y
CONFIG_UBIFS_FS_ZLIB=y
# CONFIG_UBIFS_ATIME_SUPPORT is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS_SECURITY=y
CONFIG_CRAMFS=y
CONFIG_SQUASHFS=y
# CONFIG_SQUASHFS_FILE_CACHE is not set
@ -7883,7 +8022,6 @@ CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=m
CONFIG_PNFS_BLOCK=m
CONFIG_PNFS_OBJLAYOUT=m
CONFIG_PNFS_FLEXFILE_LAYOUT=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
CONFIG_NFS_V4_1_MIGRATION=y
@ -8222,6 +8360,7 @@ CONFIG_STRICT_DEVMEM=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 is not set
# CONFIG_X86_PTDUMP is not set
# CONFIG_EFI_PGT_DUMP is not set
@ -8252,6 +8391,7 @@ CONFIG_PUNIT_ATOM_DEBUG=m
# Security options
#
CONFIG_KEYS=y
CONFIG_KEYS_COMPAT=y
# CONFIG_PERSISTENT_KEYRINGS is not set
# CONFIG_BIG_KEYS is not set
CONFIG_TRUSTED_KEYS=y
@ -8505,6 +8645,7 @@ CONFIG_PKCS7_MESSAGE_PARSER=y
# Certificates for signature checking
#
# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_KVM_VFIO=y

View file

@ -1,7 +1,7 @@
%define kernelversion 4
%define patchlevel 11
%define patchlevel 12
# sublevel is now used for -stable patches
%define sublevel 9
%define sublevel 2
# Release number. Increase this before a rebuild.
%define rpmrel 1
@ -181,10 +181,6 @@ Patch100: perf-python-ext-link-with-dl.patch
# this.
Patch101: perf-xmlto-skip-validation.patch
# Export pci_ids.h to user space, needed by ldetect
# TODO: is it really needed now?
Patch103: include-kbuild-export-pci_ids.patch
# http://bugs.rosalinux.ru/show_bug.cgi?id=6235
# http://bugs.rosalinux.ru/show_bug.cgi?id=6459
Patch104: audit-make-it-less-verbose.patch
@ -204,12 +200,6 @@ Patch108: ata-prefer-ata-drivers-over-ide-drivers-when-both-are-built.patch
# AUFS from http://aufs.sourceforge.net/
Patch109: fs-aufs4.patch
# BFQ IO scheduler, http://algogroup.unimore.it/people/paolo/disk_sched/
Patch111: 0001-block-cgroups-kconfig-build-bits-for-BFQ-v7r11-4.11..patch
Patch112: 0002-block-introduce-the-BFQ-v7r11-I-O-sched-for-4.11.0.patch
Patch113: 0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-v7r11-for.patch
Patch114: 0004-blk-bfq-turn-BFQ-v7r11-for-4.11.0-into-BFQ-v8r11-for.patch
# https://bugs.freedesktop.org/show_bug.cgi?id=97822
# http://bugs.rosalinux.ru/show_bug.cgi?id=7533
Patch200: i915_hack_bug_97822.patch

View file

@ -1,10 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQEcBAABAgAGBQJZBqIqAAoJEHm+PkMAQRiG8+gH/iazF2SZxnZH9URKLpHGkT5D
fz+O4rnWjB9M8JmOUH3MRhukS720/qLmlwROM4Cghxigmv9RMcqds7JlHGxUnphh
Qv083nmDy3IWRGeN4FUDqFo0u1CB/BMZwrgEMf1FKT6vbmlzVroK7Xj6iGKflJH9
BZZHt3YkSwuutXff6LjsA8eTiNrRLzNStCxBHuC3fv9hTDEFfZLrQAITg+XbdAgJ
U4tEKQ+EwaHi261LMLmDd3TjzB2SLrfckBICDrmQSk0Bvc/p0ZtWcjjaIZQm1jfk
RpMBbav5uVPoskbGNVDUwRhTraqZ9Lg0Gvb9RQYDeYZJCWGu62EOPS4KP76OmDc=
=j6oI
-----END PGP SIGNATURE-----

10
linux-4.12.tar.sign Normal file
View file

@ -0,0 +1,10 @@
-----BEGIN PGP SIGNATURE-----
iQEcBAABAgAGBQJZWYAgAAoJEHm+PkMAQRiGMeQH/2qxxgnUkkbgST1WWAlWVENU
nXU9p+1bO4uF5xXvTyATXKcc8jfUfZ60GBUGvYVIpQWuivaRVBFgIZNzl8kn5J6V
uSX7x9AfzVzo6YSTCrXZvsCf1gImkTCVE3pWLPzALjiXC4esx+1p85GjJ3jWym6i
Mx6yErG9L9StDnUVqKLBDHPXM6N04uShzLSaxh93opFrxNx8YhROGln5KjJ6KRKS
hv85x/kmgS7sQTxKK2LH/2NJefqBc3rviFVe/pPEy8GAc1KpsLerDWazlac5/gxt
CkTwzAHtLOpi2QhGD2oKrR0nvUFAlIOtU1Q5HdwstFMOwfStsYfsEPF4bhzU9c4=
=dZzI
-----END PGP SIGNATURE-----

View file

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAllc3qYACgkQONu9yGCS
aT7VRhAAin+SouSf/im62RamDlQbZHof2YDwi1DCKr8CR6IXCfHvZgNq2HDQiDkM
Tx6S+cTiVwNBU6MQrkFkp7EwwsPguz/OjGlcKdvdEovCIQ5MAycXE+ZmfDkBFn1N
+EKNQbnpzWfwZcqNI15YpIoLpOPAV5tURYOuFOKZLglumd5WcTsBwVyZeUJJsJcp
y0h7FNf0C8LhSvwWnkTx45giiv+ot/Jg00+2QpooBZ2RaF9ZYFKZnDnCn7dmjBMh
eU/Zp4y8GceG79jC0AbMJK52dusS6nDcPW9dedKRW3WPvNDMvU78fXMJjjuLnzv/
IpEd+9vBEGzC6sBvx5gTKEToJI2lYIqGfsANST6+yNQaJSdhrdt8eBbLhqW2DLju
+8EGCEDP9UicRUYvuaUOaOhp9Wfmg7qHaFaNJF4yykrbYAy+AJSCVVtqkJBHNxBf
BsivJ3VRAjYDTR/2E7rxpFfOjprZVmpmGyZ7IREbb8cNwK//VX+NvK6qgEbZmkAU
3L9UI+p9KX6VSc43v7GYBQp2SISXGSURsu/WikqM6FqQmNxy44ergRC1Z0VIZr9t
PHiSubcCFoJSw5M+aoPgYUsUV+K1p97BCJOkcY9uu23HD0asRZGtYGp6CcPaKwNm
/Rznvn1uLEJh9ixv63NGeEwfgrIlfuStCBFn1BLgc+li/U0CEyg=
=iA2J
-----END PGP SIGNATURE-----

16
patch-4.12.2.sign Normal file
View file

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAllp9/gACgkQONu9yGCS
aT6zSBAApwifKW45v3Zt4oYOkZBmCuVgCJrH8tyX9OIniJT67bF52ZaWBHzYtLlL
5J5TkpP1Qz/Pd6/rCI3KCaj6M4+cX5lLarOMq0kIHpuKPq4lppQPoAtiJzX9U+w9
Nod3rFswNuAoUoN1i9lIs1jom+ydviCsZdL56SOpW32locsdmL9bDkSEJLM1oCdD
xO5W8rK6+mKR/M+CbPicI/ZKrKieHuRhRNAW0iTCh91XsjOL4Il2GM32Va44Fc1l
6t8zaiixsqGIOv+JceIOaMQna2tm1888QF8naIRaoTgzjYZs6gu09MJpGDnLmLF/
nyHpxVoNhAHv+tpCWy+Wj/7S9xivmmRJ215M+iaEOV9vr96YwOkiX0vKfNrGsPCy
wJ4VLkYpp9aItg4RotXNu1FC677qjsvqRMyPNUEC9M+2ok/bbNLAJzKYGlWEUqJG
O3oIG2AkOsm7UNrSW7ysPNjcfgd6zp3yTX1AaJI7/4Ldd/ScdelDvoBbBI3wC6WB
NmvhFOdIqbrGNf6b9rgEne4lgm7e8JmbQ9Gno/mBgwHeaM4jEx/nTj+C9+ZQFmmw
gx4eSeg4+V0CWqpx7xi/cLA4HsvsYaazJYyaCbL1guexcerPozv+bV9A2wSJ1uFb
BPT+/0u/zuz1m96R3qWu5Vop7K7/a8syWulao85hiaJYafEqjcA=
=KSdU
-----END PGP SIGNATURE-----

View file

@ -1,8 +1,8 @@
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index facc20a..db7ec30 100644
index 7737ab5d04b2..f4a031d8cb37 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -2808,6 +2808,10 @@
@@ -2826,6 +2826,10 @@
the specified number of seconds. This is to be used if
your oopses keep scrolling off the screen.
@ -14,10 +14,10 @@ index facc20a..db7ec30 100644
pcd. [PARIDE]
diff --git a/fs/buffer.c b/fs/buffer.c
index 9196f2a..6215406 100644
index 161be58c5cb0..9dbaa32ec7d5 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -3512,7 +3512,7 @@ void __init buffer_init(void)
@@ -3500,7 +3500,7 @@ void __init buffer_init(void)
bh_cachep = kmem_cache_create("buffer_head",
sizeof(struct buffer_head), 0,
(SLAB_RECLAIM_ACCOUNT|SLAB_PANIC|
@ -27,10 +27,10 @@ index 9196f2a..6215406 100644
/*
diff --git a/fs/dcache.c b/fs/dcache.c
index b1ff5be..e869514 100644
index 5fd25bba1282..b7121d7442f0 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -3619,7 +3619,8 @@ void __init vfs_caches_init_early(void)
@@ -3617,7 +3617,8 @@ void __init vfs_caches_init_early(void)
void __init vfs_caches_init(void)
{
names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
@ -41,7 +41,7 @@ index b1ff5be..e869514 100644
dcache_init();
inode_init();
diff --git a/include/linux/slab.h b/include/linux/slab.h
index 3c37a8c..341210a 100644
index 04a7f7993e67..fd08756a7869 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -23,6 +23,13 @@
@ -59,10 +59,10 @@ index 3c37a8c..341210a 100644
#define SLAB_CACHE_DMA 0x00004000UL /* Use GFP_DMA memory */
#define SLAB_STORE_USER 0x00010000UL /* DEBUG: Store the last owner for bug hunting */
diff --git a/kernel/fork.c b/kernel/fork.c
index 631a65c..d4cd8d4 100644
index cdf75164aa25..0302999e1270 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -2173,7 +2173,7 @@ void __init proc_caches_init(void)
@@ -2212,7 +2212,7 @@ void __init proc_caches_init(void)
sizeof(struct mm_struct), ARCH_MIN_MMSTRUCT_ALIGN,
SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_NOTRACK|SLAB_ACCOUNT,
NULL);
@ -72,15 +72,15 @@ index 631a65c..d4cd8d4 100644
nsproxy_cache_init();
}
diff --git a/mm/rmap.c b/mm/rmap.c
index f683801..d863239 100644
index d405f0e0ee96..fc37f2d91905 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -430,10 +430,10 @@ static void anon_vma_ctor(void *data)
void __init anon_vma_init(void)
{
anon_vma_cachep = kmem_cache_create("anon_vma", sizeof(struct anon_vma),
- 0, SLAB_DESTROY_BY_RCU|SLAB_PANIC|SLAB_ACCOUNT,
+ 0, SLAB_DESTROY_BY_RCU|SLAB_PANIC|SLAB_ACCOUNT|SLAB_NO_SANITIZE,
- 0, SLAB_TYPESAFE_BY_RCU|SLAB_PANIC|SLAB_ACCOUNT,
+ 0, SLAB_TYPESAFE_BY_RCU|SLAB_PANIC|SLAB_ACCOUNT|SLAB_NO_SANITIZE,
anon_vma_ctor);
anon_vma_chain_cachep = KMEM_CACHE(anon_vma_chain,
- SLAB_PANIC|SLAB_ACCOUNT);
@ -89,7 +89,7 @@ index f683801..d863239 100644
/*
diff --git a/mm/slab.c b/mm/slab.c
index 807d86c..6cac198 100644
index 2a31ee3c5814..f11da46c2722 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -3520,6 +3520,17 @@ void ___cache_free(struct kmem_cache *cachep, void *objp,
@ -111,7 +111,7 @@ index 807d86c..6cac198 100644
objp = cache_free_debugcheck(cachep, objp, caller);
diff --git a/mm/slab.h b/mm/slab.h
index 65e7c3f..fc7e00e 100644
index 9cfcf099709c..130e9e250738 100644
--- a/mm/slab.h
+++ b/mm/slab.h
@@ -77,6 +77,15 @@ extern const struct kmalloc_info_struct {
@ -131,7 +131,7 @@ index 65e7c3f..fc7e00e 100644
unsigned long align, unsigned long size);
diff --git a/mm/slab_common.c b/mm/slab_common.c
index 09d0e84..d87c631 100644
index 01a0fe2eb332..794220498bf5 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -49,7 +49,11 @@ static DECLARE_WORK(slab_caches_to_rcu_destroy_work,
@ -193,20 +193,20 @@ index 09d0e84..d87c631 100644
return NULL;
if (ctor)
@@ -453,6 +479,11 @@ kmem_cache_create(const char *name, size_t size, size_t align,
* passed flags.
@@ -454,6 +480,11 @@ kmem_cache_create(const char *name, size_t size, size_t align,
*/
flags &= CACHE_CREATE_MASK;
+
+#ifdef CONFIG_PAX_MEMORY_SANITIZE
+ if (flags & SLAB_DESTROY_BY_RCU)
+ flags |= SLAB_NO_SANITIZE;
+#endif
+
s = __kmem_cache_alias(name, size, align, flags, ctor);
if (s)
goto out_unlock;
diff --git a/mm/slob.c b/mm/slob.c
index eac04d43..f455845 100644
index 1bae78d71096..a76c903104c9 100644
--- a/mm/slob.c
+++ b/mm/slob.c
@@ -365,6 +365,11 @@ static void slob_free(void *block, int size)
@ -222,7 +222,7 @@ index eac04d43..f455845 100644
/* This slob page is about to become partially free. Easy! */
sp->units = units;
diff --git a/mm/slub.c b/mm/slub.c
index 7f4bc70..a913874 100644
index 8addc535bcdc..8932b7d6d324 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -2959,6 +2959,23 @@ static __always_inline void slab_free(struct kmem_cache *s, struct page *page,
@ -252,18 +252,18 @@ index 7f4bc70..a913874 100644
@@ -3456,6 +3473,9 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order)
s->inuse = size;
if (((flags & (SLAB_DESTROY_BY_RCU | SLAB_POISON)) ||
if (((flags & (SLAB_TYPESAFE_BY_RCU | SLAB_POISON)) ||
+#ifdef CONFIG_PAX_MEMORY_SANITIZE
+ (pax_sanitize_slab && !(flags & SLAB_NO_SANITIZE)) ||
+ (pax_sanitize_slab && !(flags & SLAB_NO_SANITIZE)) ||
+#endif
s->ctor)) {
/*
* Relocate free pointer after the object if it is not
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index f1d0459..dc2922f3 100644
index b1be7c01efe2..167c2c1123f5 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -3474,12 +3474,14 @@ void __init skb_init(void)
@@ -3473,12 +3473,14 @@ void __init skb_init(void)
skbuff_head_cache = kmem_cache_create("skbuff_head_cache",
sizeof(struct sk_buff),
0,
@ -281,7 +281,7 @@ index f1d0459..dc2922f3 100644
}
diff --git a/security/Kconfig b/security/Kconfig
index d900f47..fba9613 100644
index 93027fdf47d1..95f02d5134b4 100644
--- a/security/Kconfig
+++ b/security/Kconfig
@@ -6,6 +6,37 @@ menu "Security options"