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: <2024121131-carnival-cash-8c5f@gregkh>
Date: Wed, 11 Dec 2024 12:05:10 +0100
From: Greg KH <gregkh@...uxfoundation.org>
To: Danilo Krummrich <dakr@...nel.org>
Cc: rafael@...nel.org, bhelgaas@...gle.com, ojeda@...nel.org,
	alex.gaynor@...il.com, boqun.feng@...il.com, gary@...yguo.net,
	bjorn3_gh@...tonmail.com, benno.lossin@...ton.me, tmgross@...ch.edu,
	a.hindborg@...sung.com, aliceryhl@...gle.com, airlied@...il.com,
	fujita.tomonori@...il.com, lina@...hilina.net, pstanner@...hat.com,
	ajanulgu@...hat.com, lyude@...hat.com, robh@...nel.org,
	daniel.almeida@...labora.com, saravanak@...gle.com,
	dirk.behme@...bosch.com, j@...nau.net, fabien.parent@...aro.org,
	chrisi.schrefl@...il.com, rust-for-linux@...r.kernel.org,
	linux-kernel@...r.kernel.org, linux-pci@...r.kernel.org,
	devicetree@...r.kernel.org
Subject: Re: [PATCH v5 01/16] rust: pass module name to `Module::init`

On Wed, Dec 11, 2024 at 11:59:54AM +0100, Greg KH wrote:
> On Wed, Dec 11, 2024 at 11:48:23AM +0100, Greg KH wrote:
> > On Wed, Dec 11, 2024 at 11:45:20AM +0100, Greg KH wrote:
> > > On Tue, Dec 10, 2024 at 11:46:28PM +0100, Danilo Krummrich wrote:
> > > > In a subsequent patch we introduce the `Registration` abstraction used
> > > > to register driver structures. Some subsystems require the module name on
> > > > driver registration (e.g. PCI in __pci_register_driver()), hence pass
> > > > the module name to `Module::init`.
> > > 
> > > Nit, we don't need the NAME of the PCI driver (well, we do like it, but
> > > that's not the real thing), we want the pointer to the module structure
> > > in the register_driver call.
> > > 
> > > Does this provide for that?  I'm thinking it does, but it's not the
> > > "name" that is the issue here.
> > 
> > Wait, no, you really do want the name, don't you.  You refer to
> > "module.0" to get the module structure pointer (if I'm reading the code
> > right), but as you have that pointer already, why can't you just use
> > module->name there as well as you have a pointer to a valid module
> > structure that has the name already embedded in it.
> 
> In digging further, it's used by the pci code to call into lower layers,
> but why it's using a different string other than the module name string
> is beyond me.  Looks like this goes way back before git was around, and
> odds are it's my fault for something I wrote a long time ago.
> 
> I'll see if I can just change the driver core to not need a name at all,
> and pull it from the module which would make all of this go away in the
> end.  Odds are something will break but who knows...

Nope, things break, the "name" is there to handle built-in modules (as
the module pointer will be NULL.)

So what you really want is not the module->name (as I don't think that
will be set), but you want KBUILD_MODNAME which the build system sets.
You shouldn't need to pass the name through all of the subsystems here,
just rely on the build system instead.

Or does the Rust side not have KBUILD_MODNAME?

thanks,

greg k-h

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ