From: Samuel Pitoiset <samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: "Christian König"
<deathsimple-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>,
zhoucm1 <david1.zhou-5C7GfCeVMHo@public.gmane.org>,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Subject: Re: [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl()
Date: Fri, 10 Feb 2017 11:22:49 +0100 [thread overview]
Message-ID: <fcf33caf-41c4-5344-ede7-9be1cecf813c@gmail.com> (raw)
In-Reply-To: <f297f821-678a-392a-2786-0307dc7a54ad-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
On 02/10/2017 11:19 AM, Christian König wrote:
> Am 10.02.2017 um 11:11 schrieb Samuel Pitoiset:
>>
>>
>> On 02/10/2017 03:55 AM, zhoucm1 wrote:
>>>
>>>
>>> On 2017年02月10日 06:28, Samuel Pitoiset wrote:
>>>> Move amdgpu_bo_unreserve() outside of the switch. While we are
>>>> at it, add a missing break in the default case.
>>>>
>>>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
>>>> ---
>>>> drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 7 ++-----
>>>> 1 file changed, 2 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>> index 1dc59aafec71..ae4658a10e2c 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>> @@ -660,7 +660,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>>> void *data,
>>>> info.alignment = robj->tbo.mem.page_alignment << PAGE_SHIFT;
>>>> info.domains = robj->prefered_domains;
>>>> info.domain_flags = robj->flags;
>>>> - amdgpu_bo_unreserve(robj);
>>>> if (copy_to_user(out, &info, sizeof(info)))
>>>> r = -EFAULT;
>>> NAK, your this change will break our previous deadlock fix for ww_mutex
>>> and mm->mmap_sem if I remember correctly.
>>
>> Mmh, really? Can you pinpoint the commit? I don't see anything obvious
>> in the history about that.
>
> David is right here. Not sure when we fixed that, but in general calling
> copy_to/from_user while a BO is reserved is illegal.
>
> Otherwise somebody could send the kernel a memory mapped BO as address
> and the copy_to/from_user would just deadlock because it tries to
> reserve a BO while another (or the same) BO is already reserved in the
> call path.
Okay, makes more sense.
Thanks for the review. My goal is not to introduce new regressions but I
didn't know that.
Maybe this should be explained in the code? Just a thought.
>
> Regards,
> Christian.
>
>>
>> Thanks.
>>
>>>
>>> Regards,
>>> David Zhou
>>>> break;
>>>> @@ -668,7 +667,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>>> void *data,
>>>> case AMDGPU_GEM_OP_SET_PLACEMENT:
>>>> if (amdgpu_ttm_tt_get_usermm(robj->tbo.ttm)) {
>>>> r = -EPERM;
>>>> - amdgpu_bo_unreserve(robj);
>>>> break;
>>>> }
>>>> robj->prefered_domains = args->value &
>>>> (AMDGPU_GEM_DOMAIN_VRAM |
>>>> @@ -677,14 +675,13 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>>> void *data,
>>>> robj->allowed_domains = robj->prefered_domains;
>>>> if (robj->allowed_domains == AMDGPU_GEM_DOMAIN_VRAM)
>>>> robj->allowed_domains |= AMDGPU_GEM_DOMAIN_GTT;
>>>> -
>>>> - amdgpu_bo_unreserve(robj);
>>>> break;
>>>> default:
>>>> - amdgpu_bo_unreserve(robj);
>>>> r = -EINVAL;
>>>> + break;
>>>> }
>>>> + amdgpu_bo_unreserve(robj);
>>>> out:
>>>> drm_gem_object_unreference_unlocked(gobj);
>>>> return r;
>>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
next prev parent reply other threads:[~2017-02-10 10:22 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-09 22:28 [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl() Samuel Pitoiset
[not found] ` <20170209222824.3267-1-samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-02-09 22:28 ` [PATCH 2/2] drm/amdgpu: use amdgpu_gem_va_check() in amdgpu_gem_va_update_vm() Samuel Pitoiset
[not found] ` <20170209222824.3267-2-samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-02-10 2:58 ` zhoucm1
2017-02-10 10:02 ` Christian König
2017-02-10 17:06 ` Alex Deucher
2017-02-10 2:55 ` [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl() zhoucm1
[not found] ` <589D2B9C.309-5C7GfCeVMHo@public.gmane.org>
2017-02-10 10:11 ` Samuel Pitoiset
[not found] ` <0c47615f-6e93-eea1-418c-f846a0c1d3ae-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-02-10 10:19 ` Christian König
[not found] ` <f297f821-678a-392a-2786-0307dc7a54ad-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-02-10 10:22 ` Samuel Pitoiset [this message]
[not found] ` <fcf33caf-41c4-5344-ede7-9be1cecf813c-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-02-10 10:37 ` Christian König
[not found] ` <185ea16c-7062-f137-2234-a19f845062a6-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-02-10 11:09 ` Samuel Pitoiset
2017-02-10 10:02 ` Christian König
[not found] ` <35f1c55d-5ade-ffd0-6c9f-95fc891e1d77-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-02-10 10:17 ` Samuel Pitoiset
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=fcf33caf-41c4-5344-ede7-9be1cecf813c@gmail.com \
--to=samuel.pitoiset-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=david1.zhou-5C7GfCeVMHo@public.gmane.org \
--cc=deathsimple-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org \
/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.