Re: [PATCH 4/4] Staging: lustre: sparse lock warning fix

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

 



On Tue, May 19, 2015 at 12:21:15AM +0300, Dan Carpenter wrote:
> On Mon, May 18, 2015 at 08:34:51PM +0200, Adrian Remonda wrote:
> > Fixed sparse warning: context imbalance in 'nrs_resource_put_safe' -
> > 'different lock contexts for basic block' by releasing the lock on each
> > iteration of the for loop.
> > 
> 
> That changelog doesn't sound correct at all.  That's not a correct
> motivation or explanation.
> 
> I reviewed the patch and it's likely going to cause dead locks. The code
> is trying to take the spinlock for the first pointer in the array and
> release it at the end.  Now it takes the first pointer's spinlock a
> bunch of times (dead lock) and releases it once (will not happen because
> we are already dead).
> 
> 

Hello Dan,

thanks for the comments. The code would end up looking as next, I don't
undertand where the deadlock would be.
I know the older code would work, I just changed it to keep the lock
locked the less time as possible.

        for (i = 0; i < NRS_RES_MAX; i++) {
                if (pols[i] == NULL)
                        continue;

                if (nrs == NULL) {
                        nrs = pols[i]->pol_nrs;
                }
                spin_lock(&nrs->nrs_lock);
                nrs_policy_put_locked(pols[i]);
                spin_unlock(&nrs->nrs_lock);
        }

best regards,
Adrian 
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux