|
@@ -37,7 +37,6 @@ static void nfc_llcp_socket_release(struct nfc_llcp_local *local)
|
|
struct sock *sk, *parent_sk;
|
|
struct sock *sk, *parent_sk;
|
|
int i;
|
|
int i;
|
|
|
|
|
|
-
|
|
|
|
mutex_lock(&local->socket_lock);
|
|
mutex_lock(&local->socket_lock);
|
|
|
|
|
|
for (i = 0; i < LLCP_MAX_SAP; i++) {
|
|
for (i = 0; i < LLCP_MAX_SAP; i++) {
|
|
@@ -73,7 +72,7 @@ static void nfc_llcp_socket_release(struct nfc_llcp_local *local)
|
|
struct sock *accept_sk;
|
|
struct sock *accept_sk;
|
|
|
|
|
|
list_for_each_entry_safe(lsk, n, &parent->accept_queue,
|
|
list_for_each_entry_safe(lsk, n, &parent->accept_queue,
|
|
- accept_queue) {
|
|
|
|
|
|
+ accept_queue) {
|
|
accept_sk = &lsk->sk;
|
|
accept_sk = &lsk->sk;
|
|
lock_sock(accept_sk);
|
|
lock_sock(accept_sk);
|
|
|
|
|
|
@@ -118,7 +117,7 @@ static void nfc_llcp_clear_sdp(struct nfc_llcp_local *local)
|
|
static void nfc_llcp_timeout_work(struct work_struct *work)
|
|
static void nfc_llcp_timeout_work(struct work_struct *work)
|
|
{
|
|
{
|
|
struct nfc_llcp_local *local = container_of(work, struct nfc_llcp_local,
|
|
struct nfc_llcp_local *local = container_of(work, struct nfc_llcp_local,
|
|
- timeout_work);
|
|
|
|
|
|
+ timeout_work);
|
|
|
|
|
|
nfc_dep_link_down(local->dev);
|
|
nfc_dep_link_down(local->dev);
|
|
}
|
|
}
|
|
@@ -164,7 +163,7 @@ static int nfc_llcp_wks_sap(char *service_name, size_t service_name_len)
|
|
|
|
|
|
num_wks = ARRAY_SIZE(wks);
|
|
num_wks = ARRAY_SIZE(wks);
|
|
|
|
|
|
- for (sap = 0 ; sap < num_wks; sap++) {
|
|
|
|
|
|
+ for (sap = 0; sap < num_wks; sap++) {
|
|
if (wks[sap] == NULL)
|
|
if (wks[sap] == NULL)
|
|
continue;
|
|
continue;
|
|
|
|
|
|
@@ -176,13 +175,13 @@ static int nfc_llcp_wks_sap(char *service_name, size_t service_name_len)
|
|
}
|
|
}
|
|
|
|
|
|
u8 nfc_llcp_get_sdp_ssap(struct nfc_llcp_local *local,
|
|
u8 nfc_llcp_get_sdp_ssap(struct nfc_llcp_local *local,
|
|
- struct nfc_llcp_sock *sock)
|
|
|
|
|
|
+ struct nfc_llcp_sock *sock)
|
|
{
|
|
{
|
|
mutex_lock(&local->sdp_lock);
|
|
mutex_lock(&local->sdp_lock);
|
|
|
|
|
|
if (sock->service_name != NULL && sock->service_name_len > 0) {
|
|
if (sock->service_name != NULL && sock->service_name_len > 0) {
|
|
int ssap = nfc_llcp_wks_sap(sock->service_name,
|
|
int ssap = nfc_llcp_wks_sap(sock->service_name,
|
|
- sock->service_name_len);
|
|
|
|
|
|
+ sock->service_name_len);
|
|
|
|
|
|
if (ssap > 0) {
|
|
if (ssap > 0) {
|
|
pr_debug("WKS %d\n", ssap);
|
|
pr_debug("WKS %d\n", ssap);
|
|
@@ -312,7 +311,7 @@ static int nfc_llcp_build_gb(struct nfc_llcp_local *local)
|
|
|
|
|
|
version = LLCP_VERSION_11;
|
|
version = LLCP_VERSION_11;
|
|
version_tlv = nfc_llcp_build_tlv(LLCP_TLV_VERSION, &version,
|
|
version_tlv = nfc_llcp_build_tlv(LLCP_TLV_VERSION, &version,
|
|
- 1, &version_length);
|
|
|
|
|
|
+ 1, &version_length);
|
|
gb_len += version_length;
|
|
gb_len += version_length;
|
|
|
|
|
|
/* 1500 ms */
|
|
/* 1500 ms */
|
|
@@ -322,7 +321,7 @@ static int nfc_llcp_build_gb(struct nfc_llcp_local *local)
|
|
|
|
|
|
pr_debug("Local wks 0x%lx\n", local->local_wks);
|
|
pr_debug("Local wks 0x%lx\n", local->local_wks);
|
|
wks_tlv = nfc_llcp_build_tlv(LLCP_TLV_WKS, (u8 *)&local->local_wks, 2,
|
|
wks_tlv = nfc_llcp_build_tlv(LLCP_TLV_WKS, (u8 *)&local->local_wks, 2,
|
|
- &wks_length);
|
|
|
|
|
|
+ &wks_length);
|
|
gb_len += wks_length;
|
|
gb_len += wks_length;
|
|
|
|
|
|
gb_len += ARRAY_SIZE(llcp_magic);
|
|
gb_len += ARRAY_SIZE(llcp_magic);
|
|
@@ -367,8 +366,7 @@ int nfc_llcp_set_remote_gb(struct nfc_dev *dev, u8 *gb, u8 gb_len)
|
|
memcpy(local->remote_gb, gb, gb_len);
|
|
memcpy(local->remote_gb, gb, gb_len);
|
|
local->remote_gb_len = gb_len;
|
|
local->remote_gb_len = gb_len;
|
|
|
|
|
|
- if (local->remote_gb == NULL ||
|
|
|
|
- local->remote_gb_len == 0)
|
|
|
|
|
|
+ if (local->remote_gb == NULL || local->remote_gb_len == 0)
|
|
return -ENODEV;
|
|
return -ENODEV;
|
|
|
|
|
|
if (memcmp(local->remote_gb, llcp_magic, 3)) {
|
|
if (memcmp(local->remote_gb, llcp_magic, 3)) {
|
|
@@ -377,26 +375,27 @@ int nfc_llcp_set_remote_gb(struct nfc_dev *dev, u8 *gb, u8 gb_len)
|
|
}
|
|
}
|
|
|
|
|
|
return nfc_llcp_parse_tlv(local,
|
|
return nfc_llcp_parse_tlv(local,
|
|
- &local->remote_gb[3], local->remote_gb_len - 3);
|
|
|
|
|
|
+ &local->remote_gb[3],
|
|
|
|
+ local->remote_gb_len - 3);
|
|
}
|
|
}
|
|
|
|
|
|
static void nfc_llcp_tx_work(struct work_struct *work)
|
|
static void nfc_llcp_tx_work(struct work_struct *work)
|
|
{
|
|
{
|
|
struct nfc_llcp_local *local = container_of(work, struct nfc_llcp_local,
|
|
struct nfc_llcp_local *local = container_of(work, struct nfc_llcp_local,
|
|
- tx_work);
|
|
|
|
|
|
+ tx_work);
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
|
|
|
|
skb = skb_dequeue(&local->tx_queue);
|
|
skb = skb_dequeue(&local->tx_queue);
|
|
if (skb != NULL) {
|
|
if (skb != NULL) {
|
|
pr_debug("Sending pending skb\n");
|
|
pr_debug("Sending pending skb\n");
|
|
nfc_data_exchange(local->dev, local->target_idx,
|
|
nfc_data_exchange(local->dev, local->target_idx,
|
|
- skb, nfc_llcp_recv, local);
|
|
|
|
|
|
+ skb, nfc_llcp_recv, local);
|
|
} else {
|
|
} else {
|
|
nfc_llcp_send_symm(local->dev);
|
|
nfc_llcp_send_symm(local->dev);
|
|
}
|
|
}
|
|
|
|
|
|
mod_timer(&local->link_timer,
|
|
mod_timer(&local->link_timer,
|
|
- jiffies + msecs_to_jiffies(local->remote_lto));
|
|
|
|
|
|
+ jiffies + msecs_to_jiffies(local->remote_lto));
|
|
}
|
|
}
|
|
|
|
|
|
static u8 nfc_llcp_dsap(struct sk_buff *pdu)
|
|
static u8 nfc_llcp_dsap(struct sk_buff *pdu)
|
|
@@ -432,7 +431,7 @@ static void nfc_llcp_set_nrns(struct nfc_llcp_sock *sock, struct sk_buff *pdu)
|
|
}
|
|
}
|
|
|
|
|
|
static struct nfc_llcp_sock *nfc_llcp_sock_get(struct nfc_llcp_local *local,
|
|
static struct nfc_llcp_sock *nfc_llcp_sock_get(struct nfc_llcp_local *local,
|
|
- u8 ssap, u8 dsap)
|
|
|
|
|
|
+ u8 ssap, u8 dsap)
|
|
{
|
|
{
|
|
struct nfc_llcp_sock *sock, *llcp_sock, *n;
|
|
struct nfc_llcp_sock *sock, *llcp_sock, *n;
|
|
|
|
|
|
@@ -456,7 +455,7 @@ static struct nfc_llcp_sock *nfc_llcp_sock_get(struct nfc_llcp_local *local,
|
|
|
|
|
|
list_for_each_entry_safe(llcp_sock, n, &sock->list, list) {
|
|
list_for_each_entry_safe(llcp_sock, n, &sock->list, list) {
|
|
pr_debug("llcp_sock %p sk %p dsap %d\n", llcp_sock,
|
|
pr_debug("llcp_sock %p sk %p dsap %d\n", llcp_sock,
|
|
- &llcp_sock->sk, llcp_sock->dsap);
|
|
|
|
|
|
+ &llcp_sock->sk, llcp_sock->dsap);
|
|
if (llcp_sock->dsap == dsap) {
|
|
if (llcp_sock->dsap == dsap) {
|
|
sock_hold(&llcp_sock->sk);
|
|
sock_hold(&llcp_sock->sk);
|
|
mutex_unlock(&local->socket_lock);
|
|
mutex_unlock(&local->socket_lock);
|
|
@@ -500,7 +499,7 @@ static u8 *nfc_llcp_connect_sn(struct sk_buff *skb, size_t *sn_len)
|
|
}
|
|
}
|
|
|
|
|
|
static void nfc_llcp_recv_connect(struct nfc_llcp_local *local,
|
|
static void nfc_llcp_recv_connect(struct nfc_llcp_local *local,
|
|
- struct sk_buff *skb)
|
|
|
|
|
|
+ struct sk_buff *skb)
|
|
{
|
|
{
|
|
struct sock *new_sk, *parent;
|
|
struct sock *new_sk, *parent;
|
|
struct nfc_llcp_sock *sock, *new_sock;
|
|
struct nfc_llcp_sock *sock, *new_sock;
|
|
@@ -512,7 +511,7 @@ static void nfc_llcp_recv_connect(struct nfc_llcp_local *local,
|
|
pr_debug("%d %d\n", dsap, ssap);
|
|
pr_debug("%d %d\n", dsap, ssap);
|
|
|
|
|
|
nfc_llcp_parse_tlv(local, &skb->data[LLCP_HEADER_SIZE],
|
|
nfc_llcp_parse_tlv(local, &skb->data[LLCP_HEADER_SIZE],
|
|
- skb->len - LLCP_HEADER_SIZE);
|
|
|
|
|
|
+ skb->len - LLCP_HEADER_SIZE);
|
|
|
|
|
|
if (dsap != LLCP_SAP_SDP) {
|
|
if (dsap != LLCP_SAP_SDP) {
|
|
bound_sap = dsap;
|
|
bound_sap = dsap;
|
|
@@ -531,7 +530,7 @@ static void nfc_llcp_recv_connect(struct nfc_llcp_local *local,
|
|
lock_sock(&sock->sk);
|
|
lock_sock(&sock->sk);
|
|
|
|
|
|
if (sock->dsap == LLCP_SAP_SDP &&
|
|
if (sock->dsap == LLCP_SAP_SDP &&
|
|
- sock->sk.sk_state == LLCP_LISTEN)
|
|
|
|
|
|
+ sock->sk.sk_state == LLCP_LISTEN)
|
|
goto enqueue;
|
|
goto enqueue;
|
|
} else {
|
|
} else {
|
|
u8 *sn;
|
|
u8 *sn;
|
|
@@ -547,23 +546,23 @@ static void nfc_llcp_recv_connect(struct nfc_llcp_local *local,
|
|
|
|
|
|
mutex_lock(&local->socket_lock);
|
|
mutex_lock(&local->socket_lock);
|
|
for (bound_sap = 0; bound_sap < LLCP_LOCAL_SAP_OFFSET;
|
|
for (bound_sap = 0; bound_sap < LLCP_LOCAL_SAP_OFFSET;
|
|
- bound_sap++) {
|
|
|
|
|
|
+ bound_sap++) {
|
|
sock = local->sockets[bound_sap];
|
|
sock = local->sockets[bound_sap];
|
|
if (sock == NULL)
|
|
if (sock == NULL)
|
|
continue;
|
|
continue;
|
|
|
|
|
|
if (sock->service_name == NULL ||
|
|
if (sock->service_name == NULL ||
|
|
- sock->service_name_len == 0)
|
|
|
|
|
|
+ sock->service_name_len == 0)
|
|
continue;
|
|
continue;
|
|
|
|
|
|
if (sock->service_name_len != sn_len)
|
|
if (sock->service_name_len != sn_len)
|
|
continue;
|
|
continue;
|
|
|
|
|
|
if (sock->dsap == LLCP_SAP_SDP &&
|
|
if (sock->dsap == LLCP_SAP_SDP &&
|
|
- sock->sk.sk_state == LLCP_LISTEN &&
|
|
|
|
- !memcmp(sn, sock->service_name, sn_len)) {
|
|
|
|
|
|
+ sock->sk.sk_state == LLCP_LISTEN &&
|
|
|
|
+ !memcmp(sn, sock->service_name, sn_len)) {
|
|
pr_debug("Found service name at SAP %d\n",
|
|
pr_debug("Found service name at SAP %d\n",
|
|
- bound_sap);
|
|
|
|
|
|
+ bound_sap);
|
|
sock_hold(&sock->sk);
|
|
sock_hold(&sock->sk);
|
|
mutex_unlock(&local->socket_lock);
|
|
mutex_unlock(&local->socket_lock);
|
|
|
|
|
|
@@ -588,8 +587,7 @@ enqueue:
|
|
goto fail;
|
|
goto fail;
|
|
}
|
|
}
|
|
|
|
|
|
- new_sk = nfc_llcp_sock_alloc(NULL, parent->sk_type,
|
|
|
|
- GFP_ATOMIC);
|
|
|
|
|
|
+ new_sk = nfc_llcp_sock_alloc(NULL, parent->sk_type, GFP_ATOMIC);
|
|
if (new_sk == NULL) {
|
|
if (new_sk == NULL) {
|
|
reason = LLCP_DM_REJ;
|
|
reason = LLCP_DM_REJ;
|
|
release_sock(&sock->sk);
|
|
release_sock(&sock->sk);
|
|
@@ -640,12 +638,12 @@ int nfc_llcp_queue_i_frames(struct nfc_llcp_sock *sock)
|
|
struct nfc_llcp_local *local = sock->local;
|
|
struct nfc_llcp_local *local = sock->local;
|
|
|
|
|
|
pr_debug("Remote ready %d tx queue len %d remote rw %d",
|
|
pr_debug("Remote ready %d tx queue len %d remote rw %d",
|
|
- sock->remote_ready, skb_queue_len(&sock->tx_pending_queue),
|
|
|
|
- local->remote_rw);
|
|
|
|
|
|
+ sock->remote_ready, skb_queue_len(&sock->tx_pending_queue),
|
|
|
|
+ local->remote_rw);
|
|
|
|
|
|
/* Try to queue some I frames for transmission */
|
|
/* Try to queue some I frames for transmission */
|
|
while (sock->remote_ready &&
|
|
while (sock->remote_ready &&
|
|
- skb_queue_len(&sock->tx_pending_queue) < local->remote_rw) {
|
|
|
|
|
|
+ skb_queue_len(&sock->tx_pending_queue) < local->remote_rw) {
|
|
struct sk_buff *pdu, *pending_pdu;
|
|
struct sk_buff *pdu, *pending_pdu;
|
|
|
|
|
|
pdu = skb_dequeue(&sock->tx_queue);
|
|
pdu = skb_dequeue(&sock->tx_queue);
|
|
@@ -666,7 +664,7 @@ int nfc_llcp_queue_i_frames(struct nfc_llcp_sock *sock)
|
|
}
|
|
}
|
|
|
|
|
|
static void nfc_llcp_recv_hdlc(struct nfc_llcp_local *local,
|
|
static void nfc_llcp_recv_hdlc(struct nfc_llcp_local *local,
|
|
- struct sk_buff *skb)
|
|
|
|
|
|
+ struct sk_buff *skb)
|
|
{
|
|
{
|
|
struct nfc_llcp_sock *llcp_sock;
|
|
struct nfc_llcp_sock *llcp_sock;
|
|
struct sock *sk;
|
|
struct sock *sk;
|
|
@@ -724,7 +722,7 @@ static void nfc_llcp_recv_hdlc(struct nfc_llcp_local *local,
|
|
|
|
|
|
if (ptype == LLCP_PDU_RR)
|
|
if (ptype == LLCP_PDU_RR)
|
|
llcp_sock->remote_ready = true;
|
|
llcp_sock->remote_ready = true;
|
|
- else if (ptype == LLCP_PDU_RNR)
|
|
|
|
|
|
+ else if (ptype == LLCP_PDU_RNR)
|
|
llcp_sock->remote_ready = false;
|
|
llcp_sock->remote_ready = false;
|
|
|
|
|
|
if (nfc_llcp_queue_i_frames(llcp_sock) == 0)
|
|
if (nfc_llcp_queue_i_frames(llcp_sock) == 0)
|
|
@@ -735,7 +733,7 @@ static void nfc_llcp_recv_hdlc(struct nfc_llcp_local *local,
|
|
}
|
|
}
|
|
|
|
|
|
static void nfc_llcp_recv_disc(struct nfc_llcp_local *local,
|
|
static void nfc_llcp_recv_disc(struct nfc_llcp_local *local,
|
|
- struct sk_buff *skb)
|
|
|
|
|
|
+ struct sk_buff *skb)
|
|
{
|
|
{
|
|
struct nfc_llcp_sock *llcp_sock;
|
|
struct nfc_llcp_sock *llcp_sock;
|
|
struct sock *sk;
|
|
struct sock *sk;
|
|
@@ -757,7 +755,6 @@ static void nfc_llcp_recv_disc(struct nfc_llcp_local *local,
|
|
nfc_llcp_sock_put(llcp_sock);
|
|
nfc_llcp_sock_put(llcp_sock);
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
if (sk->sk_state == LLCP_CONNECTED) {
|
|
if (sk->sk_state == LLCP_CONNECTED) {
|
|
nfc_put_device(local->dev);
|
|
nfc_put_device(local->dev);
|
|
sk->sk_state = LLCP_CLOSED;
|
|
sk->sk_state = LLCP_CLOSED;
|
|
@@ -770,13 +767,11 @@ static void nfc_llcp_recv_disc(struct nfc_llcp_local *local,
|
|
nfc_llcp_sock_put(llcp_sock);
|
|
nfc_llcp_sock_put(llcp_sock);
|
|
}
|
|
}
|
|
|
|
|
|
-static void nfc_llcp_recv_cc(struct nfc_llcp_local *local,
|
|
|
|
- struct sk_buff *skb)
|
|
|
|
|
|
+static void nfc_llcp_recv_cc(struct nfc_llcp_local *local, struct sk_buff *skb)
|
|
{
|
|
{
|
|
struct nfc_llcp_sock *llcp_sock;
|
|
struct nfc_llcp_sock *llcp_sock;
|
|
u8 dsap, ssap;
|
|
u8 dsap, ssap;
|
|
|
|
|
|
-
|
|
|
|
dsap = nfc_llcp_dsap(skb);
|
|
dsap = nfc_llcp_dsap(skb);
|
|
ssap = nfc_llcp_ssap(skb);
|
|
ssap = nfc_llcp_ssap(skb);
|
|
|
|
|
|
@@ -795,7 +790,7 @@ static void nfc_llcp_recv_cc(struct nfc_llcp_local *local,
|
|
llcp_sock->dsap = ssap;
|
|
llcp_sock->dsap = ssap;
|
|
|
|
|
|
nfc_llcp_parse_tlv(local, &skb->data[LLCP_HEADER_SIZE],
|
|
nfc_llcp_parse_tlv(local, &skb->data[LLCP_HEADER_SIZE],
|
|
- skb->len - LLCP_HEADER_SIZE);
|
|
|
|
|
|
+ skb->len - LLCP_HEADER_SIZE);
|
|
|
|
|
|
nfc_llcp_sock_put(llcp_sock);
|
|
nfc_llcp_sock_put(llcp_sock);
|
|
}
|
|
}
|
|
@@ -803,7 +798,7 @@ static void nfc_llcp_recv_cc(struct nfc_llcp_local *local,
|
|
static void nfc_llcp_rx_work(struct work_struct *work)
|
|
static void nfc_llcp_rx_work(struct work_struct *work)
|
|
{
|
|
{
|
|
struct nfc_llcp_local *local = container_of(work, struct nfc_llcp_local,
|
|
struct nfc_llcp_local *local = container_of(work, struct nfc_llcp_local,
|
|
- rx_work);
|
|
|
|
|
|
+ rx_work);
|
|
u8 dsap, ssap, ptype;
|
|
u8 dsap, ssap, ptype;
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
|
|
|
|
@@ -861,7 +856,7 @@ void nfc_llcp_recv(void *data, struct sk_buff *skb, int err)
|
|
|
|
|
|
pr_debug("Received an LLCP PDU\n");
|
|
pr_debug("Received an LLCP PDU\n");
|
|
if (err < 0) {
|
|
if (err < 0) {
|
|
- pr_err("err %d", err);
|
|
|
|
|
|
+ pr_err("err %d\n", err);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -907,7 +902,7 @@ void nfc_llcp_mac_is_up(struct nfc_dev *dev, u32 target_idx,
|
|
queue_work(local->tx_wq, &local->tx_work);
|
|
queue_work(local->tx_wq, &local->tx_work);
|
|
} else {
|
|
} else {
|
|
mod_timer(&local->link_timer,
|
|
mod_timer(&local->link_timer,
|
|
- jiffies + msecs_to_jiffies(local->remote_lto));
|
|
|
|
|
|
+ jiffies + msecs_to_jiffies(local->remote_lto));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -933,8 +928,10 @@ int nfc_llcp_register_device(struct nfc_dev *ndev)
|
|
skb_queue_head_init(&local->tx_queue);
|
|
skb_queue_head_init(&local->tx_queue);
|
|
INIT_WORK(&local->tx_work, nfc_llcp_tx_work);
|
|
INIT_WORK(&local->tx_work, nfc_llcp_tx_work);
|
|
snprintf(name, sizeof(name), "%s_llcp_tx_wq", dev_name(dev));
|
|
snprintf(name, sizeof(name), "%s_llcp_tx_wq", dev_name(dev));
|
|
- local->tx_wq = alloc_workqueue(name,
|
|
|
|
- WQ_NON_REENTRANT | WQ_UNBOUND | WQ_MEM_RECLAIM, 1);
|
|
|
|
|
|
+ local->tx_wq =
|
|
|
|
+ alloc_workqueue(name,
|
|
|
|
+ WQ_NON_REENTRANT | WQ_UNBOUND | WQ_MEM_RECLAIM,
|
|
|
|
+ 1);
|
|
if (local->tx_wq == NULL) {
|
|
if (local->tx_wq == NULL) {
|
|
err = -ENOMEM;
|
|
err = -ENOMEM;
|
|
goto err_local;
|
|
goto err_local;
|
|
@@ -943,8 +940,10 @@ int nfc_llcp_register_device(struct nfc_dev *ndev)
|
|
local->rx_pending = NULL;
|
|
local->rx_pending = NULL;
|
|
INIT_WORK(&local->rx_work, nfc_llcp_rx_work);
|
|
INIT_WORK(&local->rx_work, nfc_llcp_rx_work);
|
|
snprintf(name, sizeof(name), "%s_llcp_rx_wq", dev_name(dev));
|
|
snprintf(name, sizeof(name), "%s_llcp_rx_wq", dev_name(dev));
|
|
- local->rx_wq = alloc_workqueue(name,
|
|
|
|
- WQ_NON_REENTRANT | WQ_UNBOUND | WQ_MEM_RECLAIM, 1);
|
|
|
|
|
|
+ local->rx_wq =
|
|
|
|
+ alloc_workqueue(name,
|
|
|
|
+ WQ_NON_REENTRANT | WQ_UNBOUND | WQ_MEM_RECLAIM,
|
|
|
|
+ 1);
|
|
if (local->rx_wq == NULL) {
|
|
if (local->rx_wq == NULL) {
|
|
err = -ENOMEM;
|
|
err = -ENOMEM;
|
|
goto err_tx_wq;
|
|
goto err_tx_wq;
|
|
@@ -952,8 +951,10 @@ int nfc_llcp_register_device(struct nfc_dev *ndev)
|
|
|
|
|
|
INIT_WORK(&local->timeout_work, nfc_llcp_timeout_work);
|
|
INIT_WORK(&local->timeout_work, nfc_llcp_timeout_work);
|
|
snprintf(name, sizeof(name), "%s_llcp_timeout_wq", dev_name(dev));
|
|
snprintf(name, sizeof(name), "%s_llcp_timeout_wq", dev_name(dev));
|
|
- local->timeout_wq = alloc_workqueue(name,
|
|
|
|
- WQ_NON_REENTRANT | WQ_UNBOUND | WQ_MEM_RECLAIM, 1);
|
|
|
|
|
|
+ local->timeout_wq =
|
|
|
|
+ alloc_workqueue(name,
|
|
|
|
+ WQ_NON_REENTRANT | WQ_UNBOUND | WQ_MEM_RECLAIM,
|
|
|
|
+ 1);
|
|
if (local->timeout_wq == NULL) {
|
|
if (local->timeout_wq == NULL) {
|
|
err = -ENOMEM;
|
|
err = -ENOMEM;
|
|
goto err_rx_wq;
|
|
goto err_rx_wq;
|