diff options
Diffstat (limited to 'arch/ppc/kernel/align.c')
-rw-r--r-- | arch/ppc/kernel/align.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/ppc/kernel/align.c b/arch/ppc/kernel/align.c index 79c929475037..40d356c66c41 100644 --- a/arch/ppc/kernel/align.c +++ b/arch/ppc/kernel/align.c | |||
@@ -368,16 +368,24 @@ fix_alignment(struct pt_regs *regs) | |||
368 | 368 | ||
369 | /* Single-precision FP load and store require conversions... */ | 369 | /* Single-precision FP load and store require conversions... */ |
370 | case LD+F+S: | 370 | case LD+F+S: |
371 | #ifdef CONFIG_PPC_FPU | ||
371 | preempt_disable(); | 372 | preempt_disable(); |
372 | enable_kernel_fp(); | 373 | enable_kernel_fp(); |
373 | cvt_fd(&data.f, &data.d, ¤t->thread.fpscr); | 374 | cvt_fd(&data.f, &data.d, ¤t->thread.fpscr); |
374 | preempt_enable(); | 375 | preempt_enable(); |
376 | #else | ||
377 | return 0; | ||
378 | #endif | ||
375 | break; | 379 | break; |
376 | case ST+F+S: | 380 | case ST+F+S: |
381 | #ifdef CONFIG_PPC_FPU | ||
377 | preempt_disable(); | 382 | preempt_disable(); |
378 | enable_kernel_fp(); | 383 | enable_kernel_fp(); |
379 | cvt_df(&data.d, &data.f, ¤t->thread.fpscr); | 384 | cvt_df(&data.d, &data.f, ¤t->thread.fpscr); |
380 | preempt_enable(); | 385 | preempt_enable(); |
386 | #else | ||
387 | return 0; | ||
388 | #endif | ||
381 | break; | 389 | break; |
382 | } | 390 | } |
383 | 391 | ||