Re: Serial Driver Name Question (kernels 2.4.x)

Ivan Passos
2002-01-08T23:30:51Z

Andrew Morton wrote:
>
> "Michael H. Warfield" wrote:
> >
> > The trouble there is the problem with conventional lock files under
> > /var/lock which only use the base name of the device name so cua/42
> > and cuf/42 both have the same lock file of /var/lock/LCK..42 and
> > would collide.
>
> OK, thanks. So it looks like we stick with
>
> http://www.zip.com.au/~akpm/linux/2.4/2.4.18-pre2/tty_name.patch
>
> Which just puts %d's at the end of all the device names in the
> non-devfs case.
>
> I'll have another go at that patch, check for missed drivers,
> then send it out again. OK?

OK, just two comments:
- As you'll have to patch all drivers anyway, in case Richard Gooch
doesn't have a problem with this suggestion, I'd suggest you patch
the kernel as follows:

(1) drivers/char/tty_io.c
---------------------
@@ -193,10 +193,13 @@ _tty_make_name(struct tty_struct *tty, c

if (!tty) /* Hmm. NULL pointer. That's fun. */
strcpy(buf, "NULL tty");
else
- sprintf(buf, name,
- idx + tty->driver.name_base);
+ sprintf(buf, "%s%d", name, idx + tty->driver.name_base);

return buf;
}

(2) drivers/char/serial.c
---------------------
@@ -5387,7 +5387,7 @@ static int __init rs_init(void)
serial_driver.driver_name = "serial";
#endif
#if (LINUX_VERSION_CODE > 0x2032D && defined(CONFIG_DEVFS_FS))
- serial_driver.name = "tts/%d";
+ serial_driver.name = "tts/";
#else
serial_driver.name = "ttyS";
#endif

(3) drivers/char/whatever_other_driver.c
------------------------------------
@@ -5387,7 +5387,7 @@ static int __init wod_init(void)
wod_driver.driver_name = "whatever_other_driver";
#endif
#ifdef CONFIG_DEVFS_FS
- wod_driver.name = "tts/N%d";
+ wod_driver.name = "tts/N";
#else
wod_driver.name = "ttyN";
#endif

I've already suggested this in a previous msg, but nobody gave
feedback. I believe this is cleaner, as it removes the %d from
the driver.name field, while fixes the problem I reported.

- Since you'll patch the Cyclades driver, could you please add the
ifdef's for devfs?? The definitions are as follows:
- Callin devices: "tts/C%d" for devfs, "ttyC%d" for non-devfs.
- Callout devices: "cua/C%d" for devfs, "cub%d" for non-devfs
(no, this is NOT a typo, it's really cua/C and cub).

I ask this just to avoid sending a separate patch just for that.
I'd really appreciate it if you could do it along with your patch.
If you don't do it, no problem either.

Anyhow, thanks to all for the attention to this issue, and especially
to you, Andrew!

Later,
--
Ivan Passos -o)
Integration Manager, Cyclades - http://www.cyclades.com /\\
Project Leader, NetLinOS - http://www.netlinos.org _\_V
--------------------------------------------------------------------