Re: How do I choose an arbitrary minor number for my tty device?

From: Michael Ellerman
Date: Wed Nov 24 2010 - 17:44:15 EST


On Wed, 2010-11-24 at 10:23 -0800, Greg KH wrote:
> On Wed, Nov 24, 2010 at 12:08:18PM -0600, Scott Wood wrote:
> > On Wed, 24 Nov 2010 21:23:47 +1100
> > Michael Ellerman <michael@xxxxxxxxxxxxxx> wrote:
> >
> > > On Thu, 2010-11-18 at 12:13 -0600, Scott Wood wrote:
> > > > Unfortunately, it's not an exact match, and the fact that reg doesn't
> > > > translate to a physical address means that AFAICT you'll currently get
> > > > something like "byte-channel.nnn", where "nnn" is an arbitrary
> > > > kernel-assigned number.
> > >
> > > Can you not use device_rename() ?
> >
> > Ah, didn't know about that. Still, might be nice to add support for
> > "handle" nodes at the infrastructure level rather than in each driver.
>
> No, please never use that function, bad things will happen.

Why? The network & wireless code uses it, so presumably it can work? If
not please consider:

commit f470f680dfaad8731f079a033a50440082e20930
Author: Michael Ellerman <michael@xxxxxxxxxxxxxx>
Date: Thu Nov 25 09:41:28 2010 +1100

driver core: Document that device_rename() is not to be used

Signed-off-by: Michael Ellerman <michael@xxxxxxxxxxxxxx>

diff --git a/drivers/base/core.c b/drivers/base/core.c
index 6ed6454..f1fac19 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -1513,6 +1513,8 @@ EXPORT_SYMBOL_GPL(device_destroy);
* exclusion between two different calls of device_rename
* on the same device to ensure that new_name is valid and
* won't conflict with other devices.
+ *
+ * "Never use this function, bad things will happen" - gregkh
*/
int device_rename(struct device *dev, const char *new_name)
{

Attachment: signature.asc
Description: This is a digitally signed message part