All of lore.kernel.org
 help / color / mirror / Atom feed
* [bug report] ARM: pxa: add U2D controller and ULPI driver for pxa3xx
@ 2016-12-08 22:11 Dan Carpenter
  0 siblings, 0 replies; only message in thread
From: Dan Carpenter @ 2016-12-08 22:11 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Igor Grinberg,

The patch 69f22be7b106: "ARM: pxa: add U2D controller and ULPI driver
for pxa3xx" from Jul 27, 2010, leads to the following static checker
warning:

	arch/arm/mach-pxa/pxa3xx-ulpi.c:336 pxa3xx_u2d_probe()
	warn: did you mean to pass the address of 'u2d'

arch/arm/mach-pxa/pxa3xx-ulpi.c
   283  static int pxa3xx_u2d_probe(struct platform_device *pdev)
   284  {
   285          struct pxa3xx_u2d_platform_data *pdata = pdev->dev.platform_data;
   286          struct resource *r;
   287          int err;
   288  
   289          u2d = kzalloc(sizeof(struct pxa3xx_u2d_ulpi), GFP_KERNEL);

u2d is a file scope variable.

   290          if (!u2d) {
   291                  dev_err(&pdev->dev, "failed to allocate memory\n");
   292                  return -ENOMEM;
   293          }
   294  
   295          u2d->clk = clk_get(&pdev->dev, NULL);
   296          if (IS_ERR(u2d->clk)) {
   297                  dev_err(&pdev->dev, "failed to get u2d clock\n");
   298                  err = PTR_ERR(u2d->clk);
   299                  goto err_free_mem;
   300          }
   301  
   302          r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
   303          if (!r) {
   304                  dev_err(&pdev->dev, "no IO memory resource defined\n");
   305                  err = -ENODEV;
   306                  goto err_put_clk;
   307          }
   308  
   309          r = request_mem_region(r->start, resource_size(r), pdev->name);
   310          if (!r) {
   311                  dev_err(&pdev->dev, "failed to request memory resource\n");
   312                  err = -EBUSY;
   313                  goto err_put_clk;
   314          }
   315  
   316          u2d->mmio_base = ioremap(r->start, resource_size(r));
   317          if (!u2d->mmio_base) {
   318                  dev_err(&pdev->dev, "ioremap() failed\n");
   319                  err = -ENODEV;
   320                  goto err_free_res;
   321          }
   322  
   323          if (pdata->init) {
   324                  err = pdata->init(&pdev->dev);
   325                  if (err)
   326                          goto err_free_io;
   327          }
   328  
   329          /* Only PXA310 U2D has OTG functionality */
   330          if (cpu_is_pxa310()) {
   331                  err = pxa310_otg_init(pdata);
   332                  if (err)
   333                          goto err_free_plat;
   334          }
   335  
   336          platform_set_drvdata(pdev, &u2d);

We almost certainly wanted to pass u2d here.  The only reason this works
is because we use the file scope global instead of drvdata. 

   337  
   338          return 0;
   339  
   340  err_free_plat:
   341          if (pdata->exit)
   342                  pdata->exit(&pdev->dev);
   343  err_free_io:
   344          iounmap(u2d->mmio_base);
   345  err_free_res:
   346          release_mem_region(r->start, resource_size(r));
   347  err_put_clk:
   348          clk_put(u2d->clk);
   349  err_free_mem:
   350          kfree(u2d);
   351          return err;
   352  }

regards,
dan carpenter

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2016-12-08 22:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-08 22:11 [bug report] ARM: pxa: add U2D controller and ULPI driver for pxa3xx Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.