linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jon Smirl <jonsmirl@yahoo.com>
To: linux-hotplug@vger.kernel.org
Subject: Re: registering same sysfs class in different drivers.
Date: Fri, 16 Jan 2004 19:51:51 +0000	[thread overview]
Message-ID: <20040116195151.17348.qmail@web14911.mail.yahoo.com> (raw)
In-Reply-To: <20040116064233.78134.qmail@web14915.mail.yahoo.com>

The bug was in reregistering the class device from multiple drivers. I reworked
it using inter_module_register to only register the dri class once and share it.
That fixed the problem.

--- Jon Smirl <jonsmirl@yahoo.com> wrote:
> The DRI drivers for each card type are indepenent from each other, but they
> all
> exist in the same sysfs class. Right now when I try to load a second driver
> I'm
> faulting in sysfs:create_dir with parent dentry NULL. create_dir() is called
> via
> simple_add_class_device(). Either driver loads standalone without problem.
> 
> I suspect the fault is because each driver is registering it's own copy of the
> 'dri' class. Is there some mechanism to see if the class has already been
> registered and use the preexisting copy? class_register() always returns 0.
> 
> 
> [drm] Debug messages ON
> sysfs:create_dir: kobject *f8b1cfb4, p dentry *f7fc5280, nstr dri, d dentry
> *f2e47f44
> sysfs:create_dir: kobject *f8b1d060, p dentry *f7fe6180, nstr radeon, d dentry
> *f2e47f18
> [drm:drm_probe]
> [drm:radeon_stub_register]
> sysfs:create_dir: kobject *f59ded00, p dentry *f7fc5a80, nstr drm, d dentry
> *f2e47e1c
> [drm:radeon_stub_register] calling inter_module_register
> PCI: Enabling device 0000:01:00.0 (0080 -> 0083)
> [drm:radeon_ctxbitmap_next] drm_ctxbitmap_next bit : 0
> [drm:radeon_ctxbitmap_init] drm_ctxbitmap_init : 0
> [drm] Initialized radeon 1.11.0 20040115 on minor 0: ATI Radeon If R250 9000
> [drm:radeon_initmap]
> [drm:radeon_initmap] initmap offset = 0xfe9e0000, size = 0x00010000, type = 1
> [drm:radeon_initmap]
> [drm:radeon_initmap] initmap offset = 0xf4000000, size = 0x04000000, type = 0
> [drm:radeon_postinit] registering secondary video head
> class_device_add: class_id card0
> sysfs:create_dir: kobject *f5a56594, p dentry *f2e6fb80, nstr card0, d dentry
> *f2e47e34
> [drm:radeon_need_reset] Memmode is 0, if zero needs reset
> [drm] Debug messages ON
> sysfs:create_dir: kobject *f8b3b154, p dentry *f7fc5280, nstr dri, d dentry
> *f2f33f44
> sysfs:create_dir: kobject *f8b3b200, p dentry *f7fe6180, nstr r128, d dentry
> *f2f33f18
> [drm:drm_probe]
> [drm:r128_stub_register]
> [drm:r128_stub_register] already registered
> [drm:r128_ctxbitmap_next] drm_ctxbitmap_next bit : 0
> [drm:r128_ctxbitmap_init] drm_ctxbitmap_init : 0
> [drm] Initialized r128 2.5.0 20030725 on minor 1: ATI Rage 128 Pro PD (PCI)
> class_device_add: class_id card1
> sysfs:create_dir: kobject *f510e514, p dentry *00000000, nstr card1, d dentry
> *f2f33e34
> Unable to handle kernel NULL pointer dereference at virtual address 0000000c
>  printing eip:
> c018d022
> *pde = 00000000
> Oops: 0000 [#1]
> CPU:    1
> EIP:    0060:[<c018d022>]    Not tainted
> EFLAGS: 00010282
> EIP is at create_dir+0x3f/0xc2
> eax: 0000005b   ebx: f510e518   ecx: c02f19b4   edx: 0000ee04
> esi: 00000000   edi: f2f33e34   ebp: f510e514   esp: f2f33dfc
> ds: 007b   es: 007b   ss: 0068
> Process insmod (pid: 2772, threadinfoòf32000 taskõf29940)
> Stack: c02bd420 f510e514 00000000 f510e518 f2f33e34 f510e514 f510e514 c0327a40
>        f8b3b140 c018d10f f510e514 00000000 f510e518 f2f33e34 00000000 00000000
>        c01ba3dd f510e514 f510e514 f8b3b154 c01ba84d f510e514 00000000 f510e514
> Call Trace:
>  [<c018d10f>] sysfs_create_dir+0x40/0x73
>  [<c01ba3dd>] create_dir+0x1f/0x4b
>  [<c01ba84d>] kobject_add+0x99/0x11c
>  [<c0202046>] class_device_add+0x79/0x122
>  [<c0201fc0>] class_device_initialize+0x1d/0x2a
>  [<c020250a>] simple_add_class_device+0x80/0xd7
>  [<f8b26d5e>] drm_probe+0x215/0x262 [r128]
>  [<c01c4162>] pci_device_probe_static+0x52/0x63
>  [<c01c41ae>] __pci_device_probe+0x3b/0x4e
>  [<c01c41ed>] pci_device_probe+0x2c/0x4a
>  [<c0201463>] bus_match+0x3f/0x6a
>  [<c0201575>] driver_attach+0x56/0x80
>  [<c02017f8>] bus_add_driver+0x8c/0x9f
>  [<c01c43b9>] pci_register_driver+0x6c/0x94
>  [<f895b036>] drm_init+0x36/0x52 [r128]
>  [<c0136083>] sys_init_module+0x11d/0x20e
>  [<c010a84d>] sysenter_past_esp+0x52/0x71
>  
> Code: 8b 46 0c 8d 48 6c f0 ff 48 6c 0f 88 1b 03 00 00 89 34 24 89
>   
> [root@smirl drm]#
> 
> 
> 
> ==> Jon Smirl
> jonsmirl@yahoo.com
> 
> __________________________________
> Do you Yahoo!?
> Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
> http://hotjobs.sweepstakes.yahoo.com/signingbonus
> 
> 
> -------------------------------------------------------
> The SF.Net email is sponsored by EclipseCon 2004
> Premiere Conference on Open Tools Development and Integration
> See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
> http://www.eclipsecon.org/osdn
> _______________________________________________
> Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
> Linux-hotplug-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel


==Jon Smirl
jonsmirl@yahoo.com

__________________________________
Do you Yahoo!?
Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus


-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

  reply	other threads:[~2004-01-16 19:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-16  6:42 registering same sysfs class in different drivers Jon Smirl
2004-01-16 19:51 ` Jon Smirl [this message]
2004-01-17  0:09 ` Greg KH

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=20040116195151.17348.qmail@web14911.mail.yahoo.com \
    --to=jonsmirl@yahoo.com \
    --cc=linux-hotplug@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).