lkml.org 
[lkml]   [2013]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [xen] double fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC

> I think David Arlie also needs a quiet talking to about how to use the
> device model:
>
> int drm_sysfs_device_add(struct drm_minor *minor)
> {
> minor->kdev.release = drm_sysfs_device_release;
> ...
> err = device_register(&minor->kdev);
> }
>
> static void drm_sysfs_device_release(struct device *dev)
> {
> memset(dev, 0, sizeof(struct device));
> return;
> }
>
> Since when has that been acceptable in a release function?

Well the commit that added it had a reason that seems to cover some other
device model abuses, so maybe someone who actually understands the device
model (all 2 people) can review usage.

Dave.

commit 77d26dc9b9805f322f5a1f6e559b18ad66205bd9
Author: Ma Ling <ling.ma@intel.com>
Date: Thu Apr 16 17:51:25 2009 +0800

drm: clean dirty memory after device release

In current code we register/unregister connector object by
drm_sysfs_connector_add/remove function.

However under some cases, we need to dynamically register or
unregister device
multiple times, so we have to go through register -> unregister
->register
routine.

Because after device_unregister function our memory is dirty, we need
to do
clean operation in order to re-register the device, otherwise the
system
will crash. The patch intends to clean device after device release.

Signed-off-by: Ma Ling <ling.ma@intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>




\
 
 \ /
  Last update: 2013-10-10 04:41    [W:0.151 / U:0.300 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site