From mboxrd@z Thu Jan 1 00:00:00 1970 From: matwey.kornilov@gmail.com (Matwey V. Kornilov) Date: Fri, 30 Jan 2015 15:43:40 +0300 Subject: spinlock variable protection Message-ID: To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org 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.