p2p: Fix returned error code in p2p_listen
authorWiktor Lawski <wiktor.lawski@tieto.com>
Mon, 10 Sep 2012 07:41:25 +0000 (09:41 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Mon, 10 Sep 2012 08:54:23 +0000 (10:54 +0200)
In the previous version that function always returned 0 because of logical
error. Now when all bindings fail it will return -1.

plugins/p2p.c

index 97db657..7c73bab 100644 (file)
@@ -272,13 +272,14 @@ static int p2p_bind(struct near_p2p_driver *driver, uint32_t adapter_idx,
 
 static int p2p_listen(uint32_t adapter_idx, near_device_io_cb cb)
 {
-       int err = 0;
+       int err = -1;
        GSList *list;
 
        for (list = driver_list; list != NULL; list = list->next) {
                struct near_p2p_driver *driver = list->data;
 
-               err &= p2p_bind(driver, adapter_idx, cb);
+               if (p2p_bind(driver, adapter_idx, cb) == 0)
+                       err = 0;
        }
 
        return err;