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

From: Ivan Passos (ivan@cyclades.com)
Date: Tue Jan 08 2002 - 18:33:43 EST


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
--------------------------------------------------------------------
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Jan 15 2002 - 21:00:24 EST