From: george anzinger <george@mvista.com>
To: irfan_hamid@softhome.net
Cc: linux-kernel@vger.kernel.org
Subject: Re: cli()/sti() clarification
Date: Wed, 17 Jul 2002 23:58:58 -0700 [thread overview]
Message-ID: <3D366732.AFEDDC97@mvista.com> (raw)
In-Reply-To: courier.3D365FDC.0000712F@softhome.net
irfan_hamid@softhome.net wrote:
>
> Hi,
>
> I added two system calls, blockintr() and unblockintr() to give cli()/sti()
> control to userland programs (yes I know its not advisable) but I only want
> to do it as a test. My test program looks like this:
>
> blockintr();
> /* Some long calculations */
> unblockintr();
>
> The problem is that if I press Ctrl+C during the calculation, the program
> terminates. So I checked the _syscallN() and __syscall_return() macros to
> see if they explicitly call sti() before returning to userspace, but they
> dont.
>
> Reading the lkml archives, I found that cli() disables only the interrupts,
> exceptions are allowed, so it makes sense that the SIGINT was delivered, but
> if thats the case, then how come the SIGINT was delivered from the Ctrl+C?
> Doesnt this mean that the SIGINT signal was generated as a result of the
> keyboard interrupt?
>
> I know I am missing something here, would appreciate if someone could point
> me in the right direction.
Return from sys to user space is done by executing a "iret"
instruction. In addition to picking up the return address
and segment it pick up EFLAGS which will contain the
interrupt flag as it was saved when the system call was
made...
>
> Regards,
> Irfan Hamid.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
George Anzinger george@mvista.com
High-res-timers:
http://sourceforge.net/projects/high-res-timers/
Real time sched: http://sourceforge.net/projects/rtsched/
Preemption patch:
http://www.kernel.org/pub/linux/kernel/people/rml
next prev parent reply other threads:[~2002-07-18 6:56 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-18 6:27 cli()/sti() clarification irfan_hamid
2002-07-18 6:58 ` george anzinger [this message]
2002-07-18 9:33 ` Kasper Dupont
2002-07-18 14:52 ` Marco Colombo
-- strict thread matches above, loose matches on Subject: below --
2002-07-22 7:20 irfan_hamid
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3D366732.AFEDDC97@mvista.com \
--to=george@mvista.com \
--cc=irfan_hamid@softhome.net \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.