lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LNX.2.00.1711211046150.3@nippy.intranet>
Date:   Thu, 23 Nov 2017 11:24:38 +1100 (AEDT)
From:   Finn Thain <fthain@...egraphics.com.au>
To:     Greg Kroah-Hartman <gregkh@...uxfoundation.org>
cc:     Geert Uytterhoeven <geert@...ux-m68k.org>,
        linux-m68k@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [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?

-- 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ