lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170907232542.20589-1-paul.burton@imgtec.com>
Date:   Thu, 7 Sep 2017 16:25:33 -0700
From:   Paul Burton <paul.burton@...tec.com>
To:     Thomas Gleixner <tglx@...utronix.de>,
        Ralf Baechle <ralf@...ux-mips.org>
CC:     <dianders@...omium.org>, James Hogan <james.hogan@...tec.com>,
        Brian Norris <briannorris@...omium.org>,
        Jason Cooper <jason@...edaemon.net>,
        <jeffy.chen@...k-chips.com>, Marc Zyngier <marc.zyngier@....com>,
        <linux-kernel@...r.kernel.org>, <linux-mips@...ux-mips.org>,
        <tfiga@...omium.org>, Paul Burton <paul.burton@...tec.com>
Subject: [RFC PATCH v1 0/9] Support shared percpu interrupts; clean up MIPS hacks

This series introduces support for percpu shared interrupts and makes
use of this support to clean up some hacks that have been used to
support such interrupts on MIPS.

- Patch 1 allows users of shared interrupts to opt into IRQ_NOAUTOEN
  behaviour & avoid warnings from doing so.

- Patch 2 introduces support for shared percpu_devid interrupts.

- Patch 3 introduces a helper allowing users to detect whether an
  interrupt is a percpu_devid interrupt or not, which is useful
  during the transition phase where interrupts may be either.

- Patches 4 & 5 removes an ugly custom implementation of shared
  interrupts between the MIPS cevt-r4k timer driver & users of
  performance counters, in favor of using standard IRQF_SHARED &
  multiple handlers.

- Patches 6 & 7 add percpu interrupt support to the MIPS perf &
  cevt-r4k timer drivers respectively.

- Patch 8 configures the MIPS cop 0 count/compare, fast debug channel &
  performance counter overflow interrupts as percpu_devid when they are
  mapped by the irqchip-mips-cpu driver.

- Patch 9 removes a hack from the irqchip-mips-gic driver that was
  used to enable & disable an interrupt across all CPUs, which is no
  longer necessary with users of those interrupts using the percpu
  interrupt APIs correctly. This mirrors patch 8 for systems where we
  map the CPU local interrupts via the GIC.

There's a little more work necessary before this could go in - the
MIPS oprofile code needs adjusting to use the percpu interrupt APIs, as
does the fast debug channel driver.

Applies atop next-20170905.

Paul Burton (9):
  genirq: Allow shared interrupt users to opt into IRQ_NOAUTOEN
  genirq: Support shared per_cpu_devid interrupts
  genirq: Introduce irq_is_percpu_devid()
  MIPS: Remove perf_irq interrupt sharing fallback
  MIPS: Remove perf_irq
  MIPS: perf: percpu_devid interrupt support
  MIPS: cevt-r4k: percpu_devid interrupt support
  irqchip: mips-cpu: Set timer, FDC & perf interrupts percpu_devid
  irqchip: mips-gic: Remove gic_all_vpes_local_irq_controller

 arch/mips/include/asm/time.h            |  1 -
 arch/mips/kernel/cevt-r4k.c             | 77 ++++++++++++-----------------
 arch/mips/kernel/perf_event_mipsxx.c    | 71 +++++++++++----------------
 arch/mips/kernel/time.c                 |  9 ----
 arch/mips/kernel/traps.c                |  2 +-
 arch/mips/oprofile/op_impl.h            |  2 -
 arch/mips/oprofile/op_model_loongson3.c | 39 +++++++--------
 arch/mips/oprofile/op_model_mipsxx.c    | 10 +---
 drivers/irqchip/irq-mips-cpu.c          |  9 +++-
 drivers/irqchip/irq-mips-gic.c          | 69 +++-----------------------
 include/linux/interrupt.h               |  2 +
 include/linux/irqdesc.h                 |  8 +++
 kernel/irq/chip.c                       |  8 +--
 kernel/irq/handle.c                     |  8 ++-
 kernel/irq/manage.c                     | 86 +++++++++++++++++++++++++--------
 kernel/irq/settings.h                   |  5 ++
 16 files changed, 189 insertions(+), 217 deletions(-)

-- 
2.14.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ