* static asmlinkage in irqchip (was Re: next build: 78 warnings 0 failures (next/next-20140228))
[not found] <5310415c.2d79420a.3275.ffff92bb@mx.google.com>
@ 2014-03-01 2:23 ` Stephen Boyd
2014-03-01 16:12 ` Andi Kleen
0 siblings, 1 reply; 8+ messages in thread
From: Stephen Boyd @ 2014-03-01 2:23 UTC (permalink / raw)
To: linux-arm-kernel
On 02/27/14 23:57, Olof's autobuilder wrote:
> Warnings:
> 3 drivers/irqchip/irq-mmp.c:199:1: warning: 'externally_visible' attribute have effect only on public objects [-Wattributes]
> 3 drivers/irqchip/irq-mmp.c:212:1: warning: 'externally_visible' attribute have effect only on public objects [-Wattributes]
> 3 drivers/irqchip/irq-sirfsoc.c:51:1: warning: 'externally_visible' attribute have effect only on public objects [-Wattributes]
> 3 drivers/irqchip/irq-sun4i.c:140:1: warning: 'externally_visible' attribute have effect only on public objects [-Wattributes]
> 3 drivers/irqchip/irq-sun4i.c:39:70: warning: 'externally_visible' attribute have effect only on public objects [-Wattributes]
> 3 drivers/irqchip/irq-vt8500.c:183:1: warning: 'externally_visible' attribute have effect only on public objects [-Wattributes]
> 4 drivers/irqchip/irq-orion.c:35:1: warning: 'externally_visible' attribute have effect only on public objects [-Wattributes]
> 5 drivers/irqchip/irq-armada-370-xp.c:415:1: warning: 'externally_visible' attribute have effect only on public objects [-Wattributes]
> 13 drivers/irqchip/irq-vic.c:244:1: warning: 'externally_visible' attribute have effect only on public objects [-Wattributes]
> 28 drivers/irqchip/irq-gic.c:283:1: warning: 'externally_visible' attribute have effect only on public objects [-Wattributes]
>
These seem to be caused by 128ea04a9885 (lto: Make asmlinkage __visible,
2014-02-08). Before that change asmlinkage was defined to nothing on
ARM, but now it's __visible. Should we just drop asmlinkage here?
----8<----
From: Stephen Boyd <sboyd@codeaurora.org>
Subject: [PATCH] irqchip: Remove asmlinkage from static functions
LTO patches add __visible to the asmlinkage define, causing
compilation warnings like:
drivers/irqchip/irq-gic.c:283:1: warning: 'externally_visible'
attribute have effect only on public objects [-Wattributes]
Drop asmlinkage here to avoid such warnings.
Cc: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
drivers/irqchip/irq-armada-370-xp.c | 2 +-
drivers/irqchip/irq-bcm2835.c | 4 ++--
drivers/irqchip/irq-gic.c | 2 +-
drivers/irqchip/irq-mmp.c | 6 ++----
drivers/irqchip/irq-moxart.c | 2 +-
drivers/irqchip/irq-orion.c | 2 +-
drivers/irqchip/irq-sirfsoc.c | 2 +-
drivers/irqchip/irq-sun4i.c | 4 ++--
drivers/irqchip/irq-vic.c | 2 +-
drivers/irqchip/irq-vt8500.c | 3 +--
drivers/irqchip/irq-zevio.c | 2 +-
11 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/drivers/irqchip/irq-armada-370-xp.c b/drivers/irqchip/irq-armada-370-xp.c
index cd79503abea9..41be897df8d5 100644
--- a/drivers/irqchip/irq-armada-370-xp.c
+++ b/drivers/irqchip/irq-armada-370-xp.c
@@ -410,7 +410,7 @@ static void armada_370_xp_mpic_handle_cascade_irq(unsigned int irq,
chained_irq_exit(chip, desc);
}
-static asmlinkage void __exception_irq_entry
+static void __exception_irq_entry
armada_370_xp_handle_irq(struct pt_regs *regs)
{
u32 irqstat, irqnr;
diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
index 1693b8e7f26a..5916d6cdafa1 100644
--- a/drivers/irqchip/irq-bcm2835.c
+++ b/drivers/irqchip/irq-bcm2835.c
@@ -95,7 +95,7 @@ struct armctrl_ic {
};
static struct armctrl_ic intc __read_mostly;
-static asmlinkage void __exception_irq_entry bcm2835_handle_irq(
+static void __exception_irq_entry bcm2835_handle_irq(
struct pt_regs *regs);
static void armctrl_mask_irq(struct irq_data *d)
@@ -196,7 +196,7 @@ static void armctrl_handle_shortcut(int bank, struct pt_regs *regs,
handle_IRQ(irq_linear_revmap(intc.domain, irq), regs);
}
-static asmlinkage void __exception_irq_entry bcm2835_handle_irq(
+static void __exception_irq_entry bcm2835_handle_irq(
struct pt_regs *regs)
{
u32 stat, irq;
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index a917b144895e..63922b9ba6b7 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -279,7 +279,7 @@ static int gic_set_wake(struct irq_data *d, unsigned int on)
#define gic_set_wake NULL
#endif
-static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry gic_handle_irq(struct pt_regs *regs)
{
u32 irqstat, irqnr;
struct gic_chip_data *gic = &gic_data[0];
diff --git a/drivers/irqchip/irq-mmp.c b/drivers/irqchip/irq-mmp.c
index 2cb7cd0bc2f5..3c8827fe83f3 100644
--- a/drivers/irqchip/irq-mmp.c
+++ b/drivers/irqchip/irq-mmp.c
@@ -194,8 +194,7 @@ static struct mmp_intc_conf mmp2_conf = {
.conf_mask = 0x7f,
};
-static asmlinkage void __exception_irq_entry
-mmp_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry mmp_handle_irq(struct pt_regs *regs)
{
int irq, hwirq;
@@ -207,8 +206,7 @@ mmp_handle_irq(struct pt_regs *regs)
handle_IRQ(irq, regs);
}
-static asmlinkage void __exception_irq_entry
-mmp2_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry mmp2_handle_irq(struct pt_regs *regs)
{
int irq, hwirq;
diff --git a/drivers/irqchip/irq-moxart.c b/drivers/irqchip/irq-moxart.c
index 5552fc2bf28a..00b3cc908f76 100644
--- a/drivers/irqchip/irq-moxart.c
+++ b/drivers/irqchip/irq-moxart.c
@@ -44,7 +44,7 @@ struct moxart_irq_data {
static struct moxart_irq_data intc;
-static asmlinkage void __exception_irq_entry handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry handle_irq(struct pt_regs *regs)
{
u32 irqstat;
int hwirq;
diff --git a/drivers/irqchip/irq-orion.c b/drivers/irqchip/irq-orion.c
index 8e41be62812e..e25f246cd2fb 100644
--- a/drivers/irqchip/irq-orion.c
+++ b/drivers/irqchip/irq-orion.c
@@ -30,7 +30,7 @@
static struct irq_domain *orion_irq_domain;
-static asmlinkage void
+static void
__exception_irq_entry orion_handle_irq(struct pt_regs *regs)
{
struct irq_domain_chip_generic *dgc = orion_irq_domain->gc;
diff --git a/drivers/irqchip/irq-sirfsoc.c b/drivers/irqchip/irq-sirfsoc.c
index 3a070c587ed9..581eefe331ae 100644
--- a/drivers/irqchip/irq-sirfsoc.c
+++ b/drivers/irqchip/irq-sirfsoc.c
@@ -47,7 +47,7 @@ sirfsoc_alloc_gc(void __iomem *base, unsigned int irq_start, unsigned int num)
ct->regs.mask = SIRFSOC_INT_RISC_MASK0;
}
-static asmlinkage void __exception_irq_entry sirfsoc_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry sirfsoc_handle_irq(struct pt_regs *regs)
{
void __iomem *base = sirfsoc_irqdomain->host_data;
u32 irqstat, irqnr;
diff --git a/drivers/irqchip/irq-sun4i.c b/drivers/irqchip/irq-sun4i.c
index a5438d889245..9fbff030c700 100644
--- a/drivers/irqchip/irq-sun4i.c
+++ b/drivers/irqchip/irq-sun4i.c
@@ -36,7 +36,7 @@
static void __iomem *sun4i_irq_base;
static struct irq_domain *sun4i_irq_domain;
-static asmlinkage void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs);
+static void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs);
static void sun4i_irq_ack(struct irq_data *irqd)
{
@@ -136,7 +136,7 @@ static int __init sun4i_of_init(struct device_node *node,
}
IRQCHIP_DECLARE(allwinner_sun4i_ic, "allwinner,sun4i-ic", sun4i_of_init);
-static asmlinkage void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs)
{
u32 irq, hwirq;
diff --git a/drivers/irqchip/irq-vic.c b/drivers/irqchip/irq-vic.c
index fd2c980e4cea..37dab0b472cd 100644
--- a/drivers/irqchip/irq-vic.c
+++ b/drivers/irqchip/irq-vic.c
@@ -240,7 +240,7 @@ static void vic_handle_irq_cascaded(unsigned int irq, struct irq_desc *desc)
* Keep iterating over all registered VIC's until there are no pending
* interrupts.
*/
-static asmlinkage void __exception_irq_entry vic_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry vic_handle_irq(struct pt_regs *regs)
{
int i, handled;
diff --git a/drivers/irqchip/irq-vt8500.c b/drivers/irqchip/irq-vt8500.c
index 1846e7d66681..eb6e91efdec8 100644
--- a/drivers/irqchip/irq-vt8500.c
+++ b/drivers/irqchip/irq-vt8500.c
@@ -178,8 +178,7 @@ static struct irq_domain_ops vt8500_irq_domain_ops = {
.xlate = irq_domain_xlate_onecell,
};
-static asmlinkage
-void __exception_irq_entry vt8500_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry vt8500_handle_irq(struct pt_regs *regs)
{
u32 stat, i;
int irqnr, virq;
diff --git a/drivers/irqchip/irq-zevio.c b/drivers/irqchip/irq-zevio.c
index 8ed04c4a43ee..ceb3a4318f73 100644
--- a/drivers/irqchip/irq-zevio.c
+++ b/drivers/irqchip/irq-zevio.c
@@ -50,7 +50,7 @@ static void zevio_irq_ack(struct irq_data *irqd)
readl(gc->reg_base + regs->ack);
}
-static asmlinkage void __exception_irq_entry zevio_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry zevio_handle_irq(struct pt_regs *regs)
{
int irqnr;
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
^ permalink raw reply related [flat|nested] 8+ messages in thread
* static asmlinkage in irqchip (was Re: next build: 78 warnings 0 failures (next/next-20140228))
2014-03-01 2:23 ` static asmlinkage in irqchip (was Re: next build: 78 warnings 0 failures (next/next-20140228)) Stephen Boyd
@ 2014-03-01 16:12 ` Andi Kleen
2014-03-03 16:12 ` Josh Cartwright
2014-03-05 0:40 ` [PATCH] irqchip: Remove asmlinkage from static functions Stephen Boyd
0 siblings, 2 replies; 8+ messages in thread
From: Andi Kleen @ 2014-03-01 16:12 UTC (permalink / raw)
To: linux-arm-kernel
> These seem to be caused by 128ea04a9885 (lto: Make asmlinkage __visible,
> 2014-02-08). Before that change asmlinkage was defined to nothing on
> ARM, but now it's __visible. Should we just drop asmlinkage here?
These functions are just called by the generic C interrupt layer right?
Yes should just drop asmlinkage. It doesn't make any sense to mark
functions that only called from C asmlinkage.
Patch looks good to me.
-Andi
^ permalink raw reply [flat|nested] 8+ messages in thread
* static asmlinkage in irqchip (was Re: next build: 78 warnings 0 failures (next/next-20140228))
2014-03-01 16:12 ` Andi Kleen
@ 2014-03-03 16:12 ` Josh Cartwright
2014-03-03 16:31 ` Russell King - ARM Linux
2014-03-03 19:06 ` Andi Kleen
2014-03-05 0:40 ` [PATCH] irqchip: Remove asmlinkage from static functions Stephen Boyd
1 sibling, 2 replies; 8+ messages in thread
From: Josh Cartwright @ 2014-03-03 16:12 UTC (permalink / raw)
To: linux-arm-kernel
On Sat, Mar 01, 2014 at 08:12:58AM -0800, Andi Kleen wrote:
> > These seem to be caused by 128ea04a9885 (lto: Make asmlinkage __visible,
> > 2014-02-08). Before that change asmlinkage was defined to nothing on
> > ARM, but now it's __visible. Should we just drop asmlinkage here?
>
> These functions are just called by the generic C interrupt layer right?
> Yes should just drop asmlinkage. It doesn't make any sense to mark
> functions that only called from C asmlinkage.
On ARM[64], these functions are called from assembly indirectly through
the 'handle_arch_irq' function pointer, so I don't think it makes sense
to drop 'asmlinkage'.
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
^ permalink raw reply [flat|nested] 8+ messages in thread
* static asmlinkage in irqchip (was Re: next build: 78 warnings 0 failures (next/next-20140228))
2014-03-03 16:12 ` Josh Cartwright
@ 2014-03-03 16:31 ` Russell King - ARM Linux
2014-03-03 19:06 ` Andi Kleen
1 sibling, 0 replies; 8+ messages in thread
From: Russell King - ARM Linux @ 2014-03-03 16:31 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Mar 03, 2014 at 10:12:17AM -0600, Josh Cartwright wrote:
> On Sat, Mar 01, 2014 at 08:12:58AM -0800, Andi Kleen wrote:
> > > These seem to be caused by 128ea04a9885 (lto: Make asmlinkage __visible,
> > > 2014-02-08). Before that change asmlinkage was defined to nothing on
> > > ARM, but now it's __visible. Should we just drop asmlinkage here?
> >
> > These functions are just called by the generic C interrupt layer right?
> > Yes should just drop asmlinkage. It doesn't make any sense to mark
> > functions that only called from C asmlinkage.
>
> On ARM[64], these functions are called from assembly indirectly through
> the 'handle_arch_irq' function pointer, so I don't think it makes sense
> to drop 'asmlinkage'.
If building with a C++ compiler:
asmlinkage = extern "C"
static asmlinkage = static extern "C"
That doesn't quite make much sense when you think about it - even with
the existing definition in current mainline kernels.
--
FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.
^ permalink raw reply [flat|nested] 8+ messages in thread
* static asmlinkage in irqchip (was Re: next build: 78 warnings 0 failures (next/next-20140228))
2014-03-03 16:12 ` Josh Cartwright
2014-03-03 16:31 ` Russell King - ARM Linux
@ 2014-03-03 19:06 ` Andi Kleen
2014-03-03 20:21 ` Josh Cartwright
1 sibling, 1 reply; 8+ messages in thread
From: Andi Kleen @ 2014-03-03 19:06 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Mar 03, 2014 at 10:12:17AM -0600, Josh Cartwright wrote:
> On Sat, Mar 01, 2014 at 08:12:58AM -0800, Andi Kleen wrote:
> > > These seem to be caused by 128ea04a9885 (lto: Make asmlinkage __visible,
> > > 2014-02-08). Before that change asmlinkage was defined to nothing on
> > > ARM, but now it's __visible. Should we just drop asmlinkage here?
> >
> > These functions are just called by the generic C interrupt layer right?
> > Yes should just drop asmlinkage. It doesn't make any sense to mark
> > functions that only called from C asmlinkage.
>
> On ARM[64], these functions are called from assembly indirectly through
> the 'handle_arch_irq' function pointer, so I don't think it makes sense
> to drop 'asmlinkage'.
So do you do anything special in asmlinkage? If not it won't make
any difference for you.
-Andi
^ permalink raw reply [flat|nested] 8+ messages in thread
* static asmlinkage in irqchip (was Re: next build: 78 warnings 0 failures (next/next-20140228))
2014-03-03 19:06 ` Andi Kleen
@ 2014-03-03 20:21 ` Josh Cartwright
0 siblings, 0 replies; 8+ messages in thread
From: Josh Cartwright @ 2014-03-03 20:21 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Mar 03, 2014 at 11:06:58AM -0800, Andi Kleen wrote:
> On Mon, Mar 03, 2014 at 10:12:17AM -0600, Josh Cartwright wrote:
> > On Sat, Mar 01, 2014 at 08:12:58AM -0800, Andi Kleen wrote:
> > > > These seem to be caused by 128ea04a9885 (lto: Make asmlinkage __visible,
> > > > 2014-02-08). Before that change asmlinkage was defined to nothing on
> > > > ARM, but now it's __visible. Should we just drop asmlinkage here?
> > >
> > > These functions are just called by the generic C interrupt layer right?
> > > Yes should just drop asmlinkage. It doesn't make any sense to mark
> > > functions that only called from C asmlinkage.
> >
> > On ARM[64], these functions are called from assembly indirectly through
> > the 'handle_arch_irq' function pointer, so I don't think it makes sense
> > to drop 'asmlinkage'.
>
> So do you do anything special in asmlinkage? If not it won't make
> any difference for you.
As Russell elaborated, ARM doesn't have the special calling convention
magic that x86 does, so it should be safe to remove.
Sorry for the noise,
Josh
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] irqchip: Remove asmlinkage from static functions
2014-03-01 16:12 ` Andi Kleen
2014-03-03 16:12 ` Josh Cartwright
@ 2014-03-05 0:40 ` Stephen Boyd
2014-03-11 20:43 ` Stephen Boyd
1 sibling, 1 reply; 8+ messages in thread
From: Stephen Boyd @ 2014-03-05 0:40 UTC (permalink / raw)
To: linux-arm-kernel
LTO patches add __visible to the asmlinkage define, causing
compilation warnings like:
drivers/irqchip/irq-gic.c:283:1: warning: 'externally_visible'
attribute have effect only on public objects [-Wattributes]
Drop asmlinkage here to avoid such warnings.
Reported-by: Olof's autobuilder <build@lixom.net>
Cc: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
Based on next-20140226.
drivers/irqchip/irq-armada-370-xp.c | 2 +-
drivers/irqchip/irq-bcm2835.c | 4 ++--
drivers/irqchip/irq-gic.c | 2 +-
drivers/irqchip/irq-mmp.c | 6 ++----
drivers/irqchip/irq-moxart.c | 2 +-
drivers/irqchip/irq-orion.c | 2 +-
drivers/irqchip/irq-sirfsoc.c | 2 +-
drivers/irqchip/irq-sun4i.c | 4 ++--
drivers/irqchip/irq-vic.c | 2 +-
drivers/irqchip/irq-vt8500.c | 3 +--
drivers/irqchip/irq-zevio.c | 2 +-
11 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/drivers/irqchip/irq-armada-370-xp.c b/drivers/irqchip/irq-armada-370-xp.c
index cd79503abea9..41be897df8d5 100644
--- a/drivers/irqchip/irq-armada-370-xp.c
+++ b/drivers/irqchip/irq-armada-370-xp.c
@@ -410,7 +410,7 @@ static void armada_370_xp_mpic_handle_cascade_irq(unsigned int irq,
chained_irq_exit(chip, desc);
}
-static asmlinkage void __exception_irq_entry
+static void __exception_irq_entry
armada_370_xp_handle_irq(struct pt_regs *regs)
{
u32 irqstat, irqnr;
diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
index 1693b8e7f26a..5916d6cdafa1 100644
--- a/drivers/irqchip/irq-bcm2835.c
+++ b/drivers/irqchip/irq-bcm2835.c
@@ -95,7 +95,7 @@ struct armctrl_ic {
};
static struct armctrl_ic intc __read_mostly;
-static asmlinkage void __exception_irq_entry bcm2835_handle_irq(
+static void __exception_irq_entry bcm2835_handle_irq(
struct pt_regs *regs);
static void armctrl_mask_irq(struct irq_data *d)
@@ -196,7 +196,7 @@ static void armctrl_handle_shortcut(int bank, struct pt_regs *regs,
handle_IRQ(irq_linear_revmap(intc.domain, irq), regs);
}
-static asmlinkage void __exception_irq_entry bcm2835_handle_irq(
+static void __exception_irq_entry bcm2835_handle_irq(
struct pt_regs *regs)
{
u32 stat, irq;
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index a917b144895e..63922b9ba6b7 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -279,7 +279,7 @@ static int gic_set_wake(struct irq_data *d, unsigned int on)
#define gic_set_wake NULL
#endif
-static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry gic_handle_irq(struct pt_regs *regs)
{
u32 irqstat, irqnr;
struct gic_chip_data *gic = &gic_data[0];
diff --git a/drivers/irqchip/irq-mmp.c b/drivers/irqchip/irq-mmp.c
index 2cb7cd0bc2f5..3c8827fe83f3 100644
--- a/drivers/irqchip/irq-mmp.c
+++ b/drivers/irqchip/irq-mmp.c
@@ -194,8 +194,7 @@ static struct mmp_intc_conf mmp2_conf = {
.conf_mask = 0x7f,
};
-static asmlinkage void __exception_irq_entry
-mmp_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry mmp_handle_irq(struct pt_regs *regs)
{
int irq, hwirq;
@@ -207,8 +206,7 @@ mmp_handle_irq(struct pt_regs *regs)
handle_IRQ(irq, regs);
}
-static asmlinkage void __exception_irq_entry
-mmp2_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry mmp2_handle_irq(struct pt_regs *regs)
{
int irq, hwirq;
diff --git a/drivers/irqchip/irq-moxart.c b/drivers/irqchip/irq-moxart.c
index 5552fc2bf28a..00b3cc908f76 100644
--- a/drivers/irqchip/irq-moxart.c
+++ b/drivers/irqchip/irq-moxart.c
@@ -44,7 +44,7 @@ struct moxart_irq_data {
static struct moxart_irq_data intc;
-static asmlinkage void __exception_irq_entry handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry handle_irq(struct pt_regs *regs)
{
u32 irqstat;
int hwirq;
diff --git a/drivers/irqchip/irq-orion.c b/drivers/irqchip/irq-orion.c
index 8e41be62812e..e25f246cd2fb 100644
--- a/drivers/irqchip/irq-orion.c
+++ b/drivers/irqchip/irq-orion.c
@@ -30,7 +30,7 @@
static struct irq_domain *orion_irq_domain;
-static asmlinkage void
+static void
__exception_irq_entry orion_handle_irq(struct pt_regs *regs)
{
struct irq_domain_chip_generic *dgc = orion_irq_domain->gc;
diff --git a/drivers/irqchip/irq-sirfsoc.c b/drivers/irqchip/irq-sirfsoc.c
index 3a070c587ed9..581eefe331ae 100644
--- a/drivers/irqchip/irq-sirfsoc.c
+++ b/drivers/irqchip/irq-sirfsoc.c
@@ -47,7 +47,7 @@ sirfsoc_alloc_gc(void __iomem *base, unsigned int irq_start, unsigned int num)
ct->regs.mask = SIRFSOC_INT_RISC_MASK0;
}
-static asmlinkage void __exception_irq_entry sirfsoc_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry sirfsoc_handle_irq(struct pt_regs *regs)
{
void __iomem *base = sirfsoc_irqdomain->host_data;
u32 irqstat, irqnr;
diff --git a/drivers/irqchip/irq-sun4i.c b/drivers/irqchip/irq-sun4i.c
index a5438d889245..9fbff030c700 100644
--- a/drivers/irqchip/irq-sun4i.c
+++ b/drivers/irqchip/irq-sun4i.c
@@ -36,7 +36,7 @@
static void __iomem *sun4i_irq_base;
static struct irq_domain *sun4i_irq_domain;
-static asmlinkage void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs);
+static void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs);
static void sun4i_irq_ack(struct irq_data *irqd)
{
@@ -136,7 +136,7 @@ static int __init sun4i_of_init(struct device_node *node,
}
IRQCHIP_DECLARE(allwinner_sun4i_ic, "allwinner,sun4i-ic", sun4i_of_init);
-static asmlinkage void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs)
{
u32 irq, hwirq;
diff --git a/drivers/irqchip/irq-vic.c b/drivers/irqchip/irq-vic.c
index fd2c980e4cea..37dab0b472cd 100644
--- a/drivers/irqchip/irq-vic.c
+++ b/drivers/irqchip/irq-vic.c
@@ -240,7 +240,7 @@ static void vic_handle_irq_cascaded(unsigned int irq, struct irq_desc *desc)
* Keep iterating over all registered VIC's until there are no pending
* interrupts.
*/
-static asmlinkage void __exception_irq_entry vic_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry vic_handle_irq(struct pt_regs *regs)
{
int i, handled;
diff --git a/drivers/irqchip/irq-vt8500.c b/drivers/irqchip/irq-vt8500.c
index 1846e7d66681..eb6e91efdec8 100644
--- a/drivers/irqchip/irq-vt8500.c
+++ b/drivers/irqchip/irq-vt8500.c
@@ -178,8 +178,7 @@ static struct irq_domain_ops vt8500_irq_domain_ops = {
.xlate = irq_domain_xlate_onecell,
};
-static asmlinkage
-void __exception_irq_entry vt8500_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry vt8500_handle_irq(struct pt_regs *regs)
{
u32 stat, i;
int irqnr, virq;
diff --git a/drivers/irqchip/irq-zevio.c b/drivers/irqchip/irq-zevio.c
index 8ed04c4a43ee..ceb3a4318f73 100644
--- a/drivers/irqchip/irq-zevio.c
+++ b/drivers/irqchip/irq-zevio.c
@@ -50,7 +50,7 @@ static void zevio_irq_ack(struct irq_data *irqd)
readl(gc->reg_base + regs->ack);
}
-static asmlinkage void __exception_irq_entry zevio_handle_irq(struct pt_regs *regs)
+static void __exception_irq_entry zevio_handle_irq(struct pt_regs *regs)
{
int irqnr;
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH] irqchip: Remove asmlinkage from static functions
2014-03-05 0:40 ` [PATCH] irqchip: Remove asmlinkage from static functions Stephen Boyd
@ 2014-03-11 20:43 ` Stephen Boyd
0 siblings, 0 replies; 8+ messages in thread
From: Stephen Boyd @ 2014-03-11 20:43 UTC (permalink / raw)
To: linux-arm-kernel
ping?
On 03/04/14 16:40, Stephen Boyd wrote:
> LTO patches add __visible to the asmlinkage define, causing
> compilation warnings like:
>
> drivers/irqchip/irq-gic.c:283:1: warning: 'externally_visible'
> attribute have effect only on public objects [-Wattributes]
>
> Drop asmlinkage here to avoid such warnings.
>
> Reported-by: Olof's autobuilder <build@lixom.net>
> Cc: Andi Kleen <ak@linux.intel.com>
> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
> ---
>
> Based on next-20140226.
>
> drivers/irqchip/irq-armada-370-xp.c | 2 +-
> drivers/irqchip/irq-bcm2835.c | 4 ++--
> drivers/irqchip/irq-gic.c | 2 +-
> drivers/irqchip/irq-mmp.c | 6 ++----
> drivers/irqchip/irq-moxart.c | 2 +-
> drivers/irqchip/irq-orion.c | 2 +-
> drivers/irqchip/irq-sirfsoc.c | 2 +-
> drivers/irqchip/irq-sun4i.c | 4 ++--
> drivers/irqchip/irq-vic.c | 2 +-
> drivers/irqchip/irq-vt8500.c | 3 +--
> drivers/irqchip/irq-zevio.c | 2 +-
> 11 files changed, 14 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/irqchip/irq-armada-370-xp.c b/drivers/irqchip/irq-armada-370-xp.c
> index cd79503abea9..41be897df8d5 100644
> --- a/drivers/irqchip/irq-armada-370-xp.c
> +++ b/drivers/irqchip/irq-armada-370-xp.c
> @@ -410,7 +410,7 @@ static void armada_370_xp_mpic_handle_cascade_irq(unsigned int irq,
> chained_irq_exit(chip, desc);
> }
>
> -static asmlinkage void __exception_irq_entry
> +static void __exception_irq_entry
> armada_370_xp_handle_irq(struct pt_regs *regs)
> {
> u32 irqstat, irqnr;
> diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
> index 1693b8e7f26a..5916d6cdafa1 100644
> --- a/drivers/irqchip/irq-bcm2835.c
> +++ b/drivers/irqchip/irq-bcm2835.c
> @@ -95,7 +95,7 @@ struct armctrl_ic {
> };
>
> static struct armctrl_ic intc __read_mostly;
> -static asmlinkage void __exception_irq_entry bcm2835_handle_irq(
> +static void __exception_irq_entry bcm2835_handle_irq(
> struct pt_regs *regs);
>
> static void armctrl_mask_irq(struct irq_data *d)
> @@ -196,7 +196,7 @@ static void armctrl_handle_shortcut(int bank, struct pt_regs *regs,
> handle_IRQ(irq_linear_revmap(intc.domain, irq), regs);
> }
>
> -static asmlinkage void __exception_irq_entry bcm2835_handle_irq(
> +static void __exception_irq_entry bcm2835_handle_irq(
> struct pt_regs *regs)
> {
> u32 stat, irq;
> diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
> index a917b144895e..63922b9ba6b7 100644
> --- a/drivers/irqchip/irq-gic.c
> +++ b/drivers/irqchip/irq-gic.c
> @@ -279,7 +279,7 @@ static int gic_set_wake(struct irq_data *d, unsigned int on)
> #define gic_set_wake NULL
> #endif
>
> -static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs)
> +static void __exception_irq_entry gic_handle_irq(struct pt_regs *regs)
> {
> u32 irqstat, irqnr;
> struct gic_chip_data *gic = &gic_data[0];
> diff --git a/drivers/irqchip/irq-mmp.c b/drivers/irqchip/irq-mmp.c
> index 2cb7cd0bc2f5..3c8827fe83f3 100644
> --- a/drivers/irqchip/irq-mmp.c
> +++ b/drivers/irqchip/irq-mmp.c
> @@ -194,8 +194,7 @@ static struct mmp_intc_conf mmp2_conf = {
> .conf_mask = 0x7f,
> };
>
> -static asmlinkage void __exception_irq_entry
> -mmp_handle_irq(struct pt_regs *regs)
> +static void __exception_irq_entry mmp_handle_irq(struct pt_regs *regs)
> {
> int irq, hwirq;
>
> @@ -207,8 +206,7 @@ mmp_handle_irq(struct pt_regs *regs)
> handle_IRQ(irq, regs);
> }
>
> -static asmlinkage void __exception_irq_entry
> -mmp2_handle_irq(struct pt_regs *regs)
> +static void __exception_irq_entry mmp2_handle_irq(struct pt_regs *regs)
> {
> int irq, hwirq;
>
> diff --git a/drivers/irqchip/irq-moxart.c b/drivers/irqchip/irq-moxart.c
> index 5552fc2bf28a..00b3cc908f76 100644
> --- a/drivers/irqchip/irq-moxart.c
> +++ b/drivers/irqchip/irq-moxart.c
> @@ -44,7 +44,7 @@ struct moxart_irq_data {
>
> static struct moxart_irq_data intc;
>
> -static asmlinkage void __exception_irq_entry handle_irq(struct pt_regs *regs)
> +static void __exception_irq_entry handle_irq(struct pt_regs *regs)
> {
> u32 irqstat;
> int hwirq;
> diff --git a/drivers/irqchip/irq-orion.c b/drivers/irqchip/irq-orion.c
> index 8e41be62812e..e25f246cd2fb 100644
> --- a/drivers/irqchip/irq-orion.c
> +++ b/drivers/irqchip/irq-orion.c
> @@ -30,7 +30,7 @@
>
> static struct irq_domain *orion_irq_domain;
>
> -static asmlinkage void
> +static void
> __exception_irq_entry orion_handle_irq(struct pt_regs *regs)
> {
> struct irq_domain_chip_generic *dgc = orion_irq_domain->gc;
> diff --git a/drivers/irqchip/irq-sirfsoc.c b/drivers/irqchip/irq-sirfsoc.c
> index 3a070c587ed9..581eefe331ae 100644
> --- a/drivers/irqchip/irq-sirfsoc.c
> +++ b/drivers/irqchip/irq-sirfsoc.c
> @@ -47,7 +47,7 @@ sirfsoc_alloc_gc(void __iomem *base, unsigned int irq_start, unsigned int num)
> ct->regs.mask = SIRFSOC_INT_RISC_MASK0;
> }
>
> -static asmlinkage void __exception_irq_entry sirfsoc_handle_irq(struct pt_regs *regs)
> +static void __exception_irq_entry sirfsoc_handle_irq(struct pt_regs *regs)
> {
> void __iomem *base = sirfsoc_irqdomain->host_data;
> u32 irqstat, irqnr;
> diff --git a/drivers/irqchip/irq-sun4i.c b/drivers/irqchip/irq-sun4i.c
> index a5438d889245..9fbff030c700 100644
> --- a/drivers/irqchip/irq-sun4i.c
> +++ b/drivers/irqchip/irq-sun4i.c
> @@ -36,7 +36,7 @@
> static void __iomem *sun4i_irq_base;
> static struct irq_domain *sun4i_irq_domain;
>
> -static asmlinkage void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs);
> +static void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs);
>
> static void sun4i_irq_ack(struct irq_data *irqd)
> {
> @@ -136,7 +136,7 @@ static int __init sun4i_of_init(struct device_node *node,
> }
> IRQCHIP_DECLARE(allwinner_sun4i_ic, "allwinner,sun4i-ic", sun4i_of_init);
>
> -static asmlinkage void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs)
> +static void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs)
> {
> u32 irq, hwirq;
>
> diff --git a/drivers/irqchip/irq-vic.c b/drivers/irqchip/irq-vic.c
> index fd2c980e4cea..37dab0b472cd 100644
> --- a/drivers/irqchip/irq-vic.c
> +++ b/drivers/irqchip/irq-vic.c
> @@ -240,7 +240,7 @@ static void vic_handle_irq_cascaded(unsigned int irq, struct irq_desc *desc)
> * Keep iterating over all registered VIC's until there are no pending
> * interrupts.
> */
> -static asmlinkage void __exception_irq_entry vic_handle_irq(struct pt_regs *regs)
> +static void __exception_irq_entry vic_handle_irq(struct pt_regs *regs)
> {
> int i, handled;
>
> diff --git a/drivers/irqchip/irq-vt8500.c b/drivers/irqchip/irq-vt8500.c
> index 1846e7d66681..eb6e91efdec8 100644
> --- a/drivers/irqchip/irq-vt8500.c
> +++ b/drivers/irqchip/irq-vt8500.c
> @@ -178,8 +178,7 @@ static struct irq_domain_ops vt8500_irq_domain_ops = {
> .xlate = irq_domain_xlate_onecell,
> };
>
> -static asmlinkage
> -void __exception_irq_entry vt8500_handle_irq(struct pt_regs *regs)
> +static void __exception_irq_entry vt8500_handle_irq(struct pt_regs *regs)
> {
> u32 stat, i;
> int irqnr, virq;
> diff --git a/drivers/irqchip/irq-zevio.c b/drivers/irqchip/irq-zevio.c
> index 8ed04c4a43ee..ceb3a4318f73 100644
> --- a/drivers/irqchip/irq-zevio.c
> +++ b/drivers/irqchip/irq-zevio.c
> @@ -50,7 +50,7 @@ static void zevio_irq_ack(struct irq_data *irqd)
> readl(gc->reg_base + regs->ack);
> }
>
> -static asmlinkage void __exception_irq_entry zevio_handle_irq(struct pt_regs *regs)
> +static void __exception_irq_entry zevio_handle_irq(struct pt_regs *regs)
> {
> int irqnr;
>
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-03-11 20:43 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <5310415c.2d79420a.3275.ffff92bb@mx.google.com>
2014-03-01 2:23 ` static asmlinkage in irqchip (was Re: next build: 78 warnings 0 failures (next/next-20140228)) Stephen Boyd
2014-03-01 16:12 ` Andi Kleen
2014-03-03 16:12 ` Josh Cartwright
2014-03-03 16:31 ` Russell King - ARM Linux
2014-03-03 19:06 ` Andi Kleen
2014-03-03 20:21 ` Josh Cartwright
2014-03-05 0:40 ` [PATCH] irqchip: Remove asmlinkage from static functions Stephen Boyd
2014-03-11 20:43 ` Stephen Boyd
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).