diff options
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/kernel/acpi-ext.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/acpi.c | 12 | ||||
-rw-r--r-- | arch/ia64/kernel/mca.c | 10 | ||||
-rw-r--r-- | arch/ia64/kernel/smpboot.c | 2 | ||||
-rw-r--r-- | arch/ia64/mm/discontig.c | 16 |
5 files changed, 26 insertions, 16 deletions
diff --git a/arch/ia64/kernel/acpi-ext.c b/arch/ia64/kernel/acpi-ext.c index 2a1ef742e223..b7515bc808a8 100644 --- a/arch/ia64/kernel/acpi-ext.c +++ b/arch/ia64/kernel/acpi-ext.c | |||
@@ -50,7 +50,7 @@ static acpi_status hp_ccsr_locate(acpi_handle obj, u64 *base, u64 *length) | |||
50 | memcpy(length, vendor->byte_data + 8, sizeof(*length)); | 50 | memcpy(length, vendor->byte_data + 8, sizeof(*length)); |
51 | 51 | ||
52 | exit: | 52 | exit: |
53 | acpi_os_free(buffer.pointer); | 53 | kfree(buffer.pointer); |
54 | return status; | 54 | return status; |
55 | } | 55 | } |
56 | 56 | ||
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index ccdef199d915..99761b81db44 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -856,7 +856,7 @@ int acpi_map_lsapic(acpi_handle handle, int *pcpu) | |||
856 | obj = buffer.pointer; | 856 | obj = buffer.pointer; |
857 | if (obj->type != ACPI_TYPE_BUFFER || | 857 | if (obj->type != ACPI_TYPE_BUFFER || |
858 | obj->buffer.length < sizeof(*lsapic)) { | 858 | obj->buffer.length < sizeof(*lsapic)) { |
859 | acpi_os_free(buffer.pointer); | 859 | kfree(buffer.pointer); |
860 | return -EINVAL; | 860 | return -EINVAL; |
861 | } | 861 | } |
862 | 862 | ||
@@ -864,13 +864,13 @@ int acpi_map_lsapic(acpi_handle handle, int *pcpu) | |||
864 | 864 | ||
865 | if ((lsapic->header.type != ACPI_MADT_LSAPIC) || | 865 | if ((lsapic->header.type != ACPI_MADT_LSAPIC) || |
866 | (!lsapic->flags.enabled)) { | 866 | (!lsapic->flags.enabled)) { |
867 | acpi_os_free(buffer.pointer); | 867 | kfree(buffer.pointer); |
868 | return -EINVAL; | 868 | return -EINVAL; |
869 | } | 869 | } |
870 | 870 | ||
871 | physid = ((lsapic->id << 8) | (lsapic->eid)); | 871 | physid = ((lsapic->id << 8) | (lsapic->eid)); |
872 | 872 | ||
873 | acpi_os_free(buffer.pointer); | 873 | kfree(buffer.pointer); |
874 | buffer.length = ACPI_ALLOCATE_BUFFER; | 874 | buffer.length = ACPI_ALLOCATE_BUFFER; |
875 | buffer.pointer = NULL; | 875 | buffer.pointer = NULL; |
876 | 876 | ||
@@ -934,20 +934,20 @@ acpi_map_iosapic(acpi_handle handle, u32 depth, void *context, void **ret) | |||
934 | obj = buffer.pointer; | 934 | obj = buffer.pointer; |
935 | if (obj->type != ACPI_TYPE_BUFFER || | 935 | if (obj->type != ACPI_TYPE_BUFFER || |
936 | obj->buffer.length < sizeof(*iosapic)) { | 936 | obj->buffer.length < sizeof(*iosapic)) { |
937 | acpi_os_free(buffer.pointer); | 937 | kfree(buffer.pointer); |
938 | return AE_OK; | 938 | return AE_OK; |
939 | } | 939 | } |
940 | 940 | ||
941 | iosapic = (struct acpi_table_iosapic *)obj->buffer.pointer; | 941 | iosapic = (struct acpi_table_iosapic *)obj->buffer.pointer; |
942 | 942 | ||
943 | if (iosapic->header.type != ACPI_MADT_IOSAPIC) { | 943 | if (iosapic->header.type != ACPI_MADT_IOSAPIC) { |
944 | acpi_os_free(buffer.pointer); | 944 | kfree(buffer.pointer); |
945 | return AE_OK; | 945 | return AE_OK; |
946 | } | 946 | } |
947 | 947 | ||
948 | gsi_base = iosapic->global_irq_base; | 948 | gsi_base = iosapic->global_irq_base; |
949 | 949 | ||
950 | acpi_os_free(buffer.pointer); | 950 | kfree(buffer.pointer); |
951 | 951 | ||
952 | /* | 952 | /* |
953 | * OK, it's an IOSAPIC MADT entry, look for a _PXM value to tell | 953 | * OK, it's an IOSAPIC MADT entry, look for a _PXM value to tell |
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index eb8e8dc5ac8e..2fbe4536fe18 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -678,7 +678,7 @@ copy_reg(const u64 *fr, u64 fnat, u64 *tr, u64 *tnat) | |||
678 | */ | 678 | */ |
679 | 679 | ||
680 | static void | 680 | static void |
681 | ia64_mca_modify_comm(const task_t *previous_current) | 681 | ia64_mca_modify_comm(const struct task_struct *previous_current) |
682 | { | 682 | { |
683 | char *p, comm[sizeof(current->comm)]; | 683 | char *p, comm[sizeof(current->comm)]; |
684 | if (previous_current->pid) | 684 | if (previous_current->pid) |
@@ -709,7 +709,7 @@ ia64_mca_modify_comm(const task_t *previous_current) | |||
709 | * that we can do backtrace on the MCA/INIT handler code itself. | 709 | * that we can do backtrace on the MCA/INIT handler code itself. |
710 | */ | 710 | */ |
711 | 711 | ||
712 | static task_t * | 712 | static struct task_struct * |
713 | ia64_mca_modify_original_stack(struct pt_regs *regs, | 713 | ia64_mca_modify_original_stack(struct pt_regs *regs, |
714 | const struct switch_stack *sw, | 714 | const struct switch_stack *sw, |
715 | struct ia64_sal_os_state *sos, | 715 | struct ia64_sal_os_state *sos, |
@@ -719,7 +719,7 @@ ia64_mca_modify_original_stack(struct pt_regs *regs, | |||
719 | ia64_va va; | 719 | ia64_va va; |
720 | extern char ia64_leave_kernel[]; /* Need asm address, not function descriptor */ | 720 | extern char ia64_leave_kernel[]; /* Need asm address, not function descriptor */ |
721 | const pal_min_state_area_t *ms = sos->pal_min_state; | 721 | const pal_min_state_area_t *ms = sos->pal_min_state; |
722 | task_t *previous_current; | 722 | struct task_struct *previous_current; |
723 | struct pt_regs *old_regs; | 723 | struct pt_regs *old_regs; |
724 | struct switch_stack *old_sw; | 724 | struct switch_stack *old_sw; |
725 | unsigned size = sizeof(struct pt_regs) + | 725 | unsigned size = sizeof(struct pt_regs) + |
@@ -1023,7 +1023,7 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
1023 | pal_processor_state_info_t *psp = (pal_processor_state_info_t *) | 1023 | pal_processor_state_info_t *psp = (pal_processor_state_info_t *) |
1024 | &sos->proc_state_param; | 1024 | &sos->proc_state_param; |
1025 | int recover, cpu = smp_processor_id(); | 1025 | int recover, cpu = smp_processor_id(); |
1026 | task_t *previous_current; | 1026 | struct task_struct *previous_current; |
1027 | struct ia64_mca_notify_die nd = | 1027 | struct ia64_mca_notify_die nd = |
1028 | { .sos = sos, .monarch_cpu = &monarch_cpu }; | 1028 | { .sos = sos, .monarch_cpu = &monarch_cpu }; |
1029 | 1029 | ||
@@ -1352,7 +1352,7 @@ ia64_init_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
1352 | { | 1352 | { |
1353 | static atomic_t slaves; | 1353 | static atomic_t slaves; |
1354 | static atomic_t monarchs; | 1354 | static atomic_t monarchs; |
1355 | task_t *previous_current; | 1355 | struct task_struct *previous_current; |
1356 | int cpu = smp_processor_id(); | 1356 | int cpu = smp_processor_id(); |
1357 | struct ia64_mca_notify_die nd = | 1357 | struct ia64_mca_notify_die nd = |
1358 | { .sos = sos, .monarch_cpu = &monarch_cpu }; | 1358 | { .sos = sos, .monarch_cpu = &monarch_cpu }; |
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index e1960979be29..6203ed4ec8cf 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -124,7 +124,7 @@ extern void __devinit calibrate_delay (void); | |||
124 | extern void start_ap (void); | 124 | extern void start_ap (void); |
125 | extern unsigned long ia64_iobase; | 125 | extern unsigned long ia64_iobase; |
126 | 126 | ||
127 | task_t *task_for_booting_cpu; | 127 | struct task_struct *task_for_booting_cpu; |
128 | 128 | ||
129 | /* | 129 | /* |
130 | * State for each CPU | 130 | * State for each CPU |
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index 525b082eb661..99bd9e30db96 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c | |||
@@ -313,9 +313,19 @@ static void __meminit scatter_node_data(void) | |||
313 | pg_data_t **dst; | 313 | pg_data_t **dst; |
314 | int node; | 314 | int node; |
315 | 315 | ||
316 | for_each_online_node(node) { | 316 | /* |
317 | dst = LOCAL_DATA_ADDR(pgdat_list[node])->pg_data_ptrs; | 317 | * for_each_online_node() can't be used at here. |
318 | memcpy(dst, pgdat_list, sizeof(pgdat_list)); | 318 | * node_online_map is not set for hot-added nodes at this time, |
319 | * because we are halfway through initialization of the new node's | ||
320 | * structures. If for_each_online_node() is used, a new node's | ||
321 | * pg_data_ptrs will be not initialized. Insted of using it, | ||
322 | * pgdat_list[] is checked. | ||
323 | */ | ||
324 | for_each_node(node) { | ||
325 | if (pgdat_list[node]) { | ||
326 | dst = LOCAL_DATA_ADDR(pgdat_list[node])->pg_data_ptrs; | ||
327 | memcpy(dst, pgdat_list, sizeof(pgdat_list)); | ||
328 | } | ||
319 | } | 329 | } |
320 | } | 330 | } |
321 | 331 | ||