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

Greg Kroah-Hartman gregkh at linuxfoundation.org
Tue Sep 2 18:24:02 UTC 2014


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


More information about the devel mailing list