genirq/irqdomain: Rename early argument of irq_domain_activate_irq()
The 'early' argument of irq_domain_activate_irq() is actually used to
denote reservation mode. To avoid confusion, rename it before abuse
happens.
No functional change.
Fixes: 7249164346
("genirq/irqdomain: Update irq_domain_ops.activate() signature")
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Alexandru Chirvasitu <achirvasub@gmail.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Dou Liyang <douly.fnst@cn.fujitsu.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Maciej W. Rozycki <macro@linux-mips.org>
Cc: Mikael Pettersson <mikpelinux@gmail.com>
Cc: Josh Poulson <jopoulso@microsoft.com>
Cc: Mihai Costache <v-micos@microsoft.com>
Cc: Stephen Hemminger <sthemmin@microsoft.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: linux-pci@vger.kernel.org
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Cc: Dexuan Cui <decui@microsoft.com>
Cc: Simon Xiao <sixiao@microsoft.com>
Cc: Saeed Mahameed <saeedm@mellanox.com>
Cc: Jork Loeser <Jork.Loeser@microsoft.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: devel@linuxdriverproject.org
Cc: KY Srinivasan <kys@microsoft.com>
Cc: Alan Cox <alan@linux.intel.com>
Cc: Sakari Ailus <sakari.ailus@intel.com>,
Cc: linux-media@vger.kernel.org
This commit is contained in:
parent
945f50a591
commit
702cb0a028
|
@ -44,7 +44,7 @@ extern int mp_irqdomain_alloc(struct irq_domain *domain, unsigned int virq,
|
||||||
extern void mp_irqdomain_free(struct irq_domain *domain, unsigned int virq,
|
extern void mp_irqdomain_free(struct irq_domain *domain, unsigned int virq,
|
||||||
unsigned int nr_irqs);
|
unsigned int nr_irqs);
|
||||||
extern int mp_irqdomain_activate(struct irq_domain *domain,
|
extern int mp_irqdomain_activate(struct irq_domain *domain,
|
||||||
struct irq_data *irq_data, bool early);
|
struct irq_data *irq_data, bool reserve);
|
||||||
extern void mp_irqdomain_deactivate(struct irq_domain *domain,
|
extern void mp_irqdomain_deactivate(struct irq_domain *domain,
|
||||||
struct irq_data *irq_data);
|
struct irq_data *irq_data);
|
||||||
extern int mp_irqdomain_ioapic_idx(struct irq_domain *domain);
|
extern int mp_irqdomain_ioapic_idx(struct irq_domain *domain);
|
||||||
|
|
|
@ -283,34 +283,34 @@ TRACE_EVENT(vector_alloc_managed,
|
||||||
DECLARE_EVENT_CLASS(vector_activate,
|
DECLARE_EVENT_CLASS(vector_activate,
|
||||||
|
|
||||||
TP_PROTO(unsigned int irq, bool is_managed, bool can_reserve,
|
TP_PROTO(unsigned int irq, bool is_managed, bool can_reserve,
|
||||||
bool early),
|
bool reserve),
|
||||||
|
|
||||||
TP_ARGS(irq, is_managed, can_reserve, early),
|
TP_ARGS(irq, is_managed, can_reserve, reserve),
|
||||||
|
|
||||||
TP_STRUCT__entry(
|
TP_STRUCT__entry(
|
||||||
__field( unsigned int, irq )
|
__field( unsigned int, irq )
|
||||||
__field( bool, is_managed )
|
__field( bool, is_managed )
|
||||||
__field( bool, can_reserve )
|
__field( bool, can_reserve )
|
||||||
__field( bool, early )
|
__field( bool, reserve )
|
||||||
),
|
),
|
||||||
|
|
||||||
TP_fast_assign(
|
TP_fast_assign(
|
||||||
__entry->irq = irq;
|
__entry->irq = irq;
|
||||||
__entry->is_managed = is_managed;
|
__entry->is_managed = is_managed;
|
||||||
__entry->can_reserve = can_reserve;
|
__entry->can_reserve = can_reserve;
|
||||||
__entry->early = early;
|
__entry->reserve = reserve;
|
||||||
),
|
),
|
||||||
|
|
||||||
TP_printk("irq=%u is_managed=%d can_reserve=%d early=%d",
|
TP_printk("irq=%u is_managed=%d can_reserve=%d reserve=%d",
|
||||||
__entry->irq, __entry->is_managed, __entry->can_reserve,
|
__entry->irq, __entry->is_managed, __entry->can_reserve,
|
||||||
__entry->early)
|
__entry->reserve)
|
||||||
);
|
);
|
||||||
|
|
||||||
#define DEFINE_IRQ_VECTOR_ACTIVATE_EVENT(name) \
|
#define DEFINE_IRQ_VECTOR_ACTIVATE_EVENT(name) \
|
||||||
DEFINE_EVENT_FN(vector_activate, name, \
|
DEFINE_EVENT_FN(vector_activate, name, \
|
||||||
TP_PROTO(unsigned int irq, bool is_managed, \
|
TP_PROTO(unsigned int irq, bool is_managed, \
|
||||||
bool can_reserve, bool early), \
|
bool can_reserve, bool reserve), \
|
||||||
TP_ARGS(irq, is_managed, can_reserve, early), NULL, NULL); \
|
TP_ARGS(irq, is_managed, can_reserve, reserve), NULL, NULL); \
|
||||||
|
|
||||||
DEFINE_IRQ_VECTOR_ACTIVATE_EVENT(vector_activate);
|
DEFINE_IRQ_VECTOR_ACTIVATE_EVENT(vector_activate);
|
||||||
DEFINE_IRQ_VECTOR_ACTIVATE_EVENT(vector_deactivate);
|
DEFINE_IRQ_VECTOR_ACTIVATE_EVENT(vector_deactivate);
|
||||||
|
|
|
@ -2988,7 +2988,7 @@ void mp_irqdomain_free(struct irq_domain *domain, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
int mp_irqdomain_activate(struct irq_domain *domain,
|
int mp_irqdomain_activate(struct irq_domain *domain,
|
||||||
struct irq_data *irq_data, bool early)
|
struct irq_data *irq_data, bool reserve)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
|
|
@ -399,21 +399,21 @@ static int activate_managed(struct irq_data *irqd)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int x86_vector_activate(struct irq_domain *dom, struct irq_data *irqd,
|
static int x86_vector_activate(struct irq_domain *dom, struct irq_data *irqd,
|
||||||
bool early)
|
bool reserve)
|
||||||
{
|
{
|
||||||
struct apic_chip_data *apicd = apic_chip_data(irqd);
|
struct apic_chip_data *apicd = apic_chip_data(irqd);
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
trace_vector_activate(irqd->irq, apicd->is_managed,
|
trace_vector_activate(irqd->irq, apicd->is_managed,
|
||||||
apicd->can_reserve, early);
|
apicd->can_reserve, reserve);
|
||||||
|
|
||||||
/* Nothing to do for fixed assigned vectors */
|
/* Nothing to do for fixed assigned vectors */
|
||||||
if (!apicd->can_reserve && !apicd->is_managed)
|
if (!apicd->can_reserve && !apicd->is_managed)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
raw_spin_lock_irqsave(&vector_lock, flags);
|
raw_spin_lock_irqsave(&vector_lock, flags);
|
||||||
if (early || irqd_is_managed_and_shutdown(irqd))
|
if (reserve || irqd_is_managed_and_shutdown(irqd))
|
||||||
vector_assign_managed_shutdown(irqd);
|
vector_assign_managed_shutdown(irqd);
|
||||||
else if (apicd->is_managed)
|
else if (apicd->is_managed)
|
||||||
ret = activate_managed(irqd);
|
ret = activate_managed(irqd);
|
||||||
|
|
|
@ -128,7 +128,7 @@ static void uv_domain_free(struct irq_domain *domain, unsigned int virq,
|
||||||
* on the specified blade to allow the sending of MSIs to the specified CPU.
|
* on the specified blade to allow the sending of MSIs to the specified CPU.
|
||||||
*/
|
*/
|
||||||
static int uv_domain_activate(struct irq_domain *domain,
|
static int uv_domain_activate(struct irq_domain *domain,
|
||||||
struct irq_data *irq_data, bool early)
|
struct irq_data *irq_data, bool reserve)
|
||||||
{
|
{
|
||||||
uv_program_mmr(irqd_cfg(irq_data), irq_data->chip_data);
|
uv_program_mmr(irqd_cfg(irq_data), irq_data->chip_data);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -139,7 +139,7 @@ static int xgene_gpio_sb_to_irq(struct gpio_chip *gc, u32 gpio)
|
||||||
|
|
||||||
static int xgene_gpio_sb_domain_activate(struct irq_domain *d,
|
static int xgene_gpio_sb_domain_activate(struct irq_domain *d,
|
||||||
struct irq_data *irq_data,
|
struct irq_data *irq_data,
|
||||||
bool early)
|
bool reserve)
|
||||||
{
|
{
|
||||||
struct xgene_gpio_sb *priv = d->host_data;
|
struct xgene_gpio_sb *priv = d->host_data;
|
||||||
u32 gpio = HWIRQ_TO_GPIO(priv, irq_data->hwirq);
|
u32 gpio = HWIRQ_TO_GPIO(priv, irq_data->hwirq);
|
||||||
|
|
|
@ -4184,7 +4184,7 @@ static void amd_ir_update_irte(struct irq_data *irqd, struct amd_iommu *iommu,
|
||||||
struct irq_cfg *cfg);
|
struct irq_cfg *cfg);
|
||||||
|
|
||||||
static int irq_remapping_activate(struct irq_domain *domain,
|
static int irq_remapping_activate(struct irq_domain *domain,
|
||||||
struct irq_data *irq_data, bool early)
|
struct irq_data *irq_data, bool reserve)
|
||||||
{
|
{
|
||||||
struct amd_ir_data *data = irq_data->chip_data;
|
struct amd_ir_data *data = irq_data->chip_data;
|
||||||
struct irq_2_irte *irte_info = &data->irq_2_irte;
|
struct irq_2_irte *irte_info = &data->irq_2_irte;
|
||||||
|
|
|
@ -1397,7 +1397,7 @@ static void intel_irq_remapping_free(struct irq_domain *domain,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int intel_irq_remapping_activate(struct irq_domain *domain,
|
static int intel_irq_remapping_activate(struct irq_domain *domain,
|
||||||
struct irq_data *irq_data, bool early)
|
struct irq_data *irq_data, bool reserve)
|
||||||
{
|
{
|
||||||
intel_ir_reconfigure_irte(irq_data, true);
|
intel_ir_reconfigure_irte(irq_data, true);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -2303,7 +2303,7 @@ static int its_irq_domain_alloc(struct irq_domain *domain, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int its_irq_domain_activate(struct irq_domain *domain,
|
static int its_irq_domain_activate(struct irq_domain *domain,
|
||||||
struct irq_data *d, bool early)
|
struct irq_data *d, bool reserve)
|
||||||
{
|
{
|
||||||
struct its_device *its_dev = irq_data_get_irq_chip_data(d);
|
struct its_device *its_dev = irq_data_get_irq_chip_data(d);
|
||||||
u32 event = its_get_event_id(d);
|
u32 event = its_get_event_id(d);
|
||||||
|
@ -2818,7 +2818,7 @@ static int its_vpe_irq_domain_alloc(struct irq_domain *domain, unsigned int virq
|
||||||
}
|
}
|
||||||
|
|
||||||
static int its_vpe_irq_domain_activate(struct irq_domain *domain,
|
static int its_vpe_irq_domain_activate(struct irq_domain *domain,
|
||||||
struct irq_data *d, bool early)
|
struct irq_data *d, bool reserve)
|
||||||
{
|
{
|
||||||
struct its_vpe *vpe = irq_data_get_irq_chip_data(d);
|
struct its_vpe *vpe = irq_data_get_irq_chip_data(d);
|
||||||
struct its_node *its;
|
struct its_node *its;
|
||||||
|
|
|
@ -290,7 +290,7 @@ static int stm32_gpio_domain_translate(struct irq_domain *d,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int stm32_gpio_domain_activate(struct irq_domain *d,
|
static int stm32_gpio_domain_activate(struct irq_domain *d,
|
||||||
struct irq_data *irq_data, bool early)
|
struct irq_data *irq_data, bool reserve)
|
||||||
{
|
{
|
||||||
struct stm32_gpio_bank *bank = d->host_data;
|
struct stm32_gpio_bank *bank = d->host_data;
|
||||||
struct stm32_pinctrl *pctl = dev_get_drvdata(bank->gpio_chip.parent);
|
struct stm32_pinctrl *pctl = dev_get_drvdata(bank->gpio_chip.parent);
|
||||||
|
|
|
@ -113,7 +113,7 @@ struct irq_domain_ops {
|
||||||
unsigned int nr_irqs, void *arg);
|
unsigned int nr_irqs, void *arg);
|
||||||
void (*free)(struct irq_domain *d, unsigned int virq,
|
void (*free)(struct irq_domain *d, unsigned int virq,
|
||||||
unsigned int nr_irqs);
|
unsigned int nr_irqs);
|
||||||
int (*activate)(struct irq_domain *d, struct irq_data *irqd, bool early);
|
int (*activate)(struct irq_domain *d, struct irq_data *irqd, bool reserve);
|
||||||
void (*deactivate)(struct irq_domain *d, struct irq_data *irq_data);
|
void (*deactivate)(struct irq_domain *d, struct irq_data *irq_data);
|
||||||
int (*translate)(struct irq_domain *d, struct irq_fwspec *fwspec,
|
int (*translate)(struct irq_domain *d, struct irq_fwspec *fwspec,
|
||||||
unsigned long *out_hwirq, unsigned int *out_type);
|
unsigned long *out_hwirq, unsigned int *out_type);
|
||||||
|
|
|
@ -440,7 +440,7 @@ static inline bool irq_fixup_move_pending(struct irq_desc *desc, bool fclear)
|
||||||
#endif /* !CONFIG_GENERIC_PENDING_IRQ */
|
#endif /* !CONFIG_GENERIC_PENDING_IRQ */
|
||||||
|
|
||||||
#if !defined(CONFIG_IRQ_DOMAIN) || !defined(CONFIG_IRQ_DOMAIN_HIERARCHY)
|
#if !defined(CONFIG_IRQ_DOMAIN) || !defined(CONFIG_IRQ_DOMAIN_HIERARCHY)
|
||||||
static inline int irq_domain_activate_irq(struct irq_data *data, bool early)
|
static inline int irq_domain_activate_irq(struct irq_data *data, bool reserve)
|
||||||
{
|
{
|
||||||
irqd_set_activated(data);
|
irqd_set_activated(data);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1693,7 +1693,7 @@ static void __irq_domain_deactivate_irq(struct irq_data *irq_data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __irq_domain_activate_irq(struct irq_data *irqd, bool early)
|
static int __irq_domain_activate_irq(struct irq_data *irqd, bool reserve)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
@ -1702,9 +1702,9 @@ static int __irq_domain_activate_irq(struct irq_data *irqd, bool early)
|
||||||
|
|
||||||
if (irqd->parent_data)
|
if (irqd->parent_data)
|
||||||
ret = __irq_domain_activate_irq(irqd->parent_data,
|
ret = __irq_domain_activate_irq(irqd->parent_data,
|
||||||
early);
|
reserve);
|
||||||
if (!ret && domain->ops->activate) {
|
if (!ret && domain->ops->activate) {
|
||||||
ret = domain->ops->activate(domain, irqd, early);
|
ret = domain->ops->activate(domain, irqd, reserve);
|
||||||
/* Rollback in case of error */
|
/* Rollback in case of error */
|
||||||
if (ret && irqd->parent_data)
|
if (ret && irqd->parent_data)
|
||||||
__irq_domain_deactivate_irq(irqd->parent_data);
|
__irq_domain_deactivate_irq(irqd->parent_data);
|
||||||
|
@ -1716,17 +1716,18 @@ static int __irq_domain_activate_irq(struct irq_data *irqd, bool early)
|
||||||
/**
|
/**
|
||||||
* irq_domain_activate_irq - Call domain_ops->activate recursively to activate
|
* irq_domain_activate_irq - Call domain_ops->activate recursively to activate
|
||||||
* interrupt
|
* interrupt
|
||||||
* @irq_data: outermost irq_data associated with interrupt
|
* @irq_data: Outermost irq_data associated with interrupt
|
||||||
|
* @reserve: If set only reserve an interrupt vector instead of assigning one
|
||||||
*
|
*
|
||||||
* This is the second step to call domain_ops->activate to program interrupt
|
* This is the second step to call domain_ops->activate to program interrupt
|
||||||
* controllers, so the interrupt could actually get delivered.
|
* controllers, so the interrupt could actually get delivered.
|
||||||
*/
|
*/
|
||||||
int irq_domain_activate_irq(struct irq_data *irq_data, bool early)
|
int irq_domain_activate_irq(struct irq_data *irq_data, bool reserve)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
if (!irqd_is_activated(irq_data))
|
if (!irqd_is_activated(irq_data))
|
||||||
ret = __irq_domain_activate_irq(irq_data, early);
|
ret = __irq_domain_activate_irq(irq_data, reserve);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
irqd_set_activated(irq_data);
|
irqd_set_activated(irq_data);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in a new issue