linux/kernel/irq
Daniel Lezcano 2840eef051 genirq/timings: Fix timings buffer inspection
It appears the index beginning computation is not correct, the current
code does:

     i = (irqts->count & IRQ_TIMINGS_MASK) - 1

If irqts->count is equal to zero, we end up with an index equal to -1,
but that does not happen because the function checks against zero
before and returns in such case.

However, if irqts->count is a multiple of IRQ_TIMINGS_SIZE, the
resulting & bit op will be zero and leads also to a -1 index.

Re-introduce the iteration loop belonging to the previous variance
code which was correct.

Fixes: bbba0e7c5c "genirq/timings: Add array suffix computation code"
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: andriy.shevchenko@linux.intel.com
Link: https://lkml.kernel.org/r/20190527205521.12091-3-daniel.lezcano@linaro.org
2019-06-12 10:47:03 +02:00
..
affinity.c genirq/affinity: Remove the leftovers of the original set support 2019-02-18 11:21:29 +01:00
autoprobe.c genirq: Cleanup top of file comments 2018-03-20 14:23:27 +01:00
chip.c genirq: Introduce irq_chip_{request,release}_resource_parent() apis 2019-05-01 10:41:38 +01:00
cpuhotplug.c genirq: Add missing SPDX identifiers 2018-03-20 14:23:28 +01:00
debug.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk 2018-02-01 13:36:15 -08:00
debugfs.c treewide: Switch printk users from %pf and %pF to %ps and %pS, respectively 2019-04-09 14:19:06 +02:00
devres.c genirq/devres: Use struct_size() in devm_kzalloc() 2019-04-16 21:54:03 +02:00
dummychip.c genirq: Add missing SPDX identifiers 2018-03-20 14:23:28 +01:00
generic-chip.c genirq: Add missing SPDX identifiers 2018-03-20 14:23:28 +01:00
handle.c treewide: Switch printk users from %pf and %pF to %ps and %pS, respectively 2019-04-09 14:19:06 +02:00
internals.h irqchip updates for Linux 5.1 2019-02-23 10:53:31 +01:00
ipi.c genirq: Fix various typos in comments 2018-12-18 14:22:28 +01:00
irq_sim.c irq/irq_sim: add irq_set_type() callback 2019-02-19 17:42:28 +01:00
irqdesc.c Driver core/kobject patches for 5.2-rc1 2019-05-07 13:01:40 -07:00
irqdomain.c genirq/irqdomain: Remove WARN_ON() on out-of-memory condition 2019-05-28 13:10:55 -07:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-13 17:33:11 -08:00
manage.c Printk changes for 5.2 2019-05-07 09:18:12 -07:00
matrix.c genirq/matrix: Improve target CPU selection for managed interrupts. 2018-11-06 23:20:13 +01:00
migration.c genirq/migration: Avoid out of line call if pending is not set 2018-06-06 15:18:20 +02:00
msi.c genirq/core: Introduce struct irq_affinity_desc 2018-12-19 11:32:08 +01:00
pm.c genirq: Add missing SPDX identifiers 2018-03-20 14:23:28 +01:00
proc.c genirq: Speedup show_interrupts() 2018-06-22 14:22:58 +02:00
resend.c genirq: Cleanup top of file comments 2018-03-20 14:23:27 +01:00
settings.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
spurious.c treewide: Switch printk users from %pf and %pF to %ps and %pS, respectively 2019-04-09 14:19:06 +02:00
timings.c genirq/timings: Fix timings buffer inspection 2019-06-12 10:47:03 +02:00