diff options
| -rw-r--r-- | arch/ia64/sn/pci/pcibr/pcibr_provider.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_provider.c b/arch/ia64/sn/pci/pcibr/pcibr_provider.c index 5698f29d5add..8886a0bc4a11 100644 --- a/arch/ia64/sn/pci/pcibr/pcibr_provider.c +++ b/arch/ia64/sn/pci/pcibr/pcibr_provider.c | |||
| @@ -127,12 +127,11 @@ pcibr_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
| 127 | * Allocate kernel bus soft and copy from prom. | 127 | * Allocate kernel bus soft and copy from prom. |
| 128 | */ | 128 | */ |
| 129 | 129 | ||
| 130 | soft = kmalloc(sizeof(struct pcibus_info), GFP_KERNEL); | 130 | soft = kmemdup(prom_bussoft, sizeof(struct pcibus_info), GFP_KERNEL); |
| 131 | if (!soft) { | 131 | if (!soft) { |
| 132 | return NULL; | 132 | return NULL; |
| 133 | } | 133 | } |
| 134 | 134 | ||
| 135 | memcpy(soft, prom_bussoft, sizeof(struct pcibus_info)); | ||
| 136 | soft->pbi_buscommon.bs_base = (unsigned long) | 135 | soft->pbi_buscommon.bs_base = (unsigned long) |
| 137 | ioremap(REGION_OFFSET(soft->pbi_buscommon.bs_base), | 136 | ioremap(REGION_OFFSET(soft->pbi_buscommon.bs_base), |
| 138 | sizeof(struct pic)); | 137 | sizeof(struct pic)); |
