Messages in this thread | | | Subject | Re: [PATCH 5/5] imx-drm: ipu-dp: Adjust the maximum number of flows | From | Philipp Zabel <> | Date | Fri, 28 Jun 2013 15:53:13 +0200 |
| |
Hi Fabio,
Am Freitag, den 28.06.2013, 00:32 -0300 schrieb Fabio Estevam: > From: Fabio Estevam <fabio.estevam@freescale.com> > > Later in ipu_dp_get() the index of the flow array is calculated by: > flow >> 1 > > So adjust its maximum to IPUV3_NUM_FLOWS << 1. > > Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> > --- > drivers/staging/imx-drm/ipu-v3/ipu-dp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/staging/imx-drm/ipu-v3/ipu-dp.c b/drivers/staging/imx-drm/ipu-v3/ipu-dp.c > index 3bdff6af..ae2c199 100644 > --- a/drivers/staging/imx-drm/ipu-v3/ipu-dp.c > +++ b/drivers/staging/imx-drm/ipu-v3/ipu-dp.c > @@ -282,7 +282,7 @@ struct ipu_dp *ipu_dp_get(struct ipu_soc *ipu, unsigned int flow) > struct ipu_dp_priv *priv = ipu->dp_priv; > struct ipu_dp *dp; > > - if (flow > 5) > + if (flow > IPUV3_NUM_FLOWS << 1)
If (flow == IPUV3_NUM_FLOWS << 1), this will continue and try to access &priv->flow[3] below, which is invalid. How about
+ if ((flow >> 1) >= IPUV3_NUM_FLOWS)
instead?
> return ERR_PTR(-EINVAL); > > if (flow & 1)
regards Philipp
| |