extern int init_bootmem_done;  /* set once bootmem is available */
 extern phys_addr_t memory_limit;
 extern unsigned long klimit;
-
-extern void *alloc_maybe_bootmem(size_t size, gfp_t mask);
 extern void *zalloc_maybe_bootmem(size_t size, gfp_t mask);
 
 extern int powersave_nap;      /* set if nap mode can be used in idle loop */
 
        const u32 *regs;
        struct pci_dn *pdn;
 
-       pdn = alloc_maybe_bootmem(sizeof(*pdn), GFP_KERNEL);
+       pdn = zalloc_maybe_bootmem(sizeof(*pdn), GFP_KERNEL);
        if (pdn == NULL)
                return NULL;
-       memset(pdn, 0, sizeof(*pdn));
        dn->data = pdn;
        pdn->node = dn;
        pdn->phb = phb;
 
 
 #include <asm/system.h>
 
-void * __init_refok alloc_maybe_bootmem(size_t size, gfp_t mask)
-{
-       if (mem_init_done)
-               return kmalloc(size, mask);
-       else
-               return alloc_bootmem(size);
-}
-
 void * __init_refok zalloc_maybe_bootmem(size_t size, gfp_t mask)
 {
        void *p;
 
 
        size = 256;
        config = &private->fake_config[devno][fn];
-       *config = alloc_maybe_bootmem(size, GFP_KERNEL);
+       *config = zalloc_maybe_bootmem(size, GFP_KERNEL);
        if (*config == NULL) {
                printk(KERN_ERR "PCI: "
                       "not enough memory for fake configuration space\n");
 
        size = sizeof(struct celleb_pci_resource);
        res = &private->res[devno][fn];
-       *res = alloc_maybe_bootmem(size, GFP_KERNEL);
+       *res = zalloc_maybe_bootmem(size, GFP_KERNEL);
        if (*res == NULL) {
                printk(KERN_ERR
                       "PCI: not enough memory for resource data space\n");
 static void __init celleb_alloc_private_mem(struct pci_controller *hose)
 {
        hose->private_data =
-               alloc_maybe_bootmem(sizeof(struct celleb_pci_private),
+               zalloc_maybe_bootmem(sizeof(struct celleb_pci_private),
                        GFP_KERNEL);
 }