* contextual attributes
@ 2008-11-17 21:47 Yoann Padioleau
2008-11-17 22:10 ` Johannes Berg
0 siblings, 1 reply; 2+ messages in thread
From: Yoann Padioleau @ 2008-11-17 21:47 UTC (permalink / raw)
To: linux-sparse
Hi,
Is it possible by using the __attribute((context(x,y)) sparse
attribute to enforce statically that all the callers of
certain functions do certain actions such as disabling interrupts ?
I would like an attribute like __assume_disabled_interrupt and
have such programs:
int __assume_disabled_interrupt
startpoint()
{
return 1;
}
int f1ok()
{
spin_lock_irq();
startpoint();
spin_unlock_irq();
}
int f1bad()
{
startpoint();
}
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: contextual attributes
2008-11-17 21:47 contextual attributes Yoann Padioleau
@ 2008-11-17 22:10 ` Johannes Berg
0 siblings, 0 replies; 2+ messages in thread
From: Johannes Berg @ 2008-11-17 22:10 UTC (permalink / raw)
To: Yoann Padioleau; +Cc: linux-sparse
On Mon, 2008-11-17 at 15:47 -0600, Yoann Padioleau wrote:
> Is it possible by using the __attribute((context(x,y)) sparse
> attribute to enforce statically that all the callers of
> certain functions do certain actions such as disabling interrupts ?
In theory yes, but only half my patches got merged so no. If you search
the list you'll find a set of patches from myself that allow you to do
this, see below.
I have asked that those patches that got merged are reverted for the
time being until we can work on a decent implementation, but that hasn't
happen either so the current sparse git tree is fairly broken wrt.
context attributes...
> int __assume_disabled_interrupt
> startpoint()
> {
> return 1;
> }
>
>
> int f1ok()
> {
> spin_lock_irq();
> startpoint();
> spin_unlock_irq();
> }
>
>
> int f1bad()
> {
> startpoint();
> }
You'd have to annotate startpoint() with
__attribute__((context(irqsoff,1,1)))
and spin_lock_irq() with __attribute__((context(irqsoff,0,1))) and 1,0
for unlock, in addition to the regular locks.
[or something like that, the syntax isn't firm in my mind right now]
johannes
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-11-17 22:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-17 21:47 contextual attributes Yoann Padioleau
2008-11-17 22:10 ` Johannes Berg
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.