lkml.org 
[lkml]   [2017]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2 13/13] nubus: Add support for the driver model
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.

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 device_unregister() is never called, the release method seems to be
pointless. Would you clarify your objection please?

--

\
 
 \ /
  Last update: 2017-11-23 01:25    [W:0.052 / U:0.180 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site