[openib-general] Re: Re: [PATCH] cm refcount race fix
    Michael S. Tsirkin 
    mst at mellanox.co.il
       
    Mon May  8 09:19:47 PDT 2006
    
    
  
Quoting r. Roland Dreier <rdreier at cisco.com>:
> Subject: Re: Re: [PATCH] cm refcount race fix
> 
>  > 	atomic_dec(&obj->refcount);
>  > 	wait_event(&obj->wait, !atomic_read(&obj->refcount))
>  > 	spin_lock_irq(&obj->lock);
>  > 	spin_unlock_irq(&obj->lock);
>  > 	kfree(obj);
> 
> Yeah, that seems to work.  I wonder if there's a cleaner way though --
> this sort of empty locked section is not exactly idiomatic.
We can change refcount from atomic to a simple integer, protected
by lock. And then
wait_event(&obj->wait, ({
		spin_lock_irq(&obj->lock);
		count = obj->refcount;
		spin_unlock_irq(&obj->lock);
		count;
		})
It's a big change though.
-- 
MST
    
    
More information about the general
mailing list