.. | .. |
---|
99 | 99 | } |
---|
100 | 100 | |
---|
101 | 101 | llcp_sock->dev = dev; |
---|
102 | | - llcp_sock->local = nfc_llcp_local_get(local); |
---|
| 102 | + llcp_sock->local = local; |
---|
103 | 103 | llcp_sock->nfc_protocol = llcp_addr.nfc_protocol; |
---|
104 | 104 | llcp_sock->service_name_len = min_t(unsigned int, |
---|
105 | 105 | llcp_addr.service_name_len, |
---|
.. | .. |
---|
181 | 181 | } |
---|
182 | 182 | |
---|
183 | 183 | llcp_sock->dev = dev; |
---|
184 | | - llcp_sock->local = nfc_llcp_local_get(local); |
---|
| 184 | + llcp_sock->local = local; |
---|
185 | 185 | llcp_sock->nfc_protocol = llcp_addr.nfc_protocol; |
---|
186 | 186 | |
---|
187 | 187 | nfc_llcp_sock_link(&local->raw_sockets, sk); |
---|
.. | .. |
---|
698 | 698 | if (dev->dep_link_up == false) { |
---|
699 | 699 | ret = -ENOLINK; |
---|
700 | 700 | device_unlock(&dev->dev); |
---|
701 | | - goto put_dev; |
---|
| 701 | + goto sock_llcp_put_local; |
---|
702 | 702 | } |
---|
703 | 703 | device_unlock(&dev->dev); |
---|
704 | 704 | |
---|
705 | 705 | if (local->rf_mode == NFC_RF_INITIATOR && |
---|
706 | 706 | addr->target_idx != local->target_idx) { |
---|
707 | 707 | ret = -ENOLINK; |
---|
708 | | - goto put_dev; |
---|
| 708 | + goto sock_llcp_put_local; |
---|
709 | 709 | } |
---|
710 | 710 | |
---|
711 | 711 | llcp_sock->dev = dev; |
---|
712 | | - llcp_sock->local = nfc_llcp_local_get(local); |
---|
| 712 | + llcp_sock->local = local; |
---|
713 | 713 | llcp_sock->ssap = nfc_llcp_get_local_ssap(local); |
---|
714 | 714 | if (llcp_sock->ssap == LLCP_SAP_MAX) { |
---|
715 | | - nfc_llcp_local_put(llcp_sock->local); |
---|
716 | | - llcp_sock->local = NULL; |
---|
717 | 715 | ret = -ENOMEM; |
---|
718 | | - goto put_dev; |
---|
| 716 | + goto sock_llcp_nullify; |
---|
719 | 717 | } |
---|
720 | 718 | |
---|
721 | 719 | llcp_sock->reserved_ssap = llcp_sock->ssap; |
---|
.. | .. |
---|
760 | 758 | |
---|
761 | 759 | sock_llcp_release: |
---|
762 | 760 | nfc_llcp_put_ssap(local, llcp_sock->ssap); |
---|
763 | | - nfc_llcp_local_put(llcp_sock->local); |
---|
| 761 | + |
---|
| 762 | +sock_llcp_nullify: |
---|
764 | 763 | llcp_sock->local = NULL; |
---|
| 764 | + llcp_sock->dev = NULL; |
---|
| 765 | + |
---|
| 766 | +sock_llcp_put_local: |
---|
| 767 | + nfc_llcp_local_put(local); |
---|
765 | 768 | |
---|
766 | 769 | put_dev: |
---|
767 | 770 | nfc_put_device(dev); |
---|