From patchwork Fri May 22 15:37:24 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnaldo Carvalho de Melo X-Patchwork-Id: 27530 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@bilbo.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id 1F86BB6F34 for ; Sat, 23 May 2009 01:37:42 +1000 (EST) Received: by ozlabs.org (Postfix) id F0121DE1ED; Sat, 23 May 2009 01:37:41 +1000 (EST) Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 97DBCDE1E8 for ; Sat, 23 May 2009 01:37:41 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756914AbZEVPhd (ORCPT ); Fri, 22 May 2009 11:37:33 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1756969AbZEVPhc (ORCPT ); Fri, 22 May 2009 11:37:32 -0400 Received: from mx2.redhat.com ([66.187.237.31]:39950 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754798AbZEVPhb (ORCPT ); Fri, 22 May 2009 11:37:31 -0400 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n4MFbTa6012765; Fri, 22 May 2009 11:37:29 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n4MFbSLA017379; Fri, 22 May 2009 11:37:28 -0400 Received: from doppio.ghostprotocols.net (vpn-51-19.sfbay.redhat.com [10.14.51.19]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n4MFbQjA006855; Fri, 22 May 2009 11:37:27 -0400 Received: by doppio.ghostprotocols.net (Postfix, from userid 500) id 8585C2669E; Fri, 22 May 2009 12:37:24 -0300 (BRT) Date: Fri, 22 May 2009 12:37:24 -0300 From: Arnaldo Carvalho de Melo To: David Miller Cc: isdn@linux-pingi.de, paul.moore@hp.com, netdev@vger.kernel.org, vanhoof@redhat.com, williams@redhat.com, linux-security-module@vger.kernel.org Subject: [PATCH 1/1 v2] isdn: Use kernel_{send,recv}msg instead of open coding Message-ID: <20090522153723.GA26133@ghostprotocols.net> MIME-Version: 1.0 Content-Disposition: inline X-Url: http://oops.ghostprotocols.net:81/blog User-Agent: Mutt/1.5.18 (2008-05-17) X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Hi David, I've fixed it up and did a make allmodconfig, no problems, I think this time it is OK. $ rm -f ../allmodconfig/drivers/isdn/mISDN/l1oip_core.o $ make O=../allmodconfig drivers/isdn/mISDN/l1oip_core.o Using /home/acme_unencrypted/git/linux-2.6-tip as source for kernel GEN /home/acme_unencrypted/git/allmodconfig/Makefile CHK include/linux/version.h CHK include/linux/utsrelease.h SYMLINK include/asm -> include/asm-x86 CALL /home/acme_unencrypted/git/linux-2.6-tip/scripts/checksyscalls.sh CC drivers/isdn/mISDN/l1oip_core.o $ Regards, - Arnaldo commit cbe24f5d80209776a7e033c92a5882227a8360e6 Author: Arnaldo Carvalho de Melo Date: Fri May 22 12:32:05 2009 -0300 isdn: Use kernel_{send,recv}msg instead of open coding Reducing the number of direct users of sock_{recv,send}msg. Signed-off-by: Arnaldo Carvalho de Melo --- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/isdn/mISDN/l1oip.h b/drivers/isdn/mISDN/l1oip.h index a23d575..bc26c89 100644 --- a/drivers/isdn/mISDN/l1oip.h +++ b/drivers/isdn/mISDN/l1oip.h @@ -76,7 +76,7 @@ struct l1oip { struct sockaddr_in sin_local; /* local socket name */ struct sockaddr_in sin_remote; /* remote socket name */ struct msghdr sendmsg; /* ip message to send */ - struct iovec sendiov; /* iov for message */ + struct kvec sendiov; /* iov for message */ /* frame */ struct l1oip_chan chan[128]; /* channel instances */ diff --git a/drivers/isdn/mISDN/l1oip_core.c b/drivers/isdn/mISDN/l1oip_core.c index abe5749..910ac82 100644 --- a/drivers/isdn/mISDN/l1oip_core.c +++ b/drivers/isdn/mISDN/l1oip_core.c @@ -279,7 +279,6 @@ l1oip_socket_send(struct l1oip *hc, u8 localcodec, u8 channel, u32 chanmask, int multi = 0; u8 frame[len+32]; struct socket *socket = NULL; - mm_segment_t oldfs; if (debug & DEBUG_L1OIP_MSG) printk(KERN_DEBUG "%s: sending data to socket (len = %d)\n", @@ -352,10 +351,7 @@ l1oip_socket_send(struct l1oip *hc, u8 localcodec, u8 channel, u32 chanmask, "= %d)\n", __func__, len); hc->sendiov.iov_base = frame; hc->sendiov.iov_len = len; - oldfs = get_fs(); - set_fs(KERNEL_DS); - len = sock_sendmsg(socket, &hc->sendmsg, len); - set_fs(oldfs); + len = kernel_sendmsg(socket, &hc->sendmsg, &hc->sendiov, 1, len); /* give socket back */ hc->socket = socket; /* no locking required */ @@ -660,8 +656,6 @@ l1oip_socket_thread(void *data) struct l1oip *hc = (struct l1oip *)data; int ret = 0; struct msghdr msg; - struct iovec iov; - mm_segment_t oldfs; struct sockaddr_in sin_rx; unsigned char recvbuf[1500]; int recvlen; @@ -708,16 +702,12 @@ l1oip_socket_thread(void *data) msg.msg_namelen = sizeof(sin_rx); msg.msg_control = NULL; msg.msg_controllen = 0; - msg.msg_iov = &iov; - msg.msg_iovlen = 1; /* build send message */ hc->sendmsg.msg_name = &hc->sin_remote; hc->sendmsg.msg_namelen = sizeof(hc->sin_remote); hc->sendmsg.msg_control = NULL; hc->sendmsg.msg_controllen = 0; - hc->sendmsg.msg_iov = &hc->sendiov; - hc->sendmsg.msg_iovlen = 1; /* give away socket */ spin_lock(&hc->socket_lock); @@ -729,12 +719,12 @@ l1oip_socket_thread(void *data) printk(KERN_DEBUG "%s: socket created and open\n", __func__); while (!signal_pending(current)) { - iov.iov_base = recvbuf; - iov.iov_len = sizeof(recvbuf); - oldfs = get_fs(); - set_fs(KERNEL_DS); - recvlen = sock_recvmsg(socket, &msg, sizeof(recvbuf), 0); - set_fs(oldfs); + struct kvec iov = { + .iov_base = recvbuf, + .iov_len = sizeof(recvbuf), + }; + recvlen = kernel_recvmsg(socket, &msg, &iov, 1, + sizeof(recvbuf), 0); if (recvlen > 0) { l1oip_socket_parse(hc, &sin_rx, recvbuf, recvlen); } else {