diff options
author | Samuel Ortiz <sameo@linux.intel.com> | 2013-01-11 08:48:48 -0500 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2013-01-11 08:56:22 -0500 |
commit | fad2e371bb5a9f64dced90309fa7cb8bce09e92f (patch) | |
tree | 8ddf587099423147e42edbe30c77ad8ca92a52df /net/nfc | |
parent | 1353a10c474d1c6895051d33eefeb93542015008 (diff) |
NFC: Avoid memcpy on LLCP connection less Rx path
We can cast msg_name to a sockaddr_nfc_llcp pointer directly.
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'net/nfc')
-rw-r--r-- | net/nfc/llcp/sock.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/net/nfc/llcp/sock.c b/net/nfc/llcp/sock.c index 12ec4879b4ba..463231bed8d4 100644 --- a/net/nfc/llcp/sock.c +++ b/net/nfc/llcp/sock.c | |||
@@ -682,17 +682,17 @@ static int llcp_sock_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
682 | 682 | ||
683 | if (sk->sk_type == SOCK_DGRAM && msg->msg_name) { | 683 | if (sk->sk_type == SOCK_DGRAM && msg->msg_name) { |
684 | struct nfc_llcp_ui_cb *ui_cb = nfc_llcp_ui_skb_cb(skb); | 684 | struct nfc_llcp_ui_cb *ui_cb = nfc_llcp_ui_skb_cb(skb); |
685 | struct sockaddr_nfc_llcp sockaddr; | 685 | struct sockaddr_nfc_llcp *sockaddr = |
686 | (struct sockaddr_nfc_llcp *) msg->msg_name; | ||
686 | 687 | ||
687 | pr_debug("Datagram socket %d %d\n", ui_cb->dsap, ui_cb->ssap); | 688 | msg->msg_namelen = sizeof(struct sockaddr_nfc_llcp); |
688 | 689 | ||
689 | sockaddr.sa_family = AF_NFC; | 690 | pr_debug("Datagram socket %d %d\n", ui_cb->dsap, ui_cb->ssap); |
690 | sockaddr.nfc_protocol = NFC_PROTO_NFC_DEP; | ||
691 | sockaddr.dsap = ui_cb->dsap; | ||
692 | sockaddr.ssap = ui_cb->ssap; | ||
693 | 691 | ||
694 | memcpy(msg->msg_name, &sockaddr, sizeof(sockaddr)); | 692 | sockaddr->sa_family = AF_NFC; |
695 | msg->msg_namelen = sizeof(sockaddr); | 693 | sockaddr->nfc_protocol = NFC_PROTO_NFC_DEP; |
694 | sockaddr->dsap = ui_cb->dsap; | ||
695 | sockaddr->ssap = ui_cb->ssap; | ||
696 | } | 696 | } |
697 | 697 | ||
698 | /* Mark read part of skb as used */ | 698 | /* Mark read part of skb as used */ |