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

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

 



On 2015/05/20, 1:42 PM, "Dan Carpenter" <dan.carpenter@xxxxxxxxxx> wrote:

>In Smatch, it the equivalent warning is turned off by default because
>there are too many false positives, but you can enable it with the
>--spammy flag.
>
>kchecker --spammy drivers/staging/lustre/lustre/ptlrpc/nrs.c
>
>drivers/staging/lustre/lustre/ptlrpc/nrs.c:512 nrs_resource_put_safe()
>warn: 'spin_lock:&nrs->nrs_lock' is sometimes locked here and sometimes
>unlocked.

Would this be happier with something like:

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

		if (nrs == NULL) {
			nrs = pols[i]->pol_nrs;
			if (likely(nrs != NULL)) /* make sparse happy */
				spin_lock(&nrs->nrs_lock);
		}
		nrs_policy_put_locked(pols[i]);
	}

	if (nrs != NULL)
	spin_unlock(&nrs->nrs_lock);

so that the "if" conditions are the same?  The code definitely doesn't
have a bug, because the lock is only locked once when nrs is first set,
and only unlocked if it is set.  Or is there a comment to put there that
will quiet the static checker?


Cheers, Andreas
-- 
Andreas Dilger

Lustre Software Architect
Intel High Performance Data Division


_______________________________________________
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