All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Cc: alsa-devel@alsa-project.org, clemens@ladisch.de
Subject: Re: [PATCH 06/39] ALSA: seq: obsolete address mode in	compatibility layer
Date: Mon, 08 Aug 2016 09:09:44 +0200	[thread overview]
Message-ID: <s5hvazbohxj.wl-tiwai@suse.de> (raw)
In-Reply-To: <1470563355-18368-7-git-send-email-o-takashi@sakamocchi.jp>

On Sun, 07 Aug 2016 11:48:42 +0200,
Takashi Sakamoto wrote:
> 
> In a 32/64 bit compatibility layer of ALSA sequencer core, data for some
> ioctls is copied to kernel stack and passed to core operations. Then,
> address limit of running task is changed because core implementation
> expected arguments in userspace.
> 
> In this case, snd_seq_kernel_client_ctl() is available. This commit
> replaces with it.
> 
> Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
> ---
>  sound/core/seq/seq_compat.c | 25 +++++++++++++------------
>  1 file changed, 13 insertions(+), 12 deletions(-)
> 
> diff --git a/sound/core/seq/seq_compat.c b/sound/core/seq/seq_compat.c
> index 70d3ddb..6cc7302 100644
> --- a/sound/core/seq/seq_compat.c
> +++ b/sound/core/seq/seq_compat.c
> @@ -42,13 +42,11 @@ struct snd_seq_port_info32 {
>  	char reserved[59];		/* for future use */
>  };
>  
> -static int seq_call_port_info_ioctl(struct snd_seq_client *client,
> -				    unsigned int cmd,
> +static int seq_call_port_info_ioctl(int clientid, unsigned int cmd,
>  				    struct snd_seq_port_info32 __user *data32)
>  {
>  	int err = -EFAULT;
>  	struct snd_seq_port_info *data;
> -	mm_segment_t fs;
>  
>  	data = kmalloc(sizeof(*data), GFP_KERNEL);
>  	if (!data)
> @@ -60,9 +58,7 @@ static int seq_call_port_info_ioctl(struct snd_seq_client *client,
>  		goto error;
>  	data->kernel = NULL;
>  
> -	fs = snd_enter_user();
> -	err = seq_do_ioctl(client, cmd, data);
> -	snd_leave_user(fs);
> +	err = snd_seq_kernel_client_ctl(clientid, cmd, data);
>  	if (err < 0)
>  		goto error;

It's better to pass a snd_seq_client pointer to this function and
evaluate client->port in the function instead of referencing to
client->port from each caller.


Takashi

  reply	other threads:[~2016-08-08  7:09 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 [this message]
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 ` [PATCH 12/39] ALSA: seq: optimize running mode " Takashi Sakamoto
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=s5hvazbohxj.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=clemens@ladisch.de \
    --cc=o-takashi@sakamocchi.jp \
    /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.