Message ID | 20220513080529.416245-1-vladimir.zapolskiy@linaro.org |
---|---|
State | Accepted |
Commit | cf295629e3d6da8358a32950a6a96c47f17f1797 |
Headers | show |
Series | media: camss: Allocate camss struct as a managed device resource | expand |
Hey Vladimir, On Fri, 13 May 2022 at 10:05, Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org> wrote: > > The change simplifies driver's probe and remove functions, no functional > change is intended. > > Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org> > --- > The change is supposed to be applied on top of this one: > > https://lore.kernel.org/linux-media/20220512082318.189398-1-vladimir.zapolskiy@linaro.org/ > > drivers/media/platform/qcom/camss/camss.c | 33 +++++++---------------- > 1 file changed, 10 insertions(+), 23 deletions(-) > > diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c > index e90fea28ac88..0f4908fa21e2 100644 > --- a/drivers/media/platform/qcom/camss/camss.c > +++ b/drivers/media/platform/qcom/camss/camss.c > @@ -1751,7 +1751,7 @@ static int camss_probe(struct platform_device *pdev) > struct camss *camss; > int num_subdevs, ret; > > - camss = kzalloc(sizeof(*camss), GFP_KERNEL); > + camss = devm_kzalloc(dev, sizeof(*camss), GFP_KERNEL); > if (!camss) > return -ENOMEM; > > @@ -1795,39 +1795,30 @@ static int camss_probe(struct platform_device *pdev) > camss->csid_num = 5; > camss->vfe_num = 5; > } else { > - ret = -EINVAL; > - goto err_free; > + return -EINVAL; > } > > camss->csiphy = devm_kcalloc(dev, camss->csiphy_num, > sizeof(*camss->csiphy), GFP_KERNEL); > - if (!camss->csiphy) { > - ret = -ENOMEM; > - goto err_free; > - } > + if (!camss->csiphy) > + return -ENOMEM; > > camss->csid = devm_kcalloc(dev, camss->csid_num, sizeof(*camss->csid), > GFP_KERNEL); > - if (!camss->csid) { > - ret = -ENOMEM; > - goto err_free; > - } > + if (!camss->csid) > + return -ENOMEM; > > if (camss->version == CAMSS_8x16 || > camss->version == CAMSS_8x96) { > camss->ispif = devm_kcalloc(dev, 1, sizeof(*camss->ispif), GFP_KERNEL); > - if (!camss->ispif) { > - ret = -ENOMEM; > - goto err_free; > - } > + if (!camss->ispif) > + return -ENOMEM; > } > > camss->vfe = devm_kcalloc(dev, camss->vfe_num, sizeof(*camss->vfe), > GFP_KERNEL); > - if (!camss->vfe) { > - ret = -ENOMEM; > - goto err_free; > - } > + if (!camss->vfe) > + return -ENOMEM; > > v4l2_async_nf_init(&camss->notifier); > > @@ -1909,8 +1900,6 @@ static int camss_probe(struct platform_device *pdev) > v4l2_device_unregister(&camss->v4l2_dev); > err_cleanup: > v4l2_async_nf_cleanup(&camss->notifier); > -err_free: > - kfree(camss); > > return ret; > } > @@ -1929,8 +1918,6 @@ void camss_delete(struct camss *camss) > device_link_del(camss->genpd_link[i]); > dev_pm_domain_detach(camss->genpd[i], true); > } > - > - kfree(camss); > } > > /* > -- > 2.33.0 > I'm having issues applying this patch to upstream/master or upstream-media/master, even when first applying the patch you mentioned above.
Hi Robert, On 5/18/22 21:46, Robert Foss wrote: > Hey Vladimir, > > On Fri, 13 May 2022 at 10:05, Vladimir Zapolskiy > <vladimir.zapolskiy@linaro.org> wrote: >> >> The change simplifies driver's probe and remove functions, no functional >> change is intended. >> >> Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org> >> --- >> The change is supposed to be applied on top of this one: >> >> https://lore.kernel.org/linux-media/20220512082318.189398-1-vladimir.zapolskiy@linaro.org/ >> >> drivers/media/platform/qcom/camss/camss.c | 33 +++++++---------------- >> 1 file changed, 10 insertions(+), 23 deletions(-) >> >> diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c >> index e90fea28ac88..0f4908fa21e2 100644 >> --- a/drivers/media/platform/qcom/camss/camss.c >> +++ b/drivers/media/platform/qcom/camss/camss.c >> @@ -1751,7 +1751,7 @@ static int camss_probe(struct platform_device *pdev) >> struct camss *camss; >> int num_subdevs, ret; >> >> - camss = kzalloc(sizeof(*camss), GFP_KERNEL); >> + camss = devm_kzalloc(dev, sizeof(*camss), GFP_KERNEL); >> if (!camss) >> return -ENOMEM; >> >> @@ -1795,39 +1795,30 @@ static int camss_probe(struct platform_device *pdev) >> camss->csid_num = 5; >> camss->vfe_num = 5; >> } else { >> - ret = -EINVAL; >> - goto err_free; >> + return -EINVAL; >> } >> >> camss->csiphy = devm_kcalloc(dev, camss->csiphy_num, >> sizeof(*camss->csiphy), GFP_KERNEL); >> - if (!camss->csiphy) { >> - ret = -ENOMEM; >> - goto err_free; >> - } >> + if (!camss->csiphy) >> + return -ENOMEM; >> >> camss->csid = devm_kcalloc(dev, camss->csid_num, sizeof(*camss->csid), >> GFP_KERNEL); >> - if (!camss->csid) { >> - ret = -ENOMEM; >> - goto err_free; >> - } >> + if (!camss->csid) >> + return -ENOMEM; >> >> if (camss->version == CAMSS_8x16 || >> camss->version == CAMSS_8x96) { >> camss->ispif = devm_kcalloc(dev, 1, sizeof(*camss->ispif), GFP_KERNEL); >> - if (!camss->ispif) { >> - ret = -ENOMEM; >> - goto err_free; >> - } >> + if (!camss->ispif) >> + return -ENOMEM; >> } >> >> camss->vfe = devm_kcalloc(dev, camss->vfe_num, sizeof(*camss->vfe), >> GFP_KERNEL); >> - if (!camss->vfe) { >> - ret = -ENOMEM; >> - goto err_free; >> - } >> + if (!camss->vfe) >> + return -ENOMEM; >> >> v4l2_async_nf_init(&camss->notifier); >> >> @@ -1909,8 +1900,6 @@ static int camss_probe(struct platform_device *pdev) >> v4l2_device_unregister(&camss->v4l2_dev); >> err_cleanup: >> v4l2_async_nf_cleanup(&camss->notifier); >> -err_free: >> - kfree(camss); >> >> return ret; >> } >> @@ -1929,8 +1918,6 @@ void camss_delete(struct camss *camss) >> device_link_del(camss->genpd_link[i]); >> dev_pm_domain_detach(camss->genpd[i], true); >> } >> - >> - kfree(camss); >> } >> >> /* >> -- >> 2.33.0 >> > > I'm having issues applying this patch to upstream/master or > upstream-media/master, even when first applying the patch you > mentioned above. you are right, there is a minor conflict in the second patch hunk... Please let me know a preferred branch/tag to use as the base, and I'll resend v2 of the change shortly, thank you in advance! -- Best wishes, Vladimir
diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c index e90fea28ac88..0f4908fa21e2 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -1751,7 +1751,7 @@ static int camss_probe(struct platform_device *pdev) struct camss *camss; int num_subdevs, ret; - camss = kzalloc(sizeof(*camss), GFP_KERNEL); + camss = devm_kzalloc(dev, sizeof(*camss), GFP_KERNEL); if (!camss) return -ENOMEM; @@ -1795,39 +1795,30 @@ static int camss_probe(struct platform_device *pdev) camss->csid_num = 5; camss->vfe_num = 5; } else { - ret = -EINVAL; - goto err_free; + return -EINVAL; } camss->csiphy = devm_kcalloc(dev, camss->csiphy_num, sizeof(*camss->csiphy), GFP_KERNEL); - if (!camss->csiphy) { - ret = -ENOMEM; - goto err_free; - } + if (!camss->csiphy) + return -ENOMEM; camss->csid = devm_kcalloc(dev, camss->csid_num, sizeof(*camss->csid), GFP_KERNEL); - if (!camss->csid) { - ret = -ENOMEM; - goto err_free; - } + if (!camss->csid) + return -ENOMEM; if (camss->version == CAMSS_8x16 || camss->version == CAMSS_8x96) { camss->ispif = devm_kcalloc(dev, 1, sizeof(*camss->ispif), GFP_KERNEL); - if (!camss->ispif) { - ret = -ENOMEM; - goto err_free; - } + if (!camss->ispif) + return -ENOMEM; } camss->vfe = devm_kcalloc(dev, camss->vfe_num, sizeof(*camss->vfe), GFP_KERNEL); - if (!camss->vfe) { - ret = -ENOMEM; - goto err_free; - } + if (!camss->vfe) + return -ENOMEM; v4l2_async_nf_init(&camss->notifier); @@ -1909,8 +1900,6 @@ static int camss_probe(struct platform_device *pdev) v4l2_device_unregister(&camss->v4l2_dev); err_cleanup: v4l2_async_nf_cleanup(&camss->notifier); -err_free: - kfree(camss); return ret; } @@ -1929,8 +1918,6 @@ void camss_delete(struct camss *camss) device_link_del(camss->genpd_link[i]); dev_pm_domain_detach(camss->genpd[i], true); } - - kfree(camss); } /*
The change simplifies driver's probe and remove functions, no functional change is intended. Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org> --- The change is supposed to be applied on top of this one: https://lore.kernel.org/linux-media/20220512082318.189398-1-vladimir.zapolskiy@linaro.org/ drivers/media/platform/qcom/camss/camss.c | 33 +++++++---------------- 1 file changed, 10 insertions(+), 23 deletions(-)