All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
To: clemens@ladisch.de, tiwai@suse.de
Cc: alsa-devel@alsa-project.org
Subject: [PATCH 12/39] ALSA: seq: optimize running mode function to new design
Date: Sun,  7 Aug 2016 18:48:48 +0900	[thread overview]
Message-ID: <1470563355-18368-13-git-send-email-o-takashi@sakamocchi.jp> (raw)
In-Reply-To: <1470563355-18368-1-git-send-email-o-takashi@sakamocchi.jp>

In former commit, actual operations of each ioctl command get argument
in kernel space. Copying from/to user space is performed outside of
the function.

This commit optimizes to the new design.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
---
 sound/core/seq/seq_clientmgr.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
index cb86190..10a2e43 100644
--- a/sound/core/seq/seq_clientmgr.c
+++ b/sound/core/seq/seq_clientmgr.c
@@ -1149,38 +1149,34 @@ static int seq_ioctl_system_info(struct snd_seq_client *client, void *arg)
 
 
 /* RUNNING_MODE ioctl() */
-static int seq_ioctl_running_mode(struct snd_seq_client *client,
-				  void __user *arg)
+static int seq_ioctl_running_mode(struct snd_seq_client *client, void *arg)
 {
-	struct snd_seq_running_info info;
+	struct snd_seq_running_info *info = arg;
 	struct snd_seq_client *cptr;
 	int err = 0;
 
-	if (copy_from_user(&info, arg, sizeof(info)))
-		return -EFAULT;
-
 	/* requested client number */
-	cptr = snd_seq_client_use_ptr(info.client);
+	cptr = snd_seq_client_use_ptr(info->client);
 	if (cptr == NULL)
 		return -ENOENT;		/* don't change !!! */
 
 #ifdef SNDRV_BIG_ENDIAN
-	if (! info.big_endian) {
+	if (!info->big_endian) {
 		err = -EINVAL;
 		goto __err;
 	}
 #else
-	if (info.big_endian) {
+	if (info->big_endian) {
 		err = -EINVAL;
 		goto __err;
 	}
 
 #endif
-	if (info.cpu_mode > sizeof(long)) {
+	if (info->cpu_mode > sizeof(long)) {
 		err = -EINVAL;
 		goto __err;
 	}
-	cptr->convert32 = (info.cpu_mode < sizeof(long));
+	cptr->convert32 = (info->cpu_mode < sizeof(long));
  __err:
 	snd_seq_client_unlock(cptr);
 	return err;
-- 
2.7.4

  parent reply	other threads:[~2016-08-07  9:49 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-07  9:48 [PATCH 00/39] seq: obsolete change of address limit Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 01/39] ALSA: seq: add const qualifier to table of functions for ioctl Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 02/39] ALSA: seq: apply shorter name for file local functions Takashi Sakamoto
2016-08-08  6:56   ` Takashi Iwai
2016-08-07  9:48 ` [PATCH 03/39] ALSA: seq: fulfill callback entry for ioctl Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 04/39] ALSA: seq: copy ioctl data from user space to kernel stack Takashi Sakamoto
2016-08-07 10:15   ` Clemens Ladisch
2016-08-07 14:26     ` Takashi Sakamoto
2016-08-08  7:10       ` Takashi Iwai
2016-08-08 13:46         ` Takashi Sakamoto
2016-08-08 14:58           ` Takashi Iwai
2016-08-07  9:48 ` [PATCH 05/39] ALSA: seq: add documentation for snd_seq_kernel_client_ctl Takashi Sakamoto
2016-08-08  6:58   ` Takashi Iwai
2016-08-07  9:48 ` [PATCH 06/39] ALSA: seq: obsolete address mode in compatibility layer Takashi Sakamoto
2016-08-08  7:09   ` Takashi Iwai
2016-08-08 12:19     ` Takashi Sakamoto
2016-08-08 14:59       ` Takashi Iwai
2016-08-09 12:04         ` Takashi Sakamoto
2016-08-09 12:15           ` Takashi Iwai
2016-08-09 12:32             ` Takashi Sakamoto
2016-08-09 12:58               ` Takashi Iwai
2016-08-07  9:48 ` [PATCH 07/39] ALSA: seq: obsolete change of address limit in in-kernel path for ioctl Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 08/39] ALSA: seq: obsolete address limit helper Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 09/39] ALSA: seq: optimize pversion function to new design Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 10/39] ALSA: seq: optimize client_id " Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 11/39] ALSA: seq: optimize system_info " Takashi Sakamoto
2016-08-08  7:04   ` Takashi Iwai
2016-08-08  7:50     ` Takashi Iwai
2016-08-08 12:22       ` Takashi Sakamoto
2016-08-08 15:18         ` Takashi Iwai
2016-08-08  8:37     ` Takashi Sakamoto
2016-08-08 15:07       ` Takashi Iwai
2016-08-09 12:15         ` Takashi Sakamoto
2016-08-09 12:24           ` Takashi Iwai
2016-08-09 13:01             ` Takashi Sakamoto
2016-08-07  9:48 ` Takashi Sakamoto [this message]
2016-08-07  9:48 ` [PATCH 13/39] ALSA: seq: optimize client_info " Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 14/39] ALSA: seq: optimize set_client_info " Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 15/39] ALSA: seq: optimize create_port " Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 16/39] ALSA: seq: optimize delete_port " Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 17/39] ALSA: seq: optimize get_port_info " Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 18/39] ALSA: seq: optimize seq_port_info " Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 19/39] ALSA: seq: optimize subscribe_port " Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 20/39] ALSA: seq: optimize unsubscribe_port " Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 21/39] ALSA: seq: optimize create_queue " Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 22/39] ALSA: seq: optimize delete_queue " Takashi Sakamoto
2016-08-07  9:48 ` [PATCH 23/39] ALSA: seq: optimize get_queue_info " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 24/39] ALSA: seq: optimize seq_queue_info " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 25/39] ALSA: seq: optimize get_named_queue " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 26/39] ALSA: seq: optimize get_queue_status " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 27/39] ALSA: seq: optimize get_queue_tempo " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 28/39] ALSA: seq: optimize set_queue_tempo " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 29/39] ALSA: seq: optimize get_queue_timer " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 30/39] ALSA: seq: optimize seq_queue_timer " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 31/39] ALSA: seq: optimize get_queue_client " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 32/39] ALSA: seq: optimize set_queue_client " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 33/39] ALSA: seq: optimize get_client_pool " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 34/39] ALSA: seq: optimize seq_client_pool " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 35/39] ALSA: seq: optimize remove_events " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 36/39] ALSA: seq: optimize get_subscription " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 37/39] ALSA: seq: optimize query_subs " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 38/39] ALSA: seq: optimize query_next_client " Takashi Sakamoto
2016-08-07  9:49 ` [PATCH 39/39] ALSA: seq: optimize query_next_port " Takashi Sakamoto

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1470563355-18368-13-git-send-email-o-takashi@sakamocchi.jp \
    --to=o-takashi@sakamocchi.jp \
    --cc=alsa-devel@alsa-project.org \
    --cc=clemens@ladisch.de \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.