diff options
| author | Andreas Herrmann <andreas.herrmann3@amd.com> | 2008-12-16 13:14:05 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-12-16 13:58:03 -0500 |
| commit | 0657d9ebff186dcdb17e582dcb909028775a7707 (patch) | |
| tree | 2430fdf53b2e1e6a888c7380bb7a17d9c5c335e0 | |
| parent | 8c135206c826095c852c16d94a0a74eeaf05c90d (diff) | |
x86: microcode_amd: don't pass superfluous function pointer for get_ucode_data
Impact: cleanup
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
| -rw-r--r-- | arch/x86/kernel/microcode_amd.c | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/arch/x86/kernel/microcode_amd.c b/arch/x86/kernel/microcode_amd.c index 89b386c901f..c7f225c7e48 100644 --- a/arch/x86/kernel/microcode_amd.c +++ b/arch/x86/kernel/microcode_amd.c | |||
| @@ -225,9 +225,14 @@ static void apply_microcode_amd(int cpu) | |||
| 225 | uci->cpu_sig.rev = rev; | 225 | uci->cpu_sig.rev = rev; |
| 226 | } | 226 | } |
| 227 | 227 | ||
| 228 | static int get_ucode_data(void *to, const u8 *from, size_t n) | ||
| 229 | { | ||
| 230 | memcpy(to, from, n); | ||
| 231 | return 0; | ||
| 232 | } | ||
| 233 | |||
| 228 | static void *get_next_ucode(const u8 *buf, unsigned int size, | 234 | static void *get_next_ucode(const u8 *buf, unsigned int size, |
| 229 | int (*get_ucode_data)(void *, const u8 *, size_t), | 235 | unsigned int *mc_size) |
| 230 | unsigned int *mc_size) | ||
| 231 | { | 236 | { |
| 232 | unsigned int total_size; | 237 | unsigned int total_size; |
| 233 | #define UCODE_CONTAINER_SECTION_HDR 8 | 238 | #define UCODE_CONTAINER_SECTION_HDR 8 |
| @@ -268,8 +273,7 @@ static void *get_next_ucode(const u8 *buf, unsigned int size, | |||
| 268 | } | 273 | } |
| 269 | 274 | ||
| 270 | 275 | ||
| 271 | static int install_equiv_cpu_table(const u8 *buf, | 276 | static int install_equiv_cpu_table(const u8 *buf) |
| 272 | int (*get_ucode_data)(void *, const u8 *, size_t)) | ||
| 273 | { | 277 | { |
| 274 | #define UCODE_CONTAINER_HEADER_SIZE 12 | 278 | #define UCODE_CONTAINER_HEADER_SIZE 12 |
| 275 | u8 *container_hdr[UCODE_CONTAINER_HEADER_SIZE]; | 279 | u8 *container_hdr[UCODE_CONTAINER_HEADER_SIZE]; |
| @@ -311,8 +315,7 @@ static void free_equiv_cpu_table(void) | |||
| 311 | } | 315 | } |
| 312 | } | 316 | } |
| 313 | 317 | ||
| 314 | static int generic_load_microcode(int cpu, const u8 *data, size_t size, | 318 | static int generic_load_microcode(int cpu, const u8 *data, size_t size) |
| 315 | int (*get_ucode_data)(void *, const u8 *, size_t)) | ||
| 316 | { | 319 | { |
| 317 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; | 320 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; |
| 318 | const u8 *ucode_ptr = data; | 321 | const u8 *ucode_ptr = data; |
| @@ -322,7 +325,7 @@ static int generic_load_microcode(int cpu, const u8 *data, size_t size, | |||
| 322 | unsigned int leftover; | 325 | unsigned int leftover; |
| 323 | unsigned long offset; | 326 | unsigned long offset; |
| 324 | 327 | ||
| 325 | offset = install_equiv_cpu_table(ucode_ptr, get_ucode_data); | 328 | offset = install_equiv_cpu_table(ucode_ptr); |
| 326 | if (!offset) { | 329 | if (!offset) { |
| 327 | printk(KERN_ERR "microcode: installing equivalent cpu table failed\n"); | 330 | printk(KERN_ERR "microcode: installing equivalent cpu table failed\n"); |
| 328 | return -EINVAL; | 331 | return -EINVAL; |
| @@ -335,8 +338,7 @@ static int generic_load_microcode(int cpu, const u8 *data, size_t size, | |||
| 335 | unsigned int uninitialized_var(mc_size); | 338 | unsigned int uninitialized_var(mc_size); |
| 336 | struct microcode_header_amd *mc_header; | 339 | struct microcode_header_amd *mc_header; |
| 337 | 340 | ||
| 338 | mc = get_next_ucode(ucode_ptr, leftover, get_ucode_data, | 341 | mc = get_next_ucode(ucode_ptr, leftover, &mc_size); |
| 339 | &mc_size); | ||
| 340 | if (!mc) | 342 | if (!mc) |
| 341 | break; | 343 | break; |
| 342 | 344 | ||
| @@ -370,12 +372,6 @@ static int generic_load_microcode(int cpu, const u8 *data, size_t size, | |||
| 370 | return (int)leftover; | 372 | return (int)leftover; |
| 371 | } | 373 | } |
| 372 | 374 | ||
| 373 | static int get_ucode_fw(void *to, const u8 *from, size_t n) | ||
| 374 | { | ||
| 375 | memcpy(to, from, n); | ||
| 376 | return 0; | ||
| 377 | } | ||
| 378 | |||
| 379 | static int request_microcode_fw(int cpu, struct device *device) | 375 | static int request_microcode_fw(int cpu, struct device *device) |
| 380 | { | 376 | { |
| 381 | const char *fw_name = "amd-ucode/microcode_amd.bin"; | 377 | const char *fw_name = "amd-ucode/microcode_amd.bin"; |
| @@ -392,8 +388,7 @@ static int request_microcode_fw(int cpu, struct device *device) | |||
| 392 | return ret; | 388 | return ret; |
| 393 | } | 389 | } |
| 394 | 390 | ||
| 395 | ret = generic_load_microcode(cpu, firmware->data, firmware->size, | 391 | ret = generic_load_microcode(cpu, firmware->data, firmware->size); |
| 396 | &get_ucode_fw); | ||
| 397 | 392 | ||
| 398 | release_firmware(firmware); | 393 | release_firmware(firmware); |
| 399 | 394 | ||
