lkml.org 
[lkml]   [2015]   [Jul]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:irq/core] mn10300/irq: Use access helper irq_data_get_affinity_mask()
    Commit-ID:  9d03e784bc225e7ccaa53bcdb64c8ebf96f153d7
    Gitweb: http://git.kernel.org/tip/9d03e784bc225e7ccaa53bcdb64c8ebf96f153d7
    Author: Jiang Liu <jiang.liu@linux.intel.com>
    AuthorDate: Mon, 1 Jun 2015 16:05:31 +0800
    Committer: Thomas Gleixner <tglx@linutronix.de>
    CommitDate: Fri, 31 Jul 2015 22:20:04 +0200

    mn10300/irq: Use access helper irq_data_get_affinity_mask()

    Use access helper irq_data_get_affinity_mask() to hide implementation
    details of struct irq_desc.

    Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: linux-am33-list@redhat.com
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: David Howells <dhowells@redhat.com>
    Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
    Link: http://lkml.kernel.org/r/1433145945-789-23-git-send-email-jiang.liu@linux.intel.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    ---
    arch/mn10300/kernel/cevt-mn10300.c | 2 +-
    arch/mn10300/kernel/irq.c | 13 +++++++------
    2 files changed, 8 insertions(+), 7 deletions(-)

    diff --git a/arch/mn10300/kernel/cevt-mn10300.c b/arch/mn10300/kernel/cevt-mn10300.c
    index 60f64ca..326677d 100644
    --- a/arch/mn10300/kernel/cevt-mn10300.c
    +++ b/arch/mn10300/kernel/cevt-mn10300.c
    @@ -123,7 +123,7 @@ int __init init_clockevents(void)
    {
    struct irq_data *data;
    data = irq_get_irq_data(cd->irq);
    - cpumask_copy(data->affinity, cpumask_of(cpu));
    + cpumask_copy(irq_data_get_affinity_mask(data), cpumask_of(cpu));
    iact->flags |= IRQF_NOBALANCING;
    }
    #endif
    diff --git a/arch/mn10300/kernel/irq.c b/arch/mn10300/kernel/irq.c
    index 480de70..c716437 100644
    --- a/arch/mn10300/kernel/irq.c
    +++ b/arch/mn10300/kernel/irq.c
    @@ -87,7 +87,8 @@ static void mn10300_cpupic_mask_ack(struct irq_data *d)
    tmp2 = GxICR(irq);

    irq_affinity_online[irq] =
    - cpumask_any_and(d->affinity, cpu_online_mask);
    + cpumask_any_and(irq_data_get_affinity_mask(d),
    + cpu_online_mask);
    CROSS_GxICR(irq, irq_affinity_online[irq]) =
    (tmp & (GxICR_LEVEL | GxICR_ENABLE)) | GxICR_DETECT;
    tmp = CROSS_GxICR(irq, irq_affinity_online[irq]);
    @@ -124,7 +125,7 @@ static void mn10300_cpupic_unmask_clear(struct irq_data *d)
    } else {
    tmp = GxICR(irq);

    - irq_affinity_online[irq] = cpumask_any_and(d->affinity,
    + irq_affinity_online[irq] = cpumask_any_and(irq_data_get_affinity_mask(d),
    cpu_online_mask);
    CROSS_GxICR(irq, irq_affinity_online[irq]) = (tmp & GxICR_LEVEL) | GxICR_ENABLE | GxICR_DETECT;
    tmp = CROSS_GxICR(irq, irq_affinity_online[irq]);
    @@ -316,15 +317,16 @@ void migrate_irqs(void)
    self = smp_processor_id();
    for (irq = 0; irq < NR_IRQS; irq++) {
    struct irq_data *data = irq_get_irq_data(irq);
    + struct cpumask *mask = irq_data_get_affinity_mask(data);

    if (irqd_is_per_cpu(data))
    continue;

    - if (cpumask_test_cpu(self, data->affinity) &&
    + if (cpumask_test_cpu(self, mask) &&
    !cpumask_intersects(&irq_affinity[irq], cpu_online_mask)) {
    int cpu_id;
    cpu_id = cpumask_first(cpu_online_mask);
    - cpumask_set_cpu(cpu_id, data->affinity);
    + cpumask_set_cpu(cpu_id, mask);
    }
    /* We need to operate irq_affinity_online atomically. */
    arch_local_cli_save(flags);
    @@ -335,8 +337,7 @@ void migrate_irqs(void)
    GxICR(irq) = x & GxICR_LEVEL;
    tmp = GxICR(irq);

    - new = cpumask_any_and(data->affinity,
    - cpu_online_mask);
    + new = cpumask_any_and(mask, cpu_online_mask);
    irq_affinity_online[irq] = new;

    CROSS_GxICR(irq, new) =

    \
     
     \ /
      Last update: 2015-08-01 00:21    [W:8.675 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site