}
 
        dma->reg_global  = pktdma_get_regs(dma, node, 0, &size);
-       if (!dma->reg_global)
-               return -ENODEV;
+       if (IS_ERR(dma->reg_global))
+               return PTR_ERR(dma->reg_global);
        if (size < sizeof(struct reg_global)) {
                dev_err(kdev->dev, "bad size %pa for global regs\n", &size);
                return -ENODEV;
        }
 
        dma->reg_tx_chan = pktdma_get_regs(dma, node, 1, &size);
-       if (!dma->reg_tx_chan)
-               return -ENODEV;
+       if (IS_ERR(dma->reg_tx_chan))
+               return PTR_ERR(dma->reg_tx_chan);
 
        max_tx_chan = size / sizeof(struct reg_chan);
        dma->reg_rx_chan = pktdma_get_regs(dma, node, 2, &size);
-       if (!dma->reg_rx_chan)
-               return -ENODEV;
+       if (IS_ERR(dma->reg_rx_chan))
+               return PTR_ERR(dma->reg_rx_chan);
 
        max_rx_chan = size / sizeof(struct reg_chan);
        dma->reg_tx_sched = pktdma_get_regs(dma, node, 3, &size);
-       if (!dma->reg_tx_sched)
-               return -ENODEV;
+       if (IS_ERR(dma->reg_tx_sched))
+               return PTR_ERR(dma->reg_tx_sched);
 
        max_tx_sched = size / sizeof(struct reg_tx_sched);
        dma->reg_rx_flow = pktdma_get_regs(dma, node, 4, &size);
-       if (!dma->reg_rx_flow)
-               return -ENODEV;
+       if (IS_ERR(dma->reg_rx_flow))
+               return PTR_ERR(dma->reg_rx_flow);
 
        max_rx_flow = size / sizeof(struct reg_rx_flow);
        dma->rx_priority = DMA_PRIO_DEFAULT;