staging: unisys: uislib: uisqueue.c: rewrite of do_locked_client_insert
authorSudip Mukherjee <sudip@vectorindia.org>
Wed, 3 Sep 2014 09:29:21 +0000 (14:59 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Sep 2014 20:20:17 +0000 (13:20 -0700)
1) removed unused variables
2) fixed sparse warning of context imbalance in 'do_locked_client_insert'
                         different lock contexts for basic block
3) removed the call to visor_signalqueue_empty() , this function is
   checking whether a signal queue is empty, but the return value
   of the function is not beeing used, so it is safe to remove.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/unisys/uislib/uisqueue.c

index f52bca1..83f8761 100644 (file)
@@ -78,41 +78,18 @@ 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;
-       spin_unlock_irqrestore(lock, flags);
-       locked = 0;
-
-       queueinfo->packets_sent++;
-
-       rc = 1;
-Away:
-       if (acquired) {
-               ULTRA_CHANNEL_CLIENT_RELEASE_OS(queueinfo->chan, channelId,
-                                               NULL);
-               acquired = 0;
+               goto unlock;
+       if (visor_signal_insert(queueinfo->chan, whichqueue, pSignal)) {
+               queueinfo->packets_sent++;
+               rc = 1;
        }
-       if (locked) {
-               spin_unlock_irqrestore((spinlock_t *) lock, flags);
-               locked = 0;
-       }
-
+       ULTRA_CHANNEL_CLIENT_RELEASE_OS(queueinfo->chan, channelId, NULL);
+unlock:
+       spin_unlock_irqrestore((spinlock_t *)lock, flags);
        return rc;
 }