* SIGIO was being installed with SA_NODEFER, resulting in situations
under heavy network loads where multiple SIGIOs could stack and cause
a stack overflow. This often resulted in the sendsig code in the kernel
generating a SIGILL to the process after being unable to push a new
signal context.
* Removing SA_NODEFER appears to solve the problem.
Reported-by: tuxillo
bzero(&sa, sizeof(sa));
/*sa.sa_mailbox = &mdcpu->gd_mailbox;*/
- sa.sa_flags = SA_NODEFER;
+ sa.sa_flags = 0;
sa.sa_handler = kqueuesig;
sigemptyset(&sa.sa_mask);
sigaction(SIGIO, &sa, NULL);
bzero(&sa, sizeof(sa));
/*sa.sa_mailbox = &mdcpu->gd_mailbox;*/
- sa.sa_flags = SA_NODEFER;
+ sa.sa_flags = 0;
sa.sa_handler = kqueuesig;
sigemptyset(&sa.sa_mask);
sigaction(SIGIO, &sa, NULL);