From: Russell King <rmk@arm.linux.org.uk>
To: Kronos <kronos@kronoz.cjb.net>
Cc: linux-fbdev-devel@lists.sourceforge.net,
James Simmons <jsimmons@infradead.org>
Subject: Re: [PATCH] cyber2000fb: New framebuffer_alloc API and class_dev changes
Date: Tue, 16 Sep 2003 14:44:59 +0100 [thread overview]
Message-ID: <20030916144459.A20141@flint.arm.linux.org.uk> (raw)
In-Reply-To: <20030916134009.GA1011@dreamland.darkstar.lan>; from kronos@kronoz.cjb.net on Tue, Sep 16, 2003 at 03:40:09PM +0200
On Tue, Sep 16, 2003 at 03:40:09PM +0200, Kronos wrote:
> Il Mon, Sep 15, 2003 at 11:58:32PM +0100, Russell King ha scritto:
> > On Tue, Sep 16, 2003 at 12:17:42AM +0200, Kronos wrote:
> > > Il Mon, Sep 15, 2003 at 10:40:42PM +0100, Russell King ha scritto:
> > > > There is another reason why the above is fundamentally flawed - who says
> > > > that "release_cfb_info" will still be in module space by the time you
> > > > need to call it?
> > > >
> > > > Eg, you unload your framebuffer driver module immediately after the device
> > > > has gone away, but someone is keeping the sysfs files associated with
> > > > the fb_info open.
> > >
> > > I'm quite sure that this can't happen. If someone is keeping a sysfs
> > > file open module use count won't be zero. Right?
> >
> > Where are you handling the module use count of the framebuffer driver?
>
> Every attribute (ie. sysfs file) has a .owner field (see
> include/linux/sysfs.h), the module use count is handled by sysfs. If a
> sysfs file is open the module can't be unloaded.
The .owner field is set to the module which defined the sysfs attribute.
This wouldn't be the driver, but would be some other part of the framebuffer
layer.
The first instance I see in the patch at the URL below (fbmem.c):
static CLASS_DEVICE_ATTR(dev, S_IRUGO, show_dev, NULL);
The owner field would be the module containing fbmem.o, which is separate
from the driver - this doesn't protect the driver code from being unloaded,
and its the driver code which is called via fb_info->release() when this
file is eventually closed.
> > I'm also confused why you want to keep the device IO regions around
> > until all sysfs files have been closed. I hope you're not thinking
> > of touching the hardware after you've returned from the drivers
> > ->remove method?
>
> I tought that some sysfs file may use those things. I was sure that
> class_dev hold a reference to pci_dev.dev, but that's not the case. So
> yes, that's a bad idea. I'll move pci stuff in the unregister function.
>
> > Is there somewhere I can view the core changes?
>
> They are on fbdev for review, I put a copy here:
> http://web.tiscali.it/kronoz/linux/fbdev-class_dev-fbmem.c.diff
When I tried to get at the fbdev site, it seemed to be down. Maybe
some of the kernel documentation needs to be updated?
--
Russell King (rmk@arm.linux.org.uk) http://www.arm.linux.org.uk/personal/
Linux kernel maintainer of:
2.6 ARM Linux - http://www.arm.linux.org.uk/
2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
next prev parent reply other threads:[~2003-09-16 13:45 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-15 19:43 [PATCH] cyber2000fb: New framebuffer_alloc API and class_dev changes Kronos
2003-09-15 21:07 ` Russell King
2003-09-15 21:28 ` Kronos
2003-09-15 21:33 ` Russell King
2003-09-15 22:04 ` Kronos
2003-09-15 21:40 ` Russell King
2003-09-15 22:17 ` Kronos
2003-09-15 22:58 ` Russell King
2003-09-16 13:40 ` Kronos
2003-09-16 13:44 ` Russell King [this message]
2003-09-16 14:17 ` Kronos
2003-09-16 14:52 ` Russell King
2003-09-16 15:17 ` Kronos
2003-09-16 15:29 ` Russell King
2003-09-17 19:37 ` James Simmons
2003-09-17 19:41 ` Russell King
2003-09-17 19:58 ` James Simmons
2003-09-17 20:13 ` James Simmons
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=20030916144459.A20141@flint.arm.linux.org.uk \
--to=rmk@arm.linux.org.uk \
--cc=jsimmons@infradead.org \
--cc=kronos@kronoz.cjb.net \
--cc=linux-fbdev-devel@lists.sourceforge.net \
/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).