# Re: \[PATCH v4 0/2\] make sigaltstack() compatible with swapcontext()

- From: Stas Sergeev \<hidden\>
- Date: 2016-03-06 20:27:46 
- List: linux-api
- Page: https://ratatoskr.run/linux-api/2016/03/4702459
- Thread: https://ratatoskr.run/linux-api/2016/02/4697311/t.md

```text
06.03.2016 23:02, Szabolcs Nagy пишет:
> * Stas Sergeev [ref] [2016-03-01 00:29:03 +0300]:
>> The following patches make it possible to use swapcontext()
>> in a sighandler that works on sigaltstack.
> i don't think that's possible, the (obsolete) userspace
> *context functions cannot operate on kernel provided
> ucontext_t structs,
It doesn't have to.
It does the normal getcontext()/swapcontext() sequences,
as if it would be switching from any casual code place.
Kernel-provided context structs are completely irrelevant.
For more details please see the test-case I posted in that patch series.
It shows what can be done and how.

>   so they are not usable in signal
> handlers.
Please note the fact that swapcontext() also replaces the
signal mask as part of the context switching. This is a very
strong hint that it was intended to work with signal handlers.
And in fact it perfectly does.
What I want is only to make it friendly to sigaltstack.
I am not making it friendly to signal handlers in general,
because it already is.

> at least not on most target archs.
>
> so i don't understand how the tests can work portably.
If you apply my patch series, you can immediately test
it on any arch you want, thanks to the test-case my patch
adds to the kernel. Please let me know on what arch it fails.
```
