lkml.org 
[lkml]   [2002]   [Jan]   [9]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateWed, 9 Jan 2002 09:36:30 -0700
FromRichard Gooch <>
SubjectRe: Serial Driver Name Question (kernels 2.4.x)
Ivan Passos writes:
> 
> 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 have to change all the drivers anyway, I'd prefer if
_tty_make_name() was left unchanged, and instead you put the "%d" in
each driver.name, thusly:
#ifdef CONFIG_DEVFS_FS
	wod_driver.name = "tts/N%d";
#else
	wod_driver.name = "ttyN%d";
#endif

The reason: maximum flexibility in the kinds of names we can
support. If for some reason we want a name like "tts/N%d_A" and
"tts/N%d_B" (say a driver with linked ttys, like the pty driver), we
don't need to make a global change.

				Regards,

					Richard....
Permanent: rgooch@atnf.csiro.au
Current:   rgooch@ras.ucalgary.ca
-
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/
\
 
 \ /
  Last update: 2005-03-22 12:15    [from the cache]
©2003-2008