Message ID | 1436120872-24484-2-git-send-email-robert.jarzmik@free.fr (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Robert, On Sun, 5 Jul 2015, Robert Jarzmik wrote: > From: Robert Jarzmik <robert.jarzmik@intel.com> > > Fix the error path where the video buffer wasn't allocated nor > mapped. In this case, in the driver free path don't try to unmap memory > which was not mapped in the first place. Have I missed your reply to my comments to v1 of this patch? This one seems to be its exact copy? Thanks Guennadi > > Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> > --- > drivers/media/platform/soc_camera/pxa_camera.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/platform/soc_camera/pxa_camera.c b/drivers/media/platform/soc_camera/pxa_camera.c > index 8d6e343..3ca33f0 100644 > --- a/drivers/media/platform/soc_camera/pxa_camera.c > +++ b/drivers/media/platform/soc_camera/pxa_camera.c > @@ -272,8 +272,8 @@ static void free_buffer(struct videobuf_queue *vq, struct pxa_buffer *buf) > * longer in STATE_QUEUED or STATE_ACTIVE > */ > videobuf_waiton(vq, &buf->vb, 0, 0); > - videobuf_dma_unmap(vq->dev, dma); > - videobuf_dma_free(dma); > + if (buf->vb.state == VIDEOBUF_NEEDS_INIT) > + return; > > for (i = 0; i < ARRAY_SIZE(buf->dmas); i++) { > if (buf->dmas[i].sg_cpu) > @@ -283,6 +283,8 @@ static void free_buffer(struct videobuf_queue *vq, struct pxa_buffer *buf) > buf->dmas[i].sg_dma); > buf->dmas[i].sg_cpu = NULL; > } > + videobuf_dma_unmap(vq->dev, dma); > + videobuf_dma_free(dma); > > buf->vb.state = VIDEOBUF_NEEDS_INIT; > } > -- > 2.1.4 > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Guennadi Liakhovetski <g.liakhovetski@gmx.de> writes: > Hi Robert, > > On Sun, 5 Jul 2015, Robert Jarzmik wrote: > >> From: Robert Jarzmik <robert.jarzmik@intel.com> >> >> Fix the error path where the video buffer wasn't allocated nor >> mapped. In this case, in the driver free path don't try to unmap memory >> which was not mapped in the first place. > > Have I missed your reply to my comments to v1 of this patch? This one > seems to be its exact copy? Yeah, that's because I don't have any ... reply from you on v1. At least I don't remember it and in [1] I don't see it. Cheers. -- Robert [1] http://www.spinics.net/lists/linux-media/msg88021.html -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/media/platform/soc_camera/pxa_camera.c b/drivers/media/platform/soc_camera/pxa_camera.c index 8d6e343..3ca33f0 100644 --- a/drivers/media/platform/soc_camera/pxa_camera.c +++ b/drivers/media/platform/soc_camera/pxa_camera.c @@ -272,8 +272,8 @@ static void free_buffer(struct videobuf_queue *vq, struct pxa_buffer *buf) * longer in STATE_QUEUED or STATE_ACTIVE */ videobuf_waiton(vq, &buf->vb, 0, 0); - videobuf_dma_unmap(vq->dev, dma); - videobuf_dma_free(dma); + if (buf->vb.state == VIDEOBUF_NEEDS_INIT) + return; for (i = 0; i < ARRAY_SIZE(buf->dmas); i++) { if (buf->dmas[i].sg_cpu) @@ -283,6 +283,8 @@ static void free_buffer(struct videobuf_queue *vq, struct pxa_buffer *buf) buf->dmas[i].sg_dma); buf->dmas[i].sg_cpu = NULL; } + videobuf_dma_unmap(vq->dev, dma); + videobuf_dma_free(dma); buf->vb.state = VIDEOBUF_NEEDS_INIT; }