|
@@ -632,13 +632,14 @@ static int __cpuinit iucv_cpu_notify(struct notifier_block *self,
|
|
|
iucv_irq_data[cpu] = kmalloc_node(sizeof(struct iucv_irq_data),
|
|
|
GFP_KERNEL|GFP_DMA, cpu_to_node(cpu));
|
|
|
if (!iucv_irq_data[cpu])
|
|
|
- return NOTIFY_BAD;
|
|
|
+ return notifier_from_errno(-ENOMEM);
|
|
|
+
|
|
|
iucv_param[cpu] = kmalloc_node(sizeof(union iucv_param),
|
|
|
GFP_KERNEL|GFP_DMA, cpu_to_node(cpu));
|
|
|
if (!iucv_param[cpu]) {
|
|
|
kfree(iucv_irq_data[cpu]);
|
|
|
iucv_irq_data[cpu] = NULL;
|
|
|
- return NOTIFY_BAD;
|
|
|
+ return notifier_from_errno(-ENOMEM);
|
|
|
}
|
|
|
iucv_param_irq[cpu] = kmalloc_node(sizeof(union iucv_param),
|
|
|
GFP_KERNEL|GFP_DMA, cpu_to_node(cpu));
|
|
@@ -647,7 +648,7 @@ static int __cpuinit iucv_cpu_notify(struct notifier_block *self,
|
|
|
iucv_param[cpu] = NULL;
|
|
|
kfree(iucv_irq_data[cpu]);
|
|
|
iucv_irq_data[cpu] = NULL;
|
|
|
- return NOTIFY_BAD;
|
|
|
+ return notifier_from_errno(-ENOMEM);
|
|
|
}
|
|
|
break;
|
|
|
case CPU_UP_CANCELED:
|
|
@@ -677,7 +678,7 @@ static int __cpuinit iucv_cpu_notify(struct notifier_block *self,
|
|
|
cpu_clear(cpu, cpumask);
|
|
|
if (cpus_empty(cpumask))
|
|
|
/* Can't offline last IUCV enabled cpu. */
|
|
|
- return NOTIFY_BAD;
|
|
|
+ return notifier_from_errno(-EINVAL);
|
|
|
smp_call_function_single(cpu, iucv_retrieve_cpu, NULL, 1);
|
|
|
if (cpus_empty(iucv_irq_cpumask))
|
|
|
smp_call_function_single(first_cpu(iucv_buffer_cpumask),
|