[bug report] usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver

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

 



Hello Pawel Laszczak,

The patch d40a169aab24: "usb: cdnsp: cdns3 Add main part of Cadence
USBSSP DRD Driver" from Dec 7, 2020, leads to the following static
checker warning:

	drivers/usb/cdns3/cdnsp-mem.c:1229 cdnsp_mem_init()
	warn: use 'flags' here instead of GFP_XXX?

drivers/usb/cdns3/cdnsp-mem.c
  1206  int cdnsp_mem_init(struct cdnsp_device *pdev, gfp_t flags)
                                                      ^^^^^^^^^^^

  1207  {
  1208          struct device *dev = pdev->dev;
  1209          int ret = -ENOMEM;
  1210          unsigned int val;
  1211          dma_addr_t dma;
  1212          u32 page_size;
  1213          u64 val_64;
  1214  
  1215          /*
  1216           * Use 4K pages, since that's common and the minimum the
  1217           * controller supports
  1218           */
  1219          page_size = 1 << 12;
  1220  
  1221          val = readl(&pdev->op_regs->config_reg);
  1222          val |= ((val & ~MAX_DEVS) | CDNSP_DEV_MAX_SLOTS) | CONFIG_U3E;
  1223          writel(val, &pdev->op_regs->config_reg);
  1224  
  1225          /*
  1226           * Doorbell array must be physically contiguous
  1227           * and 64-byte (cache line) aligned.
  1228           */
  1229          pdev->dcbaa = dma_alloc_coherent(dev, sizeof(*pdev->dcbaa),
  1230                                           &dma, GFP_KERNEL);

There is only one caller for cdnsp_mem_init() and flags is GFP_KERNEL.
It's better to just remove the argument because it's not useful.

  1231          if (!pdev->dcbaa)
  1232                  return -ENOMEM;
  1233  
  1234          memset(pdev->dcbaa, 0, sizeof(*pdev->dcbaa));
  1235          pdev->dcbaa->dma = dma;
  1236  
  1237          cdnsp_write_64(dma, &pdev->op_regs->dcbaa_ptr);
  1238  
  1239          /*
  1240           * Initialize the ring segment pool.  The ring must be a contiguous
  1241           * structure comprised of TRBs. The TRBs must be 16 byte aligned,
  1242           * however, the command ring segment needs 64-byte aligned segments
  1243           * and our use of dma addresses in the trb_address_map radix tree needs
  1244           * TRB_SEGMENT_SIZE alignment, so driver pick the greater alignment
  1245           * need.
  1246           */
  1247          pdev->segment_pool = dma_pool_create("CDNSP ring segments", dev,
  1248                                               TRB_SEGMENT_SIZE, TRB_SEGMENT_SIZE,
  1249                                               page_size);

regards,
dan carpenter



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux