int drbd_send_protocol(struct drbd_tconn *tconn)
 {
        struct p_protocol *p;
-       int size, cf, rv;
+       int size, cf, err;
 
        size = sizeof(struct p_protocol);
 
         * as that is blocked during handshake */
        p = kmalloc(size, GFP_NOIO);
        if (p == NULL)
-               return 0;
+               return -ENOMEM;
 
        p->protocol      = cpu_to_be32(tconn->net_conf->wire_protocol);
        p->after_sb_0p   = cpu_to_be32(tconn->net_conf->after_sb_0p);
                else {
                        conn_err(tconn, "--dry-run is not supported by peer");
                        kfree(p);
-                       return -1;
+                       return -EOPNOTSUPP;
                }
        }
        p->conn_flags    = cpu_to_be32(cf);
        if (tconn->agreed_pro_version >= 87)
                strcpy(p->integrity_alg, tconn->net_conf->integrity_alg);
 
-       rv = !conn_send_cmd2(tconn, P_PROTOCOL, p->head.payload, size - sizeof(struct p_header));
+       err = conn_send_cmd2(tconn, P_PROTOCOL, p->head.payload, size - sizeof(struct p_header));
        kfree(p);
-       return rv;
+       return err;
 }
 
 int _drbd_send_uuids(struct drbd_conf *mdev, u64 uuid_flags)
 
 
        drbd_thread_start(&tconn->asender);
 
-       if (drbd_send_protocol(tconn) == -1)
+       if (drbd_send_protocol(tconn) == -EOPNOTSUPP)
                return -1;
 
        return !idr_for_each(&tconn->volumes, drbd_connected, tconn);