size_t sz;
        int err;
 
-       if (idev->port_info)
-               return 0;
-
-       idev->port_info_sz = ALIGN(sizeof(*idev->port_info), PAGE_SIZE);
-       idev->port_info = dma_alloc_coherent(ionic->dev, idev->port_info_sz,
-                                            &idev->port_info_pa,
-                                            GFP_KERNEL);
        if (!idev->port_info) {
-               dev_err(ionic->dev, "Failed to allocate port info, aborting\n");
-               return -ENOMEM;
+               idev->port_info_sz = ALIGN(sizeof(*idev->port_info), PAGE_SIZE);
+               idev->port_info = dma_alloc_coherent(ionic->dev,
+                                                    idev->port_info_sz,
+                                                    &idev->port_info_pa,
+                                                    GFP_KERNEL);
+               if (!idev->port_info) {
+                       dev_err(ionic->dev, "Failed to allocate port info\n");
+                       return -ENOMEM;
+               }
        }
 
        sz = min(sizeof(ident->port.config), sizeof(idev->dev_cmd_regs->data));