spinlock variable protection
Matwey V. Kornilov
matwey.kornilov at gmail.com
Fri Jan 30 07:43:40 EST 2015
Hi,
I have the following code
int ret = 0;
unsigned long irqflags;
spin_lock_irqsave(&lock, irqflags);
//...
ret = hdl->count;
//...
spin_unlock_irqrestore(&lock, irqflags);
return ret;
I would like to be sure, that ret will not be optimized out. I think
compiler can convert the code to equivalent:
unsigned long irqflags;
spin_lock_irqsave(&lock, irqflags);
//...
//...
spin_unlock_irqrestore(&lock, irqflags);
return hdl->count;
But this is not what I want, because I use lock to protect hdl and want
to return hdl->count value as it was in protected section.
More information about the Kernelnewbies
mailing list