Re: contextual attributes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux