usb: typec: ucsi: Mark dGPUs as DEVICE scope
[platform/kernel/linux-starfive.git] / net / nfc / llcp_sock.c
index 77642d1..645677f 100644 (file)
@@ -99,7 +99,7 @@ static int llcp_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
        }
 
        llcp_sock->dev = dev;
-       llcp_sock->local = nfc_llcp_local_get(local);
+       llcp_sock->local = local;
        llcp_sock->nfc_protocol = llcp_addr.nfc_protocol;
        llcp_sock->service_name_len = min_t(unsigned int,
                                            llcp_addr.service_name_len,
@@ -186,7 +186,7 @@ static int llcp_raw_sock_bind(struct socket *sock, struct sockaddr *addr,
        }
 
        llcp_sock->dev = dev;
-       llcp_sock->local = nfc_llcp_local_get(local);
+       llcp_sock->local = local;
        llcp_sock->nfc_protocol = llcp_addr.nfc_protocol;
 
        nfc_llcp_sock_link(&local->raw_sockets, sk);
@@ -696,22 +696,22 @@ static int llcp_sock_connect(struct socket *sock, struct sockaddr *_addr,
        if (dev->dep_link_up == false) {
                ret = -ENOLINK;
                device_unlock(&dev->dev);
-               goto put_dev;
+               goto sock_llcp_put_local;
        }
        device_unlock(&dev->dev);
 
        if (local->rf_mode == NFC_RF_INITIATOR &&
            addr->target_idx != local->target_idx) {
                ret = -ENOLINK;
-               goto put_dev;
+               goto sock_llcp_put_local;
        }
 
        llcp_sock->dev = dev;
-       llcp_sock->local = nfc_llcp_local_get(local);
+       llcp_sock->local = local;
        llcp_sock->ssap = nfc_llcp_get_local_ssap(local);
        if (llcp_sock->ssap == LLCP_SAP_MAX) {
                ret = -ENOMEM;
-               goto sock_llcp_put_local;
+               goto sock_llcp_nullify;
        }
 
        llcp_sock->reserved_ssap = llcp_sock->ssap;
@@ -757,11 +757,13 @@ sock_unlink:
 sock_llcp_release:
        nfc_llcp_put_ssap(local, llcp_sock->ssap);
 
-sock_llcp_put_local:
-       nfc_llcp_local_put(llcp_sock->local);
+sock_llcp_nullify:
        llcp_sock->local = NULL;
        llcp_sock->dev = NULL;
 
+sock_llcp_put_local:
+       nfc_llcp_local_put(local);
+
 put_dev:
        nfc_put_device(dev);