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

Re: [Xen-devel] missing lock in percpu_rwlock? (Was: Re: New Defects reported by Coverity Scan for XenProject)



On 03/02/16 10:45, Ian Campbell wrote:
> On Tue, 2016-02-02 at 20:23 -0800, scan-admin@xxxxxxxxxxxx wrote:
>> * CID 1351223:  Concurrent data access violations  (MISSING_LOCK)
>> /xen/include/xen/spinlock.h: 362 in _percpu_write_unlock()
> Coverity seems to think this is new in 41b0aa569adb..9937763265d,
> presumably due to 
>
> commit f9dd43dddc0a31a4343a58072935c1b5c0cbbee
> Author: Malcolm Crossley <malcolm.crossley@xxxxxxxxxx>
> Date:   Fri Jan 22 16:04:41 2016 +0100
>
>     rwlock: add per-cpu reader-writer lock infrastructure

Expected behaviour.  writer_activating is expected to only be written
under lock, but read without lock.

~Andrew

>
>> _________________________________________________________________________
>> _______________________________
>> *** CID 1351223:  Concurrent data access violations  (MISSING_LOCK)
>> /xen/include/xen/spinlock.h: 362 in _percpu_write_unlock()
>> 356                     percpu_rwlock_t *percpu_rwlock)
>> 357     {
>> 358         /* Validate the correct per_cpudata variable has been
>> provided. */
>> 359         _percpu_rwlock_owner_check(per_cpudata, percpu_rwlock);
>> 360     
>> 361         ASSERT(percpu_rwlock->writer_activating);
>>>>>      CID 1351223:  Concurrent data access violations  (MISSING_LOCK)
>>>>>      Accessing "percpu_rwlock->writer_activating" without holding lock
>> "percpu_rwlock.rwlock". Elsewhere, "percpu_rwlock.writer_activating" is
>> accessed with "percpu_rwlock.rwlock" held 1 out of 2 times (1 of these
>> accesses strongly imply that it is necessary).
>> 362         percpu_rwlock->writer_activating = 0;
>> 363         write_unlock(&percpu_rwlock->rwlock);
>> 364     }
>> 365     
>> 366     #define percpu_rw_is_write_locked(l)        
>> _rw_is_write_locked(&((l)->rwlock))
>> 367     
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.