linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] video: nuc900fb: fix to pass correct device identity to free_irq()
@ 2013-07-12 13:20 Wei Yongjun
  2013-07-15  2:41 ` Wan ZongShun
  2013-07-16  0:07 ` [PATCH] video: nuc900fb: fix to pass correct device identity to request_irq() Wei Yongjun
  0 siblings, 2 replies; 5+ messages in thread
From: Wei Yongjun @ 2013-07-12 13:20 UTC (permalink / raw)
  To: linux-arm-kernel

From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>

free_irq() expects the same device identity that was passed to
corresponding request_irq(), otherwise the IRQ is not freed.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
---
 drivers/video/nuc900fb.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/video/nuc900fb.c b/drivers/video/nuc900fb.c
index 8c527e5..ebd5501 100644
--- a/drivers/video/nuc900fb.c
+++ b/drivers/video/nuc900fb.c
@@ -661,7 +661,7 @@ release_clock:
 	clk_disable(fbi->clk);
 	clk_put(fbi->clk);
 release_irq:
-	free_irq(irq, fbi);
+	free_irq(irq, fbinfo);
 release_regs:
 	iounmap(fbi->io);
 release_mem_region:
@@ -702,7 +702,7 @@ static int nuc900fb_remove(struct platform_device *pdev)
 	iounmap(fbi->io);
 
 	irq = platform_get_irq(pdev, 0);
-	free_irq(irq, fbi);
+	free_irq(irq, fbinfo);
 
 	release_resource(fbi->mem);
 	kfree(fbi->mem);


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] video: nuc900fb: fix to pass correct device identity to free_irq()
  2013-07-12 13:20 [PATCH] video: nuc900fb: fix to pass correct device identity to free_irq() Wei Yongjun
@ 2013-07-15  2:41 ` Wan ZongShun
  2013-07-16  0:07 ` [PATCH] video: nuc900fb: fix to pass correct device identity to request_irq() Wei Yongjun
  1 sibling, 0 replies; 5+ messages in thread
From: Wan ZongShun @ 2013-07-15  2:41 UTC (permalink / raw)
  To: linux-arm-kernel

2013/7/12 Wei Yongjun <weiyj.lk@gmail.com>:
> From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
>
> free_irq() expects the same device identity that was passed to
> corresponding request_irq(), otherwise the IRQ is not freed.
>
> Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>

Sorry, repost.

Hi Yongjun,

(1)  ret = request_irq(irq, nuc900fb_irqhandler, 0,
              pdev->name, fbinfo);

(2)  static irqreturn_t nuc900fb_irqhandler(int irq, void *dev_id)
{
    struct nuc900fb_info *fbi = dev_id;
    void __iomem *regs = fbi->io;

From (1) and (2), we should consider the wrong with passing 'fbinfo'
to 'nuc900fb_irqhandler', it should pass the 'fbi' instead as
following codes:

ret = request_irq(irq, nuc900fb_irqhandler, 0,
              pdev->name, fbi);

So if we fix this wrong,' free_irq(irq, fbi);' would be ok, right?

Thanks!
Vincent Wan.


> ---
>  drivers/video/nuc900fb.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/video/nuc900fb.c b/drivers/video/nuc900fb.c
> index 8c527e5..ebd5501 100644
> --- a/drivers/video/nuc900fb.c
> +++ b/drivers/video/nuc900fb.c
> @@ -661,7 +661,7 @@ release_clock:
>         clk_disable(fbi->clk);
>         clk_put(fbi->clk);
>  release_irq:
> -       free_irq(irq, fbi);
> +       free_irq(irq, fbinfo);
>  release_regs:
>         iounmap(fbi->io);
>  release_mem_region:
> @@ -702,7 +702,7 @@ static int nuc900fb_remove(struct platform_device *pdev)
>         iounmap(fbi->io);
>
>         irq = platform_get_irq(pdev, 0);
> -       free_irq(irq, fbi);
> +       free_irq(irq, fbinfo);
>
>         release_resource(fbi->mem);
>         kfree(fbi->mem);
>



--
Wan ZongShun.
www.mcuos.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] video: nuc900fb: fix to pass correct device identity to request_irq()
  2013-07-12 13:20 [PATCH] video: nuc900fb: fix to pass correct device identity to free_irq() Wei Yongjun
  2013-07-15  2:41 ` Wan ZongShun
@ 2013-07-16  0:07 ` Wei Yongjun
  2013-07-16  1:25   ` Wan ZongShun
  2013-07-26  7:57   ` Tomi Valkeinen
  1 sibling, 2 replies; 5+ messages in thread
From: Wei Yongjun @ 2013-07-16  0:07 UTC (permalink / raw)
  To: linux-arm-kernel

The IRQ handler nuc900fb_irqhandler() use dev_id as a type of
struct nuc900fb_info *, so we should pass fbi as the device
identity to request_irq().

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
---
Was 'video: nuc900fb: fix to pass correct device identity to free_irq()'
---
 drivers/video/nuc900fb.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/video/nuc900fb.c b/drivers/video/nuc900fb.c
index 8c527e5..796e511 100644
--- a/drivers/video/nuc900fb.c
+++ b/drivers/video/nuc900fb.c
@@ -587,8 +587,7 @@ static int nuc900fb_probe(struct platform_device *pdev)
 	fbinfo->flags			= FBINFO_FLAG_DEFAULT;
 	fbinfo->pseudo_palette		= &fbi->pseudo_pal;
 
-	ret = request_irq(irq, nuc900fb_irqhandler, 0,
-			  pdev->name, fbinfo);
+	ret = request_irq(irq, nuc900fb_irqhandler, 0, pdev->name, fbi);
 	if (ret) {
 		dev_err(&pdev->dev, "cannot register irq handler %d -err %d\n",
 			irq, ret);



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] video: nuc900fb: fix to pass correct device identity to request_irq()
  2013-07-16  0:07 ` [PATCH] video: nuc900fb: fix to pass correct device identity to request_irq() Wei Yongjun
@ 2013-07-16  1:25   ` Wan ZongShun
  2013-07-26  7:57   ` Tomi Valkeinen
  1 sibling, 0 replies; 5+ messages in thread
From: Wan ZongShun @ 2013-07-16  1:25 UTC (permalink / raw)
  To: linux-arm-kernel

2013/7/16 Wei Yongjun <weiyj.lk@gmail.com>:
> The IRQ handler nuc900fb_irqhandler() use dev_id as a type of
> struct nuc900fb_info *, so we should pass fbi as the device
> identity to request_irq().
>
> Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>

Acked-by: Wan Zongshun <mcuos.com@gmail.com>

Thanks!
Vincent Wan.

> ---
> Was 'video: nuc900fb: fix to pass correct device identity to free_irq()'
> ---
>  drivers/video/nuc900fb.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/video/nuc900fb.c b/drivers/video/nuc900fb.c
> index 8c527e5..796e511 100644
> --- a/drivers/video/nuc900fb.c
> +++ b/drivers/video/nuc900fb.c
> @@ -587,8 +587,7 @@ static int nuc900fb_probe(struct platform_device *pdev)
>         fbinfo->flags                   = FBINFO_FLAG_DEFAULT;
>         fbinfo->pseudo_palette          = &fbi->pseudo_pal;
>
> -       ret = request_irq(irq, nuc900fb_irqhandler, 0,
> -                         pdev->name, fbinfo);
> +       ret = request_irq(irq, nuc900fb_irqhandler, 0, pdev->name, fbi);
>         if (ret) {
>                 dev_err(&pdev->dev, "cannot register irq handler %d -err %d\n",
>                         irq, ret);
>
>



--
Wan ZongShun.
www.mcuos.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] video: nuc900fb: fix to pass correct device identity to request_irq()
  2013-07-16  0:07 ` [PATCH] video: nuc900fb: fix to pass correct device identity to request_irq() Wei Yongjun
  2013-07-16  1:25   ` Wan ZongShun
@ 2013-07-26  7:57   ` Tomi Valkeinen
  1 sibling, 0 replies; 5+ messages in thread
From: Tomi Valkeinen @ 2013-07-26  7:57 UTC (permalink / raw)
  To: linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 1126 bytes --]

On 16/07/13 03:07, Wei Yongjun wrote:
> The IRQ handler nuc900fb_irqhandler() use dev_id as a type of
> struct nuc900fb_info *, so we should pass fbi as the device
> identity to request_irq().
> 
> Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
> ---
> Was 'video: nuc900fb: fix to pass correct device identity to free_irq()'
> ---
>  drivers/video/nuc900fb.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/video/nuc900fb.c b/drivers/video/nuc900fb.c
> index 8c527e5..796e511 100644
> --- a/drivers/video/nuc900fb.c
> +++ b/drivers/video/nuc900fb.c
> @@ -587,8 +587,7 @@ static int nuc900fb_probe(struct platform_device *pdev)
>  	fbinfo->flags			= FBINFO_FLAG_DEFAULT;
>  	fbinfo->pseudo_palette		= &fbi->pseudo_pal;
>  
> -	ret = request_irq(irq, nuc900fb_irqhandler, 0,
> -			  pdev->name, fbinfo);
> +	ret = request_irq(irq, nuc900fb_irqhandler, 0, pdev->name, fbi);
>  	if (ret) {
>  		dev_err(&pdev->dev, "cannot register irq handler %d -err %d\n",
>  			irq, ret);
> 

Thanks, I've applied this into my 3.11-fixes/fbdev branch.

 Tomi



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 901 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-07-26  7:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-12 13:20 [PATCH] video: nuc900fb: fix to pass correct device identity to free_irq() Wei Yongjun
2013-07-15  2:41 ` Wan ZongShun
2013-07-16  0:07 ` [PATCH] video: nuc900fb: fix to pass correct device identity to request_irq() Wei Yongjun
2013-07-16  1:25   ` Wan ZongShun
2013-07-26  7:57   ` Tomi Valkeinen

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).