aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/kernel/acpi-ext.c2
-rw-r--r--arch/ia64/kernel/acpi.c12
-rw-r--r--arch/ia64/kernel/mca.c10
-rw-r--r--arch/ia64/kernel/smpboot.c2
-rw-r--r--arch/ia64/mm/discontig.c16
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
680static void 680static void
681ia64_mca_modify_comm(const task_t *previous_current) 681ia64_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
712static task_t * 712static struct task_struct *
713ia64_mca_modify_original_stack(struct pt_regs *regs, 713ia64_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);
124extern void start_ap (void); 124extern void start_ap (void);
125extern unsigned long ia64_iobase; 125extern unsigned long ia64_iobase;
126 126
127task_t *task_for_booting_cpu; 127struct 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