linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
To: Michal Simek <monstr@monstr.eu>
Cc: Michal Simek <michal.simek@xilinx.com>,
	linux-kernel@vger.kernel.org, Alan Tull <atull@altera.com>,
	Pavel Machek <pavel@ucw.cz>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Dinh Nguyen <dinguyen@altera.com>,
	Philip Balister <philip@balister.org>,
	Alessandro Rubini <rubini@gnudd.com>,
	Steffen Trumtrar <s.trumtrar@pengutronix.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Jason Cooper <jason@lakedaemon.net>,
	Yves Vandervennet <rocket.yvanderv@gmail.com>,
	Kyle Teske <kyle.teske@ni.com>,
	Josh Cartwright <joshc@eso.teric.us>,
	Rob Landley <rob@landley.net>,
	Mauro Carvalho Chehab <m.chehab@samsung.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Cesar Eduardo Barros <cesarb@cesarb.net>,
	Joe Perches <joe@perches.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Brown <davidb@codeaurora.org>,
	Samuel Ortiz <sameo@linux.intel.com>,
	Nicolas Pitre <nico@linaro.org>,
	Mark Langsdorf <mark.langsdorf@calxeda.com>,
	Felipe Balbi <balbi@ti.com>,
	linux-doc@vger.kernel.org
Subject: Re: [RFC PATCH v2] fpga: Introduce new fpga subsystem
Date: Fri, 4 Oct 2013 11:05:37 -0600	[thread overview]
Message-ID: <20131004170537.GA6955@obsidianresearch.com> (raw)
In-Reply-To: <524EECA7.7040409@monstr.eu>

On Fri, Oct 04, 2013 at 06:28:23PM +0200, Michal Simek wrote:
> > I strongly encourage you to use text strings to indicate the state of
> > the configuration FSM, and I *really* think you should rework things
> > to have an explicit configuration FSM rather than trying to bodge one
> > together with a bunch of bit flags.
> 
> Any favourite names for states?
> Or ready, write_init, write_complete is enough for now?

Doesnt really matter to me, don't forget error states. Transisionts to
ready, write_init and write_complete can all fail.

> > I wonder if this is right, it seems like a strange way to make a class
> > subsystem, usually the struct fpga_manager would contain the 'struct
> > device' (not a pointer, so you can use container_of) and drvdata would
> > be reserved for something else.
> 
> I am not following you here. mrg structure is connected with the driver
> it means when driver is removed then this structure is freed.

You've got your mgr structure and then later you allocate a struct
device as well, the mgr can be free'd before the struct device is
released, due to the way ref counting works. You are not doing
anything to compensate for that.

> > This seems to create lifetime issues since the devm above will be
> > free'd when the platform driver is released, but the class device will
> > live on with the stray pointer. Better to allocate everything against
> > the class device below.
> 
> device in unregistered before this structure is freed.
> fpga_mgr_unregister() is called in the platform driver in remove function.

Which is the problem, device_unregister dosen't delete 'mgr->dev', and it
doesn't mean the sysfs call backs are uncallable, so you have a free'd
dangling pointer in mgr->dev, and an object lifetime issue.

> > What happens when userspace is holding one of the sysfs files open and
> > you unload the module? Looks like bad things?
> 
> I didn't test this but feel free to check it.

You should fix these problems before your driver reaches Linus.

Jason

  reply	other threads:[~2013-10-04 17:06 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-02 15:35 [RFC PATCH v2 0/1] FPGA subsystem core Michal Simek
2013-10-02 15:35 ` [RFC PATCH v2] fpga: Introduce new fpga subsystem Michal Simek
2013-10-02 16:06   ` Joe Perches
2013-10-04 16:15     ` Michal Simek
2013-10-04 16:26       ` Greg Kroah-Hartman
2013-10-02 17:46   ` Jason Gunthorpe
2013-10-04 16:28     ` Michal Simek
2013-10-04 17:05       ` Jason Gunthorpe [this message]
2013-10-04 18:50       ` Alan Tull
2013-10-02 19:00 ` [RFC PATCH v2 0/1] FPGA subsystem core H. Peter Anvin
2013-10-03  6:49   ` Pavel Machek
2013-10-04 13:57     ` Michal Simek
2013-10-04 14:16       ` Greg Kroah-Hartman
2013-10-04 14:21         ` H. Peter Anvin
2013-10-04 14:28           ` Michal Simek
2013-10-04 16:46             ` H. Peter Anvin
2013-10-04 17:44               ` Michal Simek
2013-10-04 18:12                 ` H. Peter Anvin
2013-10-04 23:33                   ` Greg Kroah-Hartman
2013-10-04 23:49                     ` Jason Gunthorpe
2013-10-05  4:00                       ` H. Peter Anvin
2013-10-05  5:10                         ` Jason Gunthorpe
2013-10-05  5:34                           ` H. Peter Anvin
2013-10-05  6:53                             ` Michal Simek
     [not found]                               ` <c59c68b8-2565-45c5-bfe9-574b76f3f9bc@email.android.com>
2013-10-07 13:11                                 ` Michal Simek
2013-10-07 14:55                                   ` H. Peter Anvin
2013-10-07 15:03                                     ` Michal Simek
2013-10-07 15:07                                       ` H. Peter Anvin
2013-10-08 13:00                                         ` Michal Simek
2013-10-08 16:49                                           ` Alan Tull
2013-10-08 21:42                                             ` Greg Kroah-Hartman
     [not found]                                               ` <CANk1AXS9fpypVVWgvvUCZjKXDvLPpB7=kCNucwFcktgBHmV37w@mail.gmail.com>
     [not found]                                                 ` <20131009014027.GA17066@kroah.com>
     [not found]                                                   ` <5254EC8A.8060609@monstr.eu>
     [not found]                                                     ` <20131009055332.GA4510@kroah.com>
     [not found]                                                       ` <52550638.2080301@monstr.eu>
     [not found]                                                         ` <52556585.3050603@zytor.com>
     [not found]                                                           ` <20131009192439.GC18611@kroah.com>
     [not found]                                                             ` <5255BE71.8010801@zytor.com>
2013-10-09 21:07                                                               ` Jason Gunthorpe
2013-10-09 22:21                                                                 ` H. Peter Anvin
2013-10-05 17:33                             ` Jason Gunthorpe
2013-10-05  6:56                       ` Michal Simek
2013-10-04 23:50                     ` H. Peter Anvin
2013-10-05  6:49                       ` Michal Simek
2013-10-08 17:00                     ` Alan Tull
2013-10-08 21:44                       ` Greg Kroah-Hartman
2013-10-08 23:47                         ` delicious quinoa
2013-10-09  1:41                           ` Greg Kroah-Hartman
2013-10-04 18:26                 ` Alan Tull
2013-10-03 21:46 ` Alan Tull
2013-10-04 15:27   ` Michal Simek
2013-10-04 18:30     ` Alan Tull

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=20131004170537.GA6955@obsidianresearch.com \
    --to=jgunthorpe@obsidianresearch.com \
    --cc=akpm@linux-foundation.org \
    --cc=atull@altera.com \
    --cc=balbi@ti.com \
    --cc=cesarb@cesarb.net \
    --cc=davem@davemloft.net \
    --cc=davidb@codeaurora.org \
    --cc=dinguyen@altera.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hpa@zytor.com \
    --cc=jason@lakedaemon.net \
    --cc=joe@perches.com \
    --cc=joshc@eso.teric.us \
    --cc=kyle.teske@ni.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m.chehab@samsung.com \
    --cc=mark.langsdorf@calxeda.com \
    --cc=michal.simek@xilinx.com \
    --cc=monstr@monstr.eu \
    --cc=nico@linaro.org \
    --cc=pavel@ucw.cz \
    --cc=philip@balister.org \
    --cc=rob@landley.net \
    --cc=rocket.yvanderv@gmail.com \
    --cc=rubini@gnudd.com \
    --cc=s.trumtrar@pengutronix.de \
    --cc=sameo@linux.intel.com \
    /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).