From: Laura Abbott <labbott@redhat.com>
To: Shawn Lin <shawn.lin@rock-chips.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
arve@android.com, Riley Andrews <riandrews@android.com>,
Colin Cross <ccross@android.com>,
John Stultz <john.stultz@linaro.org>
Cc: linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org
Subject: Re: [PATCH] staging: ion: fix corruption of ion_import_dma_buf
Date: Wed, 9 Sep 2015 10:19:13 -0700 [thread overview]
Message-ID: <55F06A11.1010605@redhat.com> (raw)
In-Reply-To: <1441784512-2534-1-git-send-email-shawn.lin@rock-chips.com>
(adding Colin and John)
On 09/09/2015 12:41 AM, Shawn Lin wrote:
> we found this issue but still exit in lastest kernel. Simply
> keep ion_handle_create under mutex_lock to avoid this race.
>
> WARNING: CPU: 2 PID: 2648 at drivers/staging/android/ion/ion.c:512 ion_handle_add+0xb4/0xc0()
> ion_handle_add: buffer already found.
> Modules linked in: iwlmvm iwlwifi mac80211 cfg80211 compat
> CPU: 2 PID: 2648 Comm: TimedEventQueue Tainted: G W 3.14.0 #7
> 00000000 00000000 9a3efd2c 80faf273 9a3efd6c 9a3efd5c 80935dc9 811d7fd3
> 9a3efd88 00000a58 812208a0 00000200 80e128d4 80e128d4 8d4ae00c a8cd8600
> a8cd8094 9a3efd74 80935e0e 00000009 9a3efd6c 811d7fd3 9a3efd88 9a3efd9c
> Call Trace:
> [<80faf273>] dump_stack+0x48/0x69
> [<80935dc9>] warn_slowpath_common+0x79/0x90
> [<80e128d4>] ? ion_handle_add+0xb4/0xc0
> [<80e128d4>] ? ion_handle_add+0xb4/0xc0
> [<80935e0e>] warn_slowpath_fmt+0x2e/0x30
> [<80e128d4>] ion_handle_add+0xb4/0xc0
> [<80e144cc>] ion_import_dma_buf+0x8c/0x110
> [<80c517c4>] reg_init+0x364/0x7d0
> [<80993363>] ? futex_wait+0x123/0x210
> [<80992e0e>] ? get_futex_key+0x16e/0x1e0
> [<8099308f>] ? futex_wake+0x5f/0x120
> [<80c51e19>] vpu_service_ioctl+0x1e9/0x500
> [<80994aec>] ? do_futex+0xec/0x8e0
> [<80971080>] ? prepare_to_wait_event+0xc0/0xc0
> [<80c51c30>] ? reg_init+0x7d0/0x7d0
> [<80a22562>] do_vfs_ioctl+0x2d2/0x4c0
> [<80b198ad>] ? inode_has_perm.isra.41+0x2d/0x40
> [<80b199cf>] ? file_has_perm+0x7f/0x90
> [<80b1a5f7>] ? selinux_file_ioctl+0x47/0xf0
> [<80a227a8>] SyS_ioctl+0x58/0x80
> [<80fb45e8>] syscall_call+0x7/0x7
> [<80fb0000>] ? mmc_do_calc_max_discard+0xab/0xe4
>
> Fixes: 83271f626 ("ion: hold reference to handle...")
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
> ---
>
> drivers/staging/android/ion/ion.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c
> index eec878e..32e7b5c 100644
> --- a/drivers/staging/android/ion/ion.c
> +++ b/drivers/staging/android/ion/ion.c
> @@ -1179,13 +1179,13 @@ struct ion_handle *ion_import_dma_buf(struct ion_client *client, int fd)
> mutex_unlock(&client->lock);
> goto end;
> }
> - mutex_unlock(&client->lock);
>
> handle = ion_handle_create(client, buffer);
> - if (IS_ERR(handle))
> + if (IS_ERR(handle)) {
> + mutex_unlock(&client->lock);
> goto end;
> + }
>
> - mutex_lock(&client->lock);
> ret = ion_handle_add(client, handle);
> mutex_unlock(&client->lock);
> if (ret) {
>
So the patch looks correct but the locking change there seems like it was added
deliberately. Colin/John, do you remember why the locking for ion_import_dma_buf
changed? Was there a deadlock condition somewhere?
Thanks,
Laura
next prev parent reply other threads:[~2015-09-09 17:19 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-09 7:41 Shawn Lin
2015-09-09 17:19 ` Laura Abbott [this message]
2015-09-10 5:41 ` Colin Cross
2015-09-10 16:44 ` Laura Abbott
2015-09-10 23:51 ` Shawn Lin
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=55F06A11.1010605@redhat.com \
--to=labbott@redhat.com \
--cc=arve@android.com \
--cc=ccross@android.com \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@linuxfoundation.org \
--cc=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=riandrews@android.com \
--cc=shawn.lin@rock-chips.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome