mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Finn Thain <fthain@telegraphics.com.au>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-m68k@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 13/13] nubus: Add support for the driver model
Date: Fri, 24 Nov 2017 10:40:20 +1100 (AEDT)	[thread overview]
Message-ID: <alpine.LNX.2.00.1711241040150.3@nippy.intranet> (raw)
In-Reply-To: <20171123080449.GB490@kroah.com>

On Thu, 23 Nov 2017, Greg Kroah-Hartman wrote:

> On Thu, Nov 23, 2017 at 11:24:38AM +1100, Finn Thain wrote:
> > On Mon, 20 Nov 2017, I wrote:
> > 
> > > > You need to free up the memory allocated, and I don't see that 
> > > > happening here ... The kernel should yell at you ...
> > 
> > > 
> > >                 WARN(1, KERN_ERR "Device '%s' does not have a release() "
> > >                         "function, it is broken and must be fixed.\n",
> > >                         dev_name(dev));
> > > 
> > > This won't fire unless device_del() is called, right?
> > 
> > Sorry, I should have written, "This won't fire unless 
> > device_unregister() is called, right?" -- though I guess it could be 
> > any call to put_device().
> > 
> > If need be I can add code to cleanly tear down the bus devices and the 
> > associated linked lists and procfs structures, just prior to kernel 
> > termination, as a kernel exitcall. But I don't see this pattern in 
> > use.
> 
> When the kernel shuts down, no, the devices are not removed.
> 
> But what happens when the bus code is unloaded if it is built as a 
> module?  The devices will be removed then.  Or they should be.
> 

This bus driver is not a module.

> So please implement the remove device code path,

OK.

> just because some other busses are buggy that way does not mean you need 
> to duplicate their incorrect behavior.
> 

Actually, I think the bug is in porting.txt, when it says "Optionally, the 
bus driver may set the device's name and release fields."

> > 
> > It's not clear to me that the extra complexity is worth it. This may 
> > explain the other devices which never get unregistered (e.g. 
> > rtc_device, rtc_efi_dev, etc.)
> > 
> > I've read Documentation/driver-model/ and watched your presentations 
> > on this topic but it's unclear to me whether you are saying in this 
> > thread that calling device_unregister() is mandatory.
> > 
> > It sounds like you are saying that a non-NULL device.release method is 
> > mandatory (which is easily solved with an empty function). But 
> > Documentation/driver-model/porting.txt says the release method is 
> > optional.
> 
> If you provide a non-NULL empty release function, you get to be made fun 
> of, as per the in-kernel kobject documentation.  The kernel is trying to 
> save you from yourself, that warning is not there just to try to work 
> around.
> 

That warning never shows up at all, because it would only ever appear at 
device_unregister() time, rather than at device_register() time.

Anyway, I will read the in-kernel comments in the kobject code. Thanks for 
the tip.

-- 

> thanks,
> 
> greg k-h

  reply	other threads:[~2017-11-23 23:40 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-18  2:30 [PATCH v2 00/13] Modernization and fixes for NuBus subsystem Finn Thain
2017-11-18  2:30 ` [PATCH v2 04/13] nubus: Fix log spam Finn Thain
2017-11-18  2:30 ` [PATCH v2 07/13] nubus: Remove redundant code Finn Thain
2017-11-18  2:30 ` [PATCH v2 05/13] nubus: Validate slot resource IDs Finn Thain
2017-11-18  2:30 ` [PATCH v2 01/13] nubus: Avoid array underflow and overflow Finn Thain
2017-11-18  2:30 ` [PATCH v2 11/13] nubus: Rename struct nubus_dev Finn Thain
2017-11-18  2:30 ` [PATCH v2 13/13] nubus: Add support for the driver model Finn Thain
2017-11-18 10:21   ` Greg Kroah-Hartman
2017-11-20  1:01     ` Finn Thain
2017-11-23  0:24       ` Finn Thain
2017-11-23  8:04         ` Greg Kroah-Hartman
2017-11-23 23:40           ` Finn Thain [this message]
2017-11-24  8:24             ` Greg Kroah-Hartman
2017-11-25  1:03               ` Finn Thain
2017-11-18  2:30 ` [PATCH v2 02/13] nubus: Fix up header split Finn Thain
2017-11-18  2:30 ` [PATCH v2 12/13] nubus: Add expansion_type values for various Mac models Finn Thain
2017-11-18  2:30 ` [PATCH v2 09/13] nubus: Generalize block resource handling Finn Thain
2017-11-18  2:30 ` [PATCH v2 03/13] nubus: Use static functions where possible Finn Thain
2017-11-18  2:30 ` [PATCH v2 08/13] nubus: Clean up whitespace Finn Thain
2017-11-18  2:30 ` [PATCH v2 06/13] nubus: Call proc_mkdir() not more than once per slot directory Finn Thain
2017-11-18  2:30 ` [PATCH v2 10/13] nubus: Rework /proc/bus/nubus/s/ implementation Finn Thain

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=alpine.LNX.2.00.1711241040150.3@nippy.intranet \
    --to=fthain@telegraphics.com.au \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@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

all inboxes | Powered by JetHome®