All of lore.kernel.org
 help / color / mirror / Atom feed
From: jeffy <jeffy.chen@rock-chips.com>
To: linux-kernel@vger.kernel.org, briannorris@chromium.org,
	dianders@chromium.org, tfiga@chromium.org,
	dri-devel@lists.freedesktop.org, zyw@rock-chips.com,
	Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: [PATCH v5 12/12] drm/drm_ioctl.c: Break ioctl when drm device not registered
Date: Fri, 07 Apr 2017 17:24:59 +0800	[thread overview]
Message-ID: <58E75AEB.6070700@rock-chips.com> (raw)
In-Reply-To: <20170407071659.hwf5f7jf2bjjdata@phenom.ffwll.local>

Hi Daniel,

On 04/07/2017 03:16 PM, Daniel Vetter wrote:
> On Thu, Apr 06, 2017 at 08:31:25PM +0800, Jeffy Chen wrote:
>> After unbinding drm, the user space may still owns the drm dev fd,
>> and may still be able to call drm ioctl.
>>
>> Add a sanity check here to prevent that from happening.
>>
>> Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
>> ---
>>
>> Changes in v5: None
>> Changes in v4: None
>> Changes in v3: None
>> Changes in v2: None
>>
>>   drivers/gpu/drm/drm_ioctl.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
>> index 7d6deaa..15beb11 100644
>> --- a/drivers/gpu/drm/drm_ioctl.c
>> +++ b/drivers/gpu/drm/drm_ioctl.c
>> @@ -674,7 +674,7 @@ long drm_ioctl(struct file *filp,
>>
>>   	dev = file_priv->minor->dev;
>>
>> -	if (drm_device_is_unplugged(dev))
>> +	if (drm_device_is_unplugged(dev) || !dev->registered)
>
> Shouldn't we instead automatically unplug the device in
> drm_dev_unregister, instead of sprinkling tons of drm_device_is_unplugged
> || !registered all over the place?
>
it looks like the drm_unplug_dev would call drm_dev_unregister...
maybe we can:
1/ replace the dev_unplug_dev in udl_drv.c to drm_dev_unregister
2/ call dev_unplug_dev in drm_dev_unregister, and remove 
drm_dev_unregister in dev_unplug_dev
3/ add a drm_plug_dev or drm_device_set_plugged, and call it in 
drm_dev_register

> That should catch a few more issues where userspace might creep into the
> driver after unregistering ...
> -Daniel
>
>>   		return -ENODEV;
>>
>>   	is_driver_ioctl = nr >= DRM_COMMAND_BASE && nr < DRM_COMMAND_END;
>> --
>> 2.1.4
>>
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>

  reply	other threads:[~2017-04-07  9:25 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-06 12:31 [PATCH v5 00/12] drm: rockchip: Fix rockchip drm unbind crash error Jeffy Chen
2017-04-06 12:31 ` Jeffy Chen
2017-04-06 12:31 ` [PATCH v5 01/12] drm: bridge: analogix: Detach panel when unbinding analogix dp Jeffy Chen
2017-04-06 12:31 ` [PATCH v5 02/12] drm: bridge: analogix: Unregister dp aux when unbinding Jeffy Chen
2017-04-06 12:31 ` [PATCH v5 03/12] drm: bridge: analogix: Disable clock " Jeffy Chen
2017-04-07 11:32   ` Andrzej Hajda
2017-04-07 11:32     ` Andrzej Hajda
2017-04-06 12:31 ` [PATCH v5 04/12] drm: bridge: analogix: Destroy connector & encoder " Jeffy Chen
2017-04-07 12:01   ` Andrzej Hajda
2017-04-07 12:01     ` Andrzej Hajda
2017-04-06 12:31 ` [PATCH v5 05/12] drm/rockchip: cdn-dp: Don't try to release firmware when not loaded Jeffy Chen
2017-04-06 12:31   ` Jeffy Chen
2017-04-06 12:31   ` Jeffy Chen
2017-04-06 12:31 ` [PATCH v5 06/12] drm/rockchip: cdn-dp: Don't unregister audio dev when unbinding Jeffy Chen
2017-04-06 12:31   ` Jeffy Chen
2017-04-06 12:31 ` [PATCH v5 07/12] drm/rockchip: vop: Enable pm domain before vop_initial Jeffy Chen
2017-04-06 12:31   ` Jeffy Chen
2017-04-06 12:31 ` [PATCH v5 08/12] drm/rockchip: vop: Unprepare clocks when unbinding Jeffy Chen
2017-04-06 12:31   ` Jeffy Chen
2017-04-06 12:31 ` [PATCH v5 09/12] drm/rockchip: analogix_dp: Disable clock " Jeffy Chen
2017-04-06 12:31   ` Jeffy Chen
2017-04-06 12:31   ` Jeffy Chen
2017-04-06 12:31 ` [PATCH v5 10/12] drm/rockchip: Reoder drm bind/unbind sequence Jeffy Chen
2017-04-06 12:31   ` Jeffy Chen
2017-04-06 12:31 ` [PATCH v5 11/12] drm/rockchip: Shutdown all crtcs when unbinding drm Jeffy Chen
2017-04-06 12:31   ` Jeffy Chen
2017-04-06 12:31 ` [PATCH v5 12/12] drm/drm_ioctl.c: Break ioctl when drm device not registered Jeffy Chen
2017-04-07  7:16   ` Daniel Vetter
2017-04-07  7:16     ` Daniel Vetter
2017-04-07  9:24     ` jeffy [this message]
2017-04-07 18:34       ` Daniel Vetter
2017-04-07 18:34         ` Daniel Vetter
2017-04-07 17:36 ` [PATCH v5 00/12] drm: rockchip: Fix rockchip drm unbind crash error Sean Paul
2017-04-07 17:36   ` Sean Paul
2017-04-07 17:36   ` Sean Paul

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=58E75AEB.6070700@rock-chips.com \
    --to=jeffy.chen@rock-chips.com \
    --cc=briannorris@chromium.org \
    --cc=daniel.vetter@intel.com \
    --cc=dianders@chromium.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tfiga@chromium.org \
    --cc=zyw@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 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.