Message ID | 3764323.LdZbgzYxeM@diego (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 2015?04?20? 07:00, Heiko Stübner wrote: > platform_get_irq() can return negative error values and we already test for > these. Therefore the variable holding this value should be signed to not > loose possible error values. > > Reported-by: David Binderman <dcb314@hotmail.com> > Signed-off-by: Heiko Stuebner <heiko@sntech.de> > Reviewed-By: Daniel Kurtz <djkurtz@chromium.org> > --- > changed since v1: > - instead of making irq in struct vop signed use a > separate local irq int in vop_bind as suggested by Daniel Kurtz > > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > index ccb0ce0..0e539d8 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > @@ -1409,7 +1409,7 @@ static int vop_bind(struct device *dev, struct device *master, void *data) > struct vop *vop; > struct resource *res; > size_t alloc_size; > - int ret; > + int ret, irq; > > of_id = of_match_device(vop_driver_dt_match, dev); > vop_data = of_id->data; > @@ -1445,11 +1445,12 @@ static int vop_bind(struct device *dev, struct device *master, void *data) > return ret; > } > > - vop->irq = platform_get_irq(pdev, 0); > - if (vop->irq < 0) { > + irq = platform_get_irq(pdev, 0); > + if (irq < 0) { > dev_err(dev, "cannot find irq for vop\n"); > - return vop->irq; > + return irq; > } > + vop->irq = (unsigned int)irq; > > spin_lock_init(&vop->reg_lock); > spin_lock_init(&vop->irq_lock); Thanks for fix, I have sent the Pull request.:-)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index ccb0ce0..0e539d8 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -1409,7 +1409,7 @@ static int vop_bind(struct device *dev, struct device *master, void *data) struct vop *vop; struct resource *res; size_t alloc_size; - int ret; + int ret, irq; of_id = of_match_device(vop_driver_dt_match, dev); vop_data = of_id->data; @@ -1445,11 +1445,12 @@ static int vop_bind(struct device *dev, struct device *master, void *data) return ret; } - vop->irq = platform_get_irq(pdev, 0); - if (vop->irq < 0) { + irq = platform_get_irq(pdev, 0); + if (irq < 0) { dev_err(dev, "cannot find irq for vop\n"); - return vop->irq; + return irq; } + vop->irq = (unsigned int)irq; spin_lock_init(&vop->reg_lock); spin_lock_init(&vop->irq_lock);