2015-08-25 08:01:28

by yalin wang

[permalink] [raw]
Subject: [PATCH] dma/ipu: change ipu_irq_handler() to remove compile warning

Change ipu_irq_handler() to avoid gcc warning:

drivers/dma/ipu/ipu_irq.c:305:4: warning: 'irq' may be used
uninitialized in this function [-Wmaybe-uninitialized]
generic_handle_irq(irq);

Signed-off-by: yalin wang <[email protected]>
---
drivers/dma/ipu/ipu_irq.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/dma/ipu/ipu_irq.c b/drivers/dma/ipu/ipu_irq.c
index 7489d2a..1a74eee 100644
--- a/drivers/dma/ipu/ipu_irq.c
+++ b/drivers/dma/ipu/ipu_irq.c
@@ -286,23 +286,21 @@ static void ipu_irq_handler(unsigned int __irq, struct irq_desc *desc)
raw_spin_unlock(&bank_lock);
while ((line = ffs(status))) {
struct ipu_irq_map *map;
- unsigned int irq;

line--;
status &= ~(1UL << line);

raw_spin_lock(&bank_lock);
map = src2map(32 * i + line);
- if (map)
- irq = map->irq;
raw_spin_unlock(&bank_lock);

if (!map) {
pr_err("IPU: Interrupt on unmapped source %u bank %d\n",
line, i);
continue;
+ } else {
+ generic_handle_irq(map->irq);
}
- generic_handle_irq(irq);
}
}
}
--
1.9.1


2015-08-25 08:08:26

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH] dma/ipu: change ipu_irq_handler() to remove compile warning

On Tue, 25 Aug 2015, yalin wang wrote:
> Change ipu_irq_handler() to avoid gcc warning:
>
> drivers/dma/ipu/ipu_irq.c:305:4: warning: 'irq' may be used
> uninitialized in this function [-Wmaybe-uninitialized]
> generic_handle_irq(irq);

That's a false positive from GCC. irq is always initialized when
generic_handle_irq() is called.

> Signed-off-by: yalin wang <[email protected]>
> ---
> drivers/dma/ipu/ipu_irq.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/dma/ipu/ipu_irq.c b/drivers/dma/ipu/ipu_irq.c
> index 7489d2a..1a74eee 100644
> --- a/drivers/dma/ipu/ipu_irq.c
> +++ b/drivers/dma/ipu/ipu_irq.c
> @@ -286,23 +286,21 @@ static void ipu_irq_handler(unsigned int __irq, struct irq_desc *desc)
> raw_spin_unlock(&bank_lock);
> while ((line = ffs(status))) {
> struct ipu_irq_map *map;
> - unsigned int irq;
>
> line--;
> status &= ~(1UL << line);
>
> raw_spin_lock(&bank_lock);
> map = src2map(32 * i + line);
> - if (map)
> - irq = map->irq;
> raw_spin_unlock(&bank_lock);
>
> if (!map) {
> pr_err("IPU: Interrupt on unmapped source %u bank %d\n",
> line, i);
> continue;
> + } else {
> + generic_handle_irq(map->irq);

So you change that from retrieving the irq number with bank lock held
to an unprotected access.

Thanks,

tglx

2015-08-25 08:16:13

by yalin wang

[permalink] [raw]
Subject: Re: [PATCH] dma/ipu: change ipu_irq_handler() to remove compile warning


> On Aug 25, 2015, at 16:07, Thomas Gleixner <[email protected]> wrote:
>
> On Tue, 25 Aug 2015, yalin wang wrote:
>> Change ipu_irq_handler() to avoid gcc warning:
>>
>> drivers/dma/ipu/ipu_irq.c:305:4: warning: 'irq' may be used
>> uninitialized in this function [-Wmaybe-uninitialized]
>> generic_handle_irq(irq);
>
> That's a false positive from GCC. irq is always initialized when
> generic_handle_irq() is called.
>
>> Signed-off-by: yalin wang <[email protected]>
>> ---
>> drivers/dma/ipu/ipu_irq.c | 6 ++----
>> 1 file changed, 2 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/dma/ipu/ipu_irq.c b/drivers/dma/ipu/ipu_irq.c
>> index 7489d2a..1a74eee 100644
>> --- a/drivers/dma/ipu/ipu_irq.c
>> +++ b/drivers/dma/ipu/ipu_irq.c
>> @@ -286,23 +286,21 @@ static void ipu_irq_handler(unsigned int __irq, struct irq_desc *desc)
>> raw_spin_unlock(&bank_lock);
>> while ((line = ffs(status))) {
>> struct ipu_irq_map *map;
>> - unsigned int irq;
>>
>> line--;
>> status &= ~(1UL << line);
>>
>> raw_spin_lock(&bank_lock);
>> map = src2map(32 * i + line);
>> - if (map)
>> - irq = map->irq;
>> raw_spin_unlock(&bank_lock);
>>
>> if (!map) {
>> pr_err("IPU: Interrupt on unmapped source %u bank %d\n",
>> line, i);
>> continue;
>> + } else {
>> + generic_handle_irq(map->irq);
>
> So you change that from retrieving the irq number with bank lock held
> to an unprotected access.

i see,
i will send a V2 patch .

2015-08-28 04:31:54

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH] dma/ipu: change ipu_irq_handler() to remove compile warning

On Tue, Aug 25, 2015 at 04:01:08PM +0800, yalin wang wrote:
> Change ipu_irq_handler() to avoid gcc warning:
>
> drivers/dma/ipu/ipu_irq.c:305:4: warning: 'irq' may be used
> uninitialized in this function [-Wmaybe-uninitialized]
> generic_handle_irq(irq);

Applied after fixing subsystem name

--
~Vinod

2015-08-28 04:32:25

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH] dma/ipu: change ipu_irq_handler() to remove compile warning

On Fri, Aug 28, 2015 at 10:03:32AM +0530, Vinod Koul wrote:
> On Tue, Aug 25, 2015 at 04:01:08PM +0800, yalin wang wrote:
> > Change ipu_irq_handler() to avoid gcc warning:
> >
> > drivers/dma/ipu/ipu_irq.c:305:4: warning: 'irq' may be used
> > uninitialized in this function [-Wmaybe-uninitialized]
> > generic_handle_irq(irq);
>
> Applied after fixing subsystem name

Just to be clear, V2 of this patch was applied


--
~Vinod