From: Sergey Temerkhanov <s.temerkhanov@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Sergey Temerkhanov <s.temerkhanov@gmail.com>
Subject: [PATCH 2/2] Xen: Rename irq_info structure
Date: Fri, 21 Aug 2020 10:15:47 +0300 [thread overview]
Message-ID: <20200821071547.18894-3-s.temerkhanov@gmail.com> (raw)
In-Reply-To: <20200821071547.18894-1-s.temerkhanov@gmail.com>
Rename irq_info structure to xen_irq_info to avoid namespace
conflicts
Signed-off-by: Sergey Temerkhanov <s.temerkhanov@gmail.com>
---
drivers/xen/events/events_2l.c | 2 +-
drivers/xen/events/events_base.c | 60 ++++++++++++++--------------
drivers/xen/events/events_fifo.c | 5 ++-
drivers/xen/events/events_internal.h | 12 +++---
include/linux/irq.h | 10 +++--
kernel/irq/chip.c | 2 +-
6 files changed, 47 insertions(+), 44 deletions(-)
diff --git a/drivers/xen/events/events_2l.c b/drivers/xen/events/events_2l.c
index 8edef51c92e5..d4580db315b0 100644
--- a/drivers/xen/events/events_2l.c
+++ b/drivers/xen/events/events_2l.c
@@ -47,7 +47,7 @@ static unsigned evtchn_2l_max_channels(void)
return EVTCHN_2L_NR_CHANNELS;
}
-static void evtchn_2l_bind_to_cpu(struct irq_info *info, unsigned cpu)
+static void evtchn_2l_bind_to_cpu(struct xen_irq_info *info, unsigned int cpu)
{
clear_bit(info->evtchn, BM(per_cpu(cpu_evtchn_mask, info->cpu)));
set_bit(info->evtchn, BM(per_cpu(cpu_evtchn_mask, cpu)));
diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index bcc3af399016..1e652ea8da87 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -152,7 +152,7 @@ int get_evtchn_to_irq(unsigned evtchn)
}
/* Constructors for packed IRQ information. */
-static int xen_irq_info_common_setup(struct irq_info *info,
+static int xen_irq_info_common_setup(struct xen_irq_info *info,
unsigned irq,
enum xen_irq_type type,
unsigned evtchn,
@@ -179,7 +179,7 @@ static int xen_irq_info_common_setup(struct irq_info *info,
static int xen_irq_info_evtchn_setup(unsigned irq,
unsigned evtchn)
{
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
return xen_irq_info_common_setup(info, irq, IRQT_EVTCHN, evtchn, 0);
}
@@ -189,7 +189,7 @@ static int xen_irq_info_ipi_setup(unsigned cpu,
unsigned evtchn,
enum ipi_vector ipi)
{
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
info->u.ipi = ipi;
@@ -203,7 +203,7 @@ static int xen_irq_info_virq_setup(unsigned cpu,
unsigned evtchn,
unsigned virq)
{
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
info->u.virq = virq;
@@ -219,7 +219,7 @@ static int xen_irq_info_pirq_setup(unsigned irq,
uint16_t domid,
unsigned char flags)
{
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
info->u.pirq.pirq = pirq;
info->u.pirq.gsi = gsi;
@@ -229,7 +229,7 @@ static int xen_irq_info_pirq_setup(unsigned irq,
return xen_irq_info_common_setup(info, irq, IRQT_PIRQ, evtchn, 0);
}
-static void xen_irq_info_cleanup(struct irq_info *info)
+static void xen_irq_info_cleanup(struct xen_irq_info *info)
{
set_evtchn_to_irq(info->evtchn, -1);
info->evtchn = 0;
@@ -259,7 +259,7 @@ int irq_from_virq(unsigned int cpu, unsigned int virq)
static enum ipi_vector ipi_from_irq(unsigned irq)
{
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
BUG_ON(info == NULL);
BUG_ON(info->type != IRQT_IPI);
@@ -269,7 +269,7 @@ static enum ipi_vector ipi_from_irq(unsigned irq)
static unsigned virq_from_irq(unsigned irq)
{
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
BUG_ON(info == NULL);
BUG_ON(info->type != IRQT_VIRQ);
@@ -279,7 +279,7 @@ static unsigned virq_from_irq(unsigned irq)
static unsigned pirq_from_irq(unsigned irq)
{
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
BUG_ON(info == NULL);
BUG_ON(info->type != IRQT_PIRQ);
@@ -317,7 +317,7 @@ static bool pirq_check_eoi_map(unsigned irq)
static bool pirq_needs_eoi_flag(unsigned irq)
{
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
BUG_ON(info->type != IRQT_PIRQ);
return info->u.pirq.flags & PIRQ_NEEDS_EOI;
@@ -326,7 +326,7 @@ static bool pirq_needs_eoi_flag(unsigned irq)
static void bind_evtchn_to_cpu(unsigned int chn, unsigned int cpu)
{
int irq = get_evtchn_to_irq(chn);
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
BUG_ON(irq == -1);
#ifdef CONFIG_SMP
@@ -356,7 +356,7 @@ EXPORT_SYMBOL_GPL(notify_remote_via_irq);
static void xen_irq_init(unsigned irq)
{
- struct irq_info *info;
+ struct xen_irq_info *info;
#ifdef CONFIG_SMP
/* By default all event channels notify CPU#0. */
cpumask_copy(irq_get_affinity_mask(irq), cpumask_of(0));
@@ -418,7 +418,7 @@ static int __must_check xen_allocate_irq_gsi(unsigned gsi)
static void xen_free_irq(unsigned irq)
{
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_data(irq);
if (WARN_ON(!info))
return;
@@ -450,7 +450,7 @@ static void xen_evtchn_close(unsigned int port)
static void pirq_query_unmask(int irq)
{
struct physdev_irq_status_query irq_status;
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
BUG_ON(info->type != IRQT_PIRQ);
@@ -500,7 +500,7 @@ static void mask_ack_pirq(struct irq_data *data)
static unsigned int __startup_pirq(unsigned int irq)
{
struct evtchn_bind_pirq bind_pirq;
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
int evtchn = evtchn_from_irq(irq);
int rc;
@@ -553,7 +553,7 @@ static unsigned int startup_pirq(struct irq_data *data)
static void shutdown_pirq(struct irq_data *data)
{
unsigned int irq = data->irq;
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
unsigned evtchn = evtchn_from_irq(irq);
BUG_ON(info->type != IRQT_PIRQ);
@@ -578,7 +578,7 @@ static void disable_pirq(struct irq_data *data)
int xen_irq_from_gsi(unsigned gsi)
{
- struct irq_info *info;
+ struct xen_irq_info *info;
list_for_each_entry(info, &xen_irq_list_head, list) {
if (info->type != IRQT_PIRQ)
@@ -595,7 +595,7 @@ EXPORT_SYMBOL_GPL(xen_irq_from_gsi);
static void __unbind_from_irq(unsigned int irq)
{
int evtchn = evtchn_from_irq(irq);
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = irq_get_handler_data(irq);
if (info->refcnt > 0) {
info->refcnt--;
@@ -757,7 +757,7 @@ int xen_bind_pirq_msi_to_irq(struct pci_dev *dev, struct msi_desc *msidesc,
int xen_destroy_irq(int irq)
{
struct physdev_unmap_pirq unmap_irq;
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
int rc = -ENOENT;
mutex_lock(&irq_mapping_update_lock);
@@ -795,7 +795,7 @@ int xen_irq_from_pirq(unsigned pirq)
{
int irq;
- struct irq_info *info;
+ struct xen_irq_info *info;
mutex_lock(&irq_mapping_update_lock);
@@ -849,7 +849,7 @@ int bind_evtchn_to_irq(unsigned int evtchn)
/* New interdomain events are bound to VCPU 0. */
bind_evtchn_to_cpu(evtchn, 0);
} else {
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
WARN_ON(info == NULL || info->type != IRQT_EVTCHN);
}
@@ -892,7 +892,7 @@ static int bind_ipi_to_irq(unsigned int ipi, unsigned int cpu)
}
bind_evtchn_to_cpu(evtchn, cpu);
} else {
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
WARN_ON(info == NULL || info->type != IRQT_IPI);
}
@@ -995,7 +995,7 @@ int bind_virq_to_irq(unsigned int virq, unsigned int cpu, bool percpu)
bind_evtchn_to_cpu(evtchn, cpu);
} else {
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
WARN_ON(info == NULL || info->type != IRQT_VIRQ);
}
@@ -1099,7 +1099,7 @@ int bind_ipi_to_irqhandler(enum ipi_vector ipi,
void unbind_from_irqhandler(unsigned int irq, void *dev_id)
{
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
if (WARN_ON(!info))
return;
@@ -1128,7 +1128,7 @@ EXPORT_SYMBOL_GPL(xen_set_irq_priority);
int evtchn_make_refcounted(unsigned int evtchn)
{
int irq = get_evtchn_to_irq(evtchn);
- struct irq_info *info;
+ struct xen_irq_info *info;
if (irq == -1)
return -ENOENT;
@@ -1149,7 +1149,7 @@ EXPORT_SYMBOL_GPL(evtchn_make_refcounted);
int evtchn_get(unsigned int evtchn)
{
int irq;
- struct irq_info *info;
+ struct xen_irq_info *info;
int err = -ENOENT;
if (evtchn >= xen_evtchn_max_channels())
@@ -1257,7 +1257,7 @@ EXPORT_SYMBOL_GPL(xen_hvm_evtchn_do_upcall);
/* Rebind a new event channel to an existing irq. */
void rebind_evtchn_irq(int evtchn, int irq)
{
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
if (WARN_ON(!info))
return;
@@ -1406,7 +1406,7 @@ static void restore_pirqs(void)
{
int pirq, rc, irq, gsi;
struct physdev_map_pirq map_irq;
- struct irq_info *info;
+ struct xen_irq_info *info;
list_for_each_entry(info, &xen_irq_list_head, list) {
if (info->type != IRQT_PIRQ)
@@ -1545,7 +1545,7 @@ void xen_poll_irq(int irq)
/* Check whether the IRQ line is shared with other guests. */
int xen_test_irq_shared(int irq)
{
- struct irq_info *info = xen_get_irq_info(irq);
+ struct xen_irq_info *info = xen_get_irq_info(irq);
struct physdev_irq_status_query irq_status;
if (WARN_ON(!info))
@@ -1562,7 +1562,7 @@ EXPORT_SYMBOL_GPL(xen_test_irq_shared);
void xen_irq_resume(void)
{
unsigned int cpu;
- struct irq_info *info;
+ struct xen_irq_info *info;
/* New event-channel space is not 'live' yet. */
xen_evtchn_resume();
diff --git a/drivers/xen/events/events_fifo.c b/drivers/xen/events/events_fifo.c
index 76b318e88382..7de34caa127a 100644
--- a/drivers/xen/events/events_fifo.c
+++ b/drivers/xen/events/events_fifo.c
@@ -138,7 +138,7 @@ static void init_array_page(event_word_t *array_page)
array_page[i] = 1 << EVTCHN_FIFO_MASKED;
}
-static int evtchn_fifo_setup(struct irq_info *info)
+static int evtchn_fifo_setup(struct xen_irq_info *info)
{
unsigned port = info->evtchn;
unsigned new_array_pages;
@@ -186,7 +186,8 @@ static int evtchn_fifo_setup(struct irq_info *info)
return ret;
}
-static void evtchn_fifo_bind_to_cpu(struct irq_info *info, unsigned cpu)
+static void evtchn_fifo_bind_to_cpu(struct xen_irq_info *info,
+ unsigned int cpu)
{
/* no-op */
}
diff --git a/drivers/xen/events/events_internal.h b/drivers/xen/events/events_internal.h
index 50c2050a1e32..26d97a754318 100644
--- a/drivers/xen/events/events_internal.h
+++ b/drivers/xen/events/events_internal.h
@@ -30,7 +30,7 @@ enum xen_irq_type {
* IPI - IPI vector
* EVTCHN -
*/
-struct irq_info {
+struct xen_irq_info {
struct list_head list;
int refcnt;
enum xen_irq_type type; /* type */
@@ -59,8 +59,8 @@ struct evtchn_ops {
unsigned (*max_channels)(void);
unsigned (*nr_channels)(void);
- int (*setup)(struct irq_info *info);
- void (*bind_to_cpu)(struct irq_info *info, unsigned cpu);
+ int (*setup)(struct xen_irq_info *info);
+ void (*bind_to_cpu)(struct xen_irq_info *info, unsigned int cpu);
void (*clear_pending)(unsigned port);
void (*set_pending)(unsigned port);
@@ -78,7 +78,7 @@ extern const struct evtchn_ops *evtchn_ops;
extern int **evtchn_to_irq;
int get_evtchn_to_irq(unsigned int evtchn);
-struct irq_info *info_for_irq(unsigned irq);
+struct xen_irq_info *xen_get_irq_info(unsigned int irq);
unsigned cpu_from_irq(unsigned irq);
unsigned cpu_from_evtchn(unsigned int evtchn);
@@ -91,14 +91,14 @@ static inline unsigned xen_evtchn_max_channels(void)
* Do any ABI specific setup for a bound event channel before it can
* be unmasked and used.
*/
-static inline int xen_evtchn_port_setup(struct irq_info *info)
+static inline int xen_evtchn_port_setup(struct xen_irq_info *info)
{
if (evtchn_ops->setup)
return evtchn_ops->setup(info);
return 0;
}
-static inline void xen_evtchn_port_bind_to_cpu(struct irq_info *info,
+static inline void xen_evtchn_port_bind_to_cpu(struct xen_irq_info *info,
unsigned cpu)
{
evtchn_ops->bind_to_cpu(info, cpu);
diff --git a/include/linux/irq.h b/include/linux/irq.h
index e094d31916e2..0490d0c81820 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -123,7 +123,9 @@ enum {
struct msi_desc;
struct irq_domain;
-struct irq_info;
+#ifdef CONFIG_XEN
+ struct xen_irq_info;
+#endif
/**
* struct irq_common_data - per irq data shared by all irqchips
@@ -155,7 +157,7 @@ struct irq_common_data {
unsigned int ipi_offset;
#endif
#ifdef CONFIG_XEN
- struct irq_info *xen_irq_info;
+ struct xen_irq_info *xen_irq_info;
#endif
};
@@ -854,14 +856,14 @@ struct cpumask *irq_data_get_effective_affinity_mask(struct irq_data *d)
#endif
#ifdef CONFIG_XEN
-static inline struct irq_info *xen_get_irq_info(unsigned int irq)
+static inline struct xen_irq_info *xen_get_irq_info(unsigned int irq)
{
struct irq_data *d = irq_get_irq_data(irq);
return d ? d->common->xen_irq_info : NULL;
}
-extern int xen_set_irq_info(unsigned int irq, struct irq_info *data);
+extern int xen_set_irq_data(unsigned int irq, struct xen_irq_info *data);
#endif
unsigned int arch_dynirq_lower_bound(unsigned int from);
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 58d1cf60a4f8..427be895ec6e 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -164,7 +164,7 @@ struct irq_data *irq_get_irq_data(unsigned int irq)
EXPORT_SYMBOL_GPL(irq_get_irq_data);
#ifdef CONFIG_XEN
-int xen_set_irq_info(unsigned int irq, struct irq_info *data)
+int xen_set_irq_data(unsigned int irq, struct xen_irq_info *data)
{
unsigned long flags;
struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0);
--
2.26.2
next prev parent reply other threads:[~2020-08-21 7:33 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-18 22:09 Xen 4.14.0 is busted on Dell 300x IoT Gateways Roman Shaposhnik
2020-08-18 22:20 ` Andrew Cooper
2020-08-18 22:34 ` Roman Shaposhnik
2020-08-21 1:39 ` Stefano Stabellini
2020-08-21 7:15 ` [PATCH 0/2] Xen: Use a dedicated pointer for IRQ data Sergey Temerkhanov
2020-08-21 7:15 ` [PATCH 1/2] Xen: Use a dedicated irq_info structure pointer Sergey Temerkhanov
2020-08-21 7:15 ` Sergey Temerkhanov [this message]
2020-08-21 10:18 ` [PATCH 0/2] Xen: Use a dedicated pointer for IRQ data Jürgen Groß
2020-08-21 11:19 ` Sergei Temerkhanov
2020-08-21 12:17 ` Jürgen Groß
2020-08-21 20:07 ` Thomas Gleixner
2020-08-21 20:38 ` Sergei Temerkhanov
2020-08-22 0:16 ` Thomas Gleixner
2020-08-25 3:14 ` Stefano Stabellini
2020-08-25 8:58 ` Thomas Gleixner
2020-08-25 13:49 ` Jürgen Groß
2020-08-25 15:22 ` [PATCH] xen/events: Use chip data for storing per IRQ XEN data pointer, Thomas Gleixner
2020-08-25 15:43 ` [PATCH] xen/events: Use chip data for storing per IRQ XEN data pointer Jürgen Groß
2020-08-25 22:04 ` Roman Shaposhnik
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=20200821071547.18894-3-s.temerkhanov@gmail.com \
--to=s.temerkhanov@gmail.com \
--cc=xen-devel@lists.xenproject.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).