linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).