From: "Yun Wu (Abel)" <wuyun.wu@huawei.com>
To: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Bjorn Helgaas <bhelgaas@google.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Randy Dunlap <rdunlap@infradead.org>,
Yinghai Lu <yinghai@kernel.org>, Borislav Petkov <bp@alien8.de>,
Jason Cooper <jason@lakedaemon.net>,
Grant Likely <grant.likely@linaro.org>,
Kevin Cernekee <cernekee@gmail.com>,
Marc Zyngier <marc.zyngier@arm.com>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
Tony Luck <tony.luck@intel.com>,
x86@kernel.org, linux-kernel@vger.kernel.org,
linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org
Subject: Re: [RFC v1 01/11] genirq: Introduce struct irq_common_data to host shared irq data
Date: Fri, 8 May 2015 10:23:59 +0800 [thread overview]
Message-ID: <554C1E3F.7050306@huawei.com> (raw)
In-Reply-To: <1430709339-29083-2-git-send-email-jiang.liu@linux.intel.com>
On 2015/5/4 11:15, Jiang Liu wrote:
[...]
> diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h
> index dd1109fb241e..3010e99abf3e 100644
> --- a/include/linux/irqdesc.h
> +++ b/include/linux/irqdesc.h
> @@ -47,6 +47,7 @@ struct pt_regs;
> * @name: flow handler name for /proc/interrupts output
> */
> struct irq_desc {
> + struct irq_common_data irq_common_data;
Hi Gerry,
Please update description as well. :)
Thanks,
Abel
> struct irq_data irq_data;
> unsigned int __percpu *kstat_irqs;
> irq_flow_handler_t handle_irq;
> diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
> index df553b0af936..ed84299788b3 100644
> --- a/kernel/irq/internals.h
> +++ b/kernel/irq/internals.h
> @@ -170,27 +170,27 @@ irq_put_desc_unlock(struct irq_desc *desc, unsigned long flags)
> */
> static inline void irqd_set_move_pending(struct irq_data *d)
> {
> - d->state_use_accessors |= IRQD_SETAFFINITY_PENDING;
> + __irqd_to_state(d) |= IRQD_SETAFFINITY_PENDING;
> }
>
> static inline void irqd_clr_move_pending(struct irq_data *d)
> {
> - d->state_use_accessors &= ~IRQD_SETAFFINITY_PENDING;
> + __irqd_to_state(d) &= ~IRQD_SETAFFINITY_PENDING;
> }
>
> static inline void irqd_clear(struct irq_data *d, unsigned int mask)
> {
> - d->state_use_accessors &= ~mask;
> + __irqd_to_state(d) &= ~mask;
> }
>
> static inline void irqd_set(struct irq_data *d, unsigned int mask)
> {
> - d->state_use_accessors |= mask;
> + __irqd_to_state(d) |= mask;
> }
>
> static inline bool irqd_has_set(struct irq_data *d, unsigned int mask)
> {
> - return d->state_use_accessors & mask;
> + return __irqd_to_state(d) & mask;
> }
>
> static inline void kstat_incr_irqs_this_cpu(unsigned int irq, struct irq_desc *desc)
> diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
> index 99793b9b6d23..eac1aac906ea 100644
> --- a/kernel/irq/irqdesc.c
> +++ b/kernel/irq/irqdesc.c
> @@ -76,6 +76,7 @@ static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node,
> {
> int cpu;
>
> + desc->irq_data.common = &desc->irq_common_data;
> desc->irq_data.irq = irq;
> desc->irq_data.chip = &no_irq_chip;
> desc->irq_data.chip_data = NULL;
> diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
> index 7fac311057b8..3552b8750efd 100644
> --- a/kernel/irq/irqdomain.c
> +++ b/kernel/irq/irqdomain.c
> @@ -834,6 +834,7 @@ static struct irq_data *irq_domain_insert_irq_data(struct irq_domain *domain,
> if (irq_data) {
> child->parent_data = irq_data;
> irq_data->irq = child->irq;
> + irq_data->common = child->common;
> irq_data->node = child->node;
> irq_data->domain = domain;
> }
WARNING: multiple messages have this Message-ID (diff)
From: "Yun Wu (Abel)" <wuyun.wu@huawei.com>
To: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Bjorn Helgaas <bhelgaas@google.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Randy Dunlap <rdunlap@infradead.org>,
Yinghai Lu <yinghai@kernel.org>, Borislav Petkov <bp@alien8.de>,
Jason Cooper <jason@lakedaemon.net>,
Grant Likely <grant.likely@linaro.org>,
"Kevin Cernekee" <cernekee@gmail.com>,
Marc Zyngier <marc.zyngier@arm.com>,
"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
Tony Luck <tony.luck@intel.com>, <x86@kernel.org>,
<linux-kernel@vger.kernel.org>, <linux-pci@vger.kernel.org>,
<linux-acpi@vger.kernel.org>
Subject: Re: [RFC v1 01/11] genirq: Introduce struct irq_common_data to host shared irq data
Date: Fri, 8 May 2015 10:23:59 +0800 [thread overview]
Message-ID: <554C1E3F.7050306@huawei.com> (raw)
In-Reply-To: <1430709339-29083-2-git-send-email-jiang.liu@linux.intel.com>
On 2015/5/4 11:15, Jiang Liu wrote:
[...]
> diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h
> index dd1109fb241e..3010e99abf3e 100644
> --- a/include/linux/irqdesc.h
> +++ b/include/linux/irqdesc.h
> @@ -47,6 +47,7 @@ struct pt_regs;
> * @name: flow handler name for /proc/interrupts output
> */
> struct irq_desc {
> + struct irq_common_data irq_common_data;
Hi Gerry,
Please update description as well. :)
Thanks,
Abel
> struct irq_data irq_data;
> unsigned int __percpu *kstat_irqs;
> irq_flow_handler_t handle_irq;
> diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
> index df553b0af936..ed84299788b3 100644
> --- a/kernel/irq/internals.h
> +++ b/kernel/irq/internals.h
> @@ -170,27 +170,27 @@ irq_put_desc_unlock(struct irq_desc *desc, unsigned long flags)
> */
> static inline void irqd_set_move_pending(struct irq_data *d)
> {
> - d->state_use_accessors |= IRQD_SETAFFINITY_PENDING;
> + __irqd_to_state(d) |= IRQD_SETAFFINITY_PENDING;
> }
>
> static inline void irqd_clr_move_pending(struct irq_data *d)
> {
> - d->state_use_accessors &= ~IRQD_SETAFFINITY_PENDING;
> + __irqd_to_state(d) &= ~IRQD_SETAFFINITY_PENDING;
> }
>
> static inline void irqd_clear(struct irq_data *d, unsigned int mask)
> {
> - d->state_use_accessors &= ~mask;
> + __irqd_to_state(d) &= ~mask;
> }
>
> static inline void irqd_set(struct irq_data *d, unsigned int mask)
> {
> - d->state_use_accessors |= mask;
> + __irqd_to_state(d) |= mask;
> }
>
> static inline bool irqd_has_set(struct irq_data *d, unsigned int mask)
> {
> - return d->state_use_accessors & mask;
> + return __irqd_to_state(d) & mask;
> }
>
> static inline void kstat_incr_irqs_this_cpu(unsigned int irq, struct irq_desc *desc)
> diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
> index 99793b9b6d23..eac1aac906ea 100644
> --- a/kernel/irq/irqdesc.c
> +++ b/kernel/irq/irqdesc.c
> @@ -76,6 +76,7 @@ static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node,
> {
> int cpu;
>
> + desc->irq_data.common = &desc->irq_common_data;
> desc->irq_data.irq = irq;
> desc->irq_data.chip = &no_irq_chip;
> desc->irq_data.chip_data = NULL;
> diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
> index 7fac311057b8..3552b8750efd 100644
> --- a/kernel/irq/irqdomain.c
> +++ b/kernel/irq/irqdomain.c
> @@ -834,6 +834,7 @@ static struct irq_data *irq_domain_insert_irq_data(struct irq_domain *domain,
> if (irq_data) {
> child->parent_data = irq_data;
> irq_data->irq = child->irq;
> + irq_data->common = child->common;
> irq_data->node = child->node;
> irq_data->domain = domain;
> }
next prev parent reply other threads:[~2015-05-08 2:23 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-04 3:15 [RFC v1 00/11] Split struct irq_data into common part and per-chip part Jiang Liu
2015-05-04 3:15 ` [RFC v1 01/11] genirq: Introduce struct irq_common_data to host shared irq data Jiang Liu
2015-05-08 2:23 ` Yun Wu (Abel) [this message]
2015-05-08 2:23 ` Yun Wu (Abel)
2015-05-18 2:58 ` Jiang Liu
2015-05-04 3:15 ` [RFC v1 02/11] genirq: Move field 'node' from struct irq_data into struct irq_common_data Jiang Liu
2015-05-04 3:15 ` Jiang Liu
2015-05-08 2:29 ` Yun Wu (Abel)
2015-05-08 2:29 ` Yun Wu (Abel)
2015-05-08 2:29 ` Yun Wu (Abel)
2015-05-08 3:04 ` Yun Wu (Abel)
2015-05-08 3:04 ` Yun Wu (Abel)
2015-05-08 3:04 ` Yun Wu (Abel)
2015-05-15 20:42 ` Thomas Gleixner
2015-05-15 20:42 ` Thomas Gleixner
2015-05-04 3:15 ` [RFC v1 03/11] genirq: Use CONFIG_NUMA instead of CONFIG_SMP to guard irq_common_data.node Jiang Liu
2015-05-15 20:44 ` Thomas Gleixner
2015-05-18 5:17 ` Jiang Liu
2015-05-04 3:15 ` [RFC v1 04/11] genirq: Move field 'handler_data' from struct irq_data into struct irq_common_data Jiang Liu
2015-05-04 3:15 ` Jiang Liu
2015-05-04 3:15 ` [RFC v1 05/11] mn10300: Fix incorrect use of data->affinity Jiang Liu
2015-05-04 3:15 ` [RFC v1 06/11] genirq: Introduce helper function irq_data_get_affinity_mask() Jiang Liu
2015-05-04 3:15 ` Jiang Liu
2015-05-04 3:15 ` Jiang Liu
2015-05-04 3:15 ` Jiang Liu
2015-05-04 3:15 ` Jiang Liu
2015-05-04 3:15 ` [RFC v1 07/11] net/mlx4: Cache irq_desc->affinity instead of irq_desc Jiang Liu
2015-05-04 12:10 ` Amir Vadai
2015-05-04 12:10 ` Amir Vadai
2015-05-04 14:00 ` Jiang Liu
2015-05-04 14:00 ` Jiang Liu
2015-05-04 14:00 ` Jiang Liu
2015-05-05 9:07 ` Amir Vadai
2015-05-05 9:07 ` Amir Vadai
2015-05-04 15:10 ` Thomas Gleixner
2015-05-04 15:10 ` Thomas Gleixner
2015-05-05 9:17 ` Amir Vadai
2015-05-05 9:17 ` Amir Vadai
2015-05-05 14:53 ` Thomas Gleixner
2015-05-05 14:53 ` Thomas Gleixner
2015-05-07 10:41 ` Amir Vadai
2015-05-07 10:41 ` Amir Vadai
2015-05-07 10:41 ` Amir Vadai
2015-05-04 3:15 ` [RFC v1 08/11] genirq: Move field 'affinity' from struct irq_data into struct irq_common_data Jiang Liu
2015-05-04 3:15 ` [RFC v1 09/11] genirq: Use helper function to access irq_data->msi_desc Jiang Liu
2015-05-04 3:15 ` Jiang Liu
2015-05-04 3:15 ` Jiang Liu
2015-05-04 3:15 ` [RFC v1 10/11] genirq: Move field 'msi_desc' from struct irq_data into struct irq_common_data Jiang Liu
2015-05-04 3:15 ` [RFC v1 11/11] genirq: Pass irq_data to helper function __irq_set_chip_handler_name_locked() Jiang Liu
2015-05-04 3:15 ` Jiang Liu
2015-05-04 3:15 ` Jiang Liu
2015-05-15 20:48 ` Thomas Gleixner
2015-05-15 20:48 ` Thomas Gleixner
2015-05-15 20:48 ` Thomas Gleixner
2015-05-15 20:48 ` Thomas Gleixner
2015-05-15 20:57 ` [RFC v1 00/11] Split struct irq_data into common part and per-chip part Thomas Gleixner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=554C1E3F.7050306@huawei.com \
--to=wuyun.wu@huawei.com \
--cc=benh@kernel.crashing.org \
--cc=bhelgaas@google.com \
--cc=bp@alien8.de \
--cc=cernekee@gmail.com \
--cc=grant.likely@linaro.org \
--cc=hpa@zytor.com \
--cc=jason@lakedaemon.net \
--cc=jiang.liu@linux.intel.com \
--cc=konrad.wilk@oracle.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=mingo@redhat.com \
--cc=rdunlap@infradead.org \
--cc=rjw@rjwysocki.net \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.