@@ -65,6 +65,8 @@ int xen_smp_intr_init(unsigned int cpu)
65
65
char * resched_name , * callfunc_name , * debug_name ;
66
66
67
67
resched_name = kasprintf (GFP_KERNEL , "resched%d" , cpu );
68
+ if (!resched_name )
69
+ goto fail_mem ;
68
70
per_cpu (xen_resched_irq , cpu ).name = resched_name ;
69
71
rc = bind_ipi_to_irqhandler (XEN_RESCHEDULE_VECTOR ,
70
72
cpu ,
@@ -77,6 +79,8 @@ int xen_smp_intr_init(unsigned int cpu)
77
79
per_cpu (xen_resched_irq , cpu ).irq = rc ;
78
80
79
81
callfunc_name = kasprintf (GFP_KERNEL , "callfunc%d" , cpu );
82
+ if (!callfunc_name )
83
+ goto fail_mem ;
80
84
per_cpu (xen_callfunc_irq , cpu ).name = callfunc_name ;
81
85
rc = bind_ipi_to_irqhandler (XEN_CALL_FUNCTION_VECTOR ,
82
86
cpu ,
@@ -90,6 +94,9 @@ int xen_smp_intr_init(unsigned int cpu)
90
94
91
95
if (!xen_fifo_events ) {
92
96
debug_name = kasprintf (GFP_KERNEL , "debug%d" , cpu );
97
+ if (!debug_name )
98
+ goto fail_mem ;
99
+
93
100
per_cpu (xen_debug_irq , cpu ).name = debug_name ;
94
101
rc = bind_virq_to_irqhandler (VIRQ_DEBUG , cpu ,
95
102
xen_debug_interrupt ,
@@ -101,6 +108,9 @@ int xen_smp_intr_init(unsigned int cpu)
101
108
}
102
109
103
110
callfunc_name = kasprintf (GFP_KERNEL , "callfuncsingle%d" , cpu );
111
+ if (!callfunc_name )
112
+ goto fail_mem ;
113
+
104
114
per_cpu (xen_callfuncsingle_irq , cpu ).name = callfunc_name ;
105
115
rc = bind_ipi_to_irqhandler (XEN_CALL_FUNCTION_SINGLE_VECTOR ,
106
116
cpu ,
@@ -114,6 +124,8 @@ int xen_smp_intr_init(unsigned int cpu)
114
124
115
125
return 0 ;
116
126
127
+ fail_mem :
128
+ rc = - ENOMEM ;
117
129
fail :
118
130
xen_smp_intr_free (cpu );
119
131
return rc ;
0 commit comments