re: staging: most: hdm-dim2: Replace request_irq with devm_request_irq

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Amitoj Kaur Chawla,

The patch 3eced21a5afb: "staging: most: hdm-dim2: Replace request_irq
with devm_request_irq" from Feb 18, 2016, leads to the following
static checker warning:

	drivers/staging/most/hdm-dim2/dim2_hdm.c:841 dim2_probe()
	error: 'dev->netinfo_task' dereferencing possible ERR_PTR()

drivers/staging/most/hdm-dim2/dim2_hdm.c
   737          struct kobject *kobj;
   738  
   739          dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL);
   740          if (!dev)
   741                  return -ENOMEM;
   742  
   743          dev->atx_idx = -1;
   744  
   745          platform_set_drvdata(pdev, dev);
   746  #if defined(ENABLE_HDM_TEST)
   747          test_dev = dev;
   748  #else
   749          res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
   750          dev->io_base = devm_ioremap_resource(&pdev->dev, res);
   751          if (IS_ERR(dev->io_base))
   752                  return PTR_ERR(dev->io_base);
   753  
   754          ret = platform_get_irq(pdev, 0);
   755          if (ret < 0) {
   756                  dev_err(&pdev->dev, "failed to get irq\n");
   757                  return -ENODEV;
   758          }
   759          dev->irq_ahb0 = ret;
   760  
   761          ret = devm_request_irq(&pdev->dev, dev->irq_ahb0, dim2_ahb_isr, 0,
   762                                 "mlb_ahb0", dev);
   763          if (ret) {
   764                  dev_err(&pdev->dev, "failed to request IRQ: %d, err: %d\n",
   765                          dev->irq_ahb0, ret);
   766                  return ret;
   767          }
   768  #endif
   769          init_waitqueue_head(&dev->netinfo_waitq);
   770          dev->deliver_netinfo = 0;
   771          dev->netinfo_task = kthread_run(&deliver_netinfo_thread, (void *)dev,
   772                                          "dim2_netinfo");
   773          if (IS_ERR(dev->netinfo_task))
   774                  ret = PTR_ERR(dev->netinfo_task);

Presumably this should be "return PTR_ERR(dev->netinfo_task);" or do we
need to free something above?

   775  
   776          for (i = 0; i < DMA_CHANNELS; i++) {
   777                  struct most_channel_capability *cap = dev->capabilities + i;
   778                  struct hdm_channel *hdm_ch = dev->hch + i;

regards,
dan carpenter
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel



[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux