[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [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.


commit 77d26dc9b9805f322f5a1f6e559b18ad66205bd9
Author: Ma Ling <ling.ma@xxxxxxxxx>
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 
    Because after device_unregister function our memory is dirty, we need 
to do
    clean operation in order to re-register the device, otherwise the 
    will crash.  The patch intends to clean device after device release.
    Signed-off-by: Ma Ling <ling.ma@xxxxxxxxx>
    Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.