Get rid of the __call_single_node union and cleanup the API a little to avoid external code relying on the structure layout as much.
Showing the changes to kernel/debug/debug_core.c (1 of 13 files). Show all
Unified · Split
| @@ -225,8 +225,6 @@ NOKPROBE_SYMBOL(kgdb_skipexception); · 224 unmodified lines | |||
| 225 | * Default (weak) implementation for kgdb_roundup_cpus | 225 | * Default (weak) implementation for kgdb_roundup_cpus |
| 226 | */ | 226 | */ |
| 227 | 227 | ||
| 228 | static DEFINE_PER_CPU(call_single_data_t, kgdb_roundup_csd); | ||
| 229 | |||
| 230 | void __weak kgdb_call_nmi_hook(void *ignored) | 228 | void __weak kgdb_call_nmi_hook(void *ignored) |
| 231 | { | 229 | { |
| 232 | /* | 230 | /* |
| @@ -241,6 +239,9 @@ void __weak kgdb_call_nmi_hook(void *ignored) · 8 unmodified lines | |||
| 241 | } | 239 | } |
| 242 | NOKPROBE_SYMBOL(kgdb_call_nmi_hook); | 240 | NOKPROBE_SYMBOL(kgdb_call_nmi_hook); |
| 243 | 241 | ||
| 242 | static DEFINE_PER_CPU(call_single_data_t, kgdb_roundup_csd) = | ||
| 243 | CSD_INIT(kgdb_call_nmi_hook, NULL); | ||
| 244 | |||
| 244 | void __weak kgdb_roundup_cpus(void) | 245 | void __weak kgdb_roundup_cpus(void) |
| 245 | { | 246 | { |
| 246 | call_single_data_t *csd; | 247 | call_single_data_t *csd; |
| @@ -267,7 +268,6 @@ void __weak kgdb_roundup_cpus(void) · 20 unmodified lines | |||
| 267 | continue; | 268 | continue; |
| 268 | kgdb_info[cpu].rounding_up = true; | 269 | kgdb_info[cpu].rounding_up = true; |
| 269 | 270 | ||
| 270 | csd->func = kgdb_call_nmi_hook; | ||
| 271 | ret = smp_call_function_single_async(cpu, csd); | 271 | ret = smp_call_function_single_async(cpu, csd); |
| 272 | if (ret) | 272 | if (ret) |
| 273 | kgdb_info[cpu].rounding_up = false; | 273 | kgdb_info[cpu].rounding_up = false; |