[PATCH v2] staging: unisys: uislib: uisqueue.c: rewrite of do_locked_client_insert

Sudip Mukherjee sudipm.mukherjee at gmail.com
Tue Sep 2 18:54:38 UTC 2014


On Tue, Sep 02, 2014 at 11:24:02AM -0700, Greg Kroah-Hartman wrote:
> On Tue, Sep 02, 2014 at 11:46:35PM +0530, Sudip Mukherjee wrote:
> > From: Sudip Mukherjee <sudip at vectorindia.org>
> > 
> > removed unused variables
> > fixed sparse warning of context imbalance in 'do_locked_client_insert'
> >                          different lock contexts for basic block
> > 
> > Signed-off-by: Sudip Mukherjee <sudip at vectorindia.org>
> > ---
> > 
> > v1 of the patch of the patch just fixed the sparse warning.
> > On suggestion of Dan Carpenter v2 is the total rewrite of the function.
> > Two of the function arguments (interruptHandle,channelId) are also not used. Wanted to remove them as well , 
> > but then thought maybe the original author have planned for some use of those variables.
> > 
> >  drivers/staging/unisys/uislib/uisqueue.c | 37 ++++++++------------------------
> >  1 file changed, 9 insertions(+), 28 deletions(-)
> > 
> > diff --git a/drivers/staging/unisys/uislib/uisqueue.c b/drivers/staging/unisys/uislib/uisqueue.c
> > index 63dbe7c..acfa46d 100644
> > --- a/drivers/staging/unisys/uislib/uisqueue.c
> > +++ b/drivers/staging/unisys/uislib/uisqueue.c
> > @@ -78,39 +78,20 @@ do_locked_client_insert(struct uisqueue_info *queueinfo,
> >  			u64 interruptHandle, u8 *channelId)
> >  {
> >  	unsigned long flags;
> > -	unsigned char queueWasEmpty;
> > -	unsigned int locked = 0;
> > -	unsigned int acquired = 0;
> >  	u8 rc = 0;
> >  
> >  	spin_lock_irqsave(lock, flags);
> > -	locked = 1;
> > -
> >  	if (!ULTRA_CHANNEL_CLIENT_ACQUIRE_OS(queueinfo->chan, channelId, NULL))
> > -		goto Away;
> > -
> > -	acquired = 1;
> > -
> > -	queueWasEmpty = visor_signalqueue_empty(queueinfo->chan, whichqueue);
> > -	if (!visor_signal_insert(queueinfo->chan, whichqueue, pSignal))
> > -		goto Away;
> > -	ULTRA_CHANNEL_CLIENT_RELEASE_OS(queueinfo->chan, channelId, NULL);
> > -	acquired = 0;
> > -
> > -	queueinfo->packets_sent++;
> > -
> > -	rc = 1;
> > -Away:
> > -	if (acquired) {
> > -		ULTRA_CHANNEL_CLIENT_RELEASE_OS(queueinfo->chan, channelId,
> > -						NULL);
> > -		acquired = 0;
> > -	}
> > -	if (locked) {
> > -		spin_unlock_irqrestore((spinlock_t *) lock, flags);
> > -		locked = 0;
> > +		goto unlock;
> > +	visor_signalqueue_empty(queueinfo->chan, whichqueue);
> > +	/*visor_signal_insert() only return 0 or 1 */
> 
> Odd comment style (hint, you need a ' ' at the beginning...)
> 
> And why comment this at all?
> 
> thanks,
> 
> greg k-h

comment is actually not required. thought it will be easier to understant the code if the return values can be see.
I will delete the comment and send it again.

thanks
sudip


More information about the devel mailing list