All of lore.kernel.org
 help / color / mirror / Atom feed
From: walter harms <wharms@bfs.de>
To: Julia Lawall <julia.lawall@lip6.fr>
Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>,
	Dan Carpenter <dan.carpenter@oracle.com>,
	kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compat
Date: Thu, 15 Mar 2012 08:07:04 +0000	[thread overview]
Message-ID: <4F61A328.8050302@bfs.de> (raw)
In-Reply-To: <alpine.DEB.2.02.1203150710050.1981@localhost6.localdomain6>



Am 15.03.2012 07:10, schrieb Julia Lawall:
> 
> 
> On Thu, 15 Mar 2012, Guan Xuetao wrote:
> 
>> On Wed, 2012-03-14 at 10:23 +0100, Julia Lawall wrote:
>>>
>>> On Wed, 14 Mar 2012, Guan Xuetao wrote:
>>>
>>>> On Wed, 2012-03-14 at 11:19 +0300, Dan Carpenter wrote:
>>>>> On Wed, Mar 14, 2012 at 04:07:24PM +0800, Guan Xuetao wrote:
>>>>>> puv3_init_dma() is called ONCE when initializing.
>>>>>> In logical, if request_irq(IRQ_DMAERR, *) failed,
>>>>>> free_irq(IRQ_DMA, *)
>>>>>> is unnecessary, and dma device/driver can keep on working.
>>>>>> The patch could be:
>>>>>>       ret = request_irq(IRQ_DMAERR, dma_err_handler, 0, "DMAERR",
>>>>>> NULL);
>>>>>>       if (ret) {
>>>>>>           printk(KERN_CRIT "Can't register IRQ for DMAERR\n");
>>>>>>  -        free_irq(IRQ_DMA, "DMA");
>>>>>>           return ret;
>>>>>>       }
>>>>>
>>>>> It seems like you should remove the error return as well?
>>>>>
>>>>> regards,
>>>>> dan carpenter
>>>>>
>>>> The error return value will only generate an extra warning message, and
>>>> have no side-effect.
>>>
>>> The whole thing seems a little strange.  I guess your point is that the
>>> call site never looks at the return value?  Wouldn't it be better to
>>> make
>>> there be no return value in that case?  If there is a return value, some
>>> calling context in the future might take that into account and then the
>>> lack of a free_irq would be a memory leak.  Also if the first
>>> request_irq
>>> can never fail, perhaps that should be made explicit by not testing the
>>> return value?
>>>
>>> julia
>> This function is an init_call, not a probe function, and it is only
>> called ONCE.
>> The dma device here has two interrupts, one IRQ_DMA, another IRQ_DMAERR.
>> And the device could work without IRQ_DMAERR.
>> The return value should indicate whether there is something wrong during
>> initialization, so the function needs return errno when any request_irq
>> is failed.
>> For the first request_irq, some code has prepared its resources before
>> this call, so I suppose it successful. However, the return value must be
>> tested.
> 
> OK, thank you for the explanation. I will change the patch.
> 

hi Julia,
would you mind to add the explaination to the code ? there is a good chance
that someone will find the same problem again.

re,
 wh

WARNING: multiple messages have this Message-ID (diff)
From: walter harms <wharms@bfs.de>
To: Julia Lawall <julia.lawall@lip6.fr>
Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>,
	Dan Carpenter <dan.carpenter@oracle.com>,
	kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compatible
Date: Thu, 15 Mar 2012 09:07:04 +0100	[thread overview]
Message-ID: <4F61A328.8050302@bfs.de> (raw)
In-Reply-To: <alpine.DEB.2.02.1203150710050.1981@localhost6.localdomain6>



Am 15.03.2012 07:10, schrieb Julia Lawall:
> 
> 
> On Thu, 15 Mar 2012, Guan Xuetao wrote:
> 
>> On Wed, 2012-03-14 at 10:23 +0100, Julia Lawall wrote:
>>>
>>> On Wed, 14 Mar 2012, Guan Xuetao wrote:
>>>
>>>> On Wed, 2012-03-14 at 11:19 +0300, Dan Carpenter wrote:
>>>>> On Wed, Mar 14, 2012 at 04:07:24PM +0800, Guan Xuetao wrote:
>>>>>> puv3_init_dma() is called ONCE when initializing.
>>>>>> In logical, if request_irq(IRQ_DMAERR, *) failed,
>>>>>> free_irq(IRQ_DMA, *)
>>>>>> is unnecessary, and dma device/driver can keep on working.
>>>>>> The patch could be:
>>>>>>       ret = request_irq(IRQ_DMAERR, dma_err_handler, 0, "DMAERR",
>>>>>> NULL);
>>>>>>       if (ret) {
>>>>>>           printk(KERN_CRIT "Can't register IRQ for DMAERR\n");
>>>>>>  -        free_irq(IRQ_DMA, "DMA");
>>>>>>           return ret;
>>>>>>       }
>>>>>
>>>>> It seems like you should remove the error return as well?
>>>>>
>>>>> regards,
>>>>> dan carpenter
>>>>>
>>>> The error return value will only generate an extra warning message, and
>>>> have no side-effect.
>>>
>>> The whole thing seems a little strange.  I guess your point is that the
>>> call site never looks at the return value?  Wouldn't it be better to
>>> make
>>> there be no return value in that case?  If there is a return value, some
>>> calling context in the future might take that into account and then the
>>> lack of a free_irq would be a memory leak.  Also if the first
>>> request_irq
>>> can never fail, perhaps that should be made explicit by not testing the
>>> return value?
>>>
>>> julia
>> This function is an init_call, not a probe function, and it is only
>> called ONCE.
>> The dma device here has two interrupts, one IRQ_DMA, another IRQ_DMAERR.
>> And the device could work without IRQ_DMAERR.
>> The return value should indicate whether there is something wrong during
>> initialization, so the function needs return errno when any request_irq
>> is failed.
>> For the first request_irq, some code has prepared its resources before
>> this call, so I suppose it successful. However, the return value must be
>> tested.
> 
> OK, thank you for the explanation. I will change the patch.
> 

hi Julia,
would you mind to add the explaination to the code ? there is a good chance
that someone will find the same problem again.

re,
 wh

  reply	other threads:[~2012-03-15  8:07 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-11 19:36 [PATCH 0/7] ensure arguments to request_irq and free_irq are compatible Julia Lawall
2012-03-11 19:36 ` Julia Lawall
2012-03-11 19:36 ` [PATCH 1/7] drivers/video/pvr2fb.c: " Julia Lawall
2012-03-11 19:36   ` Julia Lawall
2012-03-21 18:37   ` Florian Tobias Schandinat
2012-03-11 19:36 ` [PATCH 2/7] drivers/scsi/arm/{cumana_2,eesox,powertec}.c: ensure arguments to request_irq and free_i Julia Lawall
2012-03-11 19:36   ` [PATCH 2/7] drivers/scsi/arm/{cumana_2, eesox, powertec}.c: ensure arguments to request_irq and free_irq are compatible Julia Lawall
2012-03-11 19:36   ` [PATCH 2/7] drivers/scsi/arm/{cumana_2,eesox,powertec}.c: " Julia Lawall
2012-03-11 19:36 ` [PATCH 3/7] drivers/net/irda/{ali-ircc,via-ircc,w83977af-ir}.c: ensure arguments to request_irq and Julia Lawall
2012-03-11 19:36   ` [PATCH 3/7] drivers/net/irda/{ali-ircc,via-ircc,w83977af-ir}.c: ensure arguments to request_irq and free_irq are compatible Julia Lawall
2012-03-11 21:49   ` [PATCH 3/7] drivers/net/irda/{ali-ircc,via-ircc,w83977af-ir}.c: ensure arguments to request_irq and Julia Lawall
2012-03-11 21:49     ` [PATCH 3/7] drivers/net/irda/{ali-ircc,via-ircc,w83977af-ir}.c: ensure arguments to request_irq and free_irq are compatible Julia Lawall
2012-03-11 22:42     ` [PATCH 3/7] drivers/net/irda/{ali-ircc,via-ircc,w83977af-ir}.c: ensure arguments to David Miller
2012-03-11 22:42       ` [PATCH 3/7] drivers/net/irda/{ali-ircc,via-ircc,w83977af-ir}.c: ensure arguments to request_irq and free_irq are compatible David Miller
2012-03-11 19:36 ` [PATCH 4/7] arch/sh/drivers/dma/{dma-g2,dmabrg}.c: ensure arguments to request_irq and free_irq are Julia Lawall
2012-03-11 19:36   ` [PATCH 4/7] arch/sh/drivers/dma/{dma-g2,dmabrg}.c: ensure arguments to request_irq and free_irq are compatible Julia Lawall
2012-03-15  6:14   ` [PATCH 4/7] arch/sh/drivers/dma/{dma-g2,dmabrg}.c: ensure arguments to request_irq and free_irq Paul Mundt
2012-03-15  6:14     ` [PATCH 4/7] arch/sh/drivers/dma/{dma-g2,dmabrg}.c: ensure arguments to request_irq and free_irq are compatible Paul Mundt
2012-03-11 19:36 ` [PATCH 5/7] drivers/atm/eni.c: " Julia Lawall
2012-03-11 19:36   ` Julia Lawall
2012-03-11 20:58   ` Chas Williams (CONTRACTOR)
2012-03-11 20:58     ` Chas Williams (CONTRACTOR)
2012-03-11 21:08     ` Julia Lawall
2012-03-11 21:08       ` Julia Lawall
2012-03-11 21:16     ` Julia Lawall
2012-03-11 21:16       ` Julia Lawall
2012-03-11 22:42       ` David Miller
2012-03-11 22:42         ` David Miller
2012-03-11 19:36 ` [PATCH 6/7] drivers/input/touchscreen/hp680_ts_input.c: ensure arguments to request_irq and free_irq Julia Lawall
2012-03-11 19:36   ` [PATCH 6/7] drivers/input/touchscreen/hp680_ts_input.c: ensure arguments to request_irq and free_irq are compatible Julia Lawall
2012-03-11 23:06   ` [PATCH 6/7] drivers/input/touchscreen/hp680_ts_input.c: ensure arguments to request_irq and free Dmitry Torokhov
2012-03-11 23:06     ` [PATCH 6/7] drivers/input/touchscreen/hp680_ts_input.c: ensure arguments to request_irq and free_irq are compatible Dmitry Torokhov
2012-03-11 19:36 ` [PATCH 7/7] arch/unicore32/kernel/dma.c: " Julia Lawall
2012-03-11 19:36   ` Julia Lawall
2012-03-12  0:58   ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compat Guan Xuetao
2012-03-12  0:58     ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compatible Guan Xuetao
2012-03-12  5:27     ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compat Julia Lawall
2012-03-12  5:27       ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compatible Julia Lawall
2012-03-13  7:10       ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compat Guan Xuetao
2012-03-13  7:10         ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compatible Guan Xuetao
2012-03-13  8:23         ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compat Julia Lawall
2012-03-13  8:23           ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compatible Julia Lawall
2012-03-14  8:07           ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compat Guan Xuetao
2012-03-14  8:07             ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compatible Guan Xuetao
2012-03-14  8:19             ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compat Dan Carpenter
2012-03-14  8:19               ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compatible Dan Carpenter
2012-03-14  8:42               ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compat Guan Xuetao
2012-03-14  8:42                 ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compatible Guan Xuetao
2012-03-14  9:23                 ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compat Julia Lawall
2012-03-14  9:23                   ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compatible Julia Lawall
2012-03-15  1:01                   ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compat Guan Xuetao
2012-03-15  1:01                     ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compatible Guan Xuetao
2012-03-15  6:10                     ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compat Julia Lawall
2012-03-15  6:10                       ` [PATCH 7/7] arch/unicore32/kernel/dma.c: ensure arguments to request_irq and free_irq are compatible Julia Lawall
2012-03-15  8:07                       ` walter harms [this message]
2012-03-15  8:07                         ` walter harms

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=4F61A328.8050302@bfs.de \
    --to=wharms@bfs.de \
    --cc=dan.carpenter@oracle.com \
    --cc=gxt@mprc.pku.edu.cn \
    --cc=julia.lawall@lip6.fr \
    --cc=kernel-janitors@vger.kernel.org \
    --cc=linux-kernel@vger.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.