virtfn->multifunction = 0;
 
        for (i = 0; i < PCI_SRIOV_NUM_BARS; i++) {
-               res = dev->resource + PCI_IOV_RESOURCES + i;
+               res = &dev->resource[i + PCI_IOV_RESOURCES];
                if (!res->parent)
                        continue;
                virtfn->resource[i].name = pci_name(virtfn);
        nres = 0;
        for (i = 0; i < PCI_SRIOV_NUM_BARS; i++) {
                bars |= (1 << (i + PCI_IOV_RESOURCES));
-               res = dev->resource + PCI_IOV_RESOURCES + i;
+               res = &dev->resource[i + PCI_IOV_RESOURCES];
                if (res->parent)
                        nres++;
        }
 
        nres = 0;
        for (i = 0; i < PCI_SRIOV_NUM_BARS; i++) {
-               res = dev->resource + PCI_IOV_RESOURCES + i;
+               res = &dev->resource[i + PCI_IOV_RESOURCES];
                bar64 = __pci_read_base(dev, pci_bar_unknown, res,
                                        pos + PCI_SRIOV_BAR + i * 4);
                if (!res->flags)
 
 failed:
        for (i = 0; i < PCI_SRIOV_NUM_BARS; i++) {
-               res = dev->resource + PCI_IOV_RESOURCES + i;
+               res = &dev->resource[i + PCI_IOV_RESOURCES];
                res->flags = 0;
        }