Brian Norris
1ed106914a
Merge tag 'nand/for-4.8' of github.com:linux-nand/linux into mtd
...
Pull NAND changes from Boris Brezillon:
"""
This pull request contains only one notable change:
* Addition of the MTK NAND controller driver
And a bunch of specific NAND driver improvements/fixes. Here are the
changes that are worth mentioning:
* A few fixes/improvements for the xway NAND controller driver
* A few fixes for the sunxi NAND controller driver
* Support for DMA in the sunxi NAND driver
* Support for the sunxi NAND controller IP embedded in A23/A33 SoCs
* Addition for bitflips detection in erased pages to the brcmnand driver
* Support for new brcmnand IPs
* Update of the OMAP-GPMC binding to support DMA channel description
"""
2016-07-15 17:06:26 -07:00
Hans de Goede
ed7c9870c9
Input: of_touchscreen - add support for inverted / swapped axes
...
Extend touchscreen_parse_properties() with support for the
touchscreen-inverted-x/y and touchscreen-swapped-x-y properties and
add touchscreen_set_mt_pos() and touchscreen_report_pos() helper
functions for storing coordinates into a input_mt_pos struct, or
directly reporting them, taking these properties into account.
This commit also modifies the existing callers of
touchscreen_parse_properties() to pass in NULL for the new third
argument, keeping the existing behavior.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com >
2016-07-15 14:50:53 -07:00
Daniel Borkmann
555c8a8623
bpf: avoid stack copy and use skb ctx for event output
...
This work addresses a couple of issues bpf_skb_event_output()
helper currently has: i) We need two copies instead of just a
single one for the skb data when it should be part of a sample.
The data can be non-linear and thus needs to be extracted via
bpf_skb_load_bytes() helper first, and then copied once again
into the ring buffer slot. ii) Since bpf_skb_load_bytes()
currently needs to be used first, the helper needs to see a
constant size on the passed stack buffer to make sure BPF
verifier can do sanity checks on it during verification time.
Thus, just passing skb->len (or any other non-constant value)
wouldn't work, but changing bpf_skb_load_bytes() is also not
the proper solution, since the two copies are generally still
needed. iii) bpf_skb_load_bytes() is just for rather small
buffers like headers, since they need to sit on the limited
BPF stack anyway. Instead of working around in bpf_skb_load_bytes(),
this work improves the bpf_skb_event_output() helper to address
all 3 at once.
We can make use of the passed in skb context that we have in
the helper anyway, and use some of the reserved flag bits as
a length argument. The helper will use the new __output_custom()
facility from perf side with bpf_skb_copy() as callback helper
to walk and extract the data. It will pass the data for setup
to bpf_event_output(), which generates and pushes the raw record
with an additional frag part. The linear data used in the first
frag of the record serves as programmatically defined meta data
passed along with the appended sample.
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net >
Acked-by: Alexei Starovoitov <ast@kernel.org >
Signed-off-by: David S. Miller <davem@davemloft.net >
2016-07-15 14:23:56 -07:00
Daniel Borkmann
7e3f977edd
perf, events: add non-linear data support for raw records
...
This patch adds support for non-linear data on raw records. It
extends raw records to have one or multiple fragments that will
be written linearly into the ring slot, where each fragment can
optionally have a custom callback handler to walk and extract
complex, possibly non-linear data.
If a callback handler is provided for a fragment, then the new
__output_custom() will be used instead of __output_copy() for
the perf_output_sample() part. perf_prepare_sample() does all
the size calculation only once, so perf_output_sample() doesn't
need to redo the same work anymore, meaning real_size and padding
will be cached in the raw record. The raw record becomes 32 bytes
in size without holes; to not increase it further and to avoid
doing unnecessary recalculations in fast-path, we can reuse
next pointer of the last fragment, idea here is borrowed from
ZERO_OR_NULL_PTR(), which should keep the perf_output_sample()
path for PERF_SAMPLE_RAW minimal.
This facility is needed for BPF's event output helper as a first
user that will, in a follow-up, add an additional perf_raw_frag
to its perf_raw_record in order to be able to more efficiently
dump skb context after a linear head meta data related to it.
skbs can be non-linear and thus need a custom output function to
dump buffers. Currently, the skb data needs to be copied twice;
with the help of __output_custom() this work only needs to be
done once. Future users could be things like XDP/BPF programs
that work on different context though and would thus also have
a different callback function.
The few users of raw records are adapted to initialize their frag
data from the raw record itself, no change in behavior for them.
The code is based upon a PoC diff provided by Peter Zijlstra [1].
[1] http://thread.gmane.org/gmane.linux.network/421294
Suggested-by: Peter Zijlstra <peterz@infradead.org >
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net >
Acked-by: Alexei Starovoitov <ast@kernel.org >
Signed-off-by: David S. Miller <davem@davemloft.net >
2016-07-15 14:23:56 -07:00
Philipp Zabel
77501a79ce
net: phy: micrel: Add KSZ8041FTL fiber mode support
...
We can't detect the FXEN (fiber mode) bootstrap pin, so configure
it via a boolean device tree property "micrel,fiber-mode".
If it is enabled, auto-negotiation is not supported.
The only available modes are 100base-fx (full duplex and half duplex).
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de >
Signed-off-by: David S. Miller <davem@davemloft.net >
2016-07-15 11:53:02 -07:00
Mark Brown
efeb1a3ab9
Merge remote-tracking branches 'regmap/topic/bulk', 'regmap/topic/i2c', 'regmap/topic/iopoll', 'regmap/topic/irq' and 'regmap/topic/maintainers' into regmap-next
2016-07-15 13:44:47 +01:00
Philipp Zabel
08188ba882
regmap: add iopoll-like polling macro
...
This patch adds a macro regmap_read_poll_timeout that works similar
to the readx_poll_timeout defined in linux/iopoll.h, except that this
can also return the error value returned by a failed regmap_read.
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de >
Signed-off-by: Mark Brown <broonie@kernel.org >
2016-07-15 13:44:22 +01:00
Hannes Reinecke
5b844b63dd
ata: Handle ATA NCQ NO-DATA commands correctly
...
Add a new taskfile protocol ATA_PROT_NCQ_NODATA to handle
ATA NCQ NO-DATA commands correctly.
And fixup ata_scsi_zbc_out_xlat() to use it.
Signed-off-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: Tejun Heo <tj@kernel.org >
2016-07-15 08:08:13 -04:00
Anna-Maria Gleixner
ecd8081f6f
ARC/time: Convert to hotplug state machine
...
Install the callbacks via the state machine.
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vineet Gupta <vgupta@synopsys.com >
Cc: linux-snps-arc@lists.infradead.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153338.391826254@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:41:46 +02:00
Richard Cochran
eb0a9d8c67
clocksource/atlas7: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Barry Song <baohua@kernel.org >
Cc: Daniel Lezcano <daniel.lezcano@linaro.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153338.310333816@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:41:45 +02:00
Richard Cochran
2c48fef74c
clocksource/armada-370-xp: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Daniel Lezcano <daniel.lezcano@linaro.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153338.229913786@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:41:45 +02:00
Richard Cochran
d11b3a60fc
clocksource/exynos_mct: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Daniel Lezcano <daniel.lezcano@linaro.org >
Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com >
Cc: Kukjin Kim <kgene@kernel.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linux-samsung-soc@vger.kernel.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153338.147940411@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:41:44 +02:00
Richard Cochran
b8a12296ac
clocksource/arm_global_timer: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Daniel Lezcano <daniel.lezcano@linaro.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Maxime Coquelin <maxime.coquelin@st.com >
Cc: Patrice Chotard <patrice.chotard@st.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srinivas Kandagatla <srinivas.kandagatla@gmail.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: kernel@stlinux.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153338.062741642@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:41:44 +02:00
Thomas Gleixner
4df8374254
rcu: Convert rcutree to hotplug state machine
...
Straight forward conversion to the state machine. Though the question arises
whether this needs really all these state transitions to work.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153337.982013161@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:41:44 +02:00
Anna-Maria Gleixner
15d7e3d349
KVM/arm/arm64/vgic-new: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Cc: Andre Przywara <andre.przywara@arm.com >
Cc: Christoffer Dall <christoffer.dall@linaro.org >
Cc: Eric Auger <eric.auger@linaro.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Marc Zyngier <marc.zyngier@arm.com >
Cc: Paolo Bonzini <pbonzini@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Radim Krcmar <rkrcmar@redhat.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: kvm@vger.kernel.org
Cc: kvmarm@lists.cs.columbia.edu
Cc: linux-arm-kernel@lists.infradead.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153337.900484868@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:41:43 +02:00
Richard Weinberger
31487f8328
smp/cfd: Convert core to hotplug state machine
...
Install the callbacks via the state machine. They are installed at runtime so
smpcfd_prepare_cpu() needs to be invoked by the boot-CPU.
Signed-off-by: Richard Weinberger <richard@nod.at >
[ Added the dropped CPU dying case back in. ]
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Davidlohr Bueso <dave@stgolabs>
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@techsingularity.net >
Cc: Oleg Nesterov <oleg@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153337.818376366@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:41:43 +02:00
Sebastian Andrzej Siewior
6b2c28471d
x86/x2apic: Convert to CPU hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Cc: Len Brown <len.brown@intel.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mathias Krause <minipli@googlemail.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153337.736898691@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:41:42 +02:00
Sebastian Andrzej Siewior
e722d8daaf
profile: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs. A lot of code is removed because
the for-loop is used and create_hash_tables() is removed since its purpose
is covered by the startup / teardown hooks.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mel Gorman <mgorman@techsingularity.net >
Cc: Michal Hocko <mhocko@suse.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vlastimil Babka <vbabka@suse.cz >
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153337.649867675@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:41:42 +02:00
Richard Cochran
24f73b9971
timers/core: Convert to hotplug state machine
...
When tearing down, call timers_dead_cpu() before notify_dead().
There is a hidden dependency between:
- timers
- block multiqueue
- rcutree
If timers_dead_cpu() comes later than blk_mq_queue_reinit_notify()
that latter function causes a RCU stall.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: John Stultz <john.stultz@linaro.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Oleg Nesterov <oleg@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153337.566790058@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:41:42 +02:00
Thomas Gleixner
27590dc17b
hrtimer: Convert to hotplug state machine
...
Split out the clockevents callbacks instead of piggybacking them on
hrtimers.
This gets rid of a POST_DEAD user. See commit:
54e88fad22
("sched: Make sure timers have migrated before killing the migration_thread")
We just move the callback state to the proper place in the state machine.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Oleg Nesterov <oleg@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk >
Cc: Rusty Russell <rusty@rustcorp.com.au >
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153337.485419196@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:41:37 +02:00
Richard Cochran
ae6a8a2ed7
x86/tboot: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Gang Wei <gang.wei@intel.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Ning Sun <ning.sun@intel.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Richard L Maliszewski <richard.l.maliszewski@intel.com >
Cc: Shane Wang <shane.wang@intel.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: rt@linutronix.de
Cc: tboot-devel@lists.sourceforge.net
Link: http://lkml.kernel.org/r/20160713153337.400227322@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:30 +02:00
Sebastian Andrzej Siewior
27c01a8c73
arm64/armv8 deprecated: Convert to hotplug state machine
...
Install the callbacks via the state machine.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: James Morse <james.morse@arm.com >
Cc: Jisheng Zhang <jszhang@marvell.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Shengjiu Wang <shengjiu.wang@freescale.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Will Deacon <will.deacon@arm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153337.311115906@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:30 +02:00
Sebastian Andrzej Siewior
58eb457be0
hwtracing/coresight-etm4x: Convert to hotplug state machine
...
This driver has an asymmetry of ONLINE code without any corresponding tear
down code. Otherwise, this is a straightforward conversion.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Acked-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linux-arm-kernel@lists.infradead.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153337.228918408@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:30 +02:00
Richard Cochran
2b5283d12f
hwtracing/coresight-etm3x: Convert to hotplug state machine
...
This driver has an asymmetry of ONLINE code without any corresponding tear
down code. Otherwise, this is a straightforward conversion.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Acked-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linux-arm-kernel@lists.infradead.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153337.147128995@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:29 +02:00
Richard Cochran
65264e3bc3
MIPS/Loongson-3: Convert oprofile to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Acked-by: Ralf Baechle <ralf@linux-mips.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Robert Richter <rric@kernel.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linux-mips@linux-mips.org
Cc: oprofile-list@lists.sf.net
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153337.054827168@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:29 +02:00
Richard Cochran
4761adb6f4
arm/xen: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
The get_cpu() in xen_starting_cpu() boils down to preempt_disable() since
we already know the CPU we run on. Disabling preemption shouldn't be required
here from what I see since it we don't switch CPUs while invoking the function.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linux-arm-kernel@lists.infradead.org
Cc: rt@linutronix.de
Cc: xen-devel@lists.xenproject.org
Link: http://lkml.kernel.org/r/20160713153336.971559670@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:28 +02:00
Richard Cochran
26b8768868
arm/twd: Convert to hotplug state machine
...
Install the callbacks via the state machine. The callbacks won't be invoked on
already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Daniel Lezcano <daniel.lezcano@linaro.org >
Cc: Eric Anholt <eric@anholt.net >
Cc: Felipe Balbi <balbi@ti.com >
Cc: Heiko Stuebner <heiko@sntech.de >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Marc Gonzalez <marc_gonzalez@sigmadesigns.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Russell King <linux@arm.linux.org.uk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vineet Gupta <vgupta@synopsys.com >
Cc: Viresh Kumar <viresh.kumar@linaro.org >
Cc: linux-arm-kernel@lists.infradead.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153336.881124821@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:28 +02:00
Richard Cochran
9eeb226477
arm/l2c: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Brad Mouring <brad.mouring@ni.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rob Herring <robh@kernel.org >
Cc: Russell King <linux@arm.linux.org.uk >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linux-arm-kernel@lists.infradead.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153336.801270887@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:28 +02:00
Richard Cochran
04d045a681
metag/perf: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Arnaldo Carvalho de Melo <acme@kernel.org >
Cc: James Hogan <james.hogan@imgtec.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linux-metag@vger.kernel.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153336.717395164@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:27 +02:00
Richard Cochran
b3c9950a5c
arm/kvm/arch_timer: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Christoffer Dall <christoffer.dall@linaro.org >
Cc: Gleb Natapov <gleb@kernel.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Marc Zyngier <marc.zyngier@arm.com >
Cc: Paolo Bonzini <pbonzini@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Radim Krcmar <rkrcmar@redhat.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: kvm@vger.kernel.org
Cc: kvmarm@lists.cs.columbia.edu
Cc: linux-arm-kernel@lists.infradead.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153336.634155707@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:27 +02:00
Richard Cochran
42ec50b5f2
arm/kvm/vgic: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
The VGIC callback is run after KVM's main callback since it reflects the
makefile order.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Christoffer Dall <christoffer.dall@linaro.org >
Cc: Gleb Natapov <gleb@kernel.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Marc Zyngier <marc.zyngier@arm.com >
Cc: Paolo Bonzini <pbonzini@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Radim Krcmar <rkrcmar@redhat.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: kvm@vger.kernel.org
Cc: kvmarm@lists.cs.columbia.edu
Cc: linux-arm-kernel@lists.infradead.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153336.546953286@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:26 +02:00
Richard Cochran
911a359de9
leds/trigger/cpu: Convert to hotplug state machine
...
This is a straightforward conversion. We place this callback last
in the list so that the LED illuminates only after a successful
bring up sequence.
( NOTE: The patch adds a FIXME question about the callback used,
this question should probably be revisited later on.)
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Acked-by: Jacek Anaszewski <j.anaszewski@samsung.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: Paul Gortmaker <paul.gortmaker@windriver.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Richard Purdie <rpurdie@rpsys.net >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linux-leds@vger.kernel.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153336.465496902@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:26 +02:00
Richard Cochran
2dab90932f
clocksource/mips-gic: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Daniel Lezcano <daniel.lezcano@linaro.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153336.380737946@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:26 +02:00
Richard Cochran
b04041655d
clocksource/qcom-timer: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Daniel Lezcano <daniel.lezcano@linaro.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153336.295486558@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:25 +02:00
Richard Cochran
31e8e5db88
clocksource/metag: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Daniel Lezcano <daniel.lezcano@linaro.org >
Cc: James Hogan <james.hogan@imgtec.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linux-metag@vger.kernel.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153336.215137642@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:25 +02:00
Richard Cochran
00c1d17aab
clocksource/dummy_timer: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Daniel Lezcano <daniel.lezcano@linaro.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153336.130385842@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:24 +02:00
Richard Cochran
7e86e8bd8d
clocksource/arm_arch_timer: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
Signed-off-by: Richard Cochran <rcochran@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Daniel Lezcano <daniel.lezcano@linaro.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153336.048259040@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:24 +02:00
Thomas Gleixner
8c18b2d2d0
virt: Convert kvm hotplug to state machine
...
Install the callbacks via the state machine. The core won't invoke the
callbacks on already online CPUs.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Acked-by: Paolo Bonzini <pbonzini@redhat.com >
Cc: Gleb Natapov <gleb@kernel.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Radim Krcmar <rkrcmar@redhat.com >
Cc: kvm@vger.kernel.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153335.886159080@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:23 +02:00
Thomas Gleixner
7d88eb695a
arm/perf: Convert to hotplug state machine
...
Straight forward conversion w/o bells and whistles.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Will Deacon <will.deacon@arm.com >
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153335.794097159@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:23 +02:00
Thomas Gleixner
e5b61bafe7
arm: Convert VFP hotplug notifiers to state machine
...
Straight forward conversion plus commentary why code which is executed
in hotplug callbacks needs to be invoked before installing them.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Russell King <linux@arm.linux.org.uk >
Cc: linux-arm-kernel@lists.infradead.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153335.713612993@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:22 +02:00
Sebastian Andrzej Siewior
148b9e2abe
x86/apb_timer: Convert to hotplug state machine
...
Install the callbacks via the state machine. There is no setup just one
teardown callback. Remove the silly comment about the workqueue up dependency.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153335.625342983@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:22 +02:00
Sebastian Andrzej Siewior
251a5fd64b
x86/kvm/kvmclock: Convert to hotplug state machine
...
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.
We assumed that the priority ordering was ment to invoke the online
callback as the last step. In the original code this also invoked the
down prepare callback as the last step. With the symmetric state
machine the down prepare callback is now the first step.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de >
Acked-by: Paolo Bonzini <pbonzini@redhat.com >
Cc: Gleb Natapov <gleb@kernel.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Radim Krcmar <rkrcmar@redhat.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: kvm@vger.kernel.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153335.542880859@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:40:21 +02:00
Ingo Molnar
38452af242
Merge branch 'x86/asm' into x86/mm, to resolve conflicts
...
Conflicts:
tools/testing/selftests/x86/Makefile
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-07-15 10:26:04 +02:00
Hugh Dickins
5a49973d71
mm: thp: refix false positive BUG in page_move_anon_rmap()
...
The VM_BUG_ON_PAGE in page_move_anon_rmap() is more trouble than it's
worth: the syzkaller fuzzer hit it again. It's still wrong for some THP
cases, because linear_page_index() was never intended to apply to
addresses before the start of a vma.
That's easily fixed with a signed long cast inside linear_page_index();
and Dmitry has tested such a patch, to verify the false positive. But
why extend linear_page_index() just for this case? when the avoidance in
page_move_anon_rmap() has already grown ugly, and there's no reason for
the check at all (nothing else there is using address or index).
Remove address arg from page_move_anon_rmap(), remove VM_BUG_ON_PAGE,
remove CONFIG_DEBUG_VM PageTransHuge adjustment.
And one more thing: should the compound_head(page) be done inside or
outside page_move_anon_rmap()? It's usually pushed down to the lowest
level nowadays (and mm/memory.c shows no other explicit use of it), so I
think it's better done in page_move_anon_rmap() than by caller.
Fixes: 0798d3c022
("mm: thp: avoid false positive VM_BUG_ON_PAGE in page_move_anon_rmap()")
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1607120444540.12528@eggly.anvils
Signed-off-by: Hugh Dickins <hughd@google.com >
Reported-by: Dmitry Vyukov <dvyukov@google.com >
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Mika Westerberg <mika.westerberg@linux.intel.com >
Cc: Andrea Arcangeli <aarcange@redhat.com >
Cc: Rik van Riel <riel@redhat.com >
Cc: <stable@vger.kernel.org > [4.5+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2016-07-15 14:54:27 +09:00
Naoya Horiguchi
33f4751e99
mm: thp: move pmd check inside ptl for freeze_page()
...
I found a race condition triggering VM_BUG_ON() in freeze_page(), when
running a testcase with 3 processes:
- process 1: keep writing thp,
- process 2: keep clearing soft-dirty bits from virtual address of process 1
- process 3: call migratepages for process 1,
The kernel message is like this:
kernel BUG at /src/linux-dev/mm/huge_memory.c:3096!
invalid opcode: 0000 [#1 ] SMP
Modules linked in: cfg80211 rfkill crc32c_intel ppdev serio_raw pcspkr virtio_balloon virtio_console parport_pc parport pvpanic acpi_cpufreq tpm_tis tpm i2c_piix4 virtio_blk virtio_net ata_generic pata_acpi floppy virtio_pci virtio_ring virtio
CPU: 0 PID: 28863 Comm: migratepages Not tainted 4.6.0-v4.6-160602-0827-+ #2
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
task: ffff880037320000 ti: ffff88007cdd0000 task.ti: ffff88007cdd0000
RIP: 0010:[<ffffffff811f8e06>] [<ffffffff811f8e06>] split_huge_page_to_list+0x496/0x590
RSP: 0018:ffff88007cdd3b70 EFLAGS: 00010202
RAX: 0000000000000001 RBX: ffff88007c7b88c0 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000700000200 RDI: ffffea0003188000
RBP: ffff88007cdd3bb8 R08: 0000000000000001 R09: 00003ffffffff000
R10: ffff880000000000 R11: ffffc000001fffff R12: ffffea0003188000
R13: ffffea0003188000 R14: 0000000000000000 R15: 0400000000000080
FS: 00007f8ec241d740(0000) GS:ffff88007dc00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f8ec1f3ed20 CR3: 000000003707b000 CR4: 00000000000006f0
Call Trace:
? list_del+0xd/0x30
queue_pages_pte_range+0x4d1/0x590
__walk_page_range+0x204/0x4e0
walk_page_range+0x71/0xf0
queue_pages_range+0x75/0x90
? queue_pages_hugetlb+0x190/0x190
? new_node_page+0xc0/0xc0
? change_prot_numa+0x40/0x40
migrate_to_node+0x71/0xd0
do_migrate_pages+0x1c3/0x210
SyS_migrate_pages+0x261/0x290
entry_SYSCALL_64_fastpath+0x1a/0xa4
Code: e8 b0 87 fb ff 0f 0b 48 c7 c6 30 32 9f 81 e8 a2 87 fb ff 0f 0b 48 c7 c6 b8 46 9f 81 e8 94 87 fb ff 0f 0b 85 c0 0f 84 3e fd ff ff <0f> 0b 85 c0 0f 85 a6 00 00 00 48 8b 75 c0 4c 89 f7 41 be f0 ff
RIP split_huge_page_to_list+0x496/0x590
I'm not sure of the full scenario of the reproduction, but my debug
showed that split_huge_pmd_address(freeze=true) returned without running
main code of pmd splitting because pmd_present(*pmd) in precheck somehow
returned 0. If this happens, the subsequent try_to_unmap() fails and
returns non-zero (because page_mapcount() still > 0), and finally
VM_BUG_ON() fires. This patch tries to fix it by prechecking pmd state
inside ptl.
Link: http://lkml.kernel.org/r/1466990929-7452-1-git-send-email-n-horiguchi@ah.jp.nec.com
Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com >
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2016-07-15 14:54:27 +09:00
Amir Vadai
a351a1b03b
net/mlx5: Introduce bulk reading of flow counters
...
This commit utilize the ability of ConnectX-4 to bulk read flow counters.
Few bulk counter queries could be done instead of issuing thousands of
firmware commands per second to get statistics of all flows set to HW,
such as those programmed when we offload tc filters.
Counters are stored sorted by hardware id, and queried in blocks (id +
number of counters).
Due to hardware requirement, start of block and number of counters in a
block must be four aligned.
Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com >
Signed-off-by: Amir Vadai <amir@vadai.me >
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2016-07-14 13:34:28 -07:00
Amir Vadai
29cc667907
net/mlx5: Store counters in rbtree instead of list
...
In order to use bulk counters, we need to have counters sorted by id.
Signed-off-by: Amir Vadai <amir@vadai.me >
Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com >
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2016-07-14 13:34:28 -07:00
Christoph Hellwig
b1c04e80c6
libata: return boolean values from ata_is_*
...
This way we don't have to worry about the exact bit postition of the
test to leak out and any crazy propagation effects in the callers.
Suggested-by: Tejun Heo <tj@kernel.org >
Signed-off-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: Tejun Heo <tj@kernel.org >
2016-07-14 10:44:51 -04:00
Jarkko Nikula
55d38d060e
i2c: core: Add function for finding the bus speed from ACPI
...
ACPI 5 specification doesn't have property for the I2C bus speed but
I2cSerialBus resource descriptors which define each controller-slave
connection define the maximum speed supported by that connection.
Thus finding the maximum safe speed for the bus is to walk all
I2cSerialBus resources that are associated to I2C controller and use
the speed of slowest connection.
Add function i2c_acpi_find_bus_speed() to the i2c-core that adapter
drivers can call prior registering itself to core.
This implies two-step walk through the I2cSerialBus resources: call to
i2c_acpi_find_bus_speed() does the first scan and finds the safe bus
speed that adapter drivers can set up. Adapter driver registration does
the second scan when i2c-core creates the I2C slaves by calling the
i2c_acpi_register_devices(). In that way the bus speed is set in case
slave device probe gets called during registration and does
communication.
Implement this by reusing the existing ACPI I2C walk routines in the
i2c-core. Extend them so that slowest connection speed is saved during
the walk and I2C slaves are registered only when calling through the
i2c_acpi_register_devices() with the i2c_adapter pointer.
Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com >
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com >
Signed-off-by: Wolfram Sang <wsa@the-dreams.de >
2016-07-14 22:25:10 +09:00
Arnd Bergmann
f1844aca29
Merge tag 'ux500-cleanup-bundle' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/drivers
...
Merge "Ux500 cleanups from Arnd" from Linus Walleij:
This is a set of cleanups for the Ux500 that reduce the number
of machine-local files and boardfile-type data for regulators
and ASoC.
* tag 'ux500-cleanup-bundle' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson:
ARM: ux500: consolidate base platform files
ARM: ux500: move soc_id driver to drivers/soc
ARM: ux500: call ux500_setup_id later
ARM: ux500: consolidate soc_device code in id.c
ARM: ux500: remove cpu_is_u* helpers
ARM: ux500: use CLK_OF_DECLARE()
ARM: ux500: move l2x0 init to .init_irq
mfd: db8500 stop passing around platform data
ASoC: ab8500-codec: remove platform data based probe
ARM: ux500: move ab8500_regulator_plat_data into driver
ARM: ux500: remove unused regulator data
2016-07-14 15:23:19 +02:00