]> git.ozlabs.org Git - ccan/blobdiff - ccan/altstack/altstack.c
htable/htable_type: avoid warning about an unused argument
[ccan] / ccan / altstack / altstack.c
index 67f457bce3b90dd6cdf406b33e0ec4ffd8de0834..63512931f8955a7efe34b41f52df2696246701fd 100644 (file)
@@ -92,7 +92,7 @@ int altstack(rlim_t max, void *(*fn)(void *), void *arg, void **out)
        undo++;
 
        if (setjmp(jmp) == 0) {
-               unsigned char sigstk[MINSIGSTKSZ];
+               unsigned char sigstk[SIGSTKSZ];
                stack_t ss = { .ss_sp = sigstk, .ss_size = sizeof(sigstk) };
                struct sigaction sa = { .sa_handler = segvjmp, .sa_flags = SA_NODEFER|SA_RESETHAND|SA_ONSTACK };
 
@@ -108,9 +108,10 @@ int altstack(rlim_t max, void *(*fn)(void *), void *arg, void **out)
                        "mov %1, %%rsp\n\t"
                        "sub $8, %%rsp\n\t"
                        "push %%r10"
-                       : "=r" (rsp_save_[0]) : "0" (m + max) : "r10");
+                       : "=r" (rsp_save_[0]) : "0" (m + max) : "r10", "memory");
                out_ = fn_(arg_);
-               asm volatile ("pop %rsp");
+               asm volatile ("pop %%rsp"
+                             : : : "memory");
                ret = 0;
                if (out) *out = out_;
        }