* [2.6.8] OOPS and SIGSEGV on altivec instruction on PowerPC 7540.
@ 2005-05-13 15:49 Pawel Sikora
2005-05-13 16:03 ` Kumar Gala
0 siblings, 1 reply; 2+ messages in thread
From: Pawel Sikora @ 2005-05-13 15:49 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1395 bytes --]
Hi,
simple runtime altivec detection from userspace causes an oops
on the `vand` instruction. kernel was built *without* CONFIG_ALTIVEC.
i think kernel should return a SIGILL instead of an oops ;-)
Oops: kernel access of bad area, sig: 11 [#65]
NIP: C0008B84 LR: C0007F2C SP: CF373F20 REGS: cf373e70 TRAP: 0300 Not tainted
MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: 00000088, DSISR: 40000000
TASK = c81e04f0[12983] 'altivec' THREAD: cf372000Last syscall: 174
GPR00: C0007F2C CF373F20 C81E04F0 00000004 00000004 00030001 00000000 0FEE08D0
GPR08: 0000F932 C0007F2C 00009032 C0350000 081E0788 00000000 00000000 100A37D8
GPR16: 100A0000 00000000 100A0000 00000000 10070000 100A37C8 100AEF08 00000000
GPR24: 100A1108 00000000 100A59A8 3002AEF8 3002BB80 3002AE60 0FFEA6FC 00000004
Call trace: [c0007f2c]
processor : 0
cpu : 7450
clock : 700MHz
revision : 2.1 (pvr 8000 0201)
bogomips : 696.32
machine : PowerMac4,4
motherboard : PowerMac4,4 MacRISC2 MacRISC Power Macintosh
detected as : 80 (eMac)
pmac flags : 00000001
L2 cache : 256K unified
memory : 384MB
pmac-generation : NewWorld
--
The only thing necessary for the triumph of evil
is for good men to do nothing.
- Edmund Burke
[-- Attachment #2: altivec.c --]
[-- Type: text/x-csrc, Size: 803 bytes --]
#include <setjmp.h>
#include <signal.h>
static sigjmp_buf jmpbuf;
static volatile sig_atomic_t canjump = 0;
void sigill_handler(int sig)
{
if (!canjump)
{
signal(sig, SIG_DFL);
raise(sig);
}
canjump = 0;
siglongjmp(jmpbuf, 1);
}
int arch_accel()
{
signal(SIGILL, sigill_handler);
if (sigsetjmp(jmpbuf, 1))
{
signal(SIGILL, SIG_DFL);
return 0;
}
canjump = 1;
asm volatile
(
"mtspr 256, %0 \n\t"
"vand %%v0, %%v0, %%v0 \n\t"
:
: "r" (-1)
);
signal(SIGILL, SIG_DFL);
return 1;
}
int main(int argc, char** argv)
{
return arch_accel();
}
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [2.6.8] OOPS and SIGSEGV on altivec instruction on PowerPC 7540.
2005-05-13 15:49 [2.6.8] OOPS and SIGSEGV on altivec instruction on PowerPC 7540 Pawel Sikora
@ 2005-05-13 16:03 ` Kumar Gala
0 siblings, 0 replies; 2+ messages in thread
From: Kumar Gala @ 2005-05-13 16:03 UTC (permalink / raw)
To: Pawel Sikora; +Cc: Linux Kernel list, linuxppc-dev list
This is odd. the 2.6.8 kernel should have the code that causes a SIGILL
if !CONFIG_ALTIVEC. Can you enable CONFIG_KALLSYMS.
- kumar
On May 13, 2005, at 10:49 AM, Pawel Sikora wrote:
> Hi,
>
> simple runtime altivec detection from userspace causes an oops
> on the `vand` instruction. kernel was built *without* CONFIG_ALTIVEC.
> i think kernel should return a SIGILL instead of an oops ;-)
>
> Oops: kernel access of bad area, sig: 11 [#65]
> NIP: C0008B84 LR: C0007F2C SP: CF373F20 REGS: cf373e70 TRAP: 0300 Not
> tainted
> MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
> DAR: 00000088, DSISR: 40000000
> TASK = c81e04f0[12983] 'altivec' THREAD: cf372000Last syscall: 174
> GPR00: C0007F2C CF373F20 C81E04F0 00000004 00000004 00030001 00000000
> 0FEE08D0
> GPR08: 0000F932 C0007F2C 00009032 C0350000 081E0788 00000000 00000000
> 100A37D8
> GPR16: 100A0000 00000000 100A0000 00000000 10070000 100A37C8 100AEF08
> 00000000
> GPR24: 100A1108 00000000 100A59A8 3002AEF8 3002BB80 3002AE60 0FFEA6FC
> 00000004
> Call trace: [c0007f2c]
>
>
>
> processor : 0
> cpu : 7450
> clock : 700MHz
> revision : 2.1 (pvr 8000 0201)
> bogomips : 696.32
> machine : PowerMac4,4
> motherboard : PowerMac4,4 MacRISC2 MacRISC Power Macintosh
> detected as : 80 (eMac)
> pmac flags : 00000001
> L2 cache : 256K unified
> memory : 384MB
> pmac-generation : NewWorld
>
> --
> The only thing necessary for the triumph of evil
> is for good men to do nothing.
> - Edmund Burke
> <altivec.c>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-05-13 16:03 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-05-13 15:49 [2.6.8] OOPS and SIGSEGV on altivec instruction on PowerPC 7540 Pawel Sikora
2005-05-13 16:03 ` Kumar Gala
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®