hold_mem_node = NULL;
                }
 
-               /* If we have prefetchable memory resources copy them and 
-                * fill in the bridge's memory range registers.  Otherwise,
-                * fill in the range registers with values that disable them. */
-               if (p_mem_node) {
-                       memcpy(hold_p_mem_node, p_mem_node, sizeof(struct pci_resource));
-                       p_mem_node->next = NULL;
-
-                       /* set Pre Mem base and Limit registers */
-                       temp_word = p_mem_node->base >> 16;
-                       rc = pci_bus_write_config_word (pci_bus, devfn, PCI_PREF_MEMORY_BASE, temp_word);
-
-                       temp_word = (p_mem_node->base + p_mem_node->length - 1) >> 16;
-                       rc = pci_bus_write_config_word (pci_bus, devfn, PCI_PREF_MEMORY_LIMIT, temp_word);
-               } else {
-                       temp_word = 0xFFFF;
-                       rc = pci_bus_write_config_word (pci_bus, devfn, PCI_PREF_MEMORY_BASE, temp_word);
+               memcpy(hold_p_mem_node, p_mem_node, sizeof(struct pci_resource));
+               p_mem_node->next = NULL;
 
-                       temp_word = 0x0000;
-                       rc = pci_bus_write_config_word (pci_bus, devfn, PCI_PREF_MEMORY_LIMIT, temp_word);
+               /* set Pre Mem base and Limit registers */
+               temp_word = p_mem_node->base >> 16;
+               rc = pci_bus_write_config_word (pci_bus, devfn, PCI_PREF_MEMORY_BASE, temp_word);
 
-                       kfree(hold_p_mem_node);
-                       hold_p_mem_node = NULL;
-               }
+               temp_word = (p_mem_node->base + p_mem_node->length - 1) >> 16;
+               rc = pci_bus_write_config_word (pci_bus, devfn, PCI_PREF_MEMORY_LIMIT, temp_word);
 
                /* Adjust this to compensate for extra adjustment in first loop */
                irqs.barber_pole--;